Skip to content

JLine 3: tab completion: showing method signatures is broken #696

Closed
scala/scala
#8848
@SethTisue

Description

@SethTisue

as I said on the PR

the behavior when you hit the TAB key more than once is a regression. It seems like a blocker to me

if you tab twice, instead of showing you the signature in an information area, it actually inserts it into your command line. here I typed Predef.ident and then double-tabbed

scala> Predef.def identity[A](x: A): A

whereas on JLine 2, the interaction looks as follows. it shows the signature and then gives you a whole new prompt:

scala 2.13.1> Predef.identity
   def identity[A](x: A): A

scala 2.13.1> Predef.identity

Ammonite behaves similarly (even though they're on JLine 3):

@ Predef.iden 
identity
@ Predef.identity 
def identity[A](x: A): A
@ Predef.identity

whereas Dotty doesn't seem to have this signature-showing feature

anyway, we need to either bring that behavior back or find another way to show this information, perhaps using JLine's "status" feature

scala/scala#7645 (comment) : "It's nice that autocomplete doesn't burn lines of console anymore, the options are updated in-place on subsequent typing. now takes you into the matrix of completions to navigate with a cursor. Previously, we'd detect and emit the signature for the first candidate. I'm sure JLine3 has a better way to render this, perhaps in a status bar."

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockert:replJLine 3 upgrade (scala/scala#8036)

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions