Visual Studio'da kullanmak için yeni bir dil nasıl oluşturulur


102

Yeni bir şablon dili yazmak istiyorum ve Visual Studio'nun bunu "desteklemesini" istiyorum. Bilmem gereken şey:

  1. Yeni dilimi nasıl ayrıştırırım?
    Yeni şablon dilimde bazı kodlar verildiğinde, bunu HTML'ye nasıl çevirebilirim? Şu anda, simgeye göre ayrıştırmak için normal ifadeler kullanıyorum, ancak dil daha karmaşık hale geldikçe bunun çok iyi ölçekleneceğini sanmıyorum ve hata kontrolü yok. ANTLR'yi duydum ama hiç kullanmadım. Bu iş için doğru araç mı yoksa daha basit bir şey var mı? İdeal olarak, diğer dillerde olduğu gibi, hata penceresine olabildiğince fazla bilgi (satır numarası, hata türü) içeren tüm sözdizimi hatalarını göndermek istiyorum.
  2. Visual Studio için nasıl yeni bir dosya türü oluşturabilirim?
  3. Söz dizimi vurgulamasını nasıl elde ederim?
    1. adımda oluşturduğum ayrıştırıcıyı kullanabilir miyim, yoksa bu tamamen farklı bir şey mi?
  4. Intellisense'i nasıl edinebilirim?

Ayrıştırıcımı C # ile yazmayı tercih ederim.

Yanıtlar:


62

Visual Studio ile bütünleştirme ayak işini halihazırda yapmış olan başka bir dile bir göz atacağım. Harika bir örnek Boo'dur. Dil ve Visual Studio entegrasyonu açık kaynaklıdır. Böylece tam olarak ne yapmaları gerektiğine bir göz atabilirsiniz.

VS2010 için Boo Sözdizimi Vurgulama, ana sayfasında, kolay başvuru için kopyalayacağım bazı önerilen bağlantıları içerir:


29

Visual Studio yönleriyle ilgili olarak, ihtiyacınız olan şey, belirli bir dosya uzantısı / türü için renklendirme, akıllıca vb. İşleyen bir varlık olan bir "dil hizmeti" dir.

Giriş için bu makaleye bakın
ve bir kod örneği için için buraya bakın

Ayrıştırma ile ilgili olarak, birçok teknoloji var ve ben bir fikir / tavsiye sunmayacağım.

Dikkatli olun, bu tür bir uzantı sağlamak VS2010'da önceki Visual Studio sürümlerine göre çok daha basit olsa da, işin içinde oldukça fazla iş vardır.

Ayrıca bakınız

Visual Studio 2010 Genişletilebilirlik, MPF ve dil hizmetleri



2

VS SDK'da aradığınız özelliklerin çoğunu gösteren bir örnek bulunmaktadır.


2

VS'yi kendi dilimle kullanıyordum ve umutsuzca bir sözdizimi vurgusuna ihtiyacım vardı . Benimkini bu öğreticiye göre oluşturdum: https://mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/

Öğreticinin VS2010'da olduğunu biliyorum. Benimkini VS2012'de hiç veya çok az hıçkırıkla yaptım. (VS2013'te de çalıştı) Son zamanlarda VS2015'e geçtim ve çözüm sorunsuz bir şekilde düzenlenebilir, düzenlenebilir.



0

Diğer yanıtlarda da belirtildiği gibi, en ilginç kod örneği, Visual Studio'nun en son sürümü için (yazma sırasında 2017) Ook dil uzantısıdır .

VS 2015 için VS2015 dalındaki örneğe bakın .

SDK'yı 2015 veya sonrası için yüklemek için VS kurulumunu yeniden çalıştırmanız gerekir. 2015'te buna "Visual Studio Genişletilebilirlik Araçları Güncellemesi 3" adı verildi.

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.