First of all: Great work so far. :)
I've got a suggestion (based on Java-Editing, again) for making use of CTRL-SPACE still a bit better (in my opinion). When inserting a predefined or self-defined function call, the current behavior is, that the function with it's arguments is added, and the cursor is placed behind. As the parameters of the function nearly never match the specific use of that function at the place you inserted it, you then have to move the cursor back and replace the arguments with the "real" ones.
The template editor (btw: great work, too. I use it a lot) has a nice feature, which could be used here, too:
If you add a template, and put a variable into it that isn't predefined, when inserting the template, the name of that variable is put in the expanded template, but is surrounded by a green frame, and the cursor hops to that position. You can change the name (or leave it as it is) and by pressing TAB move to the next "framed" variable. By pressing RETURN, the cursor hops to the position defined by ${cursor} in the template (It even is intelligent enough to change variables defined in that way with the same name simultaneously in the complete expanded template).
Example, so that it's clear what I mean (done with the template editor):
Add a template with name "test" and contents:
test(${str1}, ${str2})${cursor}
Then insert that into a LSL-editor window with CTRL-SPACE. Press TAB a few times. See what I mean?
Logged In: YES
user_id=34528
Originator: YES
Sorry, just found out: When adding a predefined function, the cursor is placed in front of the first argument. Still, same problem, just at another place :-)
Logged In: YES
user_id=1739326
Originator: NO
As a quick comment on this, I'd love for the CTRL+Space autocompletion to be case-insensitive, like the "normal" Java editor.