#
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

help.set.format = \
Set the format for reporting a snippet event.\n\
\n\
/set format <mode> <field> "<format>" <selector>...\n\
\n\
Where <mode> is the name of a previously defined feedback mode -- see '/help /set newmode'.\n\
Where <field> is the name of context-specific format to define.\n\
Where <format> is a quoted string which will be the value of the field if one of\n\
the selectors matches (or there are no selectors). When the format is used,\n\
field names enclosed in braces are replaced with the value of the field at that\n\
time. These fields may have been previously defined with this command or may be\n\
one of these predefined fields specific to the context:\n\t\
{name}       == The name, e.g.: the variable name, ...\n\t\
{type}       == The type name. The type of a variable or expression, the\n\t\t\t\
                 parameter types of a method\n\t\
{value}      == The result value of an expression or variable initialization\n\t\
{unresolved} == The list of unresolved references\n\t\
{errors}     == The list of recoverable errors (during the processing of the\n\t\t\t\
                "display" field only)\n\t\
{err}        == An unformatted error line (during the processing of the\n\t\t\t\
                "errorline" field only)\n\
The following fields are accessed by the tool to determine the displayed feedback:\n\t\
{display}    == The displayed message for a snippet event\n\t\
{errorline}  == The format of one error line within the "errors" field\n\t\
{pre}        == The feedback prefix (begins command feedback)\n\t\
{post}       == The feedback postfix (ends command feedback)\n\t\
{errorpre}   == The error prefix (begins error feedback)\n\t\
{errorpost}  == The error postfix (ends error feedback)\n\
These fields have default settings (which may be overwritten).\n\
Where <selector> is the context in which the format is applied.\n\
The structure of selector is a hyphen separated list of selector kind lists.\n\
A selector kind list is a comma separated list of values of one selector kind.\n\
A selector matches if each selector kind list matches; A selector kind list\n\
matches if one of the values matches.\n
help.set.format.case = The case selector kind describes the kind of snippet.  The values are:\n
help.set.format.action = The action selector kind describes what happened to the snippet.  The values are:\n
help.set.format.when = The when-did-it-occur selector kind describes if this is a direct or indirect action.  The values are:\n
help.set.format.resolve = The resolution-state selector kind describes the state of resolution/definition of the snippet.  The values are:\n
help.set.format.unresolved = The unresolved-count selector kind describes the number of unresolved references.  The values are:\n
help.set.format.errors = The errors-count selector kind describes the number of errors.  The values are:\n
help.set.format.end = \n\
Examples:\n\t\
/set format myformat action 'Created' added-primary\n\t\
/set format myformat action 'Update replaced' replaced-update\n\t\
/set format myformat display '{pre}{action} class {name}{post}' class-ok\n\t\
/set format myformat display '{pre}{action} variable {name}, reset to null{post}' replaced-vardecl,varinit-ok-update\n\n\
Note that subsequent selectors for a field may overwrite some or all of previous used selectors -- last one wins\n

help.set.feedback = \
Set the feedback mode describing displayed feedback for entered snippets and commands.\n\
\n\
/set feedback <mode>\n\
\n\
Where <mode> is the name of a previously defined feedback mode.\n\
You may use just enough letters to make it unique.\n\
User-defined modes can be added, see '/help /set newmode'\n\
Currently defined feedback modes:\n

help.set.newmode = \
Create a user-defined feedback mode, optionally copying from an existing mode.\n\
\n\
/set newmode <new-mode> [command|quiet [<old-mode>]]\n\
\n\
Where <new-mode> is the name of a mode you wish to create.\n\
Where <old-mode> is the name of a previously defined feedback mode.\n\
If <old-mode> is present, its settings are copied to the new mode.\n\
'command' vs 'quiet' determines if informative/verifying command feedback is displayed.\n\
\n\
Once the new mode is created, use '/set format' and '/set prompt' to configure it.\n\
Use '/set feedback' to use the new mode.\n\

help.set.prompt = \
Set the prompts.  Both the normal prompt and the continuation-prompt must be set.\n\
\n\
/set prompt <mode> \"<prompt>\" \"<continuation-propmt>\"\n\
\n\
Where <mode> is the name of a previously defined feedback mode.\n\
Where <prompt> and <continuation-propmt> are quoted strings printed as input prompts;\n\
Both may optionally contain '%s' which will be substituted with the next snippet id --\n\
note that what is entered may not be assigned that id, for example it may be an error or command.\n\
The continuation-prompt is used on the second and subsequent lines of a multi-line snippet.\n

startup.feedback = \
/set newmode normal command    \n\
/set prompt normal '\\n-> ' '>> '    \n\
/set format normal pre '|  '    \n\
/set format normal post '%n'    \n\
/set format normal errorpre '|  '    \n\
/set format normal errorpost '%n'    \n\
    \n\
/set format normal errorline '{post}{pre}    {err}'    \n\
    \n\
/set format normal action 'Added' added-primary    \n\
/set format normal action 'Modified' modified-primary    \n\
/set format normal action 'Replaced' replaced-primary    \n\
/set format normal action 'Overwrote' overwrote-primary    \n\
/set format normal action 'Dropped' dropped-primary    \n\
/set format normal action '  Update added' added-update    \n\
/set format normal action '  Update modified' modified-update    \n\
/set format normal action '  Update replaced' replaced-update    \n\
/set format normal action '  Update overwrote' overwrote-update    \n\
/set format normal action '  Update dropped' dropped-update    \n\
    \n\
/set format normal until ', however, it cannot be instanciated or its methods invoked until'  defined-class-primary    \n\
/set format normal until ', however, its methods cannot be invoked until'                     defined-interface-primary    \n\
/set format normal until ', however, it cannot be used until'                                 defined-enum,annotation-primary    \n\
/set format normal until ', however, it cannot be invoked until'                              defined-method-primary    \n\
/set format normal until ', however, it cannot be referenced until'                           notdefined-primary    \n\
/set format normal until ' which cannot be instanciated or its methods invoked until'         defined-class-update    \n\
/set format normal until ' whose methods cannot be invoked until'                             defined-interface-update    \n\
/set format normal until ' which cannot be invoked until'                                     defined-method-update    \n\
/set format normal until ' which cannot be referenced until'                                  notdefined-update    \n\
    \n\
/set format normal unrerr '{unresolved} is declared'                                           unresolved1-error0    \n\
/set format normal unrerr '{unresolved} are declared'                                          unresolved2-error0    \n\
/set format normal unrerr ' this error is corrected: {errors}'                                 unresolved0-error1    \n\
/set format normal unrerr '{unresolved} is declared and this error is corrected: {errors}'     unresolved1-error1    \n\
/set format normal unrerr '{unresolved} are declared and this error is corrected: {errors}'    unresolved2-error1    \n\
/set format normal unrerr ' these errors are corrected: {errors}'                              unresolved0-error2    \n\
/set format normal unrerr '{unresolved} is declared and these errors are corrected: {errors}'  unresolved1-error2    \n\
/set format normal unrerr '{unresolved} are declared and these errors are corrected: {errors}' unresolved2-error2    \n\
    \n\
/set format normal resolve '{until}{unrerr}'                                                added,modified,replaced,used    \n\
    \n\
/set format normal typeKind 'class'                  class    \n\
/set format normal typeKind 'interface'              interface    \n\
/set format normal typeKind 'enum'                   enum    \n\
/set format normal typeKind 'annotation interface'   annotation    \n\
    \n\
/set format normal display '{pre}{action} {typeKind} {name}{resolve}{post}'                 class,interface,enum,annotation    \n\
/set format normal display '{pre}{action} method {name}({type}){resolve}{post}'             method    \n\
    \n\
/set format normal display '{pre}{action} variable {name} of type {type}{resolve}{post}'    vardecl    \n\
/set format normal display '{pre}{action} variable {name} of type {type} with initial value {value}{resolve}{post}'    varinit    \n\
/set format normal display '{pre}{action} variable {name}, reset to null{post}'             replaced-vardecl,varinit-ok-update    \n\
/set format normal display '{pre}{action} variable {name}{resolve}{post}'                   vardecl,varinit-notdefined    \n\
/set format normal display '{pre}{action} variable {name}{post}'                            overwrote,dropped-vardecl,varinit    \n\
    \n\
/set format normal display '{pre}Expression value is: {value}{post}{pre}  assigned to temporary variable {name} of type {type}{post}' expression    \n\
/set format normal display '{pre}Variable {name} of type {type} has value {value}{post}'    varvalue    \n\
/set format normal display '{pre}Variable {name} has been assigned the value {value}{post}' assignment    \n\
    \n\
/set format normal display '{pre}Attempted to use {typeKind} {name}{resolve}{post}'         used-class,interface,enum,annotation    \n\
/set format normal display '{pre}Attempted to call method {name}({type}){resolve}{post}'    used-method    \n\
    \n\
/set feedback normal    \n\
    \n\
/set newmode off quiet    \n\
/set prompt off '-> ' '>> '    \n\
/set format off pre '|  '    \n\
/set format off post '%n'    \n\
/set format off errorpre '|  '    \n\
/set format off errorpost '%n'    \n\
/set format off display ''    \n
