Identação - totvs/advpl-vscode GitHub Wiki
Agora é possível efetuar a identação dos códigos de forma prática.
Funcionalidades implementadas:
Funcionalidade | Tecla de Atalho |
---|---|
Formatação de Fonte | Shift + Alt + F |
Formatação de trecho de Código | Ctrl + K Ctrl + F |
Importante! A identação de trechos de código irá partir da identação definida na primeira linha selecionada.
Configurações
Identação Automática:
Pode ser configurada a identação automática de código com as configurações do settings da seguinte forma:
-
Formatação global (se o tipo de fonte que está usando tem um formatador ele vai identar ao salvar ou colar):
{ /*formatação quando salva o arquivo*/ "editor.formatOnSave": true, /*formatação quando cola no arquivo*/ "editor.formatOnPaste": true }
-
Formatação por linguagem (neste caso só irá formatar códigos AdvPL):
{ /* formatação quando salva o arquivo */ "editor.formatOnSave": false, /* formatação quando cola no arquivo */ "editor.formatOnPaste": false, /* limita as configurações para o escopo da linguagem AdvPL */ "[advpl]": { /* formatação quando salva o arquivo */ "editor.formatOnSave": true, /* formatação quando cola no arquivo */ "editor.formatOnPaste": true } }
Caracter de Identação:
Pode-se definir no settings.json se a identação usará tabulação ou espaços:
-
Uso de tabulação:
{ /* define que usa tabulações */ "editor.insertSpaces": false, /* define o tamanho das tabulações */ "editor.tabSize": 4 }
-
Uso de espaços:
{ /* define que usa espaços*/ "editor.insertSpaces": true, /* define a quantidade de espaços */ "editor.tabSize": 4 }
Informações gerais
Exceção na Formatação:
Existem trechos de código que a identação não irá afetar, são eles:
-
BeginSql alias 'E2TEMP' column E2_EMISSAO as Date SELECT SE2.E2_PREFIXO, SE2.E2_NUM FROM %table:SE2% SE2,%table:QEK% QEK WHERE SE2.E2_FILIAL= %xfilial:SE2% EndSql
-
Comentários e ProtheusDoc:
/*/{Protheus.doc} areaQuad Efetua o cálculo da área de alguns quadriláteros. @type function @author José Silva /*/
-
BeginContent var cCode function sendData(){ with(document){ var data = { 'From_Expression: ':'%Exp:myVar%' } } var text = "form:SaveData('" + JSON.stringify(data) + "')"; twebchannel.jsToAdvpl('receive_data', text, 'dummy'); } endContent
-
Blocos não identados, você pode definir trechos de código que não quer identar deixando o código entre
/*{*/
e/*}*/
:/* { */ User Function xyz() Return /* } */