Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code Completion #12

Open
Qtrain opened this issue Nov 17, 2015 · 10 comments
Open

Code Completion #12

Qtrain opened this issue Nov 17, 2015 · 10 comments

Comments

@Qtrain
Copy link

Qtrain commented Nov 17, 2015

I know that code completion works in JShell. Is there any way to get it working in the notebooks?

@dsblank
Copy link
Collaborator

dsblank commented Nov 17, 2015

With MetaKernel, it already does code completion for variables, methods, and classes. That is possible because /vars, /methods, and /classes are commands. If there were a way to ask for code completions in general, then you could do it for any string. This would be one benefit of writing a kernel in Java. Without doing that, you need a way to get that info from the command line.

@Qtrain
Copy link
Author

Qtrain commented Nov 17, 2015

@dsblank Ah! That makes sense. I was trying to complete Sys to System. This would def be a nice feature.

@Bachmann1234
Copy link
Owner

Does JShell support code completion? This project is not using (http://geophile.com/jshell/) Its using the Java 9 Repel which is a completely different shell. I dont think the Java 9 Repel (also called jshell annoyingly) supports code completion.

I could be wrong. I am not export on this stuff honestly. This project has honestly gotten more attention than I expected

@Qtrain
Copy link
Author

Qtrain commented Nov 18, 2015

Wait, this uses Kulla which is JShell??

Edit: I think, perhaps, I may have been spreading the wrong info. I don't think that's the kulla jar, which is the link you provided (I think?) In any case I think we are all using the kulla jar which contains JShell (or is hell i don't know haha).

@Bachmann1234
Copy link
Owner

So Kulla is a jar that is linked to Java 9s repel which is called jshell (http://openjdk.java.net/projects/kulla/)

In the issue you opened earlier you linked this project (http://geophile.com/jshell/) but its not the same thing. Or at least I am fairly sure its not.

Big thing is kulla only works on Java 9 while the link above works on Java 1x. and has not been updated since 2000

I mean, perhaps im the confused one. :-P

@Qtrain
Copy link
Author

Qtrain commented Nov 18, 2015

Ha yes indeed and I am the perpetrator of such misinformation. I have given myself 40 lashings as penance.

@Bachmann1234
Copy link
Owner

hey man, No worries. alrighty im gonna close this one as "Outside the scope"

@Qtrain
Copy link
Author

Qtrain commented Nov 18, 2015

Au Contraire my friend, kulla does support code completion.

@dsblank
Copy link
Collaborator

dsblank commented Nov 18, 2015

I think code completion could be done. Currently there are two completions in kulla/JShell:

  • TAB, turns Sys into System, and System.o into System.out
  • SHIFT+TAB turns System.out.println( into this output:
-> System.out.println(
java.io.PrintStream.println(boolean arg0)
java.io.PrintStream.println(char arg0)
java.io.PrintStream.println(int arg0)
java.io.PrintStream.println(long arg0)
java.io.PrintStream.println(float arg0)
java.io.PrintStream.println(double arg0)
java.io.PrintStream.println(char[] arg0)
java.io.PrintStream.println(java.lang.String arg0)
java.io.PrintStream.println(java.lang.Object arg0)

The current java9_kernel uses pexpect to send and receive commands. It should be possible to either:

  1. send a string with TAB or SHIFT+TAB and get back results
  2. change kulla to add new command(s), like /complete to do what TAB and SHIFt+TAB do

@Bachmann1234 Bachmann1234 reopened this Nov 18, 2015
@Bachmann1234
Copy link
Owner

Ok OK. Reopened. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants