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.
------------------------+----+--------------------------------------
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.)

[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.