Как использовать селекторы в команде усечения /set в jshell?

Я использую jshell и хочу обрезать очень большое сообщение, отображаемое на консоли jshell.

Для этого я получил команду /set truncate, которая говорит:

Если значения слишком длинные, то при отображении они усекаются. Используйте команду /set truncation, чтобы установить максимальную длину, отображаемую для значения. Если с помощью команды не вводятся никакие настройки, отображается текущая настройка.

Ниже приведены соответствующие типы селекторов для усечения.

|  
|  The case selector kind describes the kind of snippet.  The values are:
|   vardecl    -- variable declaration without init
|   varinit    -- variable declaration with init
|   expression -- expression -- note: {name}==scratch-variable-name
|   varvalue   -- variable value expression
|   assignment -- assign variable
|  The action selector kind describes what happened to the snippet.  The values are:
|   added     -- snippet has been added
|   modified  -- an existing snippet has been modified
|   replaced  -- an existing snippet has been replaced with a new snippet

Кто-нибудь может предложить варианты использования селекторов случаев или селекторов действий??


person KayV    schedule 19.12.2017    source источник


Ответы (1)


хотите обрезать очень большое сообщение, отображаемое на консоли jshell.

Это зависит от того, какой тип сообщения вы хотите обрезать. Селектор case, который поможет вам выбрать тип, и селектор action поможет вам решить, когда это делать. . например добавление фрагментов, изменение и т. д.

Как использовать селекторы в команде усечения /set в jshell?

Примеры из той же документации хорошо перечисляют это:

/set truncation mymode 45 expression
/set truncation mymode 0 varinit-modified,replaced

предложите варианты использования селекторов случаев или селекторов действий ??

Документация для определение режима обратной связи # Раздел Установить усечение :

mymode: /set truncation mymode 100

mymode: /set truncation mymode 300 varvalue

# default truncation
mymode: String big = IntStream.range(0,1200).mapToObj(n -> "" + (char) ('a' + n % 26)).collect(Collectors.joining())
big ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv ... fghijklmnopqrstuvwxyzabcd"

# default truncation
mymode: big + big
$2 ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghi ... yzabcdefghijklmnopqrstuvwxyzabcd"

# we can see the overriden truncation value in the next statement
mymode: big
big ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl...jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd"`
person Naman    schedule 20.12.2017