I am working on an editor for a custom C-like language and the goal is to retain all the rich CDT editing facilities.
Some requirements that are specific to our language: 1. Custom syntax for invoking functions that run on a different target.
2. Same source file can contain pieces that run on different targets. It is not straightforward to do calls between targets and not all symbols (variables, functions) are available on all targets.
CDT provides excellent way to customize keywords and such using language extension points. Satisfying requirements outlined above does not seem to be as easy. I believe that I will need to do some customizations in the CDT code base.
Currently to me it looks like I need to: 1. Customize parser (and tokenizer) to parse our syntax. I am mostly happy with custom subclass of the AbstractGNUSourceCodeParser - the only problem is that ideally I would need to have custom tokenizer to introduce tokens for syntax like "<<<" and ">>>".
2. Customize CTextTools to introduce custom partitioner so it is possible to introduce different code assists for different run targets.
Are there any other ways to introduce custom C-like language and retain support for Codan, refactorings, etc?