Formát Transact-SQL v rozšíření MSSQL pro Visual Studio Code

Konzistentní formátování usnadňuje čtení, kontrolu a údržbu Transact-SQL (T-SQL), zejména když více lidí přispívá ke stejnému základu kódu. Rozšíření MSSQL pro Visual Studio Code obsahuje vestavěný SQL formátovač (Preview), který můžete spustit na vyžádání, nastavit pro automatické formátování při ukládání a upravit pomocí nastavení Visual Studio Code.

Funkce formátování T-SQL v rozšíření MSSQL je postavena na ScriptDOM, open-source .NET knihovně, která parsuje T-SQL a generuje skripty na základě abstraktních syntaktických stromů.

Formát na vyžádání

T-SQL můžete naformátovat v jakémkoli okně editoru. Formátovač pracuje na celém dokumentu nebo jen na textu, který vyberete.

Pro formátování T-SQL na vyžádání použijte jednu z následujících metod:

  • Kontextové menu: Klikněte pravým tlačítkem v okně T-SQL editoru a vyberte Formát dokumentu nebo Výběr formátu.

  • Paleta příkazů: Spusťte Formátovat dokument nebo Formátovat výběr.

  • Klávesová zkratka: Pro formátování dokumentu stiskněte Shift+Alt+F na Windows a Linuxu, nebo Shift+Option+F na macOS. Pro výběr formátu stiskněte Ctrl+K, Ctrl+F na Windows a Linuxu, nebo Cmd+K, Cmd+F na macOS.

Formát při uložení

Ve Visual Studio Code standardní nastavení editoru ovládá formát při uložení, nikoli samostatné nastavení formátování MSSQL.

Použijte následující nastavení ve svém souboru Visual Studio Code settings.json pro automatické formátování T-SQL pokaždé, když ukládáte soubor:

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

Konfigurace možností formátování

Konfigurujte formátování v rozhraní nastavení Visual Studio Code nebo v uživatelském či pracovním prostorusettings.json.

V editoru Nastavení vyhledejte Mssql>Format a zobrazte dostupné možnosti. V settings.json použijte odpovídající nastavení mssql.format.*.

  • Formátovač náhledu je ve výchozím nastavení zapnutý. Jeho možnosti využívají mssql.format.options.* jmenný prostor.

  • Pět stávajících nastavení formátovače zůstává dostupných i po zapnutí náhledového formátovače. Formátovač náhledu přidává nastavení mssql.format.options.*.

Screenshot nastavení SQL formátovače v editoru nastavení Visual Studio Code.

Podporovaná nastavení

Tabulky uvádějí stávající nastavení formátovače, po nichž následují nastavení formátovače náhledu.

Stávající nastavení formátovačů

Setting Typ Výchozí Description
mssql.format.alignColumnDefinitionsInColumns bool false Zarovnejte definice sloupců ve sloupcích.
mssql.format.datatypeCasing výčet none Formátujte datové typy jako uppercase, lowercase, nebo none (neformátované).
mssql.format.keywordCasing výčet none Klíčová slova formátujte jako uppercase, lowercase, nebo none (neformátované).
mssql.format.placeCommasBeforeNextStatement bool false Na začátek každé položky v seznamu umístěte čárky, například , mycolumn2, místo na konec, například mycolumn1,.
mssql.format.placeSelectStatementReferencesOnNewLine bool false Umístěte odkazy v příkazu SELECT na samostatné řádky. Pro SELECT C1, C2 FROM T1 platí, že C1 i C2 jsou na samostatných řádcích.

Náhled nastavení formátovače

Tato mssql.format.options.* nastavení se přidávají k existujícím nastavením formátovače, když zapnete náhledový formátovač.

General

Setting Typ Výchozí Description
mssql.format.enablePreviewFormatter bool true Použijte SQL formátovač (Preview).
mssql.format.showParseErrorNotification bool true Zobrazit oznámení, když formátovač nedokáže plně rozložit T-SQL.
mssql.format.options.sqlVersion výčet sql170 Verze T-SQL používaná pro parsování a generování formátovaných skriptů.
mssql.format.options.sqlEngineType výčet all Database Engine typ používaný k parsování a generování formátovaných skriptů. Platné hodnoty jsou all, standalonea sqlAzure.

Zarovnání

Setting Typ Výchozí Description
mssql.format.options.alignClauseBodies bool true Zarovnejte těla FROM, WHERE, GROUP BY a podobných klauzulí.
mssql.format.options.alignColumnDefinitionFields bool true Zarovnejte pole definice sloupce, například název, typ a omezení.
mssql.format.options.alignSetClauseItem bool true Zarovnejte položky klauzule SET v příkazech UPDATE.

Paths

Setting Typ Výchozí Description
mssql.format.options.allowExternalLanguagePaths bool true Povolte externímu jazykovému obsahu používat cesty k souborům.
mssql.format.options.allowExternalLibraryPaths bool true Povolte obsahu externích knihoven používat cesty k souborům.

Formatting

Setting Typ Výchozí Description
mssql.format.options.asKeywordOnOwnLine bool true Umístěte AS na samostatný řádek.
mssql.format.options.keywordCasing výčet uppercase Styl zápisu klíčových slov Platné hodnoty jsou uppercase, lowercasea pascalCase.
mssql.format.options.preserveComments bool true Během formátování zachovávejte komentáře.
mssql.format.options.numNewlinesAfterStatement int 1 Počet zalomení řádků po každém příkazu v rozsahu od 0 do 5.

Odsazení

Setting Typ Výchozí Description
mssql.format.options.indentSetClause bool false Odsadit klauzuli SET v příkazech UPDATE
mssql.format.options.indentViewBody bool false Odsadit tělo VIEW

Víceřádkové

Setting Typ Výchozí Description
mssql.format.options.multilineInsertSourcesList bool true INSERT zdroje jako víceřádkové.
mssql.format.options.multilineInsertTargetsList bool true INSERT sloupce jako víceřádkové.
mssql.format.options.multilineSelectElementsList bool true SELECT sloupce jako víceřádkové.
mssql.format.options.multilineSetClauseItems bool true SET položky na více řádcích.
mssql.format.options.multilineViewColumnsList bool true VIEW sloupce jako víceřádkové.
mssql.format.options.multilineWherePredicatesList bool true WHERE predikuje jako víceřádkový.

Nový řádek

Setting Typ Výchozí Description
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Nová čára před uzavřenými závorkami v seznamu s více řádky.
mssql.format.options.newLineBeforeFromClause bool true Nová věta před FROM klauzulí.
mssql.format.options.newLineBeforeGroupByClause bool true Nová věta před GROUP BY klauzulí.
mssql.format.options.newLineBeforeHavingClause bool true Nová věta před HAVING klauzulí.
mssql.format.options.newLineBeforeJoinClause bool true Nová věta před JOIN klauzulí.
mssql.format.options.newLineBeforeOffsetClause bool true Nová věta před OFFSET klauzulí.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Nový řádek před otevřenou závorkou v seznamu s více řádky.
mssql.format.options.newLineBeforeOrderByClause bool true Nová věta před ORDER BY klauzulí.
mssql.format.options.newLineBeforeOutputClause bool true Nová věta před OUTPUT klauzulí.
mssql.format.options.newLineBeforeWhereClause bool true Nová věta před WHERE klauzulí.
mssql.format.options.newLineBeforeWindowClause bool true Nová věta před WINDOW klauzulí.
mssql.format.options.newlineFormattedCheckConstraint bool false Omezení formátované CHECK v novém řádku.
mssql.format.options.newLineFormattedIndexDefinition bool false Definice indexu ve formátu nového řádku.

Spacing

Setting Typ Výchozí Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Mezera mezi datovým typem a závorkami, například VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Mezera mezi parametry v datových typech.

Ukázkový soubor nastavení

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

Nastavte výchozí formátovač

Pro nastavení rozšíření MSSQL jako výchozí vyberte Configure Default Formatter...>SQL Server (mssql), nebo přidejte následující konfiguraci dosettings.json:

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