[antlr-interest] Re: Auto- completion feature based on ANTLR

Thomas Brandon tom at psy.unsw.edu.au
Wed Aug 20 20:47:57 PDT 2003


If you want to see an implementation of code completion you could 
look at the Netbeans IDE (www.netbeans.org, and specifically 
editor.netbeans.org). I had a quick look and the only docs on it are 
user-view docs, but there's a full implementation in there. It does 
code-completion for at least Java and HTML. The implementation is 
language specific though there is a move to pull it out into a 
seperate code-completion module but I don't think this is underway 
yet and again no in-depth programmer docs yet. I think that the Java 
editor uses a hand-built parser.

As with other tools though it's only method completion, no completion 
for keywords as you were talking about. This makes it rather easier 
as then you don't have to deal with incomplete tokens, it's already 
an IDENT (or FIELD_IDENT or TABLE_IDENT) token you just check how it 
could be expanded.

As to keywords, you could drop this in favour of abbreviations which 
is what Netbeans has. e.g. 're' is expanded to 'return'. Though this 
can be a bit annoying as a variable called 're' gets expanded 
to 'return'. But it might be worth thinking about whether it's worth 
having keyword completion. Field\table etc name completion is great 
as you don't have to know them all off by heart but who's gonna 
forget select. And if you had say loj->LEFT OUTER JOIN abbreviations 
and so on you could take care of the longer sequences, there aren't 
many long sequences in SQL. You could even do them outside the ANTLR 
parser, have your Editor Kit do it before lexing\parsing. When a 
space (or whatever you're abbreviation key is) is inserted check what 
it was inserted after. Though depending on your editor implementation 
that may or may not be easy, with a Swing editor kit it wouldn't be 
too bad.

Tom.
--- In antlr-interest at yahoogroups.com, Ruslan Zasukhin 
<sunshine at p...> wrote:
<SNIP>
> 
> Interesting how this task resolve Microsoft Visual C++, or 
Metrowerks
> CodeWarrior...
> 
<SNIP>
> Best regards,
> Ruslan Zasukhin      [ I feel the need...the need for speed ]
> -------------------------------------------------------------
> e-mail: ruslan at p...
> web: http://www.paradigmasoft.com
> 
> To subscribe to the Valentina mail list go to:
> http://lists.macserve.net/mailman/listinfo/valentina
> -------------------------------------------------------------


 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 




More information about the antlr-interest mailing list