VS Code Eklentisi: 15 Dakikada Microsoft’a Katkı Sağlamak

Oğuzhan Yıldız
SabancıDx
Published in
4 min readJul 19, 2020
Photo by Gabriel Crismariu on Unsplash

Merhaba, yeni bir yazıyla yeniden buluştuk. Konumuz VS Code eklentileri. Bu yazıda işin teorisinden çok mutfağından bahsedeceğiz; birlikte bir eklenti hazırlayıp bu eklentiyi marketplace’de yayınlayacağız.

Hadi başlayalım…

VS Code

VS Code eklentilerinden bahsetmeden önce VS Code nedir bunu bilmek gerekiyor. Bu yazıya bir şekilde denk geldiysen muhtemelen bu sorunun cevabını zaten biliyorsundur, yine de kısaca bahsetmek gerekirse VS Code açık kaynak bir kod editörüdür, aynı zamanda eklentiler sayesinde geliştirme ortamı olarak da kullanılan platform bağımsız bir araçtır.

PYPL Index’e göre popüler IDE’ler arasında dördüncü sırada yer almakta.

PYPL Top IDE Index
PYPL Top IDE Index July 2020

Stack Overflow’da yayınlanan ve geliştiricilerin oylarıyla popüler geliştirme ortamlarının belirlendiği listede ise ilk sırada yer alıyor.

Stack Overflow Developer Survey Results 2019

VS Code çok geniş bir eklenti pazarına sahip. VS Code’u bu eklentilerle destekleyerek hızlı ve temiz kodlanabilen, debug edilebilen, kişiselleştirilebilen verimli bir geliştirme ortamı oluşturmak mümkün.

VS Code ile ilgili detaylı bir yazıya şuradan ulaşabilirsin. Biz yazının esas konusuna kaldığı yerden devam edelim.

VS Code Eklentisi Oluşturmak

Yazının mutfak kısmına geldik, ihtiyacımız olan malzeme listesi şu şekilde; (Böyle anlatınca yemek tarifi gibi oldu 😊)

Bu ikisini makinamıza kurmuş olmamız gerekiyor.

Eklenti oluşturmayı kolaylaştıran bir scaffolder var; adı Yeoman. Bu araç sayesinde tek satır kod yazmadan “hello world” seviyesinde bir extension sahibi olmuş oluyorsunuz. Nasıl olduğuna birlikte bakalım:

İlk olarak npm aracılığıyla Yeoman’ı kuruyoruz, npm yukarıda kurulumunu gerçekleştirdiğimiz Node.js ile birlikte kurulmuş oluyor, ekstra bir kurulum yapmanıza gerek yok.

npm install -g yo generator-code

Sonraki adım extension projesinin scaffoldunu oluşturmak

yo code

Bu komutla birlikte Yeoman size wizard şeklinde birtakım sorular soruyor:

Hangi tip eklenti oluşturacağımızı seçerek ve devamındaki soruları cevaplayarak proje yapımızın oluşmasını sağlıyoruz. Biz VS Code’un “Diğer” olarak sınıflandırdığı kategoride bir eklenti yazacağımız için “New Extension” seçeneği ile ilerliyoruz. (Ben typescript ile ilerlemeyi tercih ettim, javascript ile kodlamakta mümkün)

Bu işlemi tamamlayıp projeyi VS Code ile açtığımızda çalıştırılmaya hazır bir eklentimiz olacak.

Proje Yapısı

Proje görünümü

Projeyi run ettiğimizde debug işlemleri için açılan VS Code’un komut paletinde (kısayol: cmd+shift+p) “Hello World” yazarak hiç kod yazmadan oluşturduğumuz eklentimizi test edebiliriz.

Eklenti testi

Bu kodun nasıl çalıştığını anlamaya çalışalım.

Scaffolder ile gelen default proje dosyaları; extension.ts ve package.json

Komut paletinde listelenmesini istediğimiz komutları package.json dosyasındaki “contributes:commands” dizisine ekliyoruz ve bu komutun tetikleyeceği aksiyonu “activationEvents” dizisine yazıyoruz. Komutumuzun adını belirleyen şey ise “title” özelliği oluyor.

Komutun alacağı aksiyonları belirlediğimiz yer ise extension.ts dosyasında yer alan activate fonksiyonu. Komutumuzu bu fonksiyon içerisinde package.json dosyasındaki aynı isimle register ediyoruz.

Şimdi bu hello world bilgilendirmesinin geldiği dosyayı biraz düzenleyelim ve kendi özgün eklentimizi oluşturalım.

Lorem Text Generator

Oluşturacağımız eklenti bir lorem ipsum metin üreticisi olsun ve kullanıcılar komut paletinden istedikleri uzunlukta lipsum metni üretebilsinler.

Bu metinlerin üretilebilmesi için loripsum api’sini kullanacağız. Kullanacağımız bu api’yi çağırmak için node-fetch paketinden yararlanacağız.

npm install -D @types/node-fetch

Bu kurulumu da sağladıktan sonra extension.ts dosyasında değişikliklerimizi yaparak kodumuzu son haline getiriyoruz.

Loripsum API aracılığı ile lipsum metni üreten kod bloğu

Publish

Kodumuz hazır, şimdi bu kodu eklenti pazarına yükleyelim.

Publish işlemi için öncelikle bu eklentiye ait marketplace’in ihtiyaç duyduğu bilgileri package.json dosyasında belirtmemiz gerekiyor.

Publish işlemi için gerekli bilgiler

Sonrasında ise README.md dosyasını düzenlememiz gerekiyor. Microsoft burada kendi pazarına bir ürün yüklenmeden önce ufak bir kontrol sağlıyor. Eğer README.md dosyası düzenlenmediyse publish işlemi gerçekleşmiyor.

Publish işlemi gerçekleştirmenin iki yolu var;

  • Doğrudan terminal komutları aracılığıyla yükleme
  • Marketplace arayüzü üzerinden yükleme

İlk yöntemi tercih edersek aşağıdaki komutu uygulamamız gerekecek.

vsce publish

Ancak bu yöntemle ilerlediğimizde Azure DevOps üzerinden bir personal access token oluşturmalıyız, çünkü bir sonraki aşamada bizden bu token isteniyor olacak.

İkinci yöntemi tercih edersek aşağıdaki komut ile bir vs code extension paketi oluşturmalıyız.

vsce package

Bu komutu çalıştırdıktan sonra projemizin ana dizininde .vsix uzantılı bir dosya oluşacak. Bu dosyayı marketplace arayüzünde publish new extension dedikten sonra çıkan pop up dialoguna sürükle bırak yaparak eklentimizi yüklemiş oluyoruz.

Artık Microsoft’un pazarına bizim de bir katkımız oldu. Şimdi bu eklentiyi test edelim. Marketplace’e yüklemiş olduğumuz eklentiyi Visual Studio Code’a indirdikten sonra komut paletinde “Generate medium lorem” seçeneğini seçiyoruz.

Lorem Text Generator

Kapanış

Az kod yazarak çok kısa bir süre içerisinde bir Visual Studio Code eklentisini pazara sürmüş olduk.

Bu yazıda oluşturulan eklentiye bu adresten, proje koduna ise şu adresten ulaşabilirsiniz.

Bir başka yazıda görüşmek üzere…

Kaynaklar

--

--