Simon Steele wrote:
On Tue, March 27, 2007 11:16 am, Neil Hodgson wrote:
For those that think user-definable lexers are a good idea, there
is an interesting post in Eric Promislow's blog about adding new languages
to ActiveState's Komodo IDE:
http://blogs.activestate.com/ericp/2007/01/kid_adding_a_ne.html
And looking further, it looks like this actually generates a state table
which is interpreted by python code at runtime, the lexer isn't generated
code. The old version of my editor Programmer's Notepad used an editing
component with a state-table lexer with a similar feel to the one
ActiveState has implemented here. It was very powerful but a real pain for
users to get their heads around for basic languages.
Not quite, but I'm happy to see you're looking. The Python code is used
for features like code-completion, auto-indent, and other auxiliary tasks
in Komodo. The lexer itself is just another Scintilla C++ module that
loads a compiled version of the state machine.
The most unusual part of the language is that it's a declarative language
with an implicit input-loop. Sometimes novice programmers take to those
kinds of languages faster than the more traditional imperative part. Of
course I then spoiled things by exposing the raw Perl regex language, which
seems to scare those same novices away.
I'm not familiar with Programmer's Notepad. I looked at HomeSite's, and
found it hard to get my head around it. Using Scite properties didn't
look to scale up. I was impressed by TextMate's language, but didn't see
how I could use it to implement features like here-documents or arbitrary
string delimiters (Perl).
- Eric
Simon.
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest