Visual Studio Code için MSSQL uzantısında Transact-SQL’yi biçimlendirin

Tutarlı biçimlendirme, Transact-SQL (T-SQL) özellikle birden çok kişi aynı kod tabanına katkıda bulunurken okunmasını, gözden geçirilmesini ve bakımını kolaylaştırır. Visual Studio Code için MSSQL uzantısı, talep üzerine çalıştırabilen, kayıtta otomatik biçimlendirme için yapılandırabileceğiniz ve Visual Studio Code ayarlarıyla özelleştirebileceğiniz yerleşik bir SQL formatlayıcı (Önizleme) içerir.

MSSQL uzantısındaki T-SQL biçimlendirme işlevi, T-SQL'i ayrıştıran ve soyut sözdizimi ağaçlarına dayalı betikler oluşturan açık kaynaklı .NET kütüphanesi olan ScriptDOM üzerinde inşa edilmiştir.

İsteğe bağlı biçimlendirme

T-SQL'i herhangi bir düzenleyici penceresinde biçimlendirebilirsiniz. Biçimleyici tüm belge üzerinde veya sadece seçtiğiniz metin üzerinde çalışır.

T-SQL'yi talep üzerine biçimlendirmek için aşağıdaki yöntemlerden birini kullanın:

  • Bağlam menüsü: Bir T-SQL düzenleyici penceresinde sağ tıklayın ve Format Document veya Format Selection seçeneğini seçin.

  • Komut paleti: Formatlama belgesini çalıştırın veya biçim seçimini yapın.

  • Klavye kısayolu: Format Document'i için, Windows ve Linux'ta Shift+Alt+ F'ye veya macOS'ta Shift+Option+F'ye basın. Format Seçimi için Windows ve Linux'ta Ctrl+K, Ctrl+ F, macOS'ta Cmd+K, Cmd+F tuşlarına basın.

Kaydetmede biçimlendirme

Visual Studio Code'ta, standart düzenleyici ayarı formatı kaydetme sırasında kontrol eder, özel MSSQL formatlayıcı ayarı yerine.

Visual Studio Code settings.json dosyanızda aşağıdaki ayarları kullanarak T-SQL'i otomatik olarak formatlayın:

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

Biçimlendirme seçeneklerini yapılandırma

Biçimlendirmeyi Visual Studio Code Settings UI'de veya kullanıcı veya çalışma alanında settings.jsonyapılandırın.

Ayarlar düzenleyicisinde, kullanılabilir seçenekleri görüntülemek için Mssql>Biçim aratın. settings.json içinde, karşılık gelen mssql.format.* ayarlarını kullanın.

  • Önizleme formatlayıcısı varsayılan olarak etkin. Seçenekleri isim alanını mssql.format.options.* kullanır.

  • Önizleme formatlayıcı etkinleştirildiğinde mevcut beş formatlayıcı ayarı kullanılabilir kalır. Önizleme biçimlendiricisi mssql.format.options.* ayarlarını ekler.

Visual Studio Code Settings editöründeki SQL formatlayıcı ayarlarının ekran görüntüsü.

Desteklenen ayarlar

Tablolar mevcut formatlayıcı ayarlarını listeliyor ve ardından önizleme formatlayıcı ayarları geliyor.

Mevcut formatlayıcı ayarları

Setting Türü Varsayılan Description
mssql.format.alignColumnDefinitionsInColumns bool false Sütun tanımlarını sütunlar halinde hizalayın.
mssql.format.datatypeCasing enum none Veri türlerini , lowercase, veya none (biçimlendirilmemiş) olarak uppercasebiçimlendirin.
mssql.format.keywordCasing enum none Anahtar kelimeleri , lowercase, veya none (biçimlendirilmemiş) şeklinde uppercasebiçimlendirin.
mssql.format.placeCommasBeforeNextStatement bool false Bir listedeki her öğenin başına virgül koyun, örneğin , mycolumn2, örneğin sonunda mycolumn1,değil.
mssql.format.placeSelectStatementReferencesOnNewLine bool false Referansları SELECT ifadesi içinde ayrı satırlara yerleştirin. SELECT C1, C2 FROM T1 için, hem C1 hem de C2 ayrı satırlardadır.

Önizleme formatlayıcı ayarları

Bu ayarlar, mssql.format.options.* önizleme formatlayıcısını etkinleştirdiğinizde mevcut formatlayıcı ayarlarının üzerine ekleniyor.

General

Setting Türü Varsayılan Description
mssql.format.enablePreviewFormatter bool true SQL formatlayıcı (Önizleme) kullanın.
mssql.format.showParseErrorNotification bool true Şekillendirici T-SQL'yi tam olarak ayrıştıramadığında bildirim gösterin.
mssql.format.options.sqlVersion enum sql170 T-SQL sürümü, biçimlendirilmiş betikleri ayrıştırmak ve oluşturmak için kullanılır.
mssql.format.options.sqlEngineType enum all Database Engine tipi, biçimlendirilmiş betikleri ayrıştırmak ve oluşturmak için kullanılır. Geçerli değerler: all, standalone ve sqlAzure.

Hizalama

Setting Türü Varsayılan Description
mssql.format.options.alignClauseBodies bool true FROM, WHERE, GROUP BY ve benzeri tümcelerin gövdelerini hizalayın.
mssql.format.options.alignColumnDefinitionFields bool true Ad, tür ve kısıtlamalar gibi sütun tanımı alanlarını hizalayın.
mssql.format.options.alignSetClauseItem bool true İfadelerdeki SET yan tümce öğelerini UPDATE hizalayın.

Paths

Setting Türü Varsayılan Description
mssql.format.options.allowExternalLanguagePaths bool true Dış dil içeriğinin dosya yollarını kullanmasına izin verin.
mssql.format.options.allowExternalLibraryPaths bool true Harici kütüphane içeriğinin dosya yollarını kullanmasına izin verin.

Biçimlendirme

Setting Türü Varsayılan Description
mssql.format.options.asKeywordOnOwnLine bool true AS öğesini ayrı bir satıra yerleştirin.
mssql.format.options.keywordCasing enum uppercase Anahtar sözcük büyük/küçük harf stili. Geçerli değerler: uppercase, lowercase ve pascalCase.
mssql.format.options.preserveComments bool true Biçimlendirme sırasında açıklamaları koruyun.
mssql.format.options.numNewlinesAfterStatement int 1 Her ifadeden sonra, 0 ile 5 arasında satır sonu sayısı.

Girinti

Setting Türü Varsayılan Description
mssql.format.options.indentSetClause bool false SET ifadelerinde UPDATE yan tümcesini girintile.
mssql.format.options.indentViewBody bool false VIEW Gövdeyi içeri al.

Çok satırlı

Setting Türü Varsayılan Description
mssql.format.options.multilineInsertSourcesList bool true INSERT kaynakları çok satırlı olarak kullanır.
mssql.format.options.multilineInsertTargetsList bool true INSERT sütunlarını çok satırlı olarak kullanın.
mssql.format.options.multilineSelectElementsList bool true SELECT sütunlarını çok satırlı olarak kullanın.
mssql.format.options.multilineSetClauseItems bool true SET çok satırlı öğeler.
mssql.format.options.multilineViewColumnsList bool true VIEW sütunlarını çok satırlı olarak kullanın.
mssql.format.options.multilineWherePredicatesList bool true WHERE çok satırlı olarak koşullandır.

Yeni satır

Setting Türü Varsayılan Description
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Çok satırlı listede kapanış parantezinden önce yeni satır.
mssql.format.options.newLineBeforeFromClause bool true FROM maddesinden önce yeni satır.
mssql.format.options.newLineBeforeGroupByClause bool true GROUP BY koşulundan önce yeni satır.
mssql.format.options.newLineBeforeHavingClause bool true HAVING yan tümcesinden önce yeni satır.
mssql.format.options.newLineBeforeJoinClause bool true JOIN maddesinden önce yeni satır.
mssql.format.options.newLineBeforeOffsetClause bool true OFFSET ifadesinden önce yeni satır.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Açık parantez öncesinde yeni satır, çoklu satırlı listede.
mssql.format.options.newLineBeforeOrderByClause bool true ORDER BY yan tümcesinden önce yeni satır.
mssql.format.options.newLineBeforeOutputClause bool true OUTPUT tümcesinden önce yeni satır.
mssql.format.options.newLineBeforeWhereClause bool true Yeni satır, WHERE maddesinden önce.
mssql.format.options.newLineBeforeWindowClause bool true WINDOW cümleciğinden önce yeni satır.
mssql.format.options.newlineFormattedCheckConstraint bool false Yeni satır biçiminde CHECK kısıtlaması.
mssql.format.options.newLineFormattedIndexDefinition bool false Newline formatlı indeks tanımı.

Spacing

Setting Türü Varsayılan Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Veri tipiyle parantezler arasındaki boşluk, örneğin VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Veri tiplerindeki parametreler arasındaki boşluk.

Örnek ayar dosyası

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

Varsayılan formatlayıcıyı ayarlayın

MSSQL uzantısını varsayılan olarak ayarlamak için Varsayılan Formatlayıcıyı Yapılandır... seçeneğini seçin.>SQL Server (mssql) veya aşağıdaki yapılandırmayı ekleyebilirsinizsettings.json:

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