The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Win32::Mechanize::NotepadPlusPlus::Editor::Messages - Define values for using messages, notifications, and their arguments

SYNOPSIS

    use Win32::Mechanize::NotepadPlusPlus ':vars';
    print "$_\n" for sort { $SCIMSG{$a} <=> $SCIMSG{$b} } keys %SCIMSG;             # prints all message keys in numerical order

DESCRIPTION

Scintilla uses message-based communication, which is described in the ScintillaDoc.

The hashes in Win32::Mechanize::NotepadPlusPlus::Editor::Messages give named access to the underlying messages, as well as named versions of the constants used as arguments for those messages.

MESSAGES

%SCIMSG

Many of the Scintilla Messages are already implemented in the Win32::Mechanize::NotepadPlusPlus::Editor interface, and under normal circumstances, the end-user should never need to access this %SCIMSG hash directly.

However, if you have a reason to use editor->SendMessage directly, you can use the values from this hash. Usually, this would only be done if you want a unique wrapper around the message, or want to implement a new or unimplemented message.

%SC_ACCESSIBILITY

Used by setAccessibility.

    Key                         | Value | Description
    ----------------------------+-------+---------------------------
    SC_ACCESSIBILITY_DISABLED   | 0     | Accessibility is disabled
    SC_ACCESSIBILITY_ENABLED    | 1     | Accessibility is enabled

All of these values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_ALPHA

Used by setSelAlpha and many other methods that set or retrieve transparency settings.

These actally indicate the range, from SC_ALPHA_TRANSPARENT (100% transparent) to SC_ALPHA_OPAQUE (100% opaque), with SC_ALPHA_NOALPHA (which also indicates 100% opaque, but might make for a more efficient drawing of the Scintilla window because ALPHA is disabled, rather than just being 100% opaque.)

When setting transparency, any value from SC_ALPHA_TRANSPARENT through SC_ALPHA_OPAQUE (or SC_ALPHA_NOALPHA) can be used; alpha settings do not have to be one of these three defined values.

%SC_ANNOTATION

Used by annotationSetVisible

    Key                 |   | Description
    --------------------+---+-------------------------------------
    ANNOTATION_HIDDEN   | 0 | Annotations are not displayed.
    ANNOTATION_STANDARD | 1 | Annotations are drawn left justified with no adornment.
    ANNOTATION_BOXED    | 2 | Annotations are indented to match the text and are surrounded by a box.
    ANNOTATION_INDENTED | 3 | Annotations are indented to match the text.
%SC_AUTOC_ORDER

Used by autoCSetOrder.

    Key                  |   | Description
    ---------------------|---|-------------
    SC_ORDER_PRESORTED   | 0 | List must be already sorted alphabetically
    SC_ORDER_PERFORMSORT | 1 | Scintilla will sort the list
    SC_ORDER_CUSTOM      | 2 | Use a custom order
%SC_AUTOMATICFOLD

Used by setAutomaticFold

    Key                     |   | Description
    ------------------------+---+-------------
    SC_AUTOMATICFOLD_SHOW   | 1 | Automatically show lines as needed. This avoids sending the SCN_NEEDSHOWN notification.
    SC_AUTOMATICFOLD_CLIC   | 2 | Handle clicks in fold margin automatically. This avoids sending the SCN_MARGINCLICK notification for folding margins.
    SC_AUTOMATICFOLD_CHANGE | 4 | Show lines as needed when fold structure is changed. The SCN_MODIFIED notification is still sent unless it is disabled by the container.
%SC_BIDIRECTIONAL

Used by setBidirectional.

The default $SC_BIDIRECTIONAL{SC_BIDIRECTIONAL_DISABLED} (0) means that only one direction is supported.

Enabling $SC_BIDIRECTIONAL{SC_BIDIRECTIONAL_L2R} (1) means that left-to-right is the normal active direction, but UTF sequences can change text to right-to-left.

Enabling $SC_BIDIRECTIONAL{SC_BIDIRECTIONAL_R2L} (2) means that right-to-left is the normal active direction, but UTF sequences can change text to left-to-right.

    Key                       |   | Description
    --------------------------+---+-------------
    SC_BIDIRECTIONAL_DISABLED | 0 | Not bidirectional
    SC_BIDIRECTIONAL_L2R      | 1 | Bidirectional, with left-to-right as normal direction
    SC_BIDIRECTIONAL_R2L      | 2 | Bidirectional, with right-to-left as normal direction

All of these values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_CACHE

Used by setLayoutCache

    Key                 |   | Description
    --------------------+---+-------------
    SC_CACHE_NONE       | 0 | No lines are cached.
    SC_CACHE_CARET      | 1 | The line containing the text caret. This is the default.
    SC_CACHE_PAGE       | 2 | Visible lines plus the line containing the caret.
    SC_CACHE_DOCUMENT   | 3 | All lines in the document.
%SC_CARETPOLICY

Used by setXCaretPolicy and related.

    CARET_SLOP      | 0x01 | Will honor the $caretSlop setting
    CARET_STRICT    | 0x04 | If set, CARET_SLOP is strictly enforced
    CARET_EVEN      | 0x08 | If set, use symmetric zones; if unset, shift the zones
    CARET_JUMPS     | 0x10 | Caret moves more "energetically"

See Scintilla documentation for SCI_SETXCARETPOLICY for details, and how they work in combination.

%SC_CARETSTICKY

Used by setCaretSticky

    Key                         |   | Description
    ----------------------------+---+-------------
    SC_CARETSTICKY_OFF          | 0 | All moves or text changes will change caret's horizontal position (default)
    SC_CARETSTICKY_ON           | 1 | Only cursor movements will change the caret position
    SC_CARETSTICKY_WHITESPACE   | 2 | Like OFF, but whitespace-only insertion will not change caret position
%SC_CARETSTYLE

Used by setCaretStyle.

    Key                         |       | Description
    ----------------------------+-------+------------------------
    CARETSTYLE_INVISIBLE        | 0     | No visible caret
    ----------------------------+-------+------------------------
    CARETSTYLE_LINE             | 1     | Caret is a line (in insert mode)
    CARETSTYLE_BLOCK            | 2     | Caret is a block (in insert mode)
    CARETSTYLE_INS_MASK         | 0xF   | Mask used for the insert mode bits, above [npp7.8]
    ----------------------------+-------+------------------------
    CARETSTYLE_OVERSTRIKE_BAR   | 0     | Caret is a bar (in overtype mode) [npp7.8]
    CARETSTYLE_OVERSTRIKE_BLOCK | 16    | Caret is a block (in overtype mode) [npp7.8]
    ----------------------------+-------+------------------------
    CARETSTYLE_BLOCK_AFTER      | 0x100 | Option for how the block is drawn [npp7.8]

For insert mode, the style of the caret can be set to a line caret (CARETSTYLE_LINE=1) or a block caret (CARETSTYLE_BLOCK=2) for insert mode (lower 4-bits, CARETSTYLE_INS_MASK) combined with a bar caret (CARETSTYLE_OVERSTRIKE_BAR=0) or a block caret (CARETSTYLE_OVERSTRIKE_BLOCK=16) for overtype mode (bit 4), or to not draw at all (CARETSTYLE_INVISIBLE=0). The default value for insert mode is the line caret (CARETSTYLE_LINE=1).

For overtype mode, the style of the caret can be set to the bar caret (CARETSTYLE_OVERSTRIKE_BAR=0) or a block caret (CARETSTYLE_OVERSTRIKE_BLOCK)=16).

When the caret end of a range is at the end and a block caret style is chosen, the block is drawn just inside the selection instead of after. This can be switched with an option (CARETSTYLE_BLOCK_AFTER=256).

The value passed can be a bitwise-or of the insert-mode choice, the overtype mode choice, and the option value.

[npp7.8]: Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_CASE

Used by styleSetCase

    Key             |   | Description
    ----------------+---+-------------
    SC_CASE_MIXED   | 0 | Displays normally (same case as stored in text)
    SC_CASE_UPPER   | 1 | Displays as all upper case, even if there are lower case characters
    SC_CASE_LOWER   | 2 | Displays as all lower case, even if there are upper case characters
    SC_CASE_CAMEL   | 3 | Displays as Camel Case, regardless of underlying text case [npp7.8]

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_CASEINSENSITIVE

Used by autoCSetCaseInsensitiveBehaviour

    Key                                         |   | Description
    --------------------------------------------+---+-------------
    SC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE     | 0 | Respect case
    SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE      | 1 | Ignore case
%SC_CHARSET

Used by styleSetCharacterSet

    Key                     | Value
    ------------------------+-------
    SC_CHARSET_ANSI         | 0
    SC_CHARSET_DEFAULT      | 1
    SC_CHARSET_SYMBOL       | 2
    SC_CHARSET_MAC          | 77
    SC_CHARSET_SHIFTJIS     | 128
    SC_CHARSET_HANGUL       | 129
    SC_CHARSET_JOHAB        | 130
    SC_CHARSET_GB2312       | 134
    SC_CHARSET_CHINESEBIG5  | 136
    SC_CHARSET_GREEK        | 161
    SC_CHARSET_TURKISH      | 162
    SC_CHARSET_VIETNAMESE   | 163
    SC_CHARSET_HEBREW       | 177
    SC_CHARSET_ARABIC       | 178
    SC_CHARSET_BALTIC       | 186
    SC_CHARSET_RUSSIAN      | 204
    SC_CHARSET_THAI         | 222
    SC_CHARSET_EASTEUROPE   | 238
    SC_CHARSET_OEM          | 255
    SC_CHARSET_OEM866       | 866       [npp7.8]
    SC_CHARSET_8859_15      | 1000
    SC_CHARSET_CYRILLIC     | 1251

$SC_CHARSET{SC_CHARSET_ANSI} and $SC_CHARSET{SC_CHARSET_DEFAULT} specify European Windows code page 1252 unless the code page is set.

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_CODEPAGE

Used by setCodePage

    Key                                 |       | Description
    ------------------------------------+-------+-------------
    SC_CP_UTF8                          | 65501 | Unicode
    UNOFFICIAL_SHIFT_JIS                | 932   | Japanese Shift-JIS
    UNOFFICIAL_SIMPLIFIED_CHINESE_GBK   | 936   | Simplified Chinese GBK
    UNOFFICIAL_KOREAN_UNIFIED_HANGUL    | 949   | Korean Unified Hangul Code
    UNOFFICIAL_TRADITIONAL_CHINESE_BIG5 | 950   | Traditional Chinese Big5
    UNOFFICIAL_KOREAN_JOHAB             | 1361  | Korean Johab

SC_CP_UTF8 is the only SC_CODEPAGE value defined by Scintilla. The others were added unofficially to support codepages listed in the SCI_SETCODEPAGE documentation from Scintilla.

%SC_CURSOR

Used by setMarginCursorN and setCursor

SC_CURSORARROW and SC_CURSORREVERSEARROW will set the direction of the arrow in the margin with setMarginCursorN().

with setCursor(), SC_CURSORNORMAL (-1) will set the normal cursor behavior, and SC_CURSORWAIT (4) will set the cursor to a spinning "waiting for action" cursor

%SC_DOCUMENTOPTION

Use by createDocument

    Key                             |       | Description
    --------------------------------+-------+-------------
    SC_DOCUMENTOPTION_DEFAULT       | 0     | Standard behaviour
    SC_DOCUMENTOPTION_STYLES_NONE   | 0x1   | Stop allocation of memory for styles and treat all text as style 0.
    SC_DOCUMENTOPTION_TEXT_LARGE    | 0x100 | Allow document to be larger than 2 GB. (Experimental as of Scintilla v4.2.0, Notepad++ v7.8)

All of these values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_EDGEMODE

Used by setEdgeMode

    Key             |   | Description
    ----------------+---+-------------
    EDGE_NONE       | 0 | Long lines are not marked. This is the default state.
    EDGE_LINE       | 1 | A vertical line is drawn at the column number set by SCI_SETEDGECOLUMN. This works well for monospaced fonts. The line is drawn at a position based on the width of a space character in STYLE_DEFAULT, so it may not work very well if your styles use proportional fonts or if your style have varied font sizes or you use a mixture of bold, italic and normal text.
    EDGE_BACKGROUND | 2 | The background colour of characters after the column limit is changed to the colour set by SCI_SETEDGECOLOUR. This is recommended for proportional fonts.
    EDGE_MULTILINE  | 3 | This is similar to EDGE_LINE but in contrary to showing only one single line a configurable set of vertical lines can be shown simultaneously. This edgeMode uses a completely independent dataset that can only be configured by using the SCI_MULTIEDGE* messages. [npp7.8]

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_EOL

Used by the line endings methods.

    Key         |   | Description
    ------------+---+-------------
    SC_EOL_CRLF | 0 | Use Windows EOL (CRLF = "\r\n")
    SC_EOL_CR   | 1 | Use old Mac EOL (CR = "\r")
    SC_EOL_LF   | 2 | Use Unix/Linx EOL (LF = "\n")
%SC_EOLSUPPORT

Used by getLineEndTypesSupported

    Key                      |   | Line ending support
    -------------------------+---+----------------------------
    SC_LINE_END_TYPE_DEFAULT | 0 | Just normal line-endings
    SC_LINE_END_TYPE_UNICODE | 1 | Extra Unicode line-endings
%SC_FIND

Used by findText

The values should be bitwise-or'd together to form the findText argument.

    %scimsg key         | Value      | Description
    --------------------+------------+-----------------------------------------------------------------
    SCFIND_NONE         | 0x00000000 | (default) Case-insentitive, literal match
    SCFIND_MATCHCASE    | 0x00000004 | Case-sensitive
    SCFIND_WHOLEWORD    | 0x00000002 | Matches only whole words ( see editor()->setWordChars )
    SCFIND_WORDSTART    | 0x00100000 | Matches the start of whole words ( see editor()->setWordChars )
    SCFIND_REGEXP       | 0x00200000 | Matches as a Scintilla regular expression
    SCFIND_POSIX        | 0x00400000 | (*) Matches a regular expression, with POSIX () groups
    SCFIND_CXX11REGEX   | 0x00800000 | (*) Matches using C++11 <regex> library

    (*) means it should be used in conjunction with SCFIND_REGEXP

See Scintilla documentation for searchFlags

%SC_FOLDACTION

Used by foldLine and related methods.

    Key                     |   | Description
    ------------------------+---+-------------
    SC_FOLDACTION_CONTRACT  | 0 | Contract
    SC_FOLDACTION_EXPAND    | 1 | Expand
    SC_FOLDACTION_TOGGLE    | 2 | Toggle between contracted and expanded
%SC_FOLDDISPLAYTEXT

Used by foldDisplayTextSetStyle.

    %scimsg key                 | Value | Description
    ----------------------------+-------+------------------------------------------------
    SC_FOLDDISPLAYTEXT_HIDDEN   | 0     | Do not display text tags
    SC_FOLDDISPLAYTEXT_STANDARD | 1     | Display text tags
    SC_FOLDDISPLAYTEXT_BOXED    | 2     | Display text tags with a box drawn around them

All of these values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_FOLDFLAG

Used by setFoldFlags.

Use a bitwise-or of one or more of the following flags:

    Key                                 |     | Description
    ------------------------------------+-----+-------------
    SC_FOLDFLAG_LINEBEFORE_EXPANDED     | 2   | Draw above if expanded
    SC_FOLDFLAG_LINEBEFORE_CONTRACTED   | 4   | Draw above if not expanded
    SC_FOLDFLAG_LINEAFTER_EXPANDED      | 8   | Draw below if expanded
    SC_FOLDFLAG_LINEAFTER_CONTRACTED    | 16  | Draw below if not expanded
    SC_FOLDFLAG_LEVELNUMBERS            | 64  | display hexadecimal fold levels (*)
    SC_FOLDFLAG_LINESTATE               | 128 | display hexadecimal line state (+)

*: The appearance of this feature may change in the future. +: May not be used at the same time as SC_FOLDFLAG_LEVELNUMBERS

%SC_FOLDLEVEL

Used by setFoldLevel.

Use a bitwise-or of one or more of the following flags:

    Key                     |      | Description
    ------------------------+------+-------------
    SC_FOLDLEVELBASE        | 1024 | Default fold level setting
    SC_FOLDLEVELNUMBERMASK  | 4095 | Fold level can be set to 0 .. SC_FOLDLEVELNUMBERMASK
    SC_FOLDLEVELWHITEFLAG   | 4096 | Flag bit: line is blank and level is not as important
    SC_FOLDLEVELHEADERFLAG  | 8192 | Flag bit: indicates it's a header (fold point)

You can set the level to anything between 0 .. SC_FOLDLEVELNUMBERMASK, so you are not restricted to using just these hash values.

See Scintilla documentation for SCI_SETFOLDLEVEL

%SC_FONTQUAL

Used by setFontQuality to set the font quality (antialiasing method)

    Key                             |     | Description
    --------------------------------+-----+-------------
    SC_EFF_QUALITY_DEFAULT          | 0   | Default, backward compatible
    SC_EFF_QUALITY_NON_ANTIALIASED  | 1   | Not antialiased
    SC_EFF_QUALITY_ANTIALIASED      | 2   | Antialiased
    SC_EFF_QUALITY_LCD_OPTIMIZED    | 3   | Optimized for LCD
    SC_EFF_QUALITY_MASK             | 0xF | *Only 4 bits apply to antialiasing

(*: In the future, there may be more attributes set by setFontQuality() than just antialiasing, so the SC_EFF_QUALITY_MASK is used to indicate that antialiasing settings will be limited to four bits.)

%SC_FONTSIZE

Referenced by styleSetSizeFractional.

The sole key, SC_FONT_SIZE_MULTIPLIER (100), is used for scaling a fractional number of points to an integer for use in styleSetSizeFractional().

%SC_IDLESTYLING

Used by setIdleStyling.

    Key                         |   | Description
    ----------------------------|---|-------------
    SC_IDLESTYLING_NONE         | 0 | (default) Syntax styling for all visible text (may be slow for large files)
    SC_IDLESTYLING_TOVISIBLE    | 1 | Syntax styling in small increments as background idle-task
    SC_IDLESTYLING_AFTERVISIBLE | 2 | Syntax styling for following text as idle-task
    SC_IDLESTYLING_ALL          | 3 | Syntax styling for preceding and following text as idle-task

All of these values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_IME

Used by setIMEInteraction

    Key             |   | Description
    ----------------+---+-------------
    SC_IME_WINDOWED | 0 | Uses a floating window for IME
    SC_IME_INLINE   | 1 | Puts the IME inline with the text

The SC_IME_INLINE may work better with features like rectangular and multiple selection.

%SC_INDENTGUIDE

Used by setIndentationGuides.

    Key               |   | Description
    ------------------+---+-------------
    SC_IV_NONE        | 0 | Not shown
    SC_IV_REAL        | 1 | Shown inside real indentation white space
    SC_IV_LOOKFORWARD | 2 | Shown beyond the actual indentation
    SC_IV_LOOKBOTH    | 3 | Shown beyond the actual indentation

The diffrence between the last two is subtle, and not single-line explainable; see the Scintilla documentation for SCI_SETINDENTATIONGUIDES for details on the difference.

%SC_INDIC

There is only one predefined flag value defined for indicSetFlags, plus a flag bit and a mask that can be used in conjunction with setIndicatorValue.

    Key                     |           | Description
    ------------------------+-----------+-------------
    SC_INDICFLAG_VALUEFORE  | 1         | The indicator foreground depends on file location
    ------------------------+-----------+-------------
    SC_INDICVALUEMASK       | 0x0FFFFFF | Mask for getting value without the flag bit
    SC_INDICVALUEBIT        | 0x1000000 | Flag bit set true in setIndicatorValue()
%SC_INDICSTYLE

Used by indicSetStyle

    ------------------------+----+--------------------------------------
    INDIC_PLAIN             | 0  | A plain underline.
    INDIC_SQUIGGLE          | 1  | A squiggly underline.
    INDIC_TT                | 2  | A line of small T shapes.
    INDIC_DIAGONAL          | 3  | Diagonal hatching.
    INDIC_STRIKE            | 4  | Strike out.
    INDIC_HIDDEN            | 5  | An indicator with no visual effect.
    INDIC_BOX               | 6  | A rectangle around the text.
    INDIC_ROUNDBOX          | 7  | A rectangle with rounded corners
    INDIC_STRAIGHTBOX       | 8  | A rectangle, filled but semi-transparent
    INDIC_FULLBOX           | 16 | A rectangle, filled but semi-transparent (larger)
    INDIC_DASH              | 9  | A dashed underline.
    INDIC_DOTS              | 10 | A dotted underline.
    INDIC_SQUIGGLELOW       | 11 | Smaller squiggly underline.
    INDIC_DOTBOX            | 12 | A dotted rectangle around the text.
    INDIC_GRADIENT          | 20 | A vertical gradient, top to bottom.
    INDIC_GRADIENTCENTRE    | 21 | A vertical gradient, center to outside.
    INDIC_SQUIGGLEPIXMAP    | 13 | A squiggle drawn more efficiently but not as pretty.
    INDIC_COMPOSITIONTHICK  | 14 | A 2-pixel underline, lower than INDIC_PLAIN
    INDIC_COMPOSITIONTHIN   | 15 | A 1-pixel underline.
    INDIC_TEXTFORE          | 17 | Change text foreground.
    INDIC_POINT             | 18 | A triangle below the start of the indicator.
    INDIC_POINTCHARACTER    | 19 | A triangle below the center of the first character.
    INDIC_EXPLORERLINK      | 22 | Indicator used for hyperlinks [npp7.9]
    ------------------------+----+--------------------------------------
    INDICATOR_CONTAINER     | 8  | Containers use indexes 8-31 [npp7.8]
    INDICATOR_IME           | 32 | IME use indexes 32 - IME_MAX [npp7.8]
    INDICATOR_IME_MAX       | 35 | Maximum IME index [npp7.8]
    INDICATOR_MAX           | 35 | Maximum indicator index [npp7.8]

Note that the INDICATOR_* values are used as style indexes, not style values. (The Scintilla Documentation also gives older INDIC_ values for those, but claims that the INDICATOR_ name is preferred, so that is all that is implemented here.)

[npp#.#] Value added in particular version of Notepad++; not available in earlier versions. [npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_KEY

Used by key binding methods

Available Keys:

    Hash-Key Name | Keycode | Description
    --------------+---------+-------------
    SCK_ESCAPE    | 7       | Esc/Escape
    SCK_BACK      | 8       | Backspace
    SCK_TAB       | 9       | Tab
    SCK_RETURN    | 13      | Return/Enter
    SCK_DOWN      | 300     | Down arrow
    SCK_UP        | 301     | Up arrow
    SCK_LEFT      | 302     | Left arrow
    SCK_RIGHT     | 303     | Right arrow
    SCK_HOME      | 304     | Home
    SCK_END       | 305     | End
    SCK_PRIOR     | 306     | PageUp
    SCK_NEXT      | 307     | PageDown
    SCK_DELETE    | 308     | Del/Delete
    SCK_INSERT    | 309     | Ins/Insert
    SCK_ADD       | 310     | Numeric Keypad +
    SCK_SUBTRACT  | 311     | Numeric Keypad -
    SCK_DIVIDE    | 312     | Numeric Keypad /
    SCK_WIN       | 313     | Windows Key
    SCK_RWIN      | 314     | Right Windows Key
    SCK_MENU      | 315     | Menu Key

Key Modifiers:

    Hash-Key Name | Value   | Description
    --------------+---------+-------------
    SCMOD_NORM    | 0       | Unmodified
    SCMOD_SHIFT   | 1       | Shift
    SCMOD_CTRL    | 2       | Ctrl
    SCMOD_ALT     | 4       | Alt
    SCMOD_SUPER   | 8       | Super can indicate the Windows key as the modifier
    SCMOD_META    | 16      | Some systems may use Meta instead of Ctrl or Alt

For normal keys (letters, numbers, punctuation), the $km ("key+modifier") code is the codepoint for that character. For special keys (arrows, Escape, and similar), use the $SCKEY{SCK_*} entry for that key. If you want to indicate a modified key, add on the $SCKEY{SCK_*} shifted 16 bits up.

    # Ctrl+HOME being assigned to SCI_HOME
    my $km_ctrl_home = $SCKEY{SCK_HOME} + ($SCKEY{SCMOD_CTRL}<<16);
    notepad->assignCmdKey($km_alt_q, $SCIMSG{SCI_HOME});

    # Alt+Q being assigned to SCI_SELECTALL
    my $km_alt_q = ord('Q') + ($SCKEY{SCMOD_ALT}<<16);
    notepad->assignCmdKey($km_alt_q, $SCIMSG{SCI_SELECTALL});
%SC_KEYWORDSET

Used by setKeyWords.

The only key is KEYWORDSET_MAX, which indicates the maximum index for the keywordSet. It is zero based, so there are $KEYWORDSET{KEYWORDSET_MAX}+1 sets of keywords allowed, with indexes from 0 to $KEYWORDSET{KEYWORDSET_MAX}.

This is generally used by lexers, to define the different groups of keywords (like "NUMBER", "INSTRUCTION WORD", "STRING", "REGEX" and similar in the Perl lexer).

%SC_LINECHARACTERINDEX

Used by getLineCharacterIndex.

    Key                         |   | Description
    ----------------------------|---|-------------
    SC_LINECHARACTERINDEX_NONE  | 0 | If only bytes are indexed
    SC_LINECHARACTERINDEX_UTF32 | 1 | If whole 32bit (4byte) UTF32 characters are indexed
    SC_LINECHARACTERINDEX_UTF16 | 2 | If whole 16bit (2byte) UTF16 code units are indexed

All of these values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_MARGIN

Used by setMarginTypeN and other margin-related commands

    Key                           |   | Description
    ------------------------------+---+-------------
                   margin indexes |   |
    SC_MAX_MARGIN                 | 4 | The initial margins are indexed 0 .. SC_MAX_MARGIN
    ------------------------------+---+-------------
                     margin types |   |
    SC_MARGIN_SYMBOL              | 0 | Use a symbol in the margin
    SC_MARGIN_NUMBER              | 1 | Use line number in the margin
    SC_MARGIN_TEXT                | 4 | Use left-justified text in the margin
    SC_MARGIN_RTEXT               | 5 | Use right-justified text in the margin
    SC_MARGIN_BACK                | 2 | Use STYLE_DEFAULT's background color on a margin-symbol
    SC_MARGIN_FORE                | 3 | Use STYLE_DEFAULT's foreground color on a margin-symbol
    SC_MARGIN_COLOUR              | 6 | Use spefied color on a margin-symbol [npp7.8]
    ------------------------------+---+-------------
                   margin options |   |
    SC_MARGINOPTION_NONE          | 0 | No option set via setMarginOptions()
    SC_MARGINOPTION_SUBLINESELECT | 1 | Affects whole-line selection of wrapped text

If the SUBLINESELECT is enabled, clicking on the margin will only select the visible "line" (even if line-wrap extends the real line to more than one screen line); if disabled (default), clicking on the margin will select the entire real line (even if line-wrap extends the real line to more than one screen line)

See also Scintilla's MARGIN documentation.

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_MARK

Used as the $markerSymbol by markerDefine and related metbhods.

    Key                             |
    --------------------------------|-------
    SC_MARK_ARROW                   | 2
    SC_MARK_ARROWDOWN               | 6
    SC_MARK_ARROWS                  | 24
    SC_MARK_AVAILABLE               | 28
    SC_MARK_BACKGROUND              | 22
    SC_MARK_BOOKMARK                | 31
    SC_MARK_BOXMINUS                | 14
    SC_MARK_BOXMINUSCONNECTED       | 15
    SC_MARK_BOXPLUS                 | 12
    SC_MARK_BOXPLUSCONNECTED        | 13
    SC_MARK_CHARACTER               | 10000
    SC_MARK_CIRCLE                  | 0
    SC_MARK_CIRCLEMINUS             | 20
    SC_MARK_CIRCLEMINUSCONNECTED    | 21
    SC_MARK_CIRCLEPLUS              | 18
    SC_MARK_CIRCLEPLUSCONNECTED     | 19
    SC_MARK_DOTDOTDOT               | 23
    SC_MARK_EMPTY                   | 5
    SC_MARK_FULLRECT                | 26
    SC_MARK_LCORNER                 | 10
    SC_MARK_LCORNERCURVE            | 16
    SC_MARK_LEFTRECT                | 27
    SC_MARK_MINUS                   | 7
    SC_MARK_PIXMAP                  | 25
    SC_MARK_PLUS                    | 8
    SC_MARK_RGBAIMAGE               | 30
    SC_MARK_ROUNDRECT               | 1
    SC_MARK_SHORTARROW              | 4
    SC_MARK_SMALLRECT               | 3
    SC_MARK_TCORNER                 | 11
    SC_MARK_TCORNERCURVE            | 17
    SC_MARK_UNDERLINE               | 29
    SC_MARK_VERTICALBOOKMARK        | 32    [npp7.8]
    SC_MARK_VLINE                   | 9

Hopefully, the names describe the symbol. If it's not sufficient, then see the Scintilla documentation for SCI_MARKERDEFINE, which has an image of the marker symbols.

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_MARKNUM

Used by marker-related methods.

    Key                      |            | Description
    -------------------------+------------+------------------------------------
    MARKER_MAX               | 31         | The highest $markerNumber available
    SC_MARKNUM_FOLDEROPEN    | 31         | Start of uncollapsed folding region
    SC_MARKNUM_FOLDER        | 30         | Start of collapsed folding region
    SC_MARKNUM_FOLDERSUB     | 29         | Inside of uncollapsed folding region
    SC_MARKNUM_FOLDERTAIL    | 28         | End of uncollapsed folding region
    SC_MARKNUM_FOLDEREND     | 25         | Branch of collapsed folding region (such as "else" block)
    SC_MARKNUM_FOLDEROPENMID | 26         | Branch of uncollapsed folding region (such as "else" block)
    SC_MARKNUM_FOLDERMIDTAIL | 27         | Branch-of uncollapsed folding region (such as "else" block)
    -------------------------+------------+------------------------------------
    SC_MASK_FOLDERS          | 0xFE000000 | Useful for setMarginMaskN
%SC_MOD

Used by setModEventMask and the SCN_MODIFIED notification.

    Key                     | Value    |
    ------------------------+----------+-
    SC_LASTSTEPINUNDOREDO   | 0x100    |
    SC_MULTISTEPUNDOREDO    | 0x80     |
    SC_MULTILINEUNDOREDO    | 0x1000   |
    SC_STARTACTION          | 0x2000   |
    SC_MOD_NONE             | 0x0      |
    SC_MOD_BEFOREDELETE     | 0x800    |
    SC_MOD_BEFOREINSERT     | 0x400    |
    SC_MOD_CHANGEANNOTATION | 0x20000  |
    SC_MOD_CHANGEFOLD       | 0x8      |
    SC_MOD_CHANGEINDICATOR  | 0x4000   |
    SC_MOD_CHANGELINESTATE  | 0x8000   |
    SC_MOD_CHANGEMARGIN     | 0x10000  |
    SC_MOD_CHANGEMARKER     | 0x200    |
    SC_MOD_CHANGESTYLE      | 0x4      |
    SC_MOD_CHANGETABSTOPS   | 0x200000 |
    SC_MOD_CONTAINER        | 0x40000  |
    SC_MOD_DELETETEXT       | 0x2      |
    SC_MOD_INSERTCHECK      | 0x100000 |
    SC_MOD_INSERTTEXT       | 0x1      |
    SC_MOD_LEXERSTATE       | 0x80000  |
    SC_PERFORMED_REDO       | 0x40     |
    SC_PERFORMED_UNDO       | 0x20     |
    SC_PERFORMED_USER       | 0x10     |
    SC_MODEVENTMASKALL      | 0x3FFFFF |

If you details on what they each mean, you should see SCN_MODIFIED in the Scintilla Docs.

%SC_MULTIAUTOC

Used by autoCSetMulti. Affects how autocompletion interacts with multi-selection (having more than one area selelected at once).

    Key                |   | Autocompletion affects ...
    -------------------|---|-------------
    SC_MULTIAUTOC_ONCE | 0 | ... only the first area of a multi-selection (default)
    SC_MULTIAUTOC_EACH | 1 | ... each area of the multi-selection
%SC_MULTIPASTE

Used by setMultiPaste.

    Key                |   | Paste into ...
    -------------------|---|-------------
    SC_MULTIPASTE_ONCE | 0 | ... only the first area of a multi-selection (default)
    SC_MULTIPASTE_EACH | 1 | ... each area of the multi-selection
%SC_PHASES

Used by setPhasesDraw.

    Key                 |   | Description
    --------------------|---|-------------
    SC_PHASES_ONE       | 0 | (deprecated) Single drawing phase
    SC_PHASES_TWO       | 1 | Draw background first, then text above it
    SC_PHASES_MULTIPLE  | 2 | Draw whole area multiple times, once per feature
%SC_POPUP

Used by usePopUp.

    Key             |   | Description
    ----------------|---|-------------
    SC_POPUP_NEVER  | 0 | Never show default editing menu
    SC_POPUP_ALL    | 1 | Show default editing menu if clicking on scintilla
    SC_POPUP_TEXT   | 2 | Show default editing menu only if clicking on text area

All of these values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_PRINTCOLOURMODE

Used by setPrintColourMode.

    Key                             |   | Description
    --------------------------------|---|-------------
    SC_PRINT_NORMAL                 | 0 | Use screen colours, excluding line numbers in margins
    SC_PRINT_INVERTLIGHT            | 1 | For dark background, invert print colour and use white background
    SC_PRINT_BLACKONWHITE           | 2 | All text as black on white
    SC_PRINT_COLOURONWHITE          | 3 | All text as displayed colour, on white
    SC_PRINT_COLOURONWHITEDEFAULTBG | 4 | Use displayed foreground colour, background depends on style
    SC_PRINT_SCREENCOLOURS          | 5 | Use screen colours, including line numbers in margins [npp7.8]

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_SEL

Used by setSelectionMode.

    Key              |   | Description
    -----------------|---|-------------
    SC_SEL_STREAM    | 0 | Stream selection (default)
    SC_SEL_RECTANGLE | 1 | Rectangular (column) selection
    SC_SEL_LINES     | 2 | Select by lines
    SC_SEL_THIN      | 3 | Thin rectangle (allows zero-width column-selection)
%SC_STATUS

Used by getStatus.

    Key                     |      | Description
    ------------------------|------|-------------
    SC_STATUS_OK            | 0    | No failures
    SC_STATUS_FAILURE       | 1    | Generic failure
    SC_STATUS_BADALLOC      | 2    | Memory is exhausted
    SC_STATUS_WARN_REGEX    | 1001 | Regular expression is invalid
%SC_STYLE

Used by Style definition methods.

These styles correspond to Dialog Entries in Settings > Style Configurator > Global Styles

    Key                    |     | Dialog Entry
    -----------------------|-----|-------------
    STYLE_DEFAULT          | 32  | Default Style
    STYLE_LINENUMBER       | 33  | Line number margin
    STYLE_BRACELIGHT       | 34  | Brace highlight style
    STYLE_BRACEBAD         | 35  | Brace bad colour
    STYLE_CONTROLCHAR      | 36  | (*) Control Characters
    STYLE_INDENTGUIDE      | 37  | Indent guideline style
    STYLE_CALLTIP          | 38  | (*) Call tips
    STYLE_FOLDDISPLAYTEXT  | 39  | (*) Call tips [npp7.8]
    -----------------------|-----|-------------
    STYLE_LASTPREDEFINED   | 39  | (*) This is the last of Scintilla's predefined style indexes
    STYLE_MAX              | 255 | (*) This is the last style number index available
    -----------------------|-----|-------------
    NPP_STYLE_MARK5        | 21  | (+) Mark Style 5
    NPP_STYLE_MARK4        | 22  | (+) Mark Style 4
    NPP_STYLE_MARK3        | 23  | (+) Mark Style 3
    NPP_STYLE_MARK2        | 24  | (+) Mark Style 2
    NPP_STYLE_MARK1        | 25  | (+) Mark Style 1
    NPP_STYLE_TAGATTR      | 26  | (+) Tags attribute
    NPP_STYLE_TAGMATCH     | 27  | (+) Tags match highlighting
    NPP_STYLE_HILITE_INCR  | 28  | (+) Incremental highlight all
    NPP_STYLE_HILITE_SMART | 29  | (+) Smart HighLighting
    NPP_STYLE_FINDMARK     | 31  | (+) Find Mark Style

*: these keys do not have a corresponding entry in the Style Configurator.

+: This hash also has values not defined by Scintilla, but used by Notepad++'s Global Styles. It still doesn't cover all of Notepad++'s Global Styles available, because they do not use Scintilla's styler rules to implement those styles (many use the same styleID of 0, and one uses a styleID greater than STYLE_MAX), so you might not be able to set those using the style defintion methods.

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_TABDRAW

Used by setTabDrawMode.

    Key            |   | Description
    ---------------|---|-------------
    SCTD_LONGARROW | 0 | Arrow stretching until tabstop
    SCTD_STRIKEOUT | 1 | Horizontal line stretching until tabstop

All of these values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_TECHNOLOGY

Used by setTechnology.

    Key                             |   | Description
    --------------------------------|---|-------------
    SC_TECHNOLOGY_DEFAULT           | 0 | Use standard API
    SC_TECHNOLOGY_DIRECTWRITE       | 1 | Use DirectWrite API
    SC_TECHNOLOGY_DIRECTWRITERETAIN | 2 | Use DirectWrite API, retaining the frame
    SC_TECHNOLOGY_DIRECTWRITEDC     | 3 | use DirectWrite API to draw into a GDI DC

In Windows XP (and earlier), only SC_TECHNOLOGY_DEFAULT is supported.

%SC_TEXTRETRIEVAL

Used internally by Text retrieval and modification methods to indicate an invalid position was passed. Never returned to the user.

%SC_TIMEOUT

Used by setMouseDwellTime.

    Key             |          | Description
    ----------------|----------|-------------
    SC_TIME_FOREVER | 10000000 | No dwell events are generated
%SC_TYPE

Used by propertyType.

    Key             |   | Description
    ----------------|---|-------------
    SC_TYPE_BOOLEAN | 0 | Property is true/false
    SC_TYPE_INTEGER | 1 | Property is integer
    SC_TYPE_STRING  | 2 | Property is string
%SC_UNDO

Used by addUndoAction.

    Key               |   | Description
    ------------------|---|-------------
    UNDO_MAY_COALESCE | 1 | combine this action with insert/delete for single group undo
    UNDO_NONE         | 0 | keep undo separate from insert/delete (default)
%SC_VIRTUALSPACE

Used by setVirtualSpaceOptions

    Key                         |   | Description
    ----------------------------+---+--------------------------------------------------
    SCVS_NONE                   | 0 | Disables all use of virtual space
    SCVS_RECTANGULARSELECTION   | 1 | Enable virtual space for rectangular selections
    SCVS_USERACCESSIBLE         | 2 | Enable virtual space for other circumstances
    SCVS_NOWRAPLINESTART        | 4 | Prevents left-arrow movement from column 0 wrapping to previous line [npp7.8]

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_VISIBLE

Used by setVisiblePolicy.

    Key            |   | Description
    ---------------|---|-------------
    VISIBLE_SLOP   | 1 | Adds a buffer zone
    VISIBLE_STRICT | 4 | Enforces the zone strictly; caret is centered in slop
%SC_WEIGHT

Used by styleSetWeight.

    Key                 |     | Description
    --------------------|-----|-------------
    SC_WEIGHT_NORMAL    | 400 | Normal
    SC_WEIGHT_BOLD      | 700 | Bold
    SC_WEIGHT_SEMIBOLD  | 600 | Between normal and bold
%SC_WHITESPACE

Used by setViewWS

    Key                         |   | Description
    ----------------------------+---+--------------------------------------------------
    SCWS_INVISIBLE              | 0 | The normal display mode with white space displayed as an empty background colour.
    SCWS_VISIBLEALWAYS          | 1 | White space characters are drawn as dots and arrows,
    SCWS_VISIBLEAFTERINDENT     | 2 | White space used for indentation is displayed normally but after the first visible character, it is shown as dots and arrows.
    SCWS_VISIBLEONLYININDENT    | 3 | White space used for indentation is displayed as dots and arrows. [npp7.8]

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_WRAPINDENT

Used by setWrapIndent.

    Key                         |   | Description
    ----------------------------|---|-------------
    SC_WRAPINDENT_FIXED         | 0 | Wrapped lines are based on setWrapStartIndent
    SC_WRAPINDENT_SAME          | 1 | Wrapped lines match the starting indentation
    SC_WRAPINDENT_INDENT        | 2 | Wrapped sublines are aligned to first subline indent plus one more level of indentation
    SC_WRAPINDENT_DEEPINDENT    | 3 | Wrapped sublines are aligned to first subline indent plus two more levels of indentation [npp7.8]

[npp7.8] Noted values require at least Scintilla v4.2.0, found in Notepad++ v7.8 and newer.

%SC_WRAPMODE

Used by setWrapMode.

    Key                |   | Description
    -------------------|---|-------------
    SC_WRAP_NONE       | 0 | No wrap
    SC_WRAP_WORD       | 1 | Wrap on word or style boundaries
    SC_WRAP_CHAR       | 2 | Wrap between any char
    SC_WRAP_WHITESPACE | 3 | Wrap at whitespace
%SC_WRAPVISUALFLAG

Used by setWrapVisualFlags.

    Key                      |        | Description
    -------------------------|--------|-------------
    SC_WRAPVISUALFLAG_NONE   | 0x0000 | No visual flags
    SC_WRAPVISUALFLAG_END    | 0x0001 | Visual flag at end of each subline
    SC_WRAPVISUALFLAG_START  | 0x0002 | Visual flag at start of each subline
    SC_WRAPVISUALFLAG_MARGIN | 0x0004 | Visual flag in the line-number margin
%SC_WRAPVISUALFLAGLOC

Used by setWrapVisualFlagsLocation.

    Key                                |        | Description
    -----------------------------------|--------|-------------
    SC_WRAPVISUALFLAGLOC_DEFAULT       | 0x0000 | Near border
    SC_WRAPVISUALFLAGLOC_END_BY_TEXT   | 0x0001 | End of subline
    SC_WRAPVISUALFLAGLOC_START_BY_TEXT | 0x0002 | Beginning of subline

NOTIFICATIONS

Not yet used, but the constants are available

%SCINTILLANOTIFICATION

If you are interested, you can find all the message keys with code like the following:

    use Win32::Mechanize::NotepadPlusPlus ':vars';
    printf "%-39s => %d\n", $_, $SCINTILLANOTIFICATION{$_} for sort { $SCINTILLANOTIFICATION{$a} <=> $SCINTILLANOTIFICATION{$b} } keys %SCINTILLANOTIFICATION;   # prints all scintilla notification keys in numerical order
%SCN_ARGS

When notifications are implemented, these will be split into multiple hashes and documented more fully.

INSTALLATION

Installed as part of Win32::Mechanize::NotepadPlusPlus

AUTHOR

Peter C. Jones <petercj AT cpan DOT org>

Please report any bugs or feature requests emailing <bug-Win32-Mechanize-NotepadPlusPlus AT rt.cpan.org> or thru the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Win32-Mechanize-NotepadPlusPlus, or thru the repository's interface at https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues.

COPYRIGHT

Copyright (C) 2019,2020 Peter C. Jones

LICENSE

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information.