Formate Transact-SQL na extensão MSSQL para Visual Studio Code

A formatação consistente torna Transact-SQL (T-SQL) mais fácil de ler, revisar e manter, especialmente quando várias pessoas contribuem para a mesma base de código. A extensão MSSQL para Visual Studio Code inclui um formador SQL embutido (Preview) que você pode rodar sob demanda, configurar para formatação automática no save e personalizar pelas configurações do Visual Studio Code.

A funcionalidade de formatação do T-SQL na extensão MSSQL é construída sobre o ScriptDOM, uma biblioteca .NET de código aberto que analisa o T-SQL e gera scripts baseados em árvores de sintaxe abstratas.

Formatação sob demanda

Você pode formatar T-SQL em qualquer janela do editor. O formatador funciona no documento inteiro ou apenas no texto que você selecionar.

Para formatar T-SQL sob demanda, use um dos seguintes métodos:

  • Menu de contexto: Clique com o botão direito em uma janela do editor T-SQL e selecione Formatar Documento ou Seleção de Formato.

  • Paleta de Comandos: Executar Documento de Formato ou Seleção de Formato.

  • Atalho de teclado: Para Formatar Documento, pressione Shift+Alt+F no Windows e Linux, ou Shift+Option+F no macOS. Para Seleção de Formato, pressione Ctrl+K, Ctrl+F no Windows e Linux, ou Cmd+K, Cmd+F no macOS.

Formatar ao salvar

No Visual Studio Code, a configuração padrão do editor controla a formatação ao salvar, em vez de uma configuração dedicada do formatador do MSSQL.

Use as seguintes configurações no seu arquivo Visual Studio Code settings.json para formatar T-SQL automaticamente sempre que salvar um arquivo:

{
  "[sql]": {
    "editor.formatOnSave": true
  }
}

Configurar opções de formatação

Configure a formatação na interface Configurações do Visual Studio Code ou nas configurações do usuário ou do espaço de trabalho settings.json.

No editor de Configurações, procure porFormatoMssql> para visualizar as opções disponíveis. Em settings.json, use as configurações correspondentes em mssql.format.*.

  • O formador de pré-visualização está ativado por padrão. Suas opções usam o mssql.format.options.* namespace.

  • As cinco configurações existentes de formatador permanecem disponíveis quando a formatadora de pré-visualização está ativada. O formatador de pré-visualização adiciona as configurações mssql.format.options.*.

Captura de tela das configurações de formatador SQL no editor de Configurações do Visual Studio Code.

Definições suportadas

As tabelas listam as configurações existentes do formatador, seguidas pelas configurações de visualização do formatador.

Configurações existentes de formatador

Setting Tipo Default Description
mssql.format.alignColumnDefinitionsInColumns bool false Alinhe as definições de coluna em colunas.
mssql.format.datatypeCasing enumeração none Formate os tipos de dados como uppercase, lowercase, ou none (não formatado).
mssql.format.keywordCasing enumeração none Formate palavras-chave como uppercase, lowercase, ou none (não formatado).
mssql.format.placeCommasBeforeNextStatement bool false Coloque vírgulas no início de cada item em uma lista, por exemplo , mycolumn2, em vez de no final, por exemplo mycolumn1,.
mssql.format.placeSelectStatementReferencesOnNewLine bool false Coloque referências em uma SELECT declaração em linhas separadas. Para SELECT C1, C2 FROM T1, tanto C1 quanto C2 estão em linhas separadas.

Configurações de formatador de pré-visualização

Essas mssql.format.options.* configurações se somam às configurações existentes do formatador quando você ativa o formatador de pré-visualização.

General

Setting Tipo Default Description
mssql.format.enablePreviewFormatter bool true Use o formador SQL (Prévia).
mssql.format.showParseErrorNotification bool true Mostre uma notificação quando o formatador não consegue analisar totalmente o T-SQL.
mssql.format.options.sqlVersion enumeração sql170 Versão T-SQL usada para analisar e gerar scripts formatados.
mssql.format.options.sqlEngineType enumeração all Tipo Mecanismo de Banco de Dados usado para analisar e gerar scripts formatados. Os valores válidos são all, standalonee sqlAzure.

Alinhamento

Setting Tipo Default Description
mssql.format.options.alignClauseBodies bool true Alinhe os corpos de FROM, WHERE, GROUP BY e cláusulas semelhantes.
mssql.format.options.alignColumnDefinitionFields bool true Alinhar campos de definição de coluna, como nome, tipo e restrições.
mssql.format.options.alignSetClauseItem bool true Alinhar SET itens da cláusula em UPDATE declarações.

Paths

Setting Tipo Default Description
mssql.format.options.allowExternalLanguagePaths bool true Permita que conteúdos de linguagem externa usem caminhos de arquivo.
mssql.format.options.allowExternalLibraryPaths bool true Permita que o conteúdo externo da biblioteca use caminhos de arquivo.

Formatting

Setting Tipo Default Description
mssql.format.options.asKeywordOnOwnLine bool true Coloque AS em uma linha própria.
mssql.format.options.keywordCasing enumeração uppercase Estilo de capitalização de palavras-chave. Os valores válidos são uppercase, lowercasee pascalCase.
mssql.format.options.preserveComments bool true Preservar comentários durante a formatação.
mssql.format.options.numNewlinesAfterStatement int 1 Número de quebras de linha após cada afirmação, de 0 até 5.

Recuo

Setting Tipo Default Description
mssql.format.options.indentSetClause bool false Recuar a cláusula SET em instruções UPDATE.
mssql.format.options.indentViewBody bool false Recuar corpo VIEW.

Várias linhas

Setting Tipo Default Description
mssql.format.options.multilineInsertSourcesList bool true INSERT fontes como várias linhas.
mssql.format.options.multilineInsertTargetsList bool true INSERT colunas como várias linhas.
mssql.format.options.multilineSelectElementsList bool true SELECT colunas como várias linhas.
mssql.format.options.multilineSetClauseItems bool true SET itens em várias linhas.
mssql.format.options.multilineViewColumnsList bool true VIEW colunas como várias linhas.
mssql.format.options.multilineWherePredicatesList bool true WHERE predicados como várias linhas.

Nova linha

Setting Tipo Default Description
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Nova linha antes do fechamento entre parênteses na lista de várias linhas.
mssql.format.options.newLineBeforeFromClause bool true Nova linha antes da cláusula FROM.
mssql.format.options.newLineBeforeGroupByClause bool true Nova linha antes da cláusula GROUP BY.
mssql.format.options.newLineBeforeHavingClause bool true Nova linha antes da cláusula HAVING.
mssql.format.options.newLineBeforeJoinClause bool true Nova linha antes da cláusula JOIN.
mssql.format.options.newLineBeforeOffsetClause bool true Nova linha antes da cláusula OFFSET.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Nova linha antes do parêntese aberto na lista de várias linhas.
mssql.format.options.newLineBeforeOrderByClause bool true Nova linha antes da cláusula ORDER BY.
mssql.format.options.newLineBeforeOutputClause bool true Nova linha antes da cláusula OUTPUT.
mssql.format.options.newLineBeforeWhereClause bool true Nova linha antes da cláusula WHERE.
mssql.format.options.newLineBeforeWindowClause bool true Nova linha antes da cláusula WINDOW.
mssql.format.options.newlineFormattedCheckConstraint bool false Restrição formatada com nova linha CHECK.
mssql.format.options.newLineFormattedIndexDefinition bool false Definição de índice formatado por linha nova.

Spacing

Setting Tipo Default Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Espaço entre o tipo de dado e os parênteses, por exemplo VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Espaço entre parâmetros nos tipos de dados.

Exemplo de arquivo de configurações

{
  "mssql.format.options.keywordCasing": "lowercase",
  "mssql.format.options.alignClauseBodies": false,
  "mssql.format.options.numNewlinesAfterStatement": 2,
  "[sql]": {
    "editor.formatOnSave": true
  }
}

Defina o formador padrão

Para definir a extensão MSSQL como padrão, selecione Configurar Formatador Padrão...>SQL Server (mssql), ou adicionar a seguinte configuração asettings.json:

{
  "[sql]": {
    "editor.defaultFormatter": "ms-mssql.mssql"
  }
}