Angular Dil Servisi, kod editörlerine Angular şablonları içinde tamamlamalar, hatalar, ipuçları ve navigasyon elde etme imkanı sağlar. Ayrı HTML dosyalarındaki harici şablonlarla ve satır içi şablonlarla çalışır.
Angular Dil Servisi İçin Derleyici Seçeneklerini Yapılandırma
En son Dil Servisi özelliklerini etkinleştirmek için, aşağıdaki örnekte gösterildiği gibi tsconfig.json dosyasında strictTemplates seçeneğini true olarak ayarlayın:
"angularCompilerOptions": {
"strictTemplates": true
}
Daha fazla bilgi için Angular compiler options kılavuzuna bakın.
Özellikler
Editörünüz bir Angular dosyası açtığınızı otomatik olarak algılar.
Ardından tsconfig.json dosyanızı okumak, uygulamanızdaki tüm şablonları bulmak ve açtığınız herhangi bir şablon için dil hizmetleri sağlamak üzere Angular Dil Servisi'ni kullanır.
Dil hizmetleri şunları içerir:
- Tamamlama listeleri
- AOT Tanılama mesajları
- Hızlı bilgi
- Tanıma git
Otomatik Tamamlama
Otomatik tamamlama, yazarken bağlamsal olasılıklar ve ipuçları sunarak geliştirme sürenizi hızlandırabilir. Bu örnek, bir enterpolasyondaki otomatik tamamlamayı göstermektedir. Yazarken tamamlamak için sekme tuşuna basabilirsiniz.

Öğeler içinde de tamamlamalar mevcuttur. Bileşen seçici olarak sahip olduğunuz tüm öğeler tamamlama listesinde görünür.
Hata Kontrolü
Angular Dil Servisi, kodunuzdaki hataları önceden size bildirebilir.
Bu örnekte Angular, orders'ın ne olduğunu veya nereden geldiğini bilmiyor.
Hızlı Bilgi ve Navigasyon
Hızlı bilgi özelliği, bileşenlerin, direktiflerin ve modüllerin nereden geldiğini görmek için üzerine gelmenize olanak tanır. Ardından doğrudan tanıma gitmek için "Go to definition" seçeneğine tıklayabilir veya F12 tuşuna basabilirsiniz.
Editörünüzde Angular Dil Servisi
Angular Dil Servisi şu anda Visual Studio Code, WebStorm, Sublime Text, Zed, Neovim ve Eclipse IDE için bir uzantı olarak mevcuttur.
Visual Studio Code
Visual Studio Code içinde, uzantıyı Extensions: Marketplace'ten yükleyin. Sol menü panelindeki Uzantılar simgesini kullanarak editörden marketplace'i açın veya VS Quick Open (Mac'te ⌘+P, Windows'ta CTRL+P) kullanın ve "? ext" yazın. Marketplace'te Angular Language Service uzantısını arayın ve Install düğmesine tıklayın.
Visual Studio Code'un Angular dil servisi ile entegrasyonu Angular ekibi tarafından sürdürülmekte ve dağıtılmaktadır.
Visual Studio
Visual Studio içinde, uzantıyı Extensions: Marketplace'ten yükleyin. Üst menü panelinden Extensions'ı ve ardından Manage Extensions'ı seçerek editörden marketplace'i açın. Marketplace'te Angular Language Service uzantısını arayın ve Install düğmesine tıklayın.
Visual Studio'nun Angular dil servisi ile entegrasyonu, Angular ekibinin yardımıyla Microsoft tarafından sürdürülmekte ve dağıtılmaktadır. Projeye buradan göz atabilirsiniz.
WebStorm
WebStorm içinde, Angular and AngularJS eklentisini etkinleştirin.
WebStorm 2019.1'den itibaren @angular/language-service artık gerekli değildir ve package.json dosyanızdan kaldırılmalıdır.
Sublime Text
Sublime Text içinde, Dil Servisi eklenti olarak yüklendiğinde yalnızca satır içi şablonları destekler. HTML dosyalarındaki tamamlamalar için özel bir Sublime eklentisine (veya mevcut eklentide değişikliklere) ihtiyacınız vardır.
Satır içi şablonlar için Dil Servisi'ni kullanmak üzere önce TypeScript'e izin veren bir uzantı eklemeniz, ardından Angular Language Service eklentisini yüklemeniz gerekir. TypeScript 2.3'ten itibaren TypeScript, dil servisinin kullanabileceği bir eklenti modeline sahiptir.
TypeScript'in en son sürümünü yerel bir
node_modulesdizinine yükleyin:npm install --save-dev typescriptAngular Language Service paketini aynı konuma yükleyin:
npm install --save-dev @angular/language-servicePaket yüklendikten sonra, projenizin
tsconfig.jsondosyasının"compilerOptions"bölümüne aşağıdakini ekleyin.tsconfig.json
"plugins": [ {"name": "@angular/language-service"} ]Editörünüzün kullanıcı tercihlerinde (
Cmd+,veyaCtrl+,), aşağıdakini ekleyin:Sublime Text user preferences
"typescript-tsdk": "<path to your folder>/node_modules/typescript/lib"
Bu, Angular Dil Servisi'nin .ts dosyalarında tanılama ve tamamlamalar sağlamasına olanak tanır.
Eclipse IDE
Doğrudan Angular Language Server'ı içeren "Eclipse IDE for Web and JavaScript developers" paketini yükleyin veya diğer Eclipse IDE paketlerinden Help > Eclipse Marketplace'i kullanarak Eclipse Wild Web Developer'ı bulup yükleyin.
Neovim
Node.js ile Conquer of Completion
Angular Dil Servisi, LSP spesifikasyonlarını tam olarak takip etmeyen tsserver'ı kullanır. Bu nedenle, JavaScript veya TypeScript veya Angular ile neovim veya vim kullanıyorsanız, Conquer of Completion (COC)'un Angular Dil Servisi ve tsserver'ın en kapsamlı uygulamasına sahip olduğunu görebilirsiniz. Bunun nedeni, COC'un tsserver'ın uygulamasını barındıran VSCode tsserver uygulamasını taşımasıdır.
Angular Dil Servisi'ni yapılandırın
Yüklendikten sonra
CocConfigvim komut satırı komutunu çalıştırarakcoc-settings.jsonyapılandırma dosyasını açın ve angular özelliğini ekleyin.Global
node_modulesdizinlerinize giden doğru yolları, sırasıylatsservervengserveriçeren dizinlere gidecek şekilde değiştirdiğinizden emin olun.CocConfig example file coc-settings.json
{ "languageserver": { "angular": { "command": "ngserver", "args": [ "--stdio", "--tsProbeLocations", "/usr/local/lib/node_modules/typescript/lib/CHANGE/THIS/TO/YOUR/GLOBAL/NODE_MODULES", "--ngProbeLocations", "/usr/local/lib/node_modules/@angular/language-server/bin/CHANGE/THIS/TO/YOUR/GLOBAL/NODE_MODULES" ], "filetypes": ["ts", "typescript", "html"], "trace.server.verbosity": "verbose" } } }
HELPFUL: Yukarıdaki /usr/local/lib/node_modules/typescript/lib ve /usr/local/lib/node_modules/@angular/language-server/bin yolları, global node modüllerinizin konumuna işaret etmelidir ve bu konum farklı olabilir.
Yerleşik Neovim LSP
Angular Dil Servisi, nvim-lspconfig eklentisi kullanılarak Neovim ile birlikte kullanılabilir.
Zed
Zed içinde, uzantıyı Extensions: Marketplace'ten yükleyin.
Dil Servisi Nasıl Çalışır
Bir dil servisi olan bir editör kullandığınızda, editör ayrı bir dil servisi süreci başlatır ve Language Server Protocol kullanarak bir RPC aracılığıyla onunla iletişim kurar. Editöre yazdığınızda, editör projenizin durumunu takip etmek için dil servisi sürecine bilgi gönderir.
Bir şablon içinde tamamlama listesini tetiklediğinizde, editör önce şablonu bir HTML soyut sözdizimi ağacına (AST) ayrıştırır. Angular derleyicisi, bağlamı belirlemek için bu ağacı yorumlar: şablonun hangi modülün parçası olduğunu, mevcut kapsamı, bileşen seçicisini ve imlecinizin şablon AST'sinde nerede olduğunu belirler. Ardından o konumda potansiyel olarak bulunabilecek sembolleri belirleyebilir.
Bir enterpolasyon içindeyseniz durum biraz daha karmaşıktır.
Bir div içinde {{data.---}} enterpolasyonunuz varsa ve data.---'den sonraki tamamlama listesine ihtiyacınız varsa, derleyici cevabı bulmak için HTML AST'sini kullanamaz.
HTML AST'si derleyiciye yalnızca "{{data.---}}" karakterlerine sahip bir metin olduğunu söyleyebilir.
İşte bu noktada şablon ayrıştırıcısı, şablon AST'si içinde bulunan bir ifade AST'si üretir.
Angular Dil Servisleri daha sonra bağlamı içinde data.---'e bakar, TypeScript Dil Servisi'ne data'nın üyelerinin ne olduğunu sorar ve olasılıkların listesini döndürür.
Daha Fazla Bilgi
- Uygulama hakkında daha ayrıntılı bilgi için Angular Language Service source sayfasına bakın
- Tasarım kararları ve niyetleri hakkında daha fazla bilgi için design documentation here sayfasına bakın