Thread: RE: [Squirrel-sql-develop] code completion
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Thackston R. <r.t...@le...> - 2002-09-10 15:03:59
|
Christian, I have had some thoughts about implementing a context-sensitive code completion feature in Java. Let me know if you want to start an off-line discussion about it. I don't have a great deal of spare time (like everyone else, I'm sure), but maybe between the two of us, we can come up with something. (Anyone else who is interested can join in!) Regards, Russell Thackston rth...@us... |
From: Christian S. <chr...@ne...> - 2002-10-05 14:08:07
|
Hello all, I have just uploaded my first presentable (I think) - yet experimental - version of the code completion engine to CVS. It consists of the components jcoco and jcomplete, both under the squirrel-sql/work directory. There is some more doco in jcomplete/doc/readme.txt. Colin, regarding your suggestion below: It is not clear to me what "taking over" the JEdit plugin means. Pleas explain. to test, go to jcomplete/build, and say "ant testUI" (prereq: ant installed) regards, and fun Christian > On that note the sensible thing would probably be for you to take over the > jEdit plugin and be responsible for its continued development, all (most?) > of which would really be related to the SQL parsing and the additional > functionality you would be providing. I realize that you'd like to do it in > such a way that it could be used by other types of text controls but the > jEdit plugin would need to be modified to use it anyway. Would you be > interested in taking it over? > > Col > |
From: Johan C. <jco...@j-...> - 2002-10-05 14:18:42
|
The jedit plugin is the text editor that you see in Squirrel (it does the coloring ect) Coling means (i think) that you may develop the jedit plugin further to incorparte your completion changes in it. I think that should be the place where you do youre changes. johan ----- Original Message ----- From: "Christian Sell" <chr...@ne...> To: "Colin Bell" <Col...@as...> Cc: "squirrel-sql develop" <squ...@li...> Sent: Saturday, October 05, 2002 4:06 PM Subject: Re: [Squirrel-sql-develop] code completion > Hello all, > > I have just uploaded my first presentable (I think) - yet experimental - > version of the code completion engine to CVS. It consists of the > components jcoco and jcomplete, both under the squirrel-sql/work > directory. There is some more doco in jcomplete/doc/readme.txt. > > Colin, regarding your suggestion below: It is not clear to me what > "taking over" the JEdit plugin means. Pleas explain. > > to test, go to jcomplete/build, and say "ant testUI" (prereq: ant installed) > > regards, and fun > Christian > > > > On that note the sensible thing would probably be for you to take over the > > jEdit plugin and be responsible for its continued development, all (most?) > > of which would really be related to the SQL parsing and the additional > > functionality you would be providing. I realize that you'd like to do it in > > such a way that it could be used by other types of text controls but the > > jEdit plugin would need to be modified to use it anyway. Would you be > > interested in taking it over? > > > > Col > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Squirrel-sql-develop mailing list > Squ...@li... > https://lists.sourceforge.net/lists/listinfo/squirrel-sql-develop > |
From: Christian S. <chr...@ne...> - 2002-10-07 11:06:22
|
> The jedit plugin is the text editor that you see in Squirrel > (it does the coloring ect) I am aware of that (the discussion has been going on outside the list for a while). > Coling means (i think) that you may develop the jedit plugin further > to incorparte your completion changes in it. > > I think that should be the place where you do youre changes. the JEdit plugin is one integration point for the completion engine. However it seems to me there is a difference between implementing this integration, and "taking over the jEdit plugin and be responsible for its continued development" |
From: Colin B. <col...@bi...> - 2002-10-14 12:33:30
|
Hi Christian, > I have just uploaded my first presentable (I think) - yet experimental = - > version of the code completion engine to CVS. It consists of the > components jcoco and jcomplete, both under the squirrel-sql/work > directory. There is some more doco in jcomplete/doc/readme.txt. I finally had a look at your code completion engine - looks good! Obviously needs more work but its further along than I expected for the short time frame.=20 Let me know what infrastructure you need within Squirrel to support for engine. --=20 Colin Bell http://squirrel-sql.sf.net |
From: Christian S. <chr...@ne...> - 2002-10-14 20:48:42
|
Hi Colin, I almost thought you "despised the small beginngs" ;-). I must admit that getting to where I am now was far more effort than I thought. It still happens, it seems - after so many years. I have now reached a point where completion for all DML statements works fairly well (I hope). I have also created a SQuirrel plugin, which is based on the default entry panel (see doc/readme.html). This should be a better demonstration than the little program before. Of course, there are still lots of improvements to make. The "Table/Column Chooser" is a hack - maybe someone with more swing enthusiasm can give a hand here. It seems rather inefficient to load all tables into the list - maybe there should be a facility to narrow the selection before it is displayed. The completion itself needs to be tested. It can also be made yet more intelligent. DDL statements are not supported (but what would you want to complete there?). Once integrated with the JEdit plugin, syntax errors and invalid table/column names can be marked on the fly. My development progress will now be much slower for a while, because I have been called upon by a customer. This will keep me rather busy until the end of the year. If anyone has something to contribute - go ahead and let me know. BTW, I did not find any easy way to debug plugins from within my IDE. I ended up creating a "dummy" jar file with just the XxPlugin class inside, and keeping that in the appropriate directory for Squirrel to load. I could then debug the rest of the code as usual. Do you have any better suggestions? regards, Christian Colin Bell wrote: > Hi Christian, > > >>I have just uploaded my first presentable (I think) - yet experimental - >>version of the code completion engine to CVS. It consists of the >>components jcoco and jcomplete, both under the squirrel-sql/work >>directory. There is some more doco in jcomplete/doc/readme.txt. > > > I finally had a look at your code completion engine - looks good! > Obviously needs more work but its further along than I expected for > the short time frame. > > Let me know what infrastructure you need within Squirrel to support > for engine. > |
From: Patrick L. <pl...@la...> - 2002-10-14 21:35:41
|
Christian, Have you tried log4j? -Patrick On Mon, 14 Oct 2002, Christian Sell wrote: > Hi Colin, > > I almost thought you "despised the small beginngs" ;-). > > I must admit that getting to where I am now was far more effort than I > thought. It still happens, it seems - after so many years. > > I have now reached a point where completion for all DML statements works > fairly well (I hope). I have also created a SQuirrel plugin, which is > based on the default entry panel (see doc/readme.html). This should be a > better demonstration than the little program before. > > Of course, there are still lots of improvements to make. > > The "Table/Column Chooser" is a hack - maybe someone with more swing > enthusiasm can give a hand here. It seems rather inefficient to load all > tables into the list - maybe there should be a facility to narrow the > selection before it is displayed. > > The completion itself needs to be tested. It can also be made yet more > intelligent. DDL statements are not supported (but what would you want > to complete there?). > > Once integrated with the JEdit plugin, syntax errors and invalid > table/column names can be marked on the fly. > > My development progress will now be much slower for a while, because I > have been called upon by a customer. This will keep me rather busy until > the end of the year. If anyone has something to contribute - go ahead > and let me know. > > BTW, I did not find any easy way to debug plugins from within my IDE. I > ended up creating a "dummy" jar file with just the XxPlugin class > inside, and keeping that in the appropriate directory for Squirrel to > load. I could then debug the rest of the code as usual. Do you have any > better suggestions? > > regards, > Christian > > Colin Bell wrote: > > Hi Christian, > > > > > >>I have just uploaded my first presentable (I think) - yet experimental - > >>version of the code completion engine to CVS. It consists of the > >>components jcoco and jcomplete, both under the squirrel-sql/work > >>directory. There is some more doco in jcomplete/doc/readme.txt. > > > > > > I finally had a look at your code completion engine - looks good! > > Obviously needs more work but its further along than I expected for > > the short time frame. > > > > Let me know what infrastructure you need within Squirrel to support > > for engine. > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Squirrel-sql-develop mailing list > Squ...@li... > https://lists.sourceforge.net/lists/listinfo/squirrel-sql-develop > |
From: Colin B. <col...@te...> - 2002-10-09 03:59:55
|
Hi Christian, > I have just uploaded my first presentable (I think) - yet > experimental - > version of the code completion engine to CVS. It consists of the > components jcoco and jcomplete, both under the squirrel-sql/work > directory. There is some more doco in jcomplete/doc/readme.txt. Cool! I've just got back from a long weekend away (computer free unfortunately) so I'll take a look at it tonight. > Colin, regarding your suggestion below: It is not clear to me what > "taking over" the JEdit plugin means. Pleas explain. As usual I've expressed myself badly :-( The jEdit plugin is going to be needed to be modified to use your new parsing code, it also needs some other modifications that I just don't have time to do. You'd be doing me a big favour by taking it over and being responsible for its future development. If you don't want to thats fine, I'm just trying to offload some work so that I can concentrate on the core Squiirel code. -- Colin Bell http://squirrel-sql.sf.net |
From: Christian S. <chr...@ne...> - 2002-10-09 09:50:57
|
> As usual I've expressed myself badly :-( The jEdit plugin is going to be > needed to be modified to use your new parsing code, it also needs some > other modifications that I just don't have time to do. You'd be doing > me a big favour by taking it over and being responsible for its future > development. If you don't want to thats fine, I'm just trying to > offload some work so that I can concentrate on the core Squiirel code. > for now this does not seem too relevant. The code completion reveals more and more of its complexity, and will probably keep me busy for a while. I am not sure how much I can do beyond that - sometime I'll have to get back to making money as well... |
From: Colin B. <col...@te...> - 2002-10-17 22:56:54
|
Hi Christian, Sorry for the late response to your emails, I'm incredibly busy at the moment and email is one of those things that gets put to the bottom of the list. > I have now reached a point where completion for all DML statements works > fairly well (I hope). I have also created a SQuirrel plugin, which is > based on the default entry panel (see doc/readme.html). This should be a > better demonstration than the little program before. I'll have a look at it. > The "Table/Column Chooser" is a hack - maybe someone with more swing > enthusiasm can give a hand here. It seems rather inefficient to load all > tables into the list - maybe there should be a facility to narrow the > selection before it is displayed. It would be nice just to see tables that start with the characters they typed prior to calling for completion. Also is there any way to get schema/catalog info (possibly with a different cmd key) completion? An example SQL select * from othercatalog.table1, myTable where ... Here we are joining from a table in the current catalog (myTable) to one in a different catalog (table). Would it be possible to key in 'oth' CtrlSpace and have the catalog names pop up? > > The completion itself needs to be tested. It can also be made yet more > intelligent. DDL statements are not supported (but what would you want > to complete there?). Possibly foreign key relationships? > My development progress will now be much slower for a while, because I > have been called upon by a customer. This will keep me rather busy until > the end of the year. If anyone has something to contribute - go ahead > and let me know. Just as its starting to look good too. I know Russell was interested, maybe he could give you a hand. Russell? > BTW, I did not find any easy way to debug plugins from within my IDE. I > ended up creating a "dummy" jar file with just the XxPlugin class > inside, and keeping that in the appropriate directory for Squirrel to > load. I could then debug the rest of the code as usual. Do you have any > better suggestions? Your method sounds better than mine. I actually generate a jar file for the plugin containing all the class files and place it within my project directory. I then tell the debugger where the source for these classes reside. This means that whenever I make a change to a plugin I have to rebuild the jar, if I forget I'm debugging the wrong code. Col -- Colin Bell http://squirrel-sql.sf.net |
From: Christian S. <chr...@ne...> - 2002-10-19 13:04:10
|
> It would be nice just to see tables that start with the characters they > typed prior to calling for completion. I am personally not in favor of that (which does not preclude implementing it, of course). Calling for completion is just one hit on the keyboard, and having the IDE intervening with your typing can get rather annoying. All the IDEs with code completion that I know (IDEA, NetBeans) do it the way we have it now. I'll take note of the request anyway. > Also is there any way to get > schema/catalog info (possibly with a different cmd key) completion? > > An example SQL > > select * from othercatalog.table1, myTable where ... > > Here we are joining from a table in the current catalog (myTable) to one > in a different catalog (table). Would it be possible to key in 'oth' > CtrlSpace and have the catalog names pop up? The main difficulty I see is that the parser will not be able to tell that you are typing a schema/catalog name (the generic name pattern is <catalog>.<schema>.<name>) until you have completed typing the dot. To distinguish a catalog name from a schema name, there would have to be two dots. What could be done is search through all three (catalog, schema, name) and offer matches from all three together before the first dot, from schema and tables after the first dot, and only tables after the second dot. Of course it would be nice to visually distinguish the different name elements in the completion list. Now - who will program that? >>The completion itself needs to be tested. It can also be made yet more >>intelligent. DDL statements are not supported (but what would you want >>to complete there?). > > > Possibly foreign key relationships? hmm. You mean if I write "foreign key (bla, bla) references ", I would get a list of all tables that have matching primary keys? |
From: Colin B. <col...@bi...> - 2002-10-19 21:54:57
|
> > It would be nice just to see tables that start with the characters th= ey > > typed prior to calling for completion. > > I am personally not in favor of that (which does not preclude > implementing it, of course). Calling for completion is just one hit on > the keyboard, and having the IDE intervening with your typing can get > rather annoying. All the IDEs with code completion that I know (IDEA, > NetBeans) do it the way we have it now. I'll take note of the request > anyway. Sorry I mistyped. What I meant was for them to key some characters and th= en=20 when they called for completion just to see tables that started with thos= e=20 characters. E.G. tab2<Ctrl-Enter> popup with tab21, tab22, tab33 appears but not tab11, tab12 etc. > > Also is there any way to get > > schema/catalog info (possibly with a different cmd key) completion? > > > > An example SQL > > > > select * from othercatalog.table1, myTable where ... > > > > Here we are joining from a table in the current catalog (myTable) to = one > > in a different catalog (table). Would it be possible to key in 'oth' > > CtrlSpace and have the catalog names pop up? > > The main difficulty I see is that the parser will not be able to tell > that you are typing a schema/catalog name (the generic name pattern is > <catalog>.<schema>.<name>) until you have completed typing the dot. To > distinguish a catalog name from a schema name, there would have to be > two dots. What could be done is search through all three (catalog, > schema, name) and offer matches from all three together before the firs= t > dot, from schema and tables after the first dot, and only tables after > the second dot. Of course it would be nice to visually distinguish the > different name elements in the completion list. Now - who will program > that? Possibly a different cmd key? The user would know whether they are keying= a=20 schema, catalog or table name so they could request the appropriate list. > > >>The completion itself needs to be tested. It can also be made yet mor= e > >>intelligent. DDL statements are not supported (but what would you wan= t > >>to complete there?). > > > > Possibly foreign key relationships? > > hmm. You mean if I write "foreign key (bla, bla) references ", I would > get a list of all tables that have matching primary keys? I was thinking of when you specifiy columns as foreign keys E.G. create table table1 (...blah blah, foreignKeyColumn int not null references othertable(othertableColumn) ) Of course the syntax is different between different DBMSs --=20 Colin Bell http://squirrel-sql.sf.net |
From: Christian S. <chr...@ne...> - 2002-10-20 17:19:45
|
> Sorry I mistyped. What I meant was for them to key some characters and then > when they called for completion just to see tables that started with those > characters. E.G. > > tab2<Ctrl-Enter> > > popup with tab21, tab22, tab33 appears but not tab11, tab12 etc. that should already work (at least thats the idea) with all types of completion. |
From: Thackston R. <r.t...@le...> - 2002-10-18 13:25:51
|
> > My development progress will now be much slower for a while, because I > > have been called upon by a customer. This will keep me rather busy until > > the end of the year. If anyone has something to contribute - go ahead > > and let me know. > > Just as its starting to look good too. I know Russell was interested, > maybe he could give you a hand. Russell? I sorry I've been so quiet, but I'm in the process of being down-sized.... On bright side, I'll have plenty of time to help with Squirrel in January. Seriously, I kinda tied up for the next few months (looking for a new job and all). Anyone in the Atlanta area looking for a java programmer? Russell |
From: Christian S. <chr...@ne...> - 2002-10-19 12:42:55
|
> I sorry I've been so quiet, but I'm in the process of being down-sized.... sorry to hear that - and good luck. Christian |