Respostas:
A dobragem foi lançada e agora está implementada desde o Visual Studio Code versão 0.10.11 . Existem estes atalhos de teclado disponíveis:
Dobra dobra a região não recolhida mais interna no cursor:
Desdobrar desdobra a região recolhida no cursor:
Dobrar Tudo dobra todas as regiões do editor:
Desdobrar Tudo desdobra todas as regiões no editor:
Referências: https://code.visualstudio.com/docs/getstarted/keybindings
F1
e tipo Dobre ou Unfold
No Visual Studio Code versão 1.12.0, abril de 2017, consulte a seção Edição básica> Dobragem nos documentos.
As chaves padrão são:
Dobrar tudo: CTRL+ K, CTRL+ 0(zero)
Nível de dobra [n]: CTRL+ K, CTRL+ [n]*
Desdobrar Tudo: CTRL+ K, CTRL+J
Região da dobra: CTRL+ K, CTRL+[
Desdobrar Região: CTRL+ K, CTRL+]
* Nível de dobra: para dobrar todas, exceto as classes mais externas, tente CTRL+ K, CTRL+1
Macs: use em ⌘vez de CTRL(obrigado Prajeet)
ctrl+k,ctrl+num
só funciona em números acima QWERTY não no teclado numérico
A dobragem de código por regiões chegou com a v1.17. Documentação de dobragem por regiões . E v1.19 e 1.23 .
[Geralmente você pode adicionar um espaço, por exemplo, // region and // endregion
para //region and //endregion
e que também irá trabalhar.]
TypeScript/JavaScript: //#region and //#endregion or // #region and // #endregion
C#: #region and #endregion
C/C++: #pragma region and #pragma endregion
F#: //#region and //#endregion
PowerShell: #region and #endregion
Python: #region and #endregion
VB: #Region and #End Region
PHP: #region and #endregion
Bat: ::#region and ::#endregion or REM #region and REM #endregion
Markdown: <!-- #region --> and <!-- #endregion -->
Golang //region and //endregion or //#region and //#endregion
Java //#region and //#endregion
CSS/SCSS/Less: /* #region */ and /* #endregion */ or /*#region*/ and /*#endregion*/
SCSS/Less: // #region and // #endregion
Go: // region, // endregion and // #region, // #endregion
shellscript: # region and # endregion
Perl5 #region and #endregion or =pod and =cut`
Importante: se você não vê seu idioma na lista:
Cada idioma também possui trechos disponíveis para os marcadores. Digite '#' e chame a conclusão do código para vê-los. Para ter marcadores de região configurados para o seu idioma, entre em contato com o provedor de extensão de idioma.
Digite #
e depois Ctrl+ Spacepara ver os marcadores da região para qualquer idioma.
// region
e // endregion
não está trabalhando com o VS Code versão 1.22 (embora não tenha testado versões abaixo ou acima). Mas // #region
e // #endregion
funciona (observe o '#' e o espaço em ambos). Dessa forma, o ESLint (se você estiver usando) não mostrará erro se a spaced-comment
regra estiver ativada (ou seja, não definida como 'off' ou 0).
/* #region Foo Bar */
e/* #endregion */
//region
e //endregion
são para JavaScript.
<!-- #region --> elements <!-- #endregion -->
. Ele exibe o texto após a região # na seção dobrada. Dobra adequadamente da região atual para a região correspondente, mesmo que haja outras aninhadas - como parênteses em qualquer equação. Ele lembra a configuração de dobra para regiões aninhadas. Ctrl + k + Ctrl + [e Ctrl + k + Ctrl +] fecham / abrem as dobras corretamente no cursor. (o que me parece um pouco atrasado, mas whatevah) Ótimas coisas!
Este recurso está disponível na compilação padrão agora. Para fazer com que os controles de recolhimento / expansão apareçam, é necessário passar o mouse sobre a área à direita dos números das linhas, conforme mostrado nesta captura de tela:
Você deve adicionar configurações do usuário:
{
"editor.showFoldingControls": "always",
"editor.folding": true,
"editor.foldingStrategy": "indentation",
}
O atalho padrão para recolher / estender são:
Ctrl+ Shift+ [: "Dobrar"
Ctrl+ Shift+ Alt+ [: "Dobrar tudo"
Ctrl+ Shift+ ]: "Desdobrar"
Ctrl+ Shift+ Alt+ ]: "Desdobrar tudo"
Ou vá para keybindings.json e altere como desejar.
Por exemplo:
{
"key": "cmd+k cmd+m",
"command": "editor.foldAll",
"when": "editorFocus"
},
{
"key": "cmd+m cmd+k",
"command": "editor.unfoldAll",
"when": "editorFocus"
},
ctrl+shift+alt+[ "Unfold all"
você escreveu em [
vez de ]
. Corrija-me se eu estiver enganado.
Se nenhum dos atalhos estiver funcionando (como eu), como solução alternativa, você também pode abrir a paleta de comandos ( Ctrl+ 3ou Exibir -> paleta de comandos ...) e digitar fold all
:
O recolhimento agora é suportado na versão 1.0 :
Atalhos para dobrar código fonte
Há novas ações de dobragem para recolher as regiões do código-fonte com base no nível de dobragem.
Existem ações para dobrar o nível 1 ( Ctrl+ K Ctrl+ 1) para o nível 5 ( Ctrl+ K Ctrl+ 5). Para desdobrar, use Desdobrar tudo ( Ctrl+ Shift+ Alt+ ]).
As ações de dobra de nível não se aplicam à região que contém o cursor atual.
Ocorreu um problema ao encontrar o ]
botão no teclado (layout norueguês) e, no meu caso, era o Å
botão. (Ou dois botões à esquerda e um pressionado a partir do botão Backspace.)
Com JavaScript:
//#region REGION_NAME
...code here
//#endregion
A partir da versão 1.3.1 (17/07/2016), o Block Collapse é muito mais conveniente.
Qualquer linha seguida por uma linha recuada terá um caractere '-' para permitir o recolhimento. Se o bloco estiver recolhido, ele será substituído por um caractere '+' que abrirá o bloco recolhido.
O ( Ctrl+ Shift+ Alt+ ]) ainda afetará todos os blocos, fechando um nível. Cada uso repetido fechava mais um nível. O ( Ctrl+ Shift+ Alt+ [) funciona da maneira oposta.
Viva, o colapso de blocos finalmente funciona de maneira útil.
Nenhuma dica técnica aqui, apenas ajustes simples das preferências do VsCode.
Consegui mostrar os controles de dobra de código sempre no VsCode, indo para Preferências e procurando por 'dobra'. Agora basta selecionar para sempre mostrar esses controles. Isso funciona com o código Typescript e o HTML dos modelos na solução Angular 8 com a qual eu testei.
Isso foi testado com o VsCode Insiders 1.37.0 em execução em um sistema operacional Windows 10.
A v1.42 está adicionando alguns refinamentos interessantes à aparência e ao funcionamento das dobras. Consulte https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting :
Destaque dobrado da escala
Os intervalos dobrados agora são mais fáceis de descobrir, graças a uma cor de plano de fundo para todos os intervalos dobrados.
Dobre a cor do destaque Tema: Escuro +
O recurso é controlado pela configuração editor.foldingHighlight e a cor pode ser personalizada com a cor editor.foldBackground.
"workbench.colorCustomizations": { "editor.foldBackground": "#355000" }
Refinamentos dobráveis
Shift + Click
no indicador de dobragem primeiro dobra apenas os intervalos internos.Shift + Click
novamente (quando todos os intervalos internos já estiverem dobrados) também dobrará o pai.Shift + Click
novamente desdobra tudo.
Ao usar o comando Dobrar (kb (
editor.fold
))] em um intervalo já dobrado, o próximo intervalo pai desdobrado será dobrado.
Em um Mac, é a tecla Comando RHS, ⌘Ke não a esquerda para os comandos de dobragem de código.
Caso contrário, a tecla de comando esquerda excluirá a linha atual ⌘K,.
Agora, esse recurso é suportado, desde o Visual Studio Code 1.17 . Para dobrar / recolher seu bloco de código, basta adicionar as tags de região, como //#region my block name
e //#endregion
se estiver codificando em TypeScript / JavaScript.
Exemplo:
Extensão VSCode: Fold Level , uma dobra de chave para o nível desejado.
Desejo que o Visual Studio Code possa manipular:
#region Function Write-Log
Function Write-Log {
...
}
#endregion Function Write-Log
No momento, o Visual Studio Code apenas o ignora e não o recolhe. Enquanto isso, o Notepad ++ e o PowerGUI lidam com isso muito bem.
Atualização: Acabei de notar uma atualização para o Visual Studio Code. Agora isso é suportado!
Nota: esses atalhos funcionam apenas conforme o esperado se você editar seus keybindings.json
Não estava satisfeito com os atalhos padrão, queria que eles funcionassem da seguinte maneira:
Para configurá-lo:
Preferences: Open Keyboard Shortcuts (JSON)
( Ctrl+ ⇧ Shift+ p)Já possui atalhos de teclado personalizados para dobrar / desdobrar? Então você precisaria substituí-los.
{
"key": "ctrl+alt+]",
"command": "editor.fold",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+alt+[",
"command": "editor.unfold",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+shift+alt+]",
"command": "editor.foldRecursively",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+shift+alt+[",
"command": "editor.unfoldRecursively",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+k ctrl+[",
"command": "editor.unfoldAll",
"when": "editorTextFocus && foldingEnabled"
},
{
"key": "ctrl+k ctrl+]",
"command": "editor.foldAll",
"when": "editorTextFocus && foldingEnabled"
},
Fold Level
resposta de Michael Fulton fez mais sentido para mim.