here are some words about the jcoco and jcomplete sub-packages. More documentation at a later date.
JCoco is a parser generator, adpated from COCO/R by H.Mössenböck and P.Terry. See the accompanying files.
I had to add a few functions, like being able to specify directories, packages and import statements for
the generation process.
There is also an Ant task to invoke JCoco from inside Ant build scripts.
This is the completion engine proper. The underlying SQL parser has been generated by JCoco, the specification
file can be found in the atg directory (SquirrelSQL.atg, along with some leftover files).
The completion engine is not yet integrated with Squirrel. It is generic enough to be pluggable into any
JTextComponent (and even beyond that). for Squirrel integration, implementing a TokenMarker will be required
which interfaces with jcomplete, so that syntax coloring can also be done by it.
JComplete currently supports select statements only. There is a test program which can be invoked through the
Ant script (target testUI). It shows a simple text input pane. The underlying DB schema has been hard-coded into
the app, there is no DB connection. Dont worry about error messages appearing in the lower pane - test only.
The reason they appear is that the parser, while it does work incrementally when typing forward, is not able to
backtrace whenever text is deleted or inserted into the middle of the existing text. In that case, the parser
is terminated and restarted.
The terminating involves inserting an EOF, which makes the parser balk about the invalid statement
before it terminates. The parser does run in a parallel thread.
The main features are: column and table completion, alias management
have fun and tell me what you think