Skip to content

JLine 3: resolve double-tab behavior somehow for 2.13.2 #698

@SethTisue

Description

@SethTisue

under JLine 2 double tab had this behavior: on first tab it only shows the methods you're likeliest to want, then on second tab it adds more: things like toString, and also methods you only get through implicit conversions:

scala 2.13.1> class C { def x = 3; def y = 4 }
defined class C

scala 2.13.1> (new C).
x   y

scala 2.13.1> (new C).
!=   ->             ensuring   formatted   isInstanceOf   notifyAll      wait   →   
##   ==             eq         getClass    ne             synchronized   x          
+    asInstanceOf   equals     hashCode    notify         toString       y          

note the presence of ensuring, which is an extension method.

under JLine 3, that behavior still exists, but in a funny way. you have to ask for the same completion again, and that gives you what used to be the double-tab behavior.

ah, JLine 3 has a "grouping" feature, where you can divide offered completions into groups, and even show a name for each group! so we could have a main group, an extension method group, and an "other" group. maybe a "deprecated" group (scala/scala#7869)

even if we can't get the grouping thing going in time, we need to do something for 2.13.2, IMO

Metadata

Metadata

Assignees

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