VS Kodunu diğer dosya uzantılarını belirli bir dil olarak ele almak için nasıl yapabilirim?


333

Veya sözdizimi vurgulama özelliğini kullanmak için geçerli dosyanın dilini değiştirmenin bir yolu var mı?

Örneğin, *.jsxaslında JavaScript kullanıyor ancak VS Kodu bunu tanımıyor.

Yanıtlar:


501

Gelen Visual Studio Kanunu , sen vurgulama dil için kalıcı dosya ilişkilendirmeleri ekleyebilir settings.jsonböyle dosyası:

// Place your settings in this file to overwrite the default settings
{
  "some_setting": custom_value,
  ...

  "files.associations": {
    "*.thor": "ruby",
    "*.jsx": "javascript",
    "Jenkinsfile*": "groovy"
  }
}

Ctrl+ Shift+ Tuşlarını kullanabilir pve sonra yazabilirsiniz settings JSON. Seç Tercihler: Açık Ayarları (JSON) sizin açmak için settings.json.

Bu Files: Associationsözellik ilk olarak Visual Studio Code sürüm 1.0'da (Mart 2016) tanıtıldı. Sürüm notlarındaki kullanılabilir joker karakter kalıplarını ve belgelerdeki bilinen dil dizelerini kontrol edin.


6
İlişkilendirme değerinin, ad değil dil / eklentinin kimliği olması gerekir. Örneğin, yüklediğim VBScript eklentisi, ID vbs. "* .vms": "vbs", özel uzantıyı düzgün ilişkilendirilecek şekilde alır.
Matt Merrill

Sadece benzer bir sorunla karşılaştı. Bir dosya ilişkilendirmesi eklemek işe yaramıyorsa, .editorconfigyakın bir dosyanız olmadığından emin olun veya VSCode ile yapılandırmaları hizalayın .editorconfig, ikincisi öncelik kazanacaktır
RecuencoJones

Bu ayarları projeye özgü bir ${projectdir}/.vscode/settings.jsondosyaya da koyabilirsiniz .
Jason

108

Ctrl + Shift + P tuşlarını basılı tutun (veya Mac'te cmd), "Dil Modunu Değiştir" i seçin ve işte orada.

Ama yine de belirli bir dil olarak belirli bir uzantıya VS Kod tanınan dosyaları yapmak için bir yol bulamıyorum.


3
Görünüşe göre doğrudan bir kısayol var Change Language Mode; Alt+K, M
Stafford Williams

Cmd+K, MMac için.
GreeKatrina

Bu çok mümkün. Aşağıdaki
yanıtıma

69

Genel bir ilişkilendirme için bulduğum en kolay yol, açık ilişkilendirdiğiniz türde bir dosyayla ctrl + km (veya ctrl + shift + p ve "dil modunu değiştir") yazmaktır.

İlk seçimlerde "'x' için Dosya İlişkisini Yapılandır" olacaktır (dosya türü ne olursa olsun - ekli resme bakın) Bunu seçmek dosya türü ilişkilendirmesini kalıcı hale getirir

resim açıklamasını buraya girin

Bu, orijinal sorudan ve kabul edilen yanıttan beri değişmiş olabilir (muhtemelen değişmiş olabilir) (ve ne zaman değiştiğini bilmiyorum), ancak kabul edilen ve diğer cevapların bazılarındaki manuel düzenleme adımlarından çok daha kolay ve apaçık olmayan kimliklerle karıştırmak.


2
Teşekkürler - bu benim için çalıştı. settings.jsonDosyayı manuel olarak düzenlerken uzantı kimliğinin ne olması gerektiği açık değildi , ancak bu yöntem onu ​​sıraladı!
ccbunney

1
@Ccbunney memnuniyetle karşılıyoruz, yardımcı olduğuna sevindim. Bu tam olarak aynı sorun vardı - ve ben asla ihtiyacım olan uzantı kimliği anlayamadım, lol. Her neyse, bu çözümü kendim için bulduğum için çok mutlu oldum ve diğer insanlara yardım etmesi harika! : D
JoelAZ

33

Örneğin:

// .vscode/settings.json in workspace

{
  "files.associations": {
    "*Container.js": "javascriptreact",
    "**/components/*/*.js": "javascriptreact",
    "**/config/routes.js": "javascriptreact"
  }
}

1
Güzel. Aynı uzantıya, ancak yola dayalı farklı dil ayrıştırıcılarına sahipseniz bu kullanışlı olur. Örneğin, bir klasördeki Concourse boru hatlarını ve başka bir klasördeki Ansible dosyalarını işlemek için yml'niz olabilir.
Christian Maslen

Mümkünse bunu iki kere vurabilirdim. Nanoc mizanpajlarım ve .html uzantılı kısmi öğelerim için sözdizimini sürdürmeye çalışıyorum, bu sorunu çözdü: "**/layouts/**/*.html": "erb"- VSCode "dil modu" açılır listesinin sözdizimi vurgulayıcısının gerçek adını parantez içinde gösterdiğini belirtmek gerekirRuby ERB (erb)
Dave Everitt


12

Bu, örneğin, diğer LESS dosyaları gibi biten .variablesve .overridesişlenen dosyaları yapar. Kod renklendirme açısından, (otomatik) formatlama açısından. Kullanıcı ayarlarında veya proje ayarlarında istediğiniz gibi tanımlayın.

(Semantik kullanıcı arayüzü merak ederseniz bu garip uzantıları kullanır)



8

Https://code.visualstudio.com/docs/customization/colorizer#_common-questions adresindeki adımları uygulayarak benim için iyi çalıştı:

Varolan bir renklendiriciyi genişletmek için, .vscode / extensions altındaki yeni bir klasörde basit bir package.json oluşturacak ve eklemek istediğiniz özelleştirmeyi belirten extensionDependencies özniteliğini sağlayabilirsiniz. Aşağıdaki örnekte, işaretleme renklendiricisine bir .mmd uzantısı eklenmiştir. ExtensionDependency adının özelleştirmeyle eşleşmesinin yanı sıra dil kimliğinin, genişlettiğiniz renklendiricinin dil kimliğiyle eşleşmesi gerektiğini unutmayın.

{
    "name": "MyMarkdown",
    "version": "0.0.1",
    "engines": {
        "vscode": "0.10.x"
    },
    "publisher": "none",
    "extensionDependencies": [
        "markdown"
    ],
    "contributes": {
        "languages": [{
            "id": "markdown",
            "aliases": ["mmd"],
            "extensions": [".mmd"]
        }]
    }
}

5

Hemen hemen aynı sorunu çözmek için farklı bir yaklaşım izledim, benim durumumda, Drupal'a özgü dosyalar (.module ve .inc gibi) için PHP sözdizimi vurgulama desteği ekleyen yeni bir uzantı yaptım: https: // github. com / mastazi / VS-kod drupal

Kodda gördüğünüz gibi, mevcut PHP uzantısını değiştirmek yerine yeni bir uzantı oluşturdum. Açıkçası ben Drupal uzantısında PHP uzantısına bağımlılık beyan ederim.

Bu şekilde yapmanın avantajı, PHP uzantısında bir güncelleme varsa, Drupal için özel desteğimin güncelleme sürecinde kaybolmamasıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.