JShell: showing and retaining settings

Robert Field robert.field at oracle.com
Tue Oct 11 20:09:47 UTC 2016


In response to a review request for

     8163840: jshell tool: provide way to display configuration settings

I had an in-depth discussion with Brian about the settings related 
commands -- resulting in a proposed syntax significantly different than 
current or the webrev.  I'd like to vet this at the design level before 
implementing it (again).  Your feedback is requested.

/set as before.

Showing settings with '/set' without specifying a setting (rather than 
'/set -show' in the RFR)..  This is consistent with many other shells, 
including bash.  It also reduces the commands to learn.

Since /set would also show settings retained between sessions, for 
symmetry, /retain would be rolled into /set as /set -retain ...

Since mode settings are very extensive they would be shown only for 
requested modes.

Examples ---

jshell> /set
|  /set editor -retain kwrite
|  /set editor -default
|  /set start -none
|  /set feedback normal
|
| For mode settings use:  /show mode <mode>
| Current set modes: verbose normal concise silent

jshell> /set editor
|  /set editor -retain kwrite
|  /set editor -default

jshell> /set mode concise
|  /set mode concise -quiet
|  /set prompt concise "jshell> " "   ...> "
|  /set format concise typeKind "class" class
|  /set format concise typeKind "interface" interface
|  /set format concise typeKind "enum" enum
|  /set format concise typeKind "annotation interface" annotation
|  /set format concise pre "|  "
|  /set format concise resolve "{until}{unrerr}" 
modified,added,used,replaced
|  /set format concise err "%6$s"
|  /set format concise unrerr "{unresolved} is declared" unresolved1-error0
|  /set format concise unrerr "{unresolved} are declared" unresolved2-error0
|  /set format concise unrerr " this error is corrected: {errors}" 
unresolved0-error1
|  /set format concise unrerr "{unresolved} is declared and this error 
is corrected: {errors}" unresolved1-error1
|  /set format concise unrerr "{unresolved} are declared and this error 
is corrected: {errors}" unresolved2-error1
|  /set format concise unrerr " these errors are corrected: {errors}" 
unresolved0-error2
|  /set format concise unrerr "{unresolved} is declared and these errors 
are corrected: {errors}" unresolved1-error2
|  /set format concise unrerr "{unresolved} are declared and these 
errors are corrected: {errors}" unresolved2-error2
|  /set format concise display "{result}{pre}created scratch variable 
{name} : {type}{post}" expression-modified,added,replaced-primary
|  /set format concise display "{result}{pre}value of {name} : 
{type}{post}" varvalue-primary
|  /set format concise display "{result}{pre}assigned to {name} : 
{type}{post}" assignment-primary
|  /set format concise display "{result}{pre}{action} variable {name} : 
{type}{resolve}{post}" varinit,vardecl
|  /set format concise display "{pre}{action} variable 
{name}{resolve}{post}" varinit,vardecl-notdefined
|  /set format concise display "{pre}{action} variable {name}{post}" 
varinit,expression,vardecl-dropped
|  /set format concise display "{pre}{action} variable {name}, reset to 
null{post}" varinit,vardecl-replaced-update-ok
|  /set format concise display "{pre}{action} {typeKind} 
{name}{resolve}{post}" class,enum,annotation,interface
|  /set format concise display "{pre}{action} method 
{name}({type}){resolve}{post}" method
|  /set format concise display "{pre}attempted to use {typeKind} 
{name}{resolve}{post}" class,enum,annotation,interface-used
|  /set format concise display "{pre}attempted to call method 
{name}({type}){resolve}{post}" method-used
|  /set format concise display "" 
modified,added,dropped,overwrote,replaced-update
|  /set format concise display "{pre}{action} variable {name}, reset to 
null{post}" varinit,vardecl-replaced-update-ok
|  /set format concise display "{result}" 
varinit,expression,assignment,varvalue,vardecl-modified,added,replaced-primary-ok
|  /set format concise display "" 
class,enum,varinit,annotation,assignment,method,vardecl,interface-ok
|  /set format concise type "%2$s"
|  /set format concise errorpre "|  "
|  /set format concise result "{name} ==> {value}{post}" 
modified,added,replaced-primary-ok
|  /set format concise unresolved "%4$s"
|  /set format concise errorline "{post}{pre}    {err}"
|  /set format concise post "%n"
|  /set format concise name "%1$s"
|  /set format concise action "created" added-primary
|  /set format concise action "modified" modified-primary
|  /set format concise action "replaced" replaced-primary
|  /set format concise action "overwrote" overwrote-primary
|  /set format concise action "dropped" dropped-primary
|  /set format concise action "  update created" added-update
|  /set format concise action "  update modified" modified-update
|  /set format concise action "  update replaced" replaced-update
|  /set format concise action "  update overwrote" overwrote-update
|  /set format concise action "  update dropped" dropped-update
|  /set format concise errorpost "%n"
|  /set format concise until ", however, it cannot be instanciated or 
its methods invoked until" class-primary-defined
|  /set format concise until ", however, its methods cannot be invoked 
until" interface-primary-defined
|  /set format concise until ", however, it cannot be used until" 
enum,annotation-primary-defined
|  /set format concise until ", however, it cannot be invoked until" 
method-primary-defined
|  /set format concise until ", however, it cannot be referenced until" 
primary-notdefined
|  /set format concise until " which cannot be instanciated or its 
methods invoked until" class-update-defined
|  /set format concise until " whose methods cannot be invoked until" 
interface-update-defined
|  /set format concise until " which cannot be invoked until" 
method-update-defined
|  /set format concise until " which cannot be referenced until" 
update-notdefined
|  /set format concise value "%3$s"
|  /set format concise errors "%5$s"
|  /set truncation concise 80
|  /set truncation concise 1000 expression,varvalue

jshell> /set start -retain -default


Thoughts?




More information about the kulla-dev mailing list