2008-09-19 20 views
7

Alice'daki kural sistemlerinde olduğu gibi şablon benzeri bir düzenleyiciye sahip bir DSL oluşturuyorum. Kullanıcılar, ilişkiyi uygulayacak nesnelerin yanı sıra bir listeden ilişkileri seçebileceklerdir. Bu iki liste kabul edilebilir türlere göre filtrelenmelidir - örneğin, ilişki "daha büyük" ise, kullanılabilir nesneler "büyüktür" için uygulanan bir türden olmalıdır. Benzer şekilde, eğer bir nesne 'dan daha büyük olmayan bir nesne seçilirse, o ilişki potansiyel ilişkiler listesinde olmamalıdır. Bence bu problemin kalbi bir tip denetçisiydi, fakat bu tip bir mantığı uygulamamda kullanmanın en iyi yolundan emin değilim. DSL'ler için mevcut tip kontrol kütüphanelerinin farkında olan var mı?Etki alanına özgü diller için özel düzenleyicilerde IntelliSense benzeri davranışı uygulama

Özellikle açık kaynaklı ve çapraz platform teknolojileriyle ilgileniyorum. Java muhtemelen kullanacağımız dildir, fakat bu sabit değildir.

+0

Bunun ile ne olduğunu merak ediyorum? İyi bir çözüm buldunuz mu? Zihnimde, Intellisense, kullanılabilirlik bakış açısıyla uygulanması zor bir şekilde zor olurdu. Duyarlılıkla müdahaleci olma arasında doğru dengeyi bulmak inanılmaz derecede zor bir görev gibi görünüyor. Tecrübemden Microsoft'un uygulaması, başka bir şeyden biraz daha uzak. Eclipse uygulaması çok rahatsız edici hissediyor. İyi bir şey bulup bulmadığınızı bilmek isterim. – Alex

+0

Bu bir çalışma projesiydi ve başka bir projede çalışmak için çekildim, bu yüzden bu konudaki çabalarım (sortof) öldü. Bunun dışında, sizce (Alex) ve ben 'intellisense' farklı yönleriyle ilgileniyoruz. Gerçek kullanıcı arayüzü üzerinde çalışmak yerine, genel amaçlı bir otomatik tamamlama sisteminin arkasındaki tasarımla daha çok ilgileniyordum. (UI daha sonra gelirdi.) – rcreswick

cevap

2

Scintilla'a bakabilirsiniz. Diğer araçlar arasında Notepad ++ tarafından kullanılan düzenleme bileşenidir. Kendimi kullanmayı denememem de, otomatik tamamlama yapmak için biraz destek var, bu yüzden ne kadar iyi çalıştığından emin değilim. Açık kaynak, bu yüzden ihtiyaçlarınızı karşılamazsa, çok fazla güçlük çekmeden uzatabilirsiniz, sanırım.

İlgili konular