Özel eklentiler oluşturmayı öğrenerek VS Code'un gücünü ortaya çıkarın. Bu rehber, kurulumdan yayınlamaya kadar eksiksiz bir kılavuz sunarak kodlama ortamınızı geliştirmenizi ve eserlerinizi dünyayla paylaşmanızı sağlar.
VS Code Eklenti Geliştirmede Uzmanlaşma: Küresel Geliştiriciler için Kapsamlı Bir Rehber
Visual Studio Code (VS Code), dünya çapında milyonlarca geliştiricinin tercih ettiği kod düzenleyicisi haline gelmiştir. Popülerliği, hafif yapısından, güçlü özelliklerinden ve en önemlisi genişletilebilirliğinden kaynaklanmaktadır. Özel eklentiler oluşturma yeteneği, geliştiricilerin düzenleyiciyi kendi özel ihtiyaçlarına göre uyarlamasına, verimliliği artırmasına ve iş akışlarını kolaylaştırmasına olanak tanır. Bu kapsamlı rehber, kendi VS Code eklentilerinizi oluşturma sürecinde size ilk kurulumdan eserinizin dünya tarafından kullanılması için yayınlanmasına kadar adım adım yol gösterecektir.
Neden VS Code Eklentileri Geliştirmelisiniz?
VS Code eklentileri geliştirmek, hem bireysel geliştiriciler hem de kuruluşlar için sayısız fayda sunar:
- Kişiselleştirilmiş İş Akışı: Düzenleyiciyi, kodlama tarzınıza ve proje gereksinimlerinize mükemmel şekilde uyacak şekilde özelleştirin.
- Artırılmış Verimlilik: Tekrar eden görevleri otomatikleştirin, harici araçlarla entegre olun ve geliştirme sürecinizi kolaylaştırın.
- Geliştirilmiş İşbirliği: İş akışlarını standartlaştırmak ve kod kalitesini artırmak için eklentileri ekibinizle veya daha geniş bir toplulukla paylaşın.
- Öğrenme ve Beceri Gelişimi: TypeScript, Node.js ve VS Code API ile deneyim kazanmak, yeni kariyer fırsatlarının kapısını aralar.
- Topluluğa Katkı: Yenilikçi çözümlerinizi küresel geliştirici topluluğuyla paylaşın ve ekosisteme katkıda bulunun.
Ön Koşullar
Eklenti geliştirmeye başlamadan önce aşağıdakilerin kurulu olduğundan emin olun:
- Node.js ve npm (Node Paket Yöneticisi): VS Code eklenti geliştirme büyük ölçüde Node.js'e dayanır. Resmi Node.js web sitesinden en son LTS sürümünü indirin ve kurun. npm, Node.js ile otomatik olarak kurulur.
- Visual Studio Code: En son VS Code sürümünün kurulu olduğundan emin olun.
- Yeoman ve VS Code Eklenti Oluşturucusu: Yeoman, eklenti oluşturma sürecini basitleştiren bir iskele aracıdır. npm kullanarak küresel olarak kurun:
npm install -g yo generator-code
Geliştirme Ortamınızı Kurma
Ön koşullar hazır olduğuna göre, geliştirme ortamınızı kurmaya hazırsınız:
- Yeni Bir Eklenti Projesi Oluşturun: Terminalinizi açın ve eklenti oluşturucuyu başlatmak için aşağıdaki komutu çalıştırın:
- İstemleri Yanıtlayın: Oluşturucu, eklentiniz hakkında bir dizi soru soracaktır. İşte yaygın istemlerin ve önerilen yanıtların bir dökümü:
- Ne tür bir eklenti oluşturmak istiyorsunuz? Önerilen yaklaşım olan TypeScript tabanlı bir eklenti için "New Extension (TypeScript)" seçeneğini seçin.
- Eklentinizin adı ne? Eklentiniz için açıklayıcı ve benzersiz bir ad seçin. Örnekler: "Code Spell Checker," "JavaScript Snippets," "Python Autocomplete."
- Eklentinizin tanımlayıcısı ne? Bu, eklentiniz için genellikle `yayinci.eklenti-adi` formatında olan benzersiz bir tanımlayıcıdır. Bir yayıncı adı seçin (örneğin, GitHub kullanıcı adınız veya şirket adınız).
- Eklentinizin açıklaması ne? Eklentinizin ne yaptığına dair kısa ve bilgilendirici bir açıklama sağlayın.
- Bir git deposu başlatılsın mı? Sürüm kontrolü için bir Git deposu başlatmak üzere "Yes" seçeneğini seçin.
- Kodu lintlemek için eslint kullanmak ister misiniz? Kod stili tutarlılığını zorlamak için "Yes" seçeneğini seçin.
- Projeyi VS Code'da Açın: Oluşturucu tamamlandığında, yeni oluşturulan proje klasörünü VS Code'da açın.
yo code
Proje Yapısını Anlama
Eklenti oluşturucu, aşağıdaki anahtar dosyalarla temel bir proje yapısı oluşturur:
- `package.json`: Bu dosya, ad, sürüm, açıklama, bağımlılıklar ve aktivasyon olayları dahil olmak üzere eklentinizle ilgili meta verileri içerir.
- `tsconfig.json`: Bu dosya, TypeScript derleyicisini yapılandırır.
- `.vscode/launch.json`: Bu dosya, eklentiniz için hata ayıklayıcıyı yapılandırır.
- `src/extension.ts`: Bu, eklentinizin ana giriş noktasıdır. `activate` ve `deactivate` işlevlerini içerir.
- `README.md`: Eklentinizin bir açıklamasını, nasıl kullanılacağını ve ilgili diğer bilgileri sağlayan bir markdown dosyası.
İlk Eklentinizi Yazma
Bir komut yürütüldüğünde "Merhaba Dünya" mesajı gösteren basit bir eklenti oluşturarak başlayalım:
- `src/extension.ts` dosyasını açın: Bu dosya, eklentiniz etkinleştirildiğinde çağrılan `activate` işlevini içerir.
- `activate` İşlevini Değiştirin: Mevcut kodu aşağıdakiyle değiştirin:
- Açıklama:
- `vscode.commands.registerCommand('my-extension.helloWorld', ...)`: `my-extension.helloWorld` kimliğine sahip bir komut kaydeder. Bu komut, VS Code komut paletinde mevcut olacaktır.
- `vscode.window.showInformationMessage('Eklentimden Merhaba Dünya!')`: VS Code penceresinde bir bilgi mesajı görüntüler.
- `context.subscriptions.push(disposable)`: Komutu eklentinin aboneliklerine ekler, eklenti devre dışı bırakıldığında düzgün bir şekilde yok edilmesini sağlar.
- `package.json` dosyasını değiştirin: Komutu tanımlamak için `contributes` bölümüne aşağıdakini ekleyin:
- Açıklama:
- `"commands"`: Eklentinizin katkıda bulunduğu komutları tanımlar.
- `"command": "my-extension.helloWorld"`: `extension.ts` dosyasında kullanılan kimlikle eşleşen komut kimliğini belirtir.
- `"title": "Merhaba Dünya"`: Komut paletinde komut için görüntülenecek adı ayarlar.
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
console.log('Tebrikler, \"my-extension\" adlı eklentiniz şimdi aktif!');
let disposable = vscode.commands.registerCommand('my-extension.helloWorld', () => {
vscode.window.showInformationMessage('Eklentimden Merhaba Dünya!');
});
context.subscriptions.push(disposable);
}
export function deactivate() {}
"contributes": {
"commands": [{
"command": "my-extension.helloWorld",
"title": "Merhaba Dünya"
}]
}
Eklentinizi Test Etme
Şimdi eklentinizi test etme zamanı:
- F5'e Basın: Bu, eklentinizin kurulu olduğu yeni bir VS Code penceresi başlatacaktır. Bu, "Eklenti Geliştirme Sunucusu"dur.
- Komut Paletini Açın: Komut paletini açmak için `Ctrl+Shift+P` (veya macOS'ta `Cmd+Shift+P`) tuşlarına basın.
- "Merhaba Dünya" Yazın: Komutunuzun komut paletinde listelendiğini görmelisiniz.
- "Merhaba Dünya"ü Seçin: Komuta tıklamak onu yürütecek ve VS Code penceresinde "Merhaba Dünya" mesajını gösterecektir.
Eklentinizde Hata Ayıklama
Hata ayıklama, eklentinizdeki sorunları belirlemek ve düzeltmek için çok önemlidir. VS Code mükemmel hata ayıklama desteği sağlar:
- Kesme Noktaları Belirleyin: Kodunuzda kesme noktaları ayarlamak için düzenleyici kenar boşluğunda satır numaralarının yanına tıklayın.
- F5'e Basın: Bu, Eklenti Geliştirme Sunucusunu hata ayıklama modunda başlatacaktır.
- Eklentinizi Tetikleyin: Hata ayıklamak istediğiniz kodu tetikleyen komutu veya eylemi yürütün.
- Değişkenleri ve Çağrı Yığınını İnceleyin: VS Code hata ayıklayıcısı, kesme noktalarınızda yürütmeyi duraklatarak değişkenleri incelemenize, kodda adım adım ilerlemenize ve çağrı yığınını incelemenize olanak tanır.
VS Code API ile Çalışma
VS Code API, düzenleyiciyle etkileşim kurmak için zengin bir arayüz ve işlev seti sağlar. İşte API'nin bazı kilit alanları:
- `vscode.window`: VS Code penceresiyle etkileşim kurmak, mesajlar görüntülemek, giriş kutuları göstermek ve panelleri yönetmek için.
- `vscode.workspace`: Dosyalar, klasörler ve yapılandırma ayarları dahil olmak üzere çalışma alanına erişmek ve onu yönetmek için.
- `vscode.commands`: Komutları kaydetmek ve yürütmek için.
- `vscode.languages`: Sözdizimi vurgulama, kod tamamlama ve tanılama gibi dil desteği sağlamak için.
- `vscode.debug`: Hata ayıklayıcı ile etkileşim kurmak için.
- `vscode.scm`: Git gibi kaynak kontrol yönetim sistemleriyle etkileşim kurmak için.
Örnek: Bir Kod Parçacığı (Snippet) Eklentisi Oluşturma
Temel bir React bileşeni oluşturmak için bir kod parçacığı ekleyen bir eklenti oluşturalım:
- Bir `snippets` Klasörü Oluşturun: Projenizin kök dizininde `snippets` adında yeni bir klasör oluşturun.
- Bir Snippet Dosyası Oluşturun: `snippets` klasörünün içinde `react.json` adında bir dosya oluşturun.
- Snippet Tanımını Ekleyin: `react.json` dosyasına aşağıdaki JSON'u ekleyin:
- Açıklama:
- `"React Component"`: Snippet'in adı.
- `"prefix": "reactcomp"`: Snippet'i tetikleyen önek. `reactcomp` yazıp `Tab` tuşuna basmak snippet'i ekleyecektir.
- `"body"`: Snippet'teki kod satırlarını temsil eden bir dizi dize.
- `${1:ComponentName}`: Bileşen adını hızlıca değiştirmenizi sağlayan bir sekme durağı.
- `"description"`: Snippet'in bir açıklaması.
- `package.json` dosyasını değiştirin: `contributes` bölümüne aşağıdakini ekleyin:
- Açıklama:
- `"snippets"`: Eklentinizin katkıda bulunduğu snippet'leri tanımlar.
- `"language": "javascriptreact"`: Snippet'in uygulanabilir olduğu dili belirtir.
- `"path": "./snippets/react.json"`: Snippet dosyasının yolunu belirtir.
- Snippet'inizi Test Edin: Bir `.jsx` veya `.tsx` dosyası açın ve `reactcomp` yazın. Snippet'i eklemek için `Tab` tuşuna basın.
{
"React Component": {
"prefix": "reactcomp",
"body": [
"import React from 'react';",
"",
"interface Props {\n\t[key: string]: any;\n}",
"",
"const ${1:ComponentName}: React.FC = (props: Props) => {\n\treturn (\n\t\t\n\t\t\t${2:Content}\n\t\t\n\t);\n};",
"",
"export default ${1:ComponentName};"
],
"description": "Temel bir React bileşeni oluşturur"
}
}
"contributes": {
"snippets": [{
"language": "javascriptreact",
"path": "./snippets/react.json"
}]
}
İleri Düzey Eklenti Geliştirme Teknikleri
Temellerde ustalaştıktan sonra, daha gelişmiş eklenti geliştirme tekniklerini keşfedebilirsiniz:
- Dil Sunucusu Protokolü (LSP): Belirli bir dil için kod tamamlama, tanılama ve yeniden düzenleme gibi gelişmiş dil desteği sağlamak için LSP'yi kullanın. Popüler LSP uygulamaları arasında Python, Java ve Go için olanlar bulunur.
- Hata Ayıklama Adaptörleri: Belirli programlama dillerini veya çalışma zamanlarını hata ayıklamayı desteklemek için özel hata ayıklama adaptörleri oluşturun.
- Webviews: Web görünümlerini kullanarak VS Code içine etkileşimli web tabanlı kullanıcı arayüzleri yerleştirin. Bu, karmaşık ve görsel olarak çekici eklentiler oluşturmanıza olanak tanır.
- Temalandırma: VS Code'un görünümünü değiştirmek için özel temalar oluşturun. VS Code Pazar Yeri'nde birçok popüler tema mevcuttur.
- Tuş Atamaları: Belirli eylemleri klavye kısayollarına eşlemek için özel tuş atamaları tanımlayın.
Uluslararasılaştırma ve Yerelleştirme (i18n ve L10n)
Küresel bir kitleye ulaşmak için eklentinizi uluslararasılaştırmayı ve yerelleştirmeyi düşünün. Bu, eklentinizi farklı dilleri ve bölgeleri destekleyecek şekilde uyarlamayı içerir.
- Dizeleri Dışa Aktarın: Kullanıcıya dönük tüm dizeleri ayrı kaynak dosyalarına taşıyın.
- VS Code'un i18n API'sini Kullanın: VS Code, kullanıcının yerel ayarına göre yerelleştirilmiş dizeleri yüklemek için API sağlar.
- Birden Çok Dili Destekleyin: Farklı diller için kaynak dosyaları sağlayın.
- Sağdan Sola (RTL) Düzeni Düşünün: Eklentiniz metin görüntülüyorsa, Arapça ve İbranice gibi RTL dillerini desteklediğinden emin olun.
Eklentinizi Yayınlama
Eklentiniz hazır olduğunda, başkalarının kullanması için onu VS Code Pazar Yeri'ne yayınlayabilirsiniz:
- Bir Azure DevOps Organizasyonu Oluşturun: Eklentinizi yayınlamak için bir Azure DevOps organizasyonuna ihtiyacınız olacak. Eğer bir tane yoksa, Azure DevOps web sitesinde ücretsiz bir hesap oluşturun.
- `vsce` Aracını Kurun: VS Code Eklenti Yöneticisi (`vsce`), eklentileri paketlemek ve yayınlamak için bir komut satırı aracıdır. npm kullanarak küresel olarak kurun:
- Bir Yayıncı Oluşturun: Yayıncı, Pazar Yeri'ndeki eklentilerinizin sahibi olan bir kimliktir. `vsce create-publisher` komutunu kullanarak bir yayıncı oluşturun. Bir yayıncı adı ve Azure DevOps'tan bir kişisel erişim belirteci (PAT) sağlamanız gerekecektir.
- Kişisel Erişim Belirteci (PAT) Oluşturun: Azure DevOps'ta, "Kullanıcı Ayarları" -> "Kişisel Erişim Belirteçleri"ne gidin ve "Marketplace (Yayınla)" kapsamına sahip yeni bir PAT oluşturun.
- Eklentinizi Paketleyin: Eklentinizi bir `.vsix` dosyasına paketlemek için `vsce package` komutunu kullanın.
- Eklentinizi Yayınlayın: Eklentinizi Pazar Yeri'ne yayınlamak için `vsce publish` komutunu kullanın. Yayıncı adınızı ve PAT'ınızı sağlamanız gerekecektir.
npm install -g vsce
Eklenti Geliştirme için En İyi Uygulamalar
Yüksek kaliteli ve sürdürülebilir VS Code eklentileri oluşturmak için bu en iyi uygulamaları izleyin:
- TypeScript Kullanın: TypeScript, statik tipleme sağlar ve kodun sürdürülebilirliğini artırır.
- Birim Testleri Yazın: Eklentinizin doğru çalıştığından emin olmak için birim testleri yazın.
- Bir Linter Kullanın: Kod stili tutarlılığını zorlamak için ESLint gibi bir linter kullanın.
- Kodunuzu Belgeleyin: Eklentiniz için açık ve öz bir dokümantasyon yazın.
- Hataları Zarifçe Ele Alın: Eklentinizin çökmesini önlemek için uygun hata yönetimi uygulayın.
- Performansı Optimize Edin: VS Code'u yavaşlatmaktan kaçınmak için eklentinizin performansını optimize edin.
- VS Code API Yönergelerini Takip Edin: Eklentinizin düzenleyiciyle iyi entegre olmasını sağlamak için VS Code API yönergelerine uyun.
- Erişilebilirliği Göz Önünde Bulundurun: Eklentinizi engelli kullanıcılar için erişilebilir hale getirin.
Topluluk Kaynakları
VS Code eklenti geliştirme hakkında daha fazla bilgi edinmek için bazı değerli kaynaklar şunlardır:
- VS Code Eklenti API Dokümantasyonu: VS Code Eklenti API'si için resmi dokümantasyon.
- VS Code Eklenti Örnekleri: API'nin çeşitli özelliklerini gösteren bir örnek eklenti koleksiyonu.
- VS Code Pazar Yeri: Mevcut eklentileri bulmak ve kodlarından öğrenmek için VS Code Pazar Yeri'ne göz atın.
- Stack Overflow: VS Code eklenti geliştirme ile ilgili sorular sorun ve yanıtlar bulun.
- GitHub: Açık kaynaklı VS Code eklentilerini keşfedin ve topluluğa katkıda bulunun.
Sonuç
VS Code eklentileri geliştirmek, kodlama ortamınızı özelleştirmenin, verimliliği artırmanın ve çözümlerinizi küresel geliştirici topluluğuyla paylaşmanın güçlü bir yoludur. Bu kapsamlı rehberi takip ederek, eklenti geliştirme sanatında ustalaşabilir ve kendiniz ve başkaları için VS Code deneyimini geliştiren yenilikçi araçlar oluşturabilirsiniz. Topluluğu benimsemeyi, açık kaynaklı projelere katkıda bulunmayı ve sürekli olarak VS Code eklenti geliştirmenin sürekli gelişen dünyasını öğrenmeyi ve keşfetmeyi unutmayın. İyi şanslar ve mutlu kodlamalar!