Implement IntelliSense Behavior in Custom Domain Language Editors

I am creating a DSL with a template-like editor, like the rule systems in Alice . Users will be able to select relationships from the list, as well as objects to which the relationship applies. These two lists should be filtered based on valid types — for example, if the relation is “greater”, then the available objects should be of the type for which “greater”.

Similarly, if an object is selected that is not comparable with more than, then this relation should not be in the list of potential relations. I think that type checking is at the heart of this problem, but I'm not sure how to incorporate this type of logic into my application. Does anyone know of existing type checking libraries for DSL?

I am particularly interested in open source technologies and cross-platform technologies. Java is probably the language we will be using, but this is not fixed.

+7
types dsl intellisense
source share
2 answers

You can watch Scintilla . This is the editing component used by Notepad ++, among other tools. It has support for autocomplete, although I have not tried using it myself, so I'm not sure how well it works. It is open source, so if it doesn’t meet your needs, you can extend it without too much trouble, I think.

+2
source share

This may help on the intellisense side - CodeTextBox

+1
source share

All Articles