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