VS Code ve Tooling
VS Code ve Tooling
Biçimlendirici, LSP ve VS Code eklentisi.
US v0.2.0 araç zinciri: AST biçimlendirici, stdio dil sunucusu ve VS Code eklentisi (us-language-0.2.0.vsix). Marketplace yayını yoktur.
İş akışı
-
us-language-0.2.0.vsixkurun (İndir sayfası /code --install-extension). -
Bir
.usdosyası veya proje açın — dil kimliğiustanınır. -
Eklenti LSP istemcisi
us dil-sunucususürecini stdio ile başlatır (us.executablePathveya kurulum yolu). -
Tamamlama, hover, tanıma git, tanılar ve biçimlendirme açık belgede kullanılabilir.
-
Biçimlendirme ayrıca
us biçimlendirCLI ile yapılabilir (aynıFormatter.Format).
LSP yetenek matrisi
Aşağıdaki tablo lsp-capability-matrix.json kaynağından üretilir. PARTIAL satırlarda initialize reklamı ile stdio host davranışı ayrılır.
| Capability | Destek | Kapsam | Önemli sınır |
|---|---|---|---|
textDocumentSync | SUPPORTED | Açık belge; Full (kind 1) | didOpen/didChange; didClose wire'da yok; Incremental yok |
publishDiagnostics | SUPPORTED | Açık .us belgesi | Yalnız ayrıştırıcı + bağlayıcı; derleyici/yorumlayıcı tanıları yok |
completion | PARTIAL | Açık belge | Anahtar kelime + yerel sembol/fonksiyon; üye (.) tamamlama yok |
hover | SUPPORTED | Açık belge | Tür/imza düz metin; dokümantasyon markdown yok |
definition | SUPPORTED | Aynı belge | Çapraz dosya / workspace tanıma git yok |
documentFormatting | SUPPORTED | Açık belge (tüm dosya) | Range formatting yok; Formatter.Format ile CLI aynı yol |
references | PARTIAL | Motor tek dosya | initialize'da reklam var; stdio host null döner (VS Code'da çalışmaz) |
rename | PARTIAL | Motor tek dosya | initialize'da reklam var; stdio host null döner |
signatureHelp | PARTIAL | Motor çağrı ifadesi | Aşırı yükleme yok; wire null (VS Code'da çalışmaz) |
documentSymbol | PARTIAL | Motor üst düzey bildiriler | Wire null; Outline v0.1 stdio yolunda çalışmaz |
Sınırlamalar
-
Gezinme ve semantik özellikler çoğunlukla açık tek belge ile sınırlıdır.
-
references/rename/signatureHelp/documentSymbolinitialize'da reklam edilir ancak stdio host null döner — VS Code'da bu dört özellik v0.1'de çalışmaz. -
Tanılar ayrıştırıcı + bağlayıcıdır;
us derleemit tanıları Problems paneline taşınmaz. -
Tamamlama üye (
.) IntelliSense sağlamaz. -
Dağıtım yalnızca VSIX; Visual Studio Marketplace yoktur.
İlgili konular
CLI Komutları · Proje Sistemi · Derleyici
Referans
Bu sayfa 15 katalog öğesini kapsar. Aşağıdaki maddeler language-spec, örnekler ve katalog alanlarından üretilmiştir.
Kaynak biçimlendirici
Nedir?
US kaynak biçimlendiricisi .us metnini ayrıştırır ve AST üzerinden yeniden yazar (4 boşluk girinti, süslü parantezler ayrı satırda). CLI us biçimlendir ve LSP textDocument/formatting aynı Formatter.Format yolunu kullanır.
Ne zaman kullanılır?
Kaynak düzenini standartlaştırmak için CLI veya editör Format Document ile kullanın.
Nasıl çalışır?
Girdi UTF-8 kaynak; çıktı biçimlenmiş metindir. Eksik/geçersiz kaynakta çökmez; işlenmeyen düğümlerde token yedek yoluna düşebilir. Stil seçenekleri yoktur. Yerinde yazma CLI davranışıdır — ayrıntı için CLI Komutları sayfasına bakın.
Örnek
$ us biçimlendir ana.us
Dikkat edilmesi gerekenler
- Yorumlar ve metin literalleri korunur; her yapı için kayıpsız round-trip garanti edilmez.
- CLI Komutları sayfası
us biçimlendiriçin komut sözleşmesinin kaynağıdır.
İlgili konular
LSP stdio host
Nedir?
us dil-sunucusu Content-Length çerçeveli JSON-RPC LSP sunucusunu stdio üzerinde başlatır (StdioLanguageServerHost). TCP veya WebSocket taşıması yoktur. VS Code eklentisi sunucuyu bu komutla bağlar.
Ne zaman kullanılır?
Editör/LSP istemcisi sunucu süreci olarak yapılandırıldığında kullanılır; günlük elle çağrı için değildir.
Nasıl çalışır?
stdin mesajları okunur; initialize yetenekleri döner; shutdown/exit veya EOF ile süreç biter. Yakalanmayan hata stderr + çıkış 1. İstemci yaşam döngüsünü yönetir.
Örnek
$ us dil-sunucusu
Dikkat edilmesi gerekenler
- Çıktı LSP çerçevesidir; etkileşimli konsol aracı değildir.
- CLI Komutları sayfası
us dil-sunucusukomut sözleşmesini anlatır.
İlgili konular
LSP textDocumentSync
Nedir?
US dil sunucusu textDocumentSync: 1 (Full) bildirir: didOpen ve didChange her seferinde belgenin tam metnini alır. Incremental (kind 2) ve aralıklı değişiklik yoktur. didClose stdio host'ta işlenmez.
Dikkat edilmesi gerekenler
- Her open/change sonrası belge yeniden çözümlenir ve tanılar yenilenir.
LSP publishDiagnostics
Nedir?
Açık .us belgesi için sunucu textDocument/publishDiagnostics gönderir. Tanılar ayrıştırıcı ve bağlayıcı aşamalarından birleşir; source alanı us olur. Derleyici emit veya çalışma zamanı tanıları editöre aktarılmaz.
Ne zaman kullanılır?
VS Code Problems panelinde yazım/bağlama hatalarını görmek için.
Nasıl çalışır?
didOpen/didChange sonrası yayımlanır. Severity: Error→1, diğerleri→2. Öneri metni (Suggestion) wire'a yazılmaz.
Dikkat edilmesi gerekenler
- Yalnızca açık belgenin URI'si; proje geneli derleme tanıları değildir.
LSP completion
Nedir?
US tamamlaması açık belgede anahtar kelimeleri, caret öncesi yerel bildirimleri ve bağlı fonksiyon adlarını önerir. completionProvider.triggerCharacters içinde . vardır ancak üye/alan tamamlama mantığı uygulanmaz.
Ne zaman kullanılır?
Editörde yazarken IntelliSense tetiklenince.
Nasıl çalışır?
Kaynaklar: lexer anahtar kelimeleri, belge içi semboller, Bound.Functions önek eşlemesi. Stdlib API veya çapraz dosya sembol listesi yoktur.
Dikkat edilmesi gerekenler
- Nokta tetikleyicisi üye IntelliSense anlamına gelmez.
LSP hover
Nedir?
Hover, caret altındaki anahtar kelime veya sembol için düz metin bilgi gösterir: tür adı; fonksiyonlarda ad(parametreler): dönüş imzası. Markdown dokümantasyon alanı yoktur.
Ne zaman kullanılır?
Sembolün türünü veya imzasını hızlı görmek için.
Nasıl çalışır?
Yalnızca açık belge çözümlenir. Anahtar kelimelerde tür anahtar kelime olarak etiketlenir.
Dikkat edilmesi gerekenler
- Çapraz dosya veya paket dokümantasyonu gösterilmez.
LSP definition
Nedir?
textDocument/definition caret altındaki sembolün bildirim aralığına gider. Yanıt URI'si istek belgesidir; tanıma git tek dosya kapsamındadır.
Ne zaman kullanılır?
Aynı .us dosyasında bildirime zıplamak için.
Nasıl çalışır?
Bağlı sembol indeksi + sözdizimi bildirimleri kullanılır. İçe aktarılan başka dosya sembollerine workspace gezintisi yoktur.
Dikkat edilmesi gerekenler
- Proje geneli Go to Definition v0.1'de yoktur.
LSP documentFormatting
Nedir?
LSP textDocument/formatting açık belgenin tamamını Formatter.Format ile biçimleyip tek TextEdit döner. us biçimlendir ile aynı biçimlendirici kod yoludur; range formatting yoktur.
Ne zaman kullanılır?
VS Code Format Document veya US: Format Document komutu ile.
Nasıl çalışır?
Belge sunucuda açık olmalıdır. Bilinmeyen URI için boş düzenleme listesi döner.
Dikkat edilmesi gerekenler
- Biçimlendirici davranışı için Kaynak biçimlendirici maddesine bakın; CLI bayrakları CLI sayfasındadır.
İlgili konular
LSP references
Nedir?
referencesProvider initialize yanıtında true olarak bildirilir ve motor tek dosyada referans arayabilir; ancak StdioLanguageServerHost textDocument/references işlemez ve istemciye null döner. VS Code Find All References v0.1 stdio yolunda çalışmaz.
Dikkat edilmesi gerekenler
- Ürün yüzeyi: reklam edilmiş yetenek, wire stub.
LSP rename
Nedir?
renameProvider bildirilir ve motor tek dosyada (anahtar kelime olmayan) yeniden adlandırma üretebilir; stdio host textDocument/rename işlemediği için VS Code Rename Symbol null alır. Proje geneli güvenli yeniden düzenleme değildir.
Dikkat edilmesi gerekenler
- Wire stub; WorkspaceEdit eşlemesi stdio yolunda yoktur.
LSP signatureHelp
Nedir?
signatureHelpProvider tetikleyicileri ( ve , ile bildirilir; motor tek imza üretebilir ve US'ta aşırı yükleme modeli yoktur. Stdio host handler'ı olmadığı için VS Code imza yardımı null alır.
Dikkat edilmesi gerekenler
- US'ta aşırı yükleme yoktur; stdio yolunda imza yardımı yanıtı null'dır.
LSP documentSymbol
Nedir?
documentSymbolProvider bildirilir; motor üst düzey fonksiyon / değişken / model / sınıf sembolleri üretebilir. Stdio host textDocument/documentSymbol işlemediği için VS Code Outline v0.1'de bu yolla dolmaz.
Dikkat edilmesi gerekenler
- İç içe üye/local semboller motor kapsamı dışındadır; wire stub.
VS Code dil kaydı
Nedir?
VS Code eklentisi dil kimliğini us olarak kaydeder; .us dosya uzantısı ve US/us takma adları package.json contribs içindedir. TextMate grammar (source.us) lexer anahtar kelimeleriyle hizalanır; language-configuration.json yorum/parantez kurallarını tanımlar.
Ne zaman kullanılır?
Eklenti kuruluysa .us dosyası açıldığında sözdizimi vurgusu için.
Nasıl çalışır?
Aktivasyon: onLanguage:us. Grammar anahtar kelimeleri Keywords.All ile test edilir; uydurma anahtar kelime eklenmez.
Dikkat edilmesi gerekenler
- Sözdizimi vurgusu dil sunucusundan bağımsızdır; LS olmasa da TextMate çalışır.
VS Code LSP client
Nedir?
Eklenti vscode-languageclient ile US dil sunucusunu stdio üzerinden başlatır: yürütülebilir + argüman dil-sunucusu. us.executablePath ayarı; boşsa %LOCALAPPDATA%\US\bin\us.exe veya PATH'teki us denenir. Bu istemci tarafıdır; sunucu us dil-sunucusu sürecidir.
Ne zaman kullanılır?
.us dosyası açıldığında dil özellikleri için.
Nasıl çalışır?
documentSelector: file + language: us (untitled yok). Dağıtım: us-language-0.2.0.vsix (Marketplace yok). Kurulum için İndir sayfasına bakın.
Dikkat edilmesi gerekenler
- Sunucu başarısız olsa bile TextMate vurgusu kalır.
İlgili konular
VS Code komutları
Nedir?
Eklenti iki komut kaydeder: us.restartLanguageServer (US: Restart Language Server) istemciyi durdurup yeniden başlatır; us.formatDocument (US: Format Document) editor.action.formatDocument çağırır ve LSP biçimlendirmeye düşer. Başka US komutu contrib edilmez.
Ne zaman kullanılır?
Dil sunucusunu yenilemek veya belgeyi biçimlemek için Komut Paleti'nden.
Nasıl çalışır?
Komut kimlikleri package.json contributes.commands ile sabittir; CLI komut adlarından türetilmez.
Dikkat edilmesi gerekenler
us test/us derlegibi CLI komutları eklenti komutu değildir.