// NPP plugin platform for .Net v0.94.00 by Kasper B. Graversen etc.
//
// This file should stay in sync with the CPP project file
// "notepad-plus-plus/scintilla/include/Scintilla.iface"
// found at
// https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/scintilla/include/Scintilla.iface
using System;
using System.Runtime.InteropServices;
namespace NppChnConvPlugin.NppPluginInfrastructure
{
///
/// Compatible with Windows NMHDR.
/// hwndFrom is really an environment specific window handle or pointer
/// but most clients of Scintilla.h do not have this type visible.
///
[StructLayout(LayoutKind.Sequential)]
public struct ScNotificationHeader
{
///
/// environment specific window handle/pointer
///
public IntPtr hwndFrom;
///
/// CtrlID of the window issuing the notification
///
public IntPtr IdFrom;
///
/// The SCN_* notification Code
///
public uint Code;
}
[StructLayout(LayoutKind.Sequential)]
public struct ScNotification
{
public ScNotificationHeader Header;
private int position; /* SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION */
public int character; /* SCN_CHARADDED, SCN_KEY, SCN_AUTOCCOMPLETE, SCN_AUTOCSELECTION, SCN_USERLISTSELECTION */
public int Mmodifiers; /* SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE */
public int ModificationType; /* SCN_MODIFIED - modification types are name "SC_MOD_*" */
public IntPtr TextPointer; /* SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION, SCN_URIDROPPED */
public int Length; /* SCN_MODIFIED */
public int LinesAdded; /* SCN_MODIFIED */
public int Message; /* SCN_MACRORECORD */
public IntPtr wParam; /* SCN_MACRORECORD */
public IntPtr lParam; /* SCN_MACRORECORD */
///
/// 0-based index
///
public int LineNumber; /* SCN_MODIFIED */
public int FoldLevelNow; /* SCN_MODIFIED */
public int FoldLevelPrev; /* SCN_MODIFIED */
public int Margin; /* SCN_MARGINCLICK */
public int ListType; /* SCN_USERLISTSELECTION */
public int X; /* SCN_DWELLSTART, SCN_DWELLEND */
public int Y; /* SCN_DWELLSTART, SCN_DWELLEND */
public int Token; /* SCN_MODIFIED with SC_MOD_CONTAINER */
public int AnnotationLinesAdded; /* SC_MOD_CHANGEANNOTATION */
public int Updated; /* SCN_UPDATEUI */
public int ListCompletionMethod; /* SCN_AUTOCSELECTION, SCN_AUTOCCOMPLETED, SCN_USERLISTSELECTION */
///
/// SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION
///
public Position Position { get { return new Position(position); } }
///
/// Character of the notification - eg keydown
/// SCN_CHARADDED, SCN_KEY, SCN_AUTOCCOMPLETE, SCN_AUTOCSELECTION, SCN_USERLISTSELECTION
///
public char Character { get { return (char) character; } }
}
[Flags]
public enum SciMsg : uint
{
/* ++Autogenerated -- start of section automatically generated from Scintilla.iface */
INVALID_POSITION = 0xFFFFFFFF,
SCI_START = 2000,
SCI_OPTIONAL_START = 3000,
SCI_LEXER_START = 4000,
/// Add text to the document at current position.
SCI_ADDTEXT = 2001,
/// Add array of cells to document.
SCI_ADDSTYLEDTEXT = 2002,
/// Insert string at a position.
SCI_INSERTTEXT = 2003,
/// Change the text that is being inserted in response to SC_MOD_INSERTCHECK
SCI_CHANGEINSERTION = 2672,
/// Delete all text in the document.
SCI_CLEARALL = 2004,
/// Delete a range of text in the document.
SCI_DELETERANGE = 2645,
/// Set all style bytes to 0, remove all folding information.
SCI_CLEARDOCUMENTSTYLE = 2005,
/// Returns the number of bytes in the document.
SCI_GETLENGTH = 2006,
/// Returns the character byte at the position.
SCI_GETCHARAT = 2007,
/// Returns the position of the caret.
SCI_GETCURRENTPOS = 2008,
/// Returns the position of the opposite end of the selection to the caret.
SCI_GETANCHOR = 2009,
/// Returns the style byte at the position.
SCI_GETSTYLEAT = 2010,
/// Redoes the next action on the undo history.
SCI_REDO = 2011,
/// Choose between collecting actions into the undo
/// history and discarding them.
SCI_SETUNDOCOLLECTION = 2012,
/// Select all the text in the document.
SCI_SELECTALL = 2013,
/// Remember the current position in the undo history as the position
/// at which the document was saved.
SCI_SETSAVEPOINT = 2014,
/// Retrieve a buffer of cells.
/// Returns the number of bytes in the buffer not including terminating NULs.
SCI_GETSTYLEDTEXT = 2015,
/// Are there any redoable actions in the undo history?
SCI_CANREDO = 2016,
/// Retrieve the line number at which a particular marker is located.
SCI_MARKERLINEFROMHANDLE = 2017,
/// Delete a marker.
SCI_MARKERDELETEHANDLE = 2018,
/// Is undo history being collected?
SCI_GETUNDOCOLLECTION = 2019,
SCWS_INVISIBLE = 0,
SCWS_VISIBLEALWAYS = 1,
SCWS_VISIBLEAFTERINDENT = 2,
/// Are white space characters currently visible?
/// Returns one of SCWS_* constants.
SCI_GETVIEWWS = 2020,
/// Make white space characters invisible, always visible or visible outside indentation.
SCI_SETVIEWWS = 2021,
/// Find the position from a point within the window.
SCI_POSITIONFROMPOINT = 2022,
/// Find the position from a point within the window but return
/// INVALID_POSITION if not close to text.
SCI_POSITIONFROMPOINTCLOSE = 2023,
/// Set caret to start of a line and ensure it is visible.
SCI_GOTOLINE = 2024,
/// Set caret to a position and ensure it is visible.
SCI_GOTOPOS = 2025,
/// Set the selection anchor to a position. The anchor is the opposite
/// end of the selection from the caret.
SCI_SETANCHOR = 2026,
/// Retrieve the text of the line containing the caret.
/// Returns the index of the caret on the line.
/// Result is NUL-terminated.
SCI_GETCURLINE = 2027,
/// Retrieve the position of the last correctly styled character.
SCI_GETENDSTYLED = 2028,
SC_EOL_CRLF = 0,
SC_EOL_CR = 1,
SC_EOL_LF = 2,
/// Convert all line endings in the document to one mode.
SCI_CONVERTEOLS = 2029,
/// Retrieve the current end of line mode - one of CRLF, CR, or LF.
SCI_GETEOLMODE = 2030,
/// Set the current end of line mode.
SCI_SETEOLMODE = 2031,
/// Set the current styling position to pos and the styling mask to mask.
/// The styling mask can be used to protect some bits in each styling byte from modification.
SCI_STARTSTYLING = 2032,
/// Change style from current styling position for length characters to a style
/// and move the current styling position to after this newly styled segment.
SCI_SETSTYLING = 2033,
/// Is drawing done first into a buffer or direct to the screen?
SCI_GETBUFFEREDDRAW = 2034,
/// If drawing is buffered then each line of text is drawn into a bitmap buffer
/// before drawing it to the screen to avoid flicker.
SCI_SETBUFFEREDDRAW = 2035,
/// Change the visible size of a tab to be a multiple of the width of a space character.
SCI_SETTABWIDTH = 2036,
/// Retrieve the visible size of a tab.
SCI_GETTABWIDTH = 2121,
/// Clear explicit tabstops on a line.
SCI_CLEARTABSTOPS = 2675,
/// Add an explicit tab stop for a line.
SCI_ADDTABSTOP = 2676,
/// Find the next explicit tab stop position on a line after a position.
SCI_GETNEXTTABSTOP = 2677,
SC_CP_UTF8 = 65001,
/// Set the code page used to interpret the bytes of the document as characters.
/// The SC_CP_UTF8 value can be used to enter Unicode mode.
SCI_SETCODEPAGE = 2037,
SC_IME_WINDOWED = 0,
SC_IME_INLINE = 1,
/// Is the IME displayed in a winow or inline?
SCI_GETIMEINTERACTION = 2678,
/// Choose to display the the IME in a winow or inline.
SCI_SETIMEINTERACTION = 2679,
MARKER_MAX = 31,
SC_MARK_CIRCLE = 0,
SC_MARK_ROUNDRECT = 1,
SC_MARK_ARROW = 2,
SC_MARK_SMALLRECT = 3,
SC_MARK_SHORTARROW = 4,
SC_MARK_EMPTY = 5,
SC_MARK_ARROWDOWN = 6,
SC_MARK_MINUS = 7,
SC_MARK_PLUS = 8,
SC_MARK_VLINE = 9,
SC_MARK_LCORNER = 10,
SC_MARK_TCORNER = 11,
SC_MARK_BOXPLUS = 12,
SC_MARK_BOXPLUSCONNECTED = 13,
SC_MARK_BOXMINUS = 14,
SC_MARK_BOXMINUSCONNECTED = 15,
SC_MARK_LCORNERCURVE = 16,
SC_MARK_TCORNERCURVE = 17,
SC_MARK_CIRCLEPLUS = 18,
SC_MARK_CIRCLEPLUSCONNECTED = 19,
SC_MARK_CIRCLEMINUS = 20,
SC_MARK_CIRCLEMINUSCONNECTED = 21,
SC_MARK_BACKGROUND = 22,
SC_MARK_DOTDOTDOT = 23,
SC_MARK_ARROWS = 24,
SC_MARK_PIXMAP = 25,
SC_MARK_FULLRECT = 26,
SC_MARK_LEFTRECT = 27,
SC_MARK_AVAILABLE = 28,
SC_MARK_UNDERLINE = 29,
SC_MARK_RGBAIMAGE = 30,
SC_MARK_BOOKMARK = 31,
SC_MARK_CHARACTER = 10000,
SC_MARKNUM_FOLDEREND = 25,
SC_MARKNUM_FOLDEROPENMID = 26,
SC_MARKNUM_FOLDERMIDTAIL = 27,
SC_MARKNUM_FOLDERTAIL = 28,
SC_MARKNUM_FOLDERSUB = 29,
SC_MARKNUM_FOLDER = 30,
SC_MARKNUM_FOLDEROPEN = 31,
SC_MASK_FOLDERS = 0xFE000000,
/// Set the symbol used for a particular marker number.
SCI_MARKERDEFINE = 2040,
/// Set the foreground colour used for a particular marker number.
SCI_MARKERSETFORE = 2041,
/// Set the background colour used for a particular marker number.
SCI_MARKERSETBACK = 2042,
/// Set the background colour used for a particular marker number when its folding block is selected.
SCI_MARKERSETBACKSELECTED = 2292,
/// Enable/disable highlight for current folding bloc (smallest one that contains the caret)
SCI_MARKERENABLEHIGHLIGHT = 2293,
/// Add a marker to a line, returning an ID which can be used to find or delete the marker.
SCI_MARKERADD = 2043,
/// Delete a marker from a line.
SCI_MARKERDELETE = 2044,
/// Delete all markers with a particular number from all lines.
SCI_MARKERDELETEALL = 2045,
/// Get a bit mask of all the markers set on a line.
SCI_MARKERGET = 2046,
/// Find the next line at or after lineStart that includes a marker in mask.
/// Return -1 when no more lines.
SCI_MARKERNEXT = 2047,
/// Find the previous line before lineStart that includes a marker in mask.
SCI_MARKERPREVIOUS = 2048,
/// Define a marker from a pixmap.
SCI_MARKERDEFINEPIXMAP = 2049,
/// Add a set of markers to a line.
SCI_MARKERADDSET = 2466,
/// Set the alpha used for a marker that is drawn in the text area, not the margin.
SCI_MARKERSETALPHA = 2476,
SC_MAX_MARGIN = 4,
SC_MARGIN_SYMBOL = 0,
SC_MARGIN_NUMBER = 1,
SC_MARGIN_BACK = 2,
SC_MARGIN_FORE = 3,
SC_MARGIN_TEXT = 4,
SC_MARGIN_RTEXT = 5,
/// Set a margin to be either numeric or symbolic.
SCI_SETMARGINTYPEN = 2240,
/// Retrieve the type of a margin.
SCI_GETMARGINTYPEN = 2241,
/// Set the width of a margin to a width expressed in pixels.
SCI_SETMARGINWIDTHN = 2242,
/// Retrieve the width of a margin in pixels.
SCI_GETMARGINWIDTHN = 2243,
/// Set a mask that determines which markers are displayed in a margin.
SCI_SETMARGINMASKN = 2244,
/// Retrieve the marker mask of a margin.
SCI_GETMARGINMASKN = 2245,
/// Make a margin sensitive or insensitive to mouse clicks.
SCI_SETMARGINSENSITIVEN = 2246,
/// Retrieve the mouse click sensitivity of a margin.
SCI_GETMARGINSENSITIVEN = 2247,
/// Set the cursor shown when the mouse is inside a margin.
SCI_SETMARGINCURSORN = 2248,
/// Retrieve the cursor shown in a margin.
SCI_GETMARGINCURSORN = 2249,
STYLE_DEFAULT = 32,
STYLE_LINENUMBER = 33,
STYLE_BRACELIGHT = 34,
STYLE_BRACEBAD = 35,
STYLE_CONTROLCHAR = 36,
STYLE_INDENTGUIDE = 37,
STYLE_CALLTIP = 38,
STYLE_LASTPREDEFINED = 39,
STYLE_MAX = 255,
SC_CHARSET_ANSI = 0,
SC_CHARSET_DEFAULT = 1,
SC_CHARSET_BALTIC = 186,
SC_CHARSET_CHINESEBIG5 = 136,
SC_CHARSET_EASTEUROPE = 238,
SC_CHARSET_GB2312 = 134,
SC_CHARSET_GREEK = 161,
SC_CHARSET_HANGUL = 129,
SC_CHARSET_MAC = 77,
SC_CHARSET_OEM = 255,
SC_CHARSET_RUSSIAN = 204,
SC_CHARSET_CYRILLIC = 1251,
SC_CHARSET_SHIFTJIS = 128,
SC_CHARSET_SYMBOL = 2,
SC_CHARSET_TURKISH = 162,
SC_CHARSET_JOHAB = 130,
SC_CHARSET_HEBREW = 177,
SC_CHARSET_ARABIC = 178,
SC_CHARSET_VIETNAMESE = 163,
SC_CHARSET_THAI = 222,
SC_CHARSET_8859_15 = 1000,
/// Clear all the styles and make equivalent to the global default style.
SCI_STYLECLEARALL = 2050,
/// Set the foreground colour of a style.
SCI_STYLESETFORE = 2051,
/// Set the background colour of a style.
SCI_STYLESETBACK = 2052,
/// Set a style to be bold or not.
SCI_STYLESETBOLD = 2053,
/// Set a style to be italic or not.
SCI_STYLESETITALIC = 2054,
/// Set the size of characters of a style.
SCI_STYLESETSIZE = 2055,
/// Set the font of a style.
SCI_STYLESETFONT = 2056,
/// Set a style to have its end of line filled or not.
SCI_STYLESETEOLFILLED = 2057,
/// Reset the default style to its state at startup
SCI_STYLERESETDEFAULT = 2058,
/// Set a style to be underlined or not.
SCI_STYLESETUNDERLINE = 2059,
SC_CASE_MIXED = 0,
SC_CASE_UPPER = 1,
SC_CASE_LOWER = 2,
/// Get the foreground colour of a style.
SCI_STYLEGETFORE = 2481,
/// Get the background colour of a style.
SCI_STYLEGETBACK = 2482,
/// Get is a style bold or not.
SCI_STYLEGETBOLD = 2483,
/// Get is a style italic or not.
SCI_STYLEGETITALIC = 2484,
/// Get the size of characters of a style.
SCI_STYLEGETSIZE = 2485,
/// Get the font of a style.
/// Returns the length of the fontName
/// Result is NUL-terminated.
SCI_STYLEGETFONT = 2486,
/// Get is a style to have its end of line filled or not.
SCI_STYLEGETEOLFILLED = 2487,
/// Get is a style underlined or not.
SCI_STYLEGETUNDERLINE = 2488,
/// Get is a style mixed case, or to force upper or lower case.
SCI_STYLEGETCASE = 2489,
/// Get the character get of the font in a style.
SCI_STYLEGETCHARACTERSET = 2490,
/// Get is a style visible or not.
SCI_STYLEGETVISIBLE = 2491,
/// Get is a style changeable or not (read only).
/// Experimental feature, currently buggy.
SCI_STYLEGETCHANGEABLE = 2492,
/// Get is a style a hotspot or not.
SCI_STYLEGETHOTSPOT = 2493,
/// Set a style to be mixed case, or to force upper or lower case.
SCI_STYLESETCASE = 2060,
SC_FONT_SIZE_MULTIPLIER = 100,
/// Set the size of characters of a style. Size is in points multiplied by 100.
SCI_STYLESETSIZEFRACTIONAL = 2061,
/// Get the size of characters of a style in points multiplied by 100
SCI_STYLEGETSIZEFRACTIONAL = 2062,
SC_WEIGHT_NORMAL = 400,
SC_WEIGHT_SEMIBOLD = 600,
SC_WEIGHT_BOLD = 700,
/// Set the weight of characters of a style.
SCI_STYLESETWEIGHT = 2063,
/// Get the weight of characters of a style.
SCI_STYLEGETWEIGHT = 2064,
/// Set the character set of the font in a style.
SCI_STYLESETCHARACTERSET = 2066,
/// Set a style to be a hotspot or not.
SCI_STYLESETHOTSPOT = 2409,
/// Set the foreground colour of the main and additional selections and whether to use this setting.
SCI_SETSELFORE = 2067,
/// Set the background colour of the main and additional selections and whether to use this setting.
SCI_SETSELBACK = 2068,
/// Get the alpha of the selection.
SCI_GETSELALPHA = 2477,
/// Set the alpha of the selection.
SCI_SETSELALPHA = 2478,
/// Is the selection end of line filled?
SCI_GETSELEOLFILLED = 2479,
/// Set the selection to have its end of line filled or not.
SCI_SETSELEOLFILLED = 2480,
/// Set the foreground colour of the caret.
SCI_SETCARETFORE = 2069,
/// When key+modifier combination km is pressed perform msg.
SCI_ASSIGNCMDKEY = 2070,
/// When key+modifier combination km is pressed do nothing.
SCI_CLEARCMDKEY = 2071,
/// Drop all key mappings.
SCI_CLEARALLCMDKEYS = 2072,
/// Set the styles for a segment of the document.
SCI_SETSTYLINGEX = 2073,
/// Set a style to be visible or not.
SCI_STYLESETVISIBLE = 2074,
/// Get the time in milliseconds that the caret is on and off.
SCI_GETCARETPERIOD = 2075,
/// Get the time in milliseconds that the caret is on and off. 0 = steady on.
SCI_SETCARETPERIOD = 2076,
/// Set the set of characters making up words for when moving or selecting by word.
/// First sets defaults like SetCharsDefault.
SCI_SETWORDCHARS = 2077,
/// Get the set of characters making up words for when moving or selecting by word.
/// Returns the number of characters
SCI_GETWORDCHARS = 2646,
/// Start a sequence of actions that is undone and redone as a unit.
/// May be nested.
SCI_BEGINUNDOACTION = 2078,
/// End a sequence of actions that is undone and redone as a unit.
SCI_ENDUNDOACTION = 2079,
INDIC_PLAIN = 0,
INDIC_SQUIGGLE = 1,
INDIC_TT = 2,
INDIC_DIAGONAL = 3,
INDIC_STRIKE = 4,
INDIC_HIDDEN = 5,
INDIC_BOX = 6,
INDIC_ROUNDBOX = 7,
INDIC_STRAIGHTBOX = 8,
INDIC_DASH = 9,
INDIC_DOTS = 10,
INDIC_SQUIGGLELOW = 11,
INDIC_DOTBOX = 12,
INDIC_SQUIGGLEPIXMAP = 13,
INDIC_COMPOSITIONTHICK = 14,
INDIC_COMPOSITIONTHIN = 15,
INDIC_FULLBOX = 16,
INDIC_TEXTFORE = 17,
INDIC_IME = 32,
INDIC_IME_MAX = 35,
INDIC_MAX = 35,
INDIC_CONTAINER = 8,
INDIC0_MASK = 0x20,
INDIC1_MASK = 0x40,
INDIC2_MASK = 0x80,
INDICS_MASK = 0xE0,
/// Set an indicator to plain, squiggle or TT.
SCI_INDICSETSTYLE = 2080,
/// Retrieve the style of an indicator.
SCI_INDICGETSTYLE = 2081,
/// Set the foreground colour of an indicator.
SCI_INDICSETFORE = 2082,
/// Retrieve the foreground colour of an indicator.
SCI_INDICGETFORE = 2083,
/// Set an indicator to draw under text or over(default).
SCI_INDICSETUNDER = 2510,
/// Retrieve whether indicator drawn under or over text.
SCI_INDICGETUNDER = 2511,
/// Set a hover indicator to plain, squiggle or TT.
SCI_INDICSETHOVERSTYLE = 2680,
/// Retrieve the hover style of an indicator.
SCI_INDICGETHOVERSTYLE = 2681,
/// Set the foreground hover colour of an indicator.
SCI_INDICSETHOVERFORE = 2682,
/// Retrieve the foreground hover colour of an indicator.
SCI_INDICGETHOVERFORE = 2683,
SC_INDICVALUEBIT = 0x1000000,
SC_INDICVALUEMASK = 0xFFFFFF,
SC_INDICFLAG_VALUEFORE = 1,
/// Set the attributes of an indicator.
SCI_INDICSETFLAGS = 2684,
/// Retrieve the attributes of an indicator.
SCI_INDICGETFLAGS = 2685,
/// Set the foreground colour of all whitespace and whether to use this setting.
SCI_SETWHITESPACEFORE = 2084,
/// Set the background colour of all whitespace and whether to use this setting.
SCI_SETWHITESPACEBACK = 2085,
/// Set the size of the dots used to mark space characters.
SCI_SETWHITESPACESIZE = 2086,
/// Get the size of the dots used to mark space characters.
SCI_GETWHITESPACESIZE = 2087,
/// Divide each styling byte into lexical class bits (default: 5) and indicator
/// bits (default: 3). If a lexer requires more than 32 lexical states, then this
/// is used to expand the possible states.
SCI_SETSTYLEBITS = 2090,
/// Retrieve number of bits in style bytes used to hold the lexical state.
SCI_GETSTYLEBITS = 2091,
/// Used to hold extra styling information for each line.
SCI_SETLINESTATE = 2092,
/// Retrieve the extra styling information for a line.
SCI_GETLINESTATE = 2093,
/// Retrieve the last line number that has line state.
SCI_GETMAXLINESTATE = 2094,
/// Is the background of the line containing the caret in a different colour?
SCI_GETCARETLINEVISIBLE = 2095,
/// Display the background of the line containing the caret in a different colour.
SCI_SETCARETLINEVISIBLE = 2096,
/// Get the colour of the background of the line containing the caret.
SCI_GETCARETLINEBACK = 2097,
/// Set the colour of the background of the line containing the caret.
SCI_SETCARETLINEBACK = 2098,
/// Set a style to be changeable or not (read only).
/// Experimental feature, currently buggy.
SCI_STYLESETCHANGEABLE = 2099,
/// Display a auto-completion list.
/// The lenEntered parameter indicates how many characters before
/// the caret should be used to provide context.
SCI_AUTOCSHOW = 2100,
/// Remove the auto-completion list from the screen.
SCI_AUTOCCANCEL = 2101,
/// Is there an auto-completion list visible?
SCI_AUTOCACTIVE = 2102,
/// Retrieve the position of the caret when the auto-completion list was displayed.
SCI_AUTOCPOSSTART = 2103,
/// User has selected an item so remove the list and insert the selection.
SCI_AUTOCCOMPLETE = 2104,
/// Define a set of character that when typed cancel the auto-completion list.
SCI_AUTOCSTOPS = 2105,
/// Change the separator character in the string setting up an auto-completion list.
/// Default is space but can be changed if items contain space.
SCI_AUTOCSETSEPARATOR = 2106,
/// Retrieve the auto-completion list separator character.
SCI_AUTOCGETSEPARATOR = 2107,
/// Select the item in the auto-completion list that starts with a string.
SCI_AUTOCSELECT = 2108,
/// Should the auto-completion list be cancelled if the user backspaces to a
/// position before where the box was created.
SCI_AUTOCSETCANCELATSTART = 2110,
/// Retrieve whether auto-completion cancelled by backspacing before start.
SCI_AUTOCGETCANCELATSTART = 2111,
/// Define a set of characters that when typed will cause the autocompletion to
/// choose the selected item.
SCI_AUTOCSETFILLUPS = 2112,
/// Should a single item auto-completion list automatically choose the item.
SCI_AUTOCSETCHOOSESINGLE = 2113,
/// Retrieve whether a single item auto-completion list automatically choose the item.
SCI_AUTOCGETCHOOSESINGLE = 2114,
/// Set whether case is significant when performing auto-completion searches.
SCI_AUTOCSETIGNORECASE = 2115,
/// Retrieve state of ignore case flag.
SCI_AUTOCGETIGNORECASE = 2116,
/// Display a list of strings and send notification when user chooses one.
SCI_USERLISTSHOW = 2117,
/// Set whether or not autocompletion is hidden automatically when nothing matches.
SCI_AUTOCSETAUTOHIDE = 2118,
/// Retrieve whether or not autocompletion is hidden automatically when nothing matches.
SCI_AUTOCGETAUTOHIDE = 2119,
/// Set whether or not autocompletion deletes any word characters
/// after the inserted text upon completion.
SCI_AUTOCSETDROPRESTOFWORD = 2270,
/// Retrieve whether or not autocompletion deletes any word characters
/// after the inserted text upon completion.
SCI_AUTOCGETDROPRESTOFWORD = 2271,
/// Register an XPM image for use in autocompletion lists.
SCI_REGISTERIMAGE = 2405,
/// Clear all the registered XPM images.
SCI_CLEARREGISTEREDIMAGES = 2408,
/// Retrieve the auto-completion list type-separator character.
SCI_AUTOCGETTYPESEPARATOR = 2285,
/// Change the type-separator character in the string setting up an auto-completion list.
/// Default is '?' but can be changed if items contain '?'.
SCI_AUTOCSETTYPESEPARATOR = 2286,
/// Set the maximum width, in characters, of auto-completion and user lists.
/// Set to 0 to autosize to fit longest item, which is the default.
SCI_AUTOCSETMAXWIDTH = 2208,
/// Get the maximum width, in characters, of auto-completion and user lists.
SCI_AUTOCGETMAXWIDTH = 2209,
/// Set the maximum height, in rows, of auto-completion and user lists.
/// The default is 5 rows.
SCI_AUTOCSETMAXHEIGHT = 2210,
/// Set the maximum height, in rows, of auto-completion and user lists.
SCI_AUTOCGETMAXHEIGHT = 2211,
/// Set the number of spaces used for one level of indentation.
SCI_SETINDENT = 2122,
/// Retrieve indentation size.
SCI_GETINDENT = 2123,
/// Indentation will only use space characters if useTabs is false, otherwise
/// it will use a combination of tabs and spaces.
SCI_SETUSETABS = 2124,
/// Retrieve whether tabs will be used in indentation.
SCI_GETUSETABS = 2125,
/// Change the indentation of a line to a number of columns.
SCI_SETLINEINDENTATION = 2126,
/// Retrieve the number of columns that a line is indented.
SCI_GETLINEINDENTATION = 2127,
/// Retrieve the position before the first non indentation character on a line.
SCI_GETLINEINDENTPOSITION = 2128,
/// Retrieve the column number of a position, taking tab width into account.
SCI_GETCOLUMN = 2129,
/// Count characters between two positions.
SCI_COUNTCHARACTERS = 2633,
/// Show or hide the horizontal scroll bar.
SCI_SETHSCROLLBAR = 2130,
/// Is the horizontal scroll bar visible?
SCI_GETHSCROLLBAR = 2131,
SC_IV_NONE = 0,
SC_IV_REAL = 1,
SC_IV_LOOKFORWARD = 2,
SC_IV_LOOKBOTH = 3,
/// Show or hide indentation guides.
SCI_SETINDENTATIONGUIDES = 2132,
/// Are the indentation guides visible?
SCI_GETINDENTATIONGUIDES = 2133,
/// Set the highlighted indentation guide column.
/// 0 = no highlighted guide.
SCI_SETHIGHLIGHTGUIDE = 2134,
/// Get the highlighted indentation guide column.
SCI_GETHIGHLIGHTGUIDE = 2135,
/// Get the position after the last visible characters on a line.
SCI_GETLINEENDPOSITION = 2136,
/// Get the code page used to interpret the bytes of the document as characters.
SCI_GETCODEPAGE = 2137,
/// Get the foreground colour of the caret.
SCI_GETCARETFORE = 2138,
/// In read-only mode?
SCI_GETREADONLY = 2140,
/// Sets the position of the caret.
SCI_SETCURRENTPOS = 2141,
/// Sets the position that starts the selection - this becomes the anchor.
SCI_SETSELECTIONSTART = 2142,
/// Returns the position at the start of the selection.
SCI_GETSELECTIONSTART = 2143,
/// Sets the position that ends the selection - this becomes the currentPosition.
SCI_SETSELECTIONEND = 2144,
/// Returns the position at the end of the selection.
SCI_GETSELECTIONEND = 2145,
/// Set caret to a position, while removing any existing selection.
SCI_SETEMPTYSELECTION = 2556,
/// Sets the print magnification added to the point size of each style for printing.
SCI_SETPRINTMAGNIFICATION = 2146,
/// Returns the print magnification.
SCI_GETPRINTMAGNIFICATION = 2147,
SC_PRINT_NORMAL = 0,
SC_PRINT_INVERTLIGHT = 1,
SC_PRINT_BLACKONWHITE = 2,
SC_PRINT_COLOURONWHITE = 3,
SC_PRINT_COLOURONWHITEDEFAULTBG = 4,
/// Modify colours when printing for clearer printed text.
SCI_SETPRINTCOLOURMODE = 2148,
/// Returns the print colour mode.
SCI_GETPRINTCOLOURMODE = 2149,
SCFIND_WHOLEWORD = 0x2,
SCFIND_MATCHCASE = 0x4,
SCFIND_WORDSTART = 0x00100000,
SCFIND_REGEXP = 0x00200000,
SCFIND_POSIX = 0x00400000,
SCFIND_CXX11REGEX = 0x00800000,
/// Find some text in the document.
SCI_FINDTEXT = 2150,
/// On Windows, will draw the document into a display context such as a printer.
SCI_FORMATRANGE = 2151,
/// Retrieve the display line at the top of the display.
SCI_GETFIRSTVISIBLELINE = 2152,
/// Retrieve the contents of a line.
/// Returns the length of the line.
SCI_GETLINE = 2153,
/// Returns the number of lines in the document. There is always at least one.
SCI_GETLINECOUNT = 2154,
/// Sets the size in pixels of the left margin.
SCI_SETMARGINLEFT = 2155,
/// Returns the size in pixels of the left margin.
SCI_GETMARGINLEFT = 2156,
/// Sets the size in pixels of the right margin.
SCI_SETMARGINRIGHT = 2157,
/// Returns the size in pixels of the right margin.
SCI_GETMARGINRIGHT = 2158,
/// Is the document different from when it was last saved?
SCI_GETMODIFY = 2159,
/// Select a range of text.
SCI_SETSEL = 2160,
/// Retrieve the selected text.
/// Return the length of the text.
/// Result is NUL-terminated.
SCI_GETSELTEXT = 2161,
/// Retrieve a range of text.
/// Return the length of the text.
SCI_GETTEXTRANGE = 2162,
/// Draw the selection in normal style or with selection highlighted.
SCI_HIDESELECTION = 2163,
/// Retrieve the x value of the point in the window where a position is displayed.
SCI_POINTXFROMPOSITION = 2164,
/// Retrieve the y value of the point in the window where a position is displayed.
SCI_POINTYFROMPOSITION = 2165,
/// Retrieve the line containing a position.
SCI_LINEFROMPOSITION = 2166,
/// Retrieve the position at the start of a line.
SCI_POSITIONFROMLINE = 2167,
/// Scroll horizontally and vertically.
SCI_LINESCROLL = 2168,
/// Ensure the caret is visible.
SCI_SCROLLCARET = 2169,
/// Scroll the argument positions and the range between them into view giving
/// priority to the primary position then the secondary position.
/// This may be used to make a search match visible.
SCI_SCROLLRANGE = 2569,
/// Replace the selected text with the argument text.
SCI_REPLACESEL = 2170,
/// Set to read only or read write.
SCI_SETREADONLY = 2171,
/// Null operation.
SCI_NULL = 2172,
/// Will a paste succeed?
SCI_CANPASTE = 2173,
/// Are there any undoable actions in the undo history?
SCI_CANUNDO = 2174,
/// Delete the undo history.
SCI_EMPTYUNDOBUFFER = 2175,
/// Undo one action in the undo history.
SCI_UNDO = 2176,
/// Cut the selection to the clipboard.
SCI_CUT = 2177,
/// Copy the selection to the clipboard.
SCI_COPY = 2178,
/// Paste the contents of the clipboard into the document replacing the selection.
SCI_PASTE = 2179,
/// Clear the selection.
SCI_CLEAR = 2180,
/// Replace the contents of the document with the argument text.
SCI_SETTEXT = 2181,
/// Retrieve all the text in the document.
/// Returns number of characters retrieved.
/// Result is NUL-terminated.
SCI_GETTEXT = 2182,
/// Retrieve the number of characters in the document.
SCI_GETTEXTLENGTH = 2183,
/// Retrieve a pointer to a function that processes messages for this Scintilla.
SCI_GETDIRECTFUNCTION = 2184,
/// Retrieve a pointer value to use as the first argument when calling
/// the function returned by GetDirectFunction.
SCI_GETDIRECTPOINTER = 2185,
/// Set to overtype (true) or insert mode.
SCI_SETOVERTYPE = 2186,
/// Returns true if overtype mode is active otherwise false is returned.
SCI_GETOVERTYPE = 2187,
/// Set the width of the insert mode caret.
SCI_SETCARETWIDTH = 2188,
/// Returns the width of the insert mode caret.
SCI_GETCARETWIDTH = 2189,
/// Sets the position that starts the target which is used for updating the
/// document without affecting the scroll position.
SCI_SETTARGETSTART = 2190,
/// Get the position that starts the target.
SCI_GETTARGETSTART = 2191,
/// Sets the position that ends the target which is used for updating the
/// document without affecting the scroll position.
SCI_SETTARGETEND = 2192,
/// Get the position that ends the target.
SCI_GETTARGETEND = 2193,
/// Sets both the start and end of the target in one call.
SCI_SETTARGETRANGE = 2686,
/// Retrieve the text in the target.
SCI_GETTARGETTEXT = 2687,
/// Replace the target text with the argument text.
/// Text is counted so it can contain NULs.
/// Returns the length of the replacement text.
SCI_REPLACETARGET = 2194,
/// Replace the target text with the argument text after \d processing.
/// Text is counted so it can contain NULs.
/// Looks for \d where d is between 1 and 9 and replaces these with the strings
/// matched in the last search operation which were surrounded by \( and \).
/// Returns the length of the replacement text including any change
/// caused by processing the \d patterns.
SCI_REPLACETARGETRE = 2195,
/// Search for a counted string in the target and set the target to the found
/// range. Text is counted so it can contain NULs.
/// Returns length of range or -1 for failure in which case target is not moved.
SCI_SEARCHINTARGET = 2197,
/// Set the search flags used by SearchInTarget.
SCI_SETSEARCHFLAGS = 2198,
/// Get the search flags used by SearchInTarget.
SCI_GETSEARCHFLAGS = 2199,
/// Show a call tip containing a definition near position pos.
SCI_CALLTIPSHOW = 2200,
/// Remove the call tip from the screen.
SCI_CALLTIPCANCEL = 2201,
/// Is there an active call tip?
SCI_CALLTIPACTIVE = 2202,
/// Retrieve the position where the caret was before displaying the call tip.
SCI_CALLTIPPOSSTART = 2203,
/// Set the start position in order to change when backspacing removes the calltip.
SCI_CALLTIPSETPOSSTART = 2214,
/// Highlight a segment of the definition.
SCI_CALLTIPSETHLT = 2204,
/// Set the background colour for the call tip.
SCI_CALLTIPSETBACK = 2205,
/// Set the foreground colour for the call tip.
SCI_CALLTIPSETFORE = 2206,
/// Set the foreground colour for the highlighted part of the call tip.
SCI_CALLTIPSETFOREHLT = 2207,
/// Enable use of STYLE_CALLTIP and set call tip tab size in pixels.
SCI_CALLTIPUSESTYLE = 2212,
/// Set position of calltip, above or below text.
SCI_CALLTIPSETPOSITION = 2213,
/// Find the display line of a document line taking hidden lines into account.
SCI_VISIBLEFROMDOCLINE = 2220,
/// Find the document line of a display line taking hidden lines into account.
SCI_DOCLINEFROMVISIBLE = 2221,
/// The number of display lines needed to wrap a document line
SCI_WRAPCOUNT = 2235,
SC_FOLDLEVELBASE = 0x400,
SC_FOLDLEVELWHITEFLAG = 0x1000,
SC_FOLDLEVELHEADERFLAG = 0x2000,
SC_FOLDLEVELNUMBERMASK = 0x0FFF,
/// Set the fold level of a line.
/// This encodes an integer level along with flags indicating whether the
/// line is a header and whether it is effectively white space.
SCI_SETFOLDLEVEL = 2222,
/// Retrieve the fold level of a line.
SCI_GETFOLDLEVEL = 2223,
/// Find the last child line of a header line.
SCI_GETLASTCHILD = 2224,
/// Find the parent line of a child line.
SCI_GETFOLDPARENT = 2225,
/// Make a range of lines visible.
SCI_SHOWLINES = 2226,
/// Make a range of lines invisible.
SCI_HIDELINES = 2227,
/// Is a line visible?
SCI_GETLINEVISIBLE = 2228,
/// Are all lines visible?
SCI_GETALLLINESVISIBLE = 2236,
/// Show the children of a header line.
SCI_SETFOLDEXPANDED = 2229,
/// Is a header line expanded?
SCI_GETFOLDEXPANDED = 2230,
/// Switch a header line between expanded and contracted.
SCI_TOGGLEFOLD = 2231,
SC_FOLDACTION_CONTRACT = 0,
SC_FOLDACTION_EXPAND = 1,
SC_FOLDACTION_TOGGLE = 2,
/// Expand or contract a fold header.
SCI_FOLDLINE = 2237,
/// Expand or contract a fold header and its children.
SCI_FOLDCHILDREN = 2238,
/// Expand a fold header and all children. Use the level argument instead of the line's current level.
SCI_EXPANDCHILDREN = 2239,
/// Expand or contract all fold headers.
SCI_FOLDALL = 2662,
/// Ensure a particular line is visible by expanding any header line hiding it.
SCI_ENSUREVISIBLE = 2232,
SC_AUTOMATICFOLD_SHOW = 0x0001,
SC_AUTOMATICFOLD_CLICK = 0x0002,
SC_AUTOMATICFOLD_CHANGE = 0x0004,
/// Set automatic folding behaviours.
SCI_SETAUTOMATICFOLD = 2663,
/// Get automatic folding behaviours.
SCI_GETAUTOMATICFOLD = 2664,
SC_FOLDFLAG_LINEBEFORE_EXPANDED = 0x0002,
SC_FOLDFLAG_LINEBEFORE_CONTRACTED = 0x0004,
SC_FOLDFLAG_LINEAFTER_EXPANDED = 0x0008,
SC_FOLDFLAG_LINEAFTER_CONTRACTED = 0x0010,
SC_FOLDFLAG_LEVELNUMBERS = 0x0040,
SC_FOLDFLAG_LINESTATE = 0x0080,
/// Set some style options for folding.
SCI_SETFOLDFLAGS = 2233,
/// Ensure a particular line is visible by expanding any header line hiding it.
/// Use the currently set visibility policy to determine which range to display.
SCI_ENSUREVISIBLEENFORCEPOLICY = 2234,
/// Sets whether a tab pressed when caret is within indentation indents.
SCI_SETTABINDENTS = 2260,
/// Does a tab pressed when caret is within indentation indent?
SCI_GETTABINDENTS = 2261,
/// Sets whether a backspace pressed when caret is within indentation unindents.
SCI_SETBACKSPACEUNINDENTS = 2262,
/// Does a backspace pressed when caret is within indentation unindent?
SCI_GETBACKSPACEUNINDENTS = 2263,
SC_TIME_FOREVER = 10000000,
/// Sets the time the mouse must sit still to generate a mouse dwell event.
SCI_SETMOUSEDWELLTIME = 2264,
/// Retrieve the time the mouse must sit still to generate a mouse dwell event.
SCI_GETMOUSEDWELLTIME = 2265,
/// Get position of start of word.
SCI_WORDSTARTPOSITION = 2266,
/// Get position of end of word.
SCI_WORDENDPOSITION = 2267,
SC_WRAP_NONE = 0,
SC_WRAP_WORD = 1,
SC_WRAP_CHAR = 2,
SC_WRAP_WHITESPACE = 3,
/// Sets whether text is word wrapped.
SCI_SETWRAPMODE = 2268,
/// Retrieve whether text is word wrapped.
SCI_GETWRAPMODE = 2269,
SC_WRAPVISUALFLAG_NONE = 0x0000,
SC_WRAPVISUALFLAG_END = 0x0001,
SC_WRAPVISUALFLAG_START = 0x0002,
SC_WRAPVISUALFLAG_MARGIN = 0x0004,
/// Set the display mode of visual flags for wrapped lines.
SCI_SETWRAPVISUALFLAGS = 2460,
/// Retrive the display mode of visual flags for wrapped lines.
SCI_GETWRAPVISUALFLAGS = 2461,
SC_WRAPVISUALFLAGLOC_DEFAULT = 0x0000,
SC_WRAPVISUALFLAGLOC_END_BY_TEXT = 0x0001,
SC_WRAPVISUALFLAGLOC_START_BY_TEXT = 0x0002,
/// Set the location of visual flags for wrapped lines.
SCI_SETWRAPVISUALFLAGSLOCATION = 2462,
/// Retrive the location of visual flags for wrapped lines.
SCI_GETWRAPVISUALFLAGSLOCATION = 2463,
/// Set the start indent for wrapped lines.
SCI_SETWRAPSTARTINDENT = 2464,
/// Retrive the start indent for wrapped lines.
SCI_GETWRAPSTARTINDENT = 2465,
SC_WRAPINDENT_FIXED = 0,
SC_WRAPINDENT_SAME = 1,
SC_WRAPINDENT_INDENT = 2,
/// Sets how wrapped sublines are placed. Default is fixed.
SCI_SETWRAPINDENTMODE = 2472,
/// Retrieve how wrapped sublines are placed. Default is fixed.
SCI_GETWRAPINDENTMODE = 2473,
SC_CACHE_NONE = 0,
SC_CACHE_CARET = 1,
SC_CACHE_PAGE = 2,
SC_CACHE_DOCUMENT = 3,
/// Sets the degree of caching of layout information.
SCI_SETLAYOUTCACHE = 2272,
/// Retrieve the degree of caching of layout information.
SCI_GETLAYOUTCACHE = 2273,
/// Sets the document width assumed for scrolling.
SCI_SETSCROLLWIDTH = 2274,
/// Retrieve the document width assumed for scrolling.
SCI_GETSCROLLWIDTH = 2275,
/// Sets whether the maximum width line displayed is used to set scroll width.
SCI_SETSCROLLWIDTHTRACKING = 2516,
/// Retrieve whether the scroll width tracks wide lines.
SCI_GETSCROLLWIDTHTRACKING = 2517,
/// Measure the pixel width of some text in a particular style.
/// NUL terminated text argument.
/// Does not handle tab or control characters.
SCI_TEXTWIDTH = 2276,
/// Sets the scroll range so that maximum scroll position has
/// the last line at the bottom of the view (default).
/// Setting this to false allows scrolling one page below the last line.
SCI_SETENDATLASTLINE = 2277,
/// Retrieve whether the maximum scroll position has the last
/// line at the bottom of the view.
SCI_GETENDATLASTLINE = 2278,
/// Retrieve the height of a particular line of text in pixels.
SCI_TEXTHEIGHT = 2279,
/// Show or hide the vertical scroll bar.
SCI_SETVSCROLLBAR = 2280,
/// Is the vertical scroll bar visible?
SCI_GETVSCROLLBAR = 2281,
/// Append a string to the end of the document without changing the selection.
SCI_APPENDTEXT = 2282,
/// Is drawing done in two phases with backgrounds drawn before foregrounds?
SCI_GETTWOPHASEDRAW = 2283,
/// In twoPhaseDraw mode, drawing is performed in two phases, first the background
/// and then the foreground. This avoids chopping off characters that overlap the next run.
SCI_SETTWOPHASEDRAW = 2284,
SC_PHASES_ONE = 0,
SC_PHASES_TWO = 1,
SC_PHASES_MULTIPLE = 2,
/// How many phases is drawing done in?
SCI_GETPHASESDRAW = 2673,
/// In one phase draw, text is drawn in a series of rectangular blocks with no overlap.
/// In two phase draw, text is drawn in a series of lines allowing runs to overlap horizontally.
/// In multiple phase draw, each element is drawn over the whole drawing area, allowing text
/// to overlap from one line to the next.
SCI_SETPHASESDRAW = 2674,
SC_EFF_QUALITY_MASK = 0xF,
SC_EFF_QUALITY_DEFAULT = 0,
SC_EFF_QUALITY_NON_ANTIALIASED = 1,
SC_EFF_QUALITY_ANTIALIASED = 2,
SC_EFF_QUALITY_LCD_OPTIMIZED = 3,
/// Choose the quality level for text from the FontQuality enumeration.
SCI_SETFONTQUALITY = 2611,
/// Retrieve the quality level for text.
SCI_GETFONTQUALITY = 2612,
/// Scroll so that a display line is at the top of the display.
SCI_SETFIRSTVISIBLELINE = 2613,
SC_MULTIPASTE_ONCE = 0,
SC_MULTIPASTE_EACH = 1,
/// Change the effect of pasting when there are multiple selections.
SCI_SETMULTIPASTE = 2614,
/// Retrieve the effect of pasting when there are multiple selections..
SCI_GETMULTIPASTE = 2615,
/// Retrieve the value of a tag from a regular expression search.
/// Result is NUL-terminated.
SCI_GETTAG = 2616,
/// Make the target range start and end be the same as the selection range start and end.
SCI_TARGETFROMSELECTION = 2287,
/// Join the lines in the target.
SCI_LINESJOIN = 2288,
/// Split the lines in the target into lines that are less wide than pixelWidth
/// where possible.
SCI_LINESSPLIT = 2289,
/// Set the colours used as a chequerboard pattern in the fold margin
SCI_SETFOLDMARGINCOLOUR = 2290,
/// Set the colours used as a chequerboard pattern in the fold margin
SCI_SETFOLDMARGINHICOLOUR = 2291,
/// Move caret down one line.
SCI_LINEDOWN = 2300,
/// Move caret down one line extending selection to new caret position.
SCI_LINEDOWNEXTEND = 2301,
/// Move caret up one line.
SCI_LINEUP = 2302,
/// Move caret up one line extending selection to new caret position.
SCI_LINEUPEXTEND = 2303,
/// Move caret left one character.
SCI_CHARLEFT = 2304,
/// Move caret left one character extending selection to new caret position.
SCI_CHARLEFTEXTEND = 2305,
/// Move caret right one character.
SCI_CHARRIGHT = 2306,
/// Move caret right one character extending selection to new caret position.
SCI_CHARRIGHTEXTEND = 2307,
/// Move caret left one word.
SCI_WORDLEFT = 2308,
/// Move caret left one word extending selection to new caret position.
SCI_WORDLEFTEXTEND = 2309,
/// Move caret right one word.
SCI_WORDRIGHT = 2310,
/// Move caret right one word extending selection to new caret position.
SCI_WORDRIGHTEXTEND = 2311,
/// Move caret to first position on line.
SCI_HOME = 2312,
/// Move caret to first position on line extending selection to new caret position.
SCI_HOMEEXTEND = 2313,
/// Move caret to last position on line.
SCI_LINEEND = 2314,
/// Move caret to last position on line extending selection to new caret position.
SCI_LINEENDEXTEND = 2315,
/// Move caret to first position in document.
SCI_DOCUMENTSTART = 2316,
/// Move caret to first position in document extending selection to new caret position.
SCI_DOCUMENTSTARTEXTEND = 2317,
/// Move caret to last position in document.
SCI_DOCUMENTEND = 2318,
/// Move caret to last position in document extending selection to new caret position.
SCI_DOCUMENTENDEXTEND = 2319,
/// Move caret one page up.
SCI_PAGEUP = 2320,
/// Move caret one page up extending selection to new caret position.
SCI_PAGEUPEXTEND = 2321,
/// Move caret one page down.
SCI_PAGEDOWN = 2322,
/// Move caret one page down extending selection to new caret position.
SCI_PAGEDOWNEXTEND = 2323,
/// Switch from insert to overtype mode or the reverse.
SCI_EDITTOGGLEOVERTYPE = 2324,
/// Cancel any modes such as call tip or auto-completion list display.
SCI_CANCEL = 2325,
/// Delete the selection or if no selection, the character before the caret.
SCI_DELETEBACK = 2326,
/// If selection is empty or all on one line replace the selection with a tab character.
/// If more than one line selected, indent the lines.
SCI_TAB = 2327,
/// Dedent the selected lines.
SCI_BACKTAB = 2328,
/// Insert a new line, may use a CRLF, CR or LF depending on EOL mode.
SCI_NEWLINE = 2329,
/// Insert a Form Feed character.
SCI_FORMFEED = 2330,
/// Move caret to before first visible character on line.
/// If already there move to first character on line.
SCI_VCHOME = 2331,
/// Like VCHome but extending selection to new caret position.
SCI_VCHOMEEXTEND = 2332,
/// Magnify the displayed text by increasing the sizes by 1 point.
SCI_ZOOMIN = 2333,
/// Make the displayed text smaller by decreasing the sizes by 1 point.
SCI_ZOOMOUT = 2334,
/// Delete the word to the left of the caret.
SCI_DELWORDLEFT = 2335,
/// Delete the word to the right of the caret.
SCI_DELWORDRIGHT = 2336,
/// Delete the word to the right of the caret, but not the trailing non-word characters.
SCI_DELWORDRIGHTEND = 2518,
/// Cut the line containing the caret.
SCI_LINECUT = 2337,
/// Delete the line containing the caret.
SCI_LINEDELETE = 2338,
/// Switch the current line with the previous.
SCI_LINETRANSPOSE = 2339,
/// Duplicate the current line.
SCI_LINEDUPLICATE = 2404,
/// Transform the selection to lower case.
SCI_LOWERCASE = 2340,
/// Transform the selection to upper case.
SCI_UPPERCASE = 2341,
/// Scroll the document down, keeping the caret visible.
SCI_LINESCROLLDOWN = 2342,
/// Scroll the document up, keeping the caret visible.
SCI_LINESCROLLUP = 2343,
/// Delete the selection or if no selection, the character before the caret.
/// Will not delete the character before at the start of a line.
SCI_DELETEBACKNOTLINE = 2344,
/// Move caret to first position on display line.
SCI_HOMEDISPLAY = 2345,
/// Move caret to first position on display line extending selection to
/// new caret position.
SCI_HOMEDISPLAYEXTEND = 2346,
/// Move caret to last position on display line.
SCI_LINEENDDISPLAY = 2347,
/// Move caret to last position on display line extending selection to new
/// caret position.
SCI_LINEENDDISPLAYEXTEND = 2348,
/// These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)?
/// except they behave differently when word-wrap is enabled:
/// They go first to the start / end of the display line, like (Home|LineEnd)Display
/// The difference is that, the cursor is already at the point, it goes on to the start
/// or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?.
SCI_HOMEWRAP = 2349,
/// These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)?
/// except they behave differently when word-wrap is enabled:
/// They go first to the start / end of the display line, like (Home|LineEnd)Display
/// The difference is that, the cursor is already at the point, it goes on to the start
/// or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?.
SCI_HOMEWRAPEXTEND = 2450,
/// These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)?
/// except they behave differently when word-wrap is enabled:
/// They go first to the start / end of the display line, like (Home|LineEnd)Display
/// The difference is that, the cursor is already at the point, it goes on to the start
/// or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?.
SCI_LINEENDWRAP = 2451,
/// These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)?
/// except they behave differently when word-wrap is enabled:
/// They go first to the start / end of the display line, like (Home|LineEnd)Display
/// The difference is that, the cursor is already at the point, it goes on to the start
/// or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?.
SCI_LINEENDWRAPEXTEND = 2452,
/// These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)?
/// except they behave differently when word-wrap is enabled:
/// They go first to the start / end of the display line, like (Home|LineEnd)Display
/// The difference is that, the cursor is already at the point, it goes on to the start
/// or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?.
SCI_VCHOMEWRAP = 2453,
/// These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)?
/// except they behave differently when word-wrap is enabled:
/// They go first to the start / end of the display line, like (Home|LineEnd)Display
/// The difference is that, the cursor is already at the point, it goes on to the start
/// or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?.
SCI_VCHOMEWRAPEXTEND = 2454,
/// Copy the line containing the caret.
SCI_LINECOPY = 2455,
/// Move the caret inside current view if it's not there already.
SCI_MOVECARETINSIDEVIEW = 2401,
/// How many characters are on a line, including end of line characters?
SCI_LINELENGTH = 2350,
/// Highlight the characters at two positions.
SCI_BRACEHIGHLIGHT = 2351,
/// Use specified indicator to highlight matching braces instead of changing their style.
SCI_BRACEHIGHLIGHTINDICATOR = 2498,
/// Highlight the character at a position indicating there is no matching brace.
SCI_BRACEBADLIGHT = 2352,
/// Use specified indicator to highlight non matching brace instead of changing its style.
SCI_BRACEBADLIGHTINDICATOR = 2499,
/// Find the position of a matching brace or INVALID_POSITION if no match.
SCI_BRACEMATCH = 2353,
/// Are the end of line characters visible?
SCI_GETVIEWEOL = 2355,
/// Make the end of line characters visible or invisible.
SCI_SETVIEWEOL = 2356,
/// Retrieve a pointer to the document object.
SCI_GETDOCPOINTER = 2357,
/// Change the document object used.
SCI_SETDOCPOINTER = 2358,
/// Set which document modification events are sent to the container.
SCI_SETMODEVENTMASK = 2359,
EDGE_NONE = 0,
EDGE_LINE = 1,
EDGE_BACKGROUND = 2,
/// Retrieve the column number which text should be kept within.
SCI_GETEDGECOLUMN = 2360,
/// Set the column number of the edge.
/// If text goes past the edge then it is highlighted.
SCI_SETEDGECOLUMN = 2361,
/// Retrieve the edge highlight mode.
SCI_GETEDGEMODE = 2362,
/// The edge may be displayed by a line (EDGE_LINE) or by highlighting text that
/// goes beyond it (EDGE_BACKGROUND) or not displayed at all (EDGE_NONE).
SCI_SETEDGEMODE = 2363,
/// Retrieve the colour used in edge indication.
SCI_GETEDGECOLOUR = 2364,
/// Change the colour used in edge indication.
SCI_SETEDGECOLOUR = 2365,
/// Sets the current caret position to be the search anchor.
SCI_SEARCHANCHOR = 2366,
/// Find some text starting at the search anchor.
/// Does not ensure the selection is visible.
SCI_SEARCHNEXT = 2367,
/// Find some text starting at the search anchor and moving backwards.
/// Does not ensure the selection is visible.
SCI_SEARCHPREV = 2368,
/// Retrieves the number of lines completely visible.
SCI_LINESONSCREEN = 2370,
/// Set whether a pop up menu is displayed automatically when the user presses
/// the wrong mouse button.
SCI_USEPOPUP = 2371,
/// Is the selection rectangular? The alternative is the more common stream selection.
SCI_SELECTIONISRECTANGLE = 2372,
/// Set the zoom level. This number of points is added to the size of all fonts.
/// It may be positive to magnify or negative to reduce.
SCI_SETZOOM = 2373,
/// Retrieve the zoom level.
SCI_GETZOOM = 2374,
/// Create a new document object.
/// Starts with reference count of 1 and not selected into editor.
SCI_CREATEDOCUMENT = 2375,
/// Extend life of document.
SCI_ADDREFDOCUMENT = 2376,
/// Release a reference to the document, deleting document if it fades to black.
SCI_RELEASEDOCUMENT = 2377,
/// Get which document modification events are sent to the container.
SCI_GETMODEVENTMASK = 2378,
/// Change internal focus flag.
SCI_SETFOCUS = 2380,
/// Get internal focus flag.
SCI_GETFOCUS = 2381,
SC_STATUS_OK = 0,
SC_STATUS_FAILURE = 1,
SC_STATUS_BADALLOC = 2,
SC_STATUS_WARN_START = 1000,
SC_STATUS_WARN_REGEX = 1001,
/// Change error status - 0 = OK.
SCI_SETSTATUS = 2382,
/// Get error status.
SCI_GETSTATUS = 2383,
/// Set whether the mouse is captured when its button is pressed.
SCI_SETMOUSEDOWNCAPTURES = 2384,
/// Get whether mouse gets captured.
SCI_GETMOUSEDOWNCAPTURES = 2385,
SC_CURSORNORMAL = 0xFFFFFFFF,
SC_CURSORARROW = 2,
SC_CURSORWAIT = 4,
SC_CURSORREVERSEARROW = 7,
/// Sets the cursor to one of the SC_CURSOR* values.
SCI_SETCURSOR = 2386,
/// Get cursor type.
SCI_GETCURSOR = 2387,
/// Change the way control characters are displayed:
/// If symbol is < 32, keep the drawn way, else, use the given character.
SCI_SETCONTROLCHARSYMBOL = 2388,
/// Get the way control characters are displayed.
SCI_GETCONTROLCHARSYMBOL = 2389,
/// Move to the previous change in capitalisation.
SCI_WORDPARTLEFT = 2390,
/// Move to the previous change in capitalisation extending selection
/// to new caret position.
SCI_WORDPARTLEFTEXTEND = 2391,
/// Move to the change next in capitalisation.
SCI_WORDPARTRIGHT = 2392,
/// Move to the next change in capitalisation extending selection
/// to new caret position.
SCI_WORDPARTRIGHTEXTEND = 2393,
VISIBLE_SLOP = 0x01,
VISIBLE_STRICT = 0x04,
/// Set the way the display area is determined when a particular line
/// is to be moved to by Find, FindNext, GotoLine, etc.
SCI_SETVISIBLEPOLICY = 2394,
/// Delete back from the current position to the start of the line.
SCI_DELLINELEFT = 2395,
/// Delete forwards from the current position to the end of the line.
SCI_DELLINERIGHT = 2396,
/// Get and Set the xOffset (ie, horizontal scroll position).
SCI_SETXOFFSET = 2397,
/// Get and Set the xOffset (ie, horizontal scroll position).
SCI_GETXOFFSET = 2398,
/// Set the last x chosen value to be the caret x position.
SCI_CHOOSECARETX = 2399,
/// Set the focus to this Scintilla widget.
SCI_GRABFOCUS = 2400,
CARET_SLOP = 0x01,
CARET_STRICT = 0x04,
CARET_JUMPS = 0x10,
CARET_EVEN = 0x08,
/// Set the way the caret is kept visible when going sideways.
/// The exclusion zone is given in pixels.
SCI_SETXCARETPOLICY = 2402,
/// Set the way the line the caret is on is kept visible.
/// The exclusion zone is given in lines.
SCI_SETYCARETPOLICY = 2403,
/// Set printing to line wrapped (SC_WRAP_WORD) or not line wrapped (SC_WRAP_NONE).
SCI_SETPRINTWRAPMODE = 2406,
/// Is printing line wrapped?
SCI_GETPRINTWRAPMODE = 2407,
/// Set a fore colour for active hotspots.
SCI_SETHOTSPOTACTIVEFORE = 2410,
/// Get the fore colour for active hotspots.
SCI_GETHOTSPOTACTIVEFORE = 2494,
/// Set a back colour for active hotspots.
SCI_SETHOTSPOTACTIVEBACK = 2411,
/// Get the back colour for active hotspots.
SCI_GETHOTSPOTACTIVEBACK = 2495,
/// Enable / Disable underlining active hotspots.
SCI_SETHOTSPOTACTIVEUNDERLINE = 2412,
/// Get whether underlining for active hotspots.
SCI_GETHOTSPOTACTIVEUNDERLINE = 2496,
/// Limit hotspots to single line so hotspots on two lines don't merge.
SCI_SETHOTSPOTSINGLELINE = 2421,
/// Get the HotspotSingleLine property
SCI_GETHOTSPOTSINGLELINE = 2497,
/// Move caret between paragraphs (delimited by empty lines).
SCI_PARADOWN = 2413,
/// Move caret between paragraphs (delimited by empty lines).
SCI_PARADOWNEXTEND = 2414,
/// Move caret between paragraphs (delimited by empty lines).
SCI_PARAUP = 2415,
/// Move caret between paragraphs (delimited by empty lines).
SCI_PARAUPEXTEND = 2416,
/// Given a valid document position, return the previous position taking code
/// page into account. Returns 0 if passed 0.
SCI_POSITIONBEFORE = 2417,
/// Given a valid document position, return the next position taking code
/// page into account. Maximum value returned is the last position in the document.
SCI_POSITIONAFTER = 2418,
/// Given a valid document position, return a position that differs in a number
/// of characters. Returned value is always between 0 and last position in document.
SCI_POSITIONRELATIVE = 2670,
/// Copy a range of text to the clipboard. Positions are clipped into the document.
SCI_COPYRANGE = 2419,
/// Copy argument text to the clipboard.
SCI_COPYTEXT = 2420,
SC_SEL_STREAM = 0,
SC_SEL_RECTANGLE = 1,
SC_SEL_LINES = 2,
SC_SEL_THIN = 3,
/// Set the selection mode to stream (SC_SEL_STREAM) or rectangular (SC_SEL_RECTANGLE/SC_SEL_THIN) or
/// by lines (SC_SEL_LINES).
SCI_SETSELECTIONMODE = 2422,
/// Get the mode of the current selection.
SCI_GETSELECTIONMODE = 2423,
/// Retrieve the position of the start of the selection at the given line (INVALID_POSITION if no selection on this line).
SCI_GETLINESELSTARTPOSITION = 2424,
/// Retrieve the position of the end of the selection at the given line (INVALID_POSITION if no selection on this line).
SCI_GETLINESELENDPOSITION = 2425,
/// Move caret down one line, extending rectangular selection to new caret position.
SCI_LINEDOWNRECTEXTEND = 2426,
/// Move caret up one line, extending rectangular selection to new caret position.
SCI_LINEUPRECTEXTEND = 2427,
/// Move caret left one character, extending rectangular selection to new caret position.
SCI_CHARLEFTRECTEXTEND = 2428,
/// Move caret right one character, extending rectangular selection to new caret position.
SCI_CHARRIGHTRECTEXTEND = 2429,
/// Move caret to first position on line, extending rectangular selection to new caret position.
SCI_HOMERECTEXTEND = 2430,
/// Move caret to before first visible character on line.
/// If already there move to first character on line.
/// In either case, extend rectangular selection to new caret position.
SCI_VCHOMERECTEXTEND = 2431,
/// Move caret to last position on line, extending rectangular selection to new caret position.
SCI_LINEENDRECTEXTEND = 2432,
/// Move caret one page up, extending rectangular selection to new caret position.
SCI_PAGEUPRECTEXTEND = 2433,
/// Move caret one page down, extending rectangular selection to new caret position.
SCI_PAGEDOWNRECTEXTEND = 2434,
/// Move caret to top of page, or one page up if already at top of page.
SCI_STUTTEREDPAGEUP = 2435,
/// Move caret to top of page, or one page up if already at top of page, extending selection to new caret position.
SCI_STUTTEREDPAGEUPEXTEND = 2436,
/// Move caret to bottom of page, or one page down if already at bottom of page.
SCI_STUTTEREDPAGEDOWN = 2437,
/// Move caret to bottom of page, or one page down if already at bottom of page, extending selection to new caret position.
SCI_STUTTEREDPAGEDOWNEXTEND = 2438,
/// Move caret left one word, position cursor at end of word.
SCI_WORDLEFTEND = 2439,
/// Move caret left one word, position cursor at end of word, extending selection to new caret position.
SCI_WORDLEFTENDEXTEND = 2440,
/// Move caret right one word, position cursor at end of word.
SCI_WORDRIGHTEND = 2441,
/// Move caret right one word, position cursor at end of word, extending selection to new caret position.
SCI_WORDRIGHTENDEXTEND = 2442,
/// Set the set of characters making up whitespace for when moving or selecting by word.
/// Should be called after SetWordChars.
SCI_SETWHITESPACECHARS = 2443,
/// Get the set of characters making up whitespace for when moving or selecting by word.
SCI_GETWHITESPACECHARS = 2647,
/// Set the set of characters making up punctuation characters
/// Should be called after SetWordChars.
SCI_SETPUNCTUATIONCHARS = 2648,
/// Get the set of characters making up punctuation characters
SCI_GETPUNCTUATIONCHARS = 2649,
/// Reset the set of characters for whitespace and word characters to the defaults.
SCI_SETCHARSDEFAULT = 2444,
/// Get currently selected item position in the auto-completion list
SCI_AUTOCGETCURRENT = 2445,
/// Get currently selected item text in the auto-completion list
/// Returns the length of the item text
/// Result is NUL-terminated.
SCI_AUTOCGETCURRENTTEXT = 2610,
SC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE = 0,
SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE = 1,
/// Set auto-completion case insensitive behaviour to either prefer case-sensitive matches or have no preference.
SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR = 2634,
/// Get auto-completion case insensitive behaviour.
SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR = 2635,
SC_MULTIAUTOC_ONCE = 0,
SC_MULTIAUTOC_EACH = 1,
/// Change the effect of autocompleting when there are multiple selections.
SCI_AUTOCSETMULTI = 2636,
/// Retrieve the effect of autocompleting when there are multiple selections..
SCI_AUTOCGETMULTI = 2637,
SC_ORDER_PRESORTED = 0,
SC_ORDER_PERFORMSORT = 1,
SC_ORDER_CUSTOM = 2,
/// Set the way autocompletion lists are ordered.
SCI_AUTOCSETORDER = 2660,
/// Get the way autocompletion lists are ordered.
SCI_AUTOCGETORDER = 2661,
/// Enlarge the document to a particular size of text bytes.
SCI_ALLOCATE = 2446,
/// Returns the target converted to UTF8.
/// Return the length in bytes.
SCI_TARGETASUTF8 = 2447,
/// Set the length of the utf8 argument for calling EncodedFromUTF8.
/// Set to -1 and the string will be measured to the first nul.
SCI_SETLENGTHFORENCODE = 2448,
/// Translates a UTF8 string into the document encoding.
/// Return the length of the result in bytes.
/// On error return 0.
SCI_ENCODEDFROMUTF8 = 2449,
/// Find the position of a column on a line taking into account tabs and
/// multi-byte characters. If beyond end of line, return line end position.
SCI_FINDCOLUMN = 2456,
/// Can the caret preferred x position only be changed by explicit movement commands?
SCI_GETCARETSTICKY = 2457,
/// Stop the caret preferred x position changing when the user types.
SCI_SETCARETSTICKY = 2458,
SC_CARETSTICKY_OFF = 0,
SC_CARETSTICKY_ON = 1,
SC_CARETSTICKY_WHITESPACE = 2,
/// Switch between sticky and non-sticky: meant to be bound to a key.
SCI_TOGGLECARETSTICKY = 2459,
/// Enable/Disable convert-on-paste for line endings
SCI_SETPASTECONVERTENDINGS = 2467,
/// Get convert-on-paste setting
SCI_GETPASTECONVERTENDINGS = 2468,
/// Duplicate the selection. If selection empty duplicate the line containing the caret.
SCI_SELECTIONDUPLICATE = 2469,
SC_ALPHA_TRANSPARENT = 0,
SC_ALPHA_OPAQUE = 255,
SC_ALPHA_NOALPHA = 256,
/// Set background alpha of the caret line.
SCI_SETCARETLINEBACKALPHA = 2470,
/// Get the background alpha of the caret line.
SCI_GETCARETLINEBACKALPHA = 2471,
CARETSTYLE_INVISIBLE = 0,
CARETSTYLE_LINE = 1,
CARETSTYLE_BLOCK = 2,
/// Set the style of the caret to be drawn.
SCI_SETCARETSTYLE = 2512,
/// Returns the current style of the caret.
SCI_GETCARETSTYLE = 2513,
/// Set the indicator used for IndicatorFillRange and IndicatorClearRange
SCI_SETINDICATORCURRENT = 2500,
/// Get the current indicator
SCI_GETINDICATORCURRENT = 2501,
/// Set the value used for IndicatorFillRange
SCI_SETINDICATORVALUE = 2502,
/// Get the current indicator value
SCI_GETINDICATORVALUE = 2503,
/// Turn a indicator on over a range.
SCI_INDICATORFILLRANGE = 2504,
/// Turn a indicator off over a range.
SCI_INDICATORCLEARRANGE = 2505,
/// Are any indicators present at position?
SCI_INDICATORALLONFOR = 2506,
/// What value does a particular indicator have at at a position?
SCI_INDICATORVALUEAT = 2507,
/// Where does a particular indicator start?
SCI_INDICATORSTART = 2508,
/// Where does a particular indicator end?
SCI_INDICATOREND = 2509,
/// Set number of entries in position cache
SCI_SETPOSITIONCACHE = 2514,
/// How many entries are allocated to the position cache?
SCI_GETPOSITIONCACHE = 2515,
/// Copy the selection, if selection empty copy the line with the caret
SCI_COPYALLOWLINE = 2519,
/// Compact the document buffer and return a read-only pointer to the
/// characters in the document.
SCI_GETCHARACTERPOINTER = 2520,
/// Return a read-only pointer to a range of characters in the document.
/// May move the gap so that the range is contiguous, but will only move up
/// to rangeLength bytes.
SCI_GETRANGEPOINTER = 2643,
/// Return a position which, to avoid performance costs, should not be within
/// the range of a call to GetRangePointer.
SCI_GETGAPPOSITION = 2644,
/// Set the alpha fill colour of the given indicator.
SCI_INDICSETALPHA = 2523,
/// Get the alpha fill colour of the given indicator.
SCI_INDICGETALPHA = 2524,
/// Set the alpha outline colour of the given indicator.
SCI_INDICSETOUTLINEALPHA = 2558,
/// Get the alpha outline colour of the given indicator.
SCI_INDICGETOUTLINEALPHA = 2559,
/// Set extra ascent for each line
SCI_SETEXTRAASCENT = 2525,
/// Get extra ascent for each line
SCI_GETEXTRAASCENT = 2526,
/// Set extra descent for each line
SCI_SETEXTRADESCENT = 2527,
/// Get extra descent for each line
SCI_GETEXTRADESCENT = 2528,
/// Which symbol was defined for markerNumber with MarkerDefine
SCI_MARKERSYMBOLDEFINED = 2529,
/// Set the text in the text margin for a line
SCI_MARGINSETTEXT = 2530,
/// Get the text in the text margin for a line
SCI_MARGINGETTEXT = 2531,
/// Set the style number for the text margin for a line
SCI_MARGINSETSTYLE = 2532,
/// Get the style number for the text margin for a line
SCI_MARGINGETSTYLE = 2533,
/// Set the style in the text margin for a line
SCI_MARGINSETSTYLES = 2534,
/// Get the styles in the text margin for a line
SCI_MARGINGETSTYLES = 2535,
/// Clear the margin text on all lines
SCI_MARGINTEXTCLEARALL = 2536,
/// Get the start of the range of style numbers used for margin text
SCI_MARGINSETSTYLEOFFSET = 2537,
/// Get the start of the range of style numbers used for margin text
SCI_MARGINGETSTYLEOFFSET = 2538,
SC_MARGINOPTION_NONE = 0,
SC_MARGINOPTION_SUBLINESELECT = 1,
/// Set the margin options.
SCI_SETMARGINOPTIONS = 2539,
/// Get the margin options.
SCI_GETMARGINOPTIONS = 2557,
/// Set the annotation text for a line
SCI_ANNOTATIONSETTEXT = 2540,
/// Get the annotation text for a line
SCI_ANNOTATIONGETTEXT = 2541,
/// Set the style number for the annotations for a line
SCI_ANNOTATIONSETSTYLE = 2542,
/// Get the style number for the annotations for a line
SCI_ANNOTATIONGETSTYLE = 2543,
/// Set the annotation styles for a line
SCI_ANNOTATIONSETSTYLES = 2544,
/// Get the annotation styles for a line
SCI_ANNOTATIONGETSTYLES = 2545,
/// Get the number of annotation lines for a line
SCI_ANNOTATIONGETLINES = 2546,
/// Clear the annotations from all lines
SCI_ANNOTATIONCLEARALL = 2547,
ANNOTATION_HIDDEN = 0,
ANNOTATION_STANDARD = 1,
ANNOTATION_BOXED = 2,
ANNOTATION_INDENTED = 3,
/// Set the visibility for the annotations for a view
SCI_ANNOTATIONSETVISIBLE = 2548,
/// Get the visibility for the annotations for a view
SCI_ANNOTATIONGETVISIBLE = 2549,
/// Get the start of the range of style numbers used for annotations
SCI_ANNOTATIONSETSTYLEOFFSET = 2550,
/// Get the start of the range of style numbers used for annotations
SCI_ANNOTATIONGETSTYLEOFFSET = 2551,
/// Release all extended (>255) style numbers
SCI_RELEASEALLEXTENDEDSTYLES = 2552,
/// Allocate some extended (>255) style numbers and return the start of the range
SCI_ALLOCATEEXTENDEDSTYLES = 2553,
UNDO_MAY_COALESCE = 1,
/// Add a container action to the undo stack
SCI_ADDUNDOACTION = 2560,
/// Find the position of a character from a point within the window.
SCI_CHARPOSITIONFROMPOINT = 2561,
/// Find the position of a character from a point within the window.
/// Return INVALID_POSITION if not close to text.
SCI_CHARPOSITIONFROMPOINTCLOSE = 2562,
/// Set whether switching to rectangular mode while selecting with the mouse is allowed.
SCI_SETMOUSESELECTIONRECTANGULARSWITCH = 2668,
/// Whether switching to rectangular mode while selecting with the mouse is allowed.
SCI_GETMOUSESELECTIONRECTANGULARSWITCH = 2669,
/// Set whether multiple selections can be made
SCI_SETMULTIPLESELECTION = 2563,
/// Whether multiple selections can be made
SCI_GETMULTIPLESELECTION = 2564,
/// Set whether typing can be performed into multiple selections
SCI_SETADDITIONALSELECTIONTYPING = 2565,
/// Whether typing can be performed into multiple selections
SCI_GETADDITIONALSELECTIONTYPING = 2566,
/// Set whether additional carets will blink
SCI_SETADDITIONALCARETSBLINK = 2567,
/// Whether additional carets will blink
SCI_GETADDITIONALCARETSBLINK = 2568,
/// Set whether additional carets are visible
SCI_SETADDITIONALCARETSVISIBLE = 2608,
/// Whether additional carets are visible
SCI_GETADDITIONALCARETSVISIBLE = 2609,
/// How many selections are there?
SCI_GETSELECTIONS = 2570,
/// Is every selected range empty?
SCI_GETSELECTIONEMPTY = 2650,
/// Clear selections to a single empty stream selection
SCI_CLEARSELECTIONS = 2571,
/// Set a simple selection
SCI_SETSELECTION = 2572,
/// Add a selection
SCI_ADDSELECTION = 2573,
/// Drop one selection
SCI_DROPSELECTIONN = 2671,
/// Set the main selection
SCI_SETMAINSELECTION = 2574,
/// Which selection is the main selection
SCI_GETMAINSELECTION = 2575,
/// Which selection is the main selection
SCI_SETSELECTIONNCARET = 2576,
/// Which selection is the main selection
SCI_GETSELECTIONNCARET = 2577,
/// Which selection is the main selection
SCI_SETSELECTIONNANCHOR = 2578,
/// Which selection is the main selection
SCI_GETSELECTIONNANCHOR = 2579,
/// Which selection is the main selection
SCI_SETSELECTIONNCARETVIRTUALSPACE = 2580,
/// Which selection is the main selection
SCI_GETSELECTIONNCARETVIRTUALSPACE = 2581,
/// Which selection is the main selection
SCI_SETSELECTIONNANCHORVIRTUALSPACE = 2582,
/// Which selection is the main selection
SCI_GETSELECTIONNANCHORVIRTUALSPACE = 2583,
/// Sets the position that starts the selection - this becomes the anchor.
SCI_SETSELECTIONNSTART = 2584,
/// Returns the position at the start of the selection.
SCI_GETSELECTIONNSTART = 2585,
/// Sets the position that ends the selection - this becomes the currentPosition.
SCI_SETSELECTIONNEND = 2586,
/// Returns the position at the end of the selection.
SCI_GETSELECTIONNEND = 2587,
/// Returns the position at the end of the selection.
SCI_SETRECTANGULARSELECTIONCARET = 2588,
/// Returns the position at the end of the selection.
SCI_GETRECTANGULARSELECTIONCARET = 2589,
/// Returns the position at the end of the selection.
SCI_SETRECTANGULARSELECTIONANCHOR = 2590,
/// Returns the position at the end of the selection.
SCI_GETRECTANGULARSELECTIONANCHOR = 2591,
/// Returns the position at the end of the selection.
SCI_SETRECTANGULARSELECTIONCARETVIRTUALSPACE = 2592,
/// Returns the position at the end of the selection.
SCI_GETRECTANGULARSELECTIONCARETVIRTUALSPACE = 2593,
/// Returns the position at the end of the selection.
SCI_SETRECTANGULARSELECTIONANCHORVIRTUALSPACE = 2594,
/// Returns the position at the end of the selection.
SCI_GETRECTANGULARSELECTIONANCHORVIRTUALSPACE = 2595,
SCVS_NONE = 0,
SCVS_RECTANGULARSELECTION = 1,
SCVS_USERACCESSIBLE = 2,
/// Returns the position at the end of the selection.
SCI_SETVIRTUALSPACEOPTIONS = 2596,
/// Returns the position at the end of the selection.
SCI_GETVIRTUALSPACEOPTIONS = 2597,
/// On GTK+, allow selecting the modifier key to use for mouse-based
/// rectangular selection. Often the window manager requires Alt+Mouse Drag
/// for moving windows.
/// Valid values are SCMOD_CTRL(default), SCMOD_ALT, or SCMOD_SUPER.
SCI_SETRECTANGULARSELECTIONMODIFIER = 2598,
/// Get the modifier key used for rectangular selection.
SCI_GETRECTANGULARSELECTIONMODIFIER = 2599,
/// Set the foreground colour of additional selections.
/// Must have previously called SetSelFore with non-zero first argument for this to have an effect.
SCI_SETADDITIONALSELFORE = 2600,
/// Set the background colour of additional selections.
/// Must have previously called SetSelBack with non-zero first argument for this to have an effect.
SCI_SETADDITIONALSELBACK = 2601,
/// Set the alpha of the selection.
SCI_SETADDITIONALSELALPHA = 2602,
/// Get the alpha of the selection.
SCI_GETADDITIONALSELALPHA = 2603,
/// Set the foreground colour of additional carets.
SCI_SETADDITIONALCARETFORE = 2604,
/// Get the foreground colour of additional carets.
SCI_GETADDITIONALCARETFORE = 2605,
/// Set the main selection to the next selection.
SCI_ROTATESELECTION = 2606,
/// Swap that caret and anchor of the main selection.
SCI_SWAPMAINANCHORCARET = 2607,
/// Indicate that the internal state of a lexer has changed over a range and therefore
/// there may be a need to redraw.
SCI_CHANGELEXERSTATE = 2617,
/// Find the next line at or after lineStart that is a contracted fold header line.
/// Return -1 when no more lines.
SCI_CONTRACTEDFOLDNEXT = 2618,
/// Centre current line in window.
SCI_VERTICALCENTRECARET = 2619,
/// Move the selected lines up one line, shifting the line above after the selection
SCI_MOVESELECTEDLINESUP = 2620,
/// Move the selected lines down one line, shifting the line below before the selection
SCI_MOVESELECTEDLINESDOWN = 2621,
/// Set the identifier reported as IdFrom in notification messages.
SCI_SETIDENTIFIER = 2622,
/// Get the identifier.
SCI_GETIDENTIFIER = 2623,
/// Set the width for future RGBA image data.
SCI_RGBAIMAGESETWIDTH = 2624,
/// Set the height for future RGBA image data.
SCI_RGBAIMAGESETHEIGHT = 2625,
/// Set the scale factor in percent for future RGBA image data.
SCI_RGBAIMAGESETSCALE = 2651,
/// Define a marker from RGBA data.
/// It has the width and height from RGBAImageSetWidth/Height
SCI_MARKERDEFINERGBAIMAGE = 2626,
/// Register an RGBA image for use in autocompletion lists.
/// It has the width and height from RGBAImageSetWidth/Height
SCI_REGISTERRGBAIMAGE = 2627,
/// Scroll to start of document.
SCI_SCROLLTOSTART = 2628,
/// Scroll to end of document.
SCI_SCROLLTOEND = 2629,
SC_TECHNOLOGY_DEFAULT = 0,
SC_TECHNOLOGY_DIRECTWRITE = 1,
SC_TECHNOLOGY_DIRECTWRITERETAIN = 2,
SC_TECHNOLOGY_DIRECTWRITEDC = 3,
/// Set the technology used.
SCI_SETTECHNOLOGY = 2630,
/// Get the tech.
SCI_GETTECHNOLOGY = 2631,
/// Create an ILoader*.
SCI_CREATELOADER = 2632,
/// On OS X, show a find indicator.
SCI_FINDINDICATORSHOW = 2640,
/// On OS X, flash a find indicator, then fade out.
SCI_FINDINDICATORFLASH = 2641,
/// On OS X, hide the find indicator.
SCI_FINDINDICATORHIDE = 2642,
/// Move caret to before first visible character on display line.
/// If already there move to first character on display line.
SCI_VCHOMEDISPLAY = 2652,
/// Like VCHomeDisplay but extending selection to new caret position.
SCI_VCHOMEDISPLAYEXTEND = 2653,
/// Is the caret line always visible?
SCI_GETCARETLINEVISIBLEALWAYS = 2654,
/// Sets the caret line to always visible.
SCI_SETCARETLINEVISIBLEALWAYS = 2655,
SC_LINE_END_TYPE_DEFAULT = 0,
SC_LINE_END_TYPE_UNICODE = 1,
/// Set the line end types that the application wants to use. May not be used if incompatible with lexer or encoding.
SCI_SETLINEENDTYPESALLOWED = 2656,
/// Get the line end types currently allowed.
SCI_GETLINEENDTYPESALLOWED = 2657,
/// Get the line end types currently recognised. May be a subset of the allowed types due to lexer limitation.
SCI_GETLINEENDTYPESACTIVE = 2658,
/// Set the way a character is drawn.
SCI_SETREPRESENTATION = 2665,
/// Set the way a character is drawn.
/// Result is NUL-terminated.
SCI_GETREPRESENTATION = 2666,
/// Remove a character representation.
SCI_CLEARREPRESENTATION = 2667,
/// Start notifying the container of all key presses and commands.
SCI_STARTRECORD = 3001,
/// Stop notifying the container of all key presses and commands.
SCI_STOPRECORD = 3002,
/// Set the lexing language of the document.
SCI_SETLEXER = 4001,
/// Retrieve the lexing language of the document.
SCI_GETLEXER = 4002,
/// Colourise a segment of the document using the current lexing language.
SCI_COLOURISE = 4003,
/// Set up a value that may be used by a lexer for some optional feature.
SCI_SETPROPERTY = 4004,
KEYWORDSET_MAX = 8,
/// Set up the key words used by the lexer.
SCI_SETKEYWORDS = 4005,
/// Set the lexing language of the document based on string name.
SCI_SETLEXERLANGUAGE = 4006,
/// Load a lexer library (dll / so).
SCI_LOADLEXERLIBRARY = 4007,
/// Retrieve a "property" value previously set with SetProperty.
/// Result is NUL-terminated.
SCI_GETPROPERTY = 4008,
/// Retrieve a "property" value previously set with SetProperty,
/// with "$()" variable replacement on returned buffer.
/// Result is NUL-terminated.
SCI_GETPROPERTYEXPANDED = 4009,
/// Retrieve a "property" value previously set with SetProperty,
/// interpreted as an int AFTER any "$()" variable replacement.
SCI_GETPROPERTYINT = 4010,
/// Retrieve the number of bits the current lexer needs for styling.
SCI_GETSTYLEBITSNEEDED = 4011,
/// Retrieve the name of the lexer.
/// Return the length of the text.
/// Result is NUL-terminated.
SCI_GETLEXERLANGUAGE = 4012,
/// For private communication between an application and a known lexer.
SCI_PRIVATELEXERCALL = 4013,
/// Retrieve a '\n' separated list of properties understood by the current lexer.
/// Result is NUL-terminated.
SCI_PROPERTYNAMES = 4014,
SC_TYPE_BOOLEAN = 0,
SC_TYPE_INTEGER = 1,
SC_TYPE_STRING = 2,
/// Retrieve the type of a property.
SCI_PROPERTYTYPE = 4015,
/// Describe a property.
/// Result is NUL-terminated.
SCI_DESCRIBEPROPERTY = 4016,
/// Retrieve a '\n' separated list of descriptions of the keyword sets understood by the current lexer.
/// Result is NUL-terminated.
SCI_DESCRIBEKEYWORDSETS = 4017,
/// Bit set of LineEndType enumertion for which line ends beyond the standard
/// LF, CR, and CRLF are supported by the lexer.
SCI_GETLINEENDTYPESSUPPORTED = 4018,
/// Allocate a set of sub styles for a particular base style, returning start of range
SCI_ALLOCATESUBSTYLES = 4020,
/// The starting style number for the sub styles associated with a base style
SCI_GETSUBSTYLESSTART = 4021,
/// The number of sub styles associated with a base style
SCI_GETSUBSTYLESLENGTH = 4022,
/// For a sub style, return the base style, else return the argument.
SCI_GETSTYLEFROMSUBSTYLE = 4027,
/// For a secondary style, return the primary style, else return the argument.
SCI_GETPRIMARYSTYLEFROMSTYLE = 4028,
/// Free allocated sub styles
SCI_FREESUBSTYLES = 4023,
/// Set the identifiers that are shown in a particular style
SCI_SETIDENTIFIERS = 4024,
/// Where styles are duplicated by a feature such as active/inactive code
/// return the distance between the two types.
SCI_DISTANCETOSECONDARYSTYLES = 4025,
/// Get the set of base styles that can be extended with sub styles
/// Result is NUL-terminated.
SCI_GETSUBSTYLEBASES = 4026,
SC_MOD_INSERTTEXT = 0x1,
SC_MOD_DELETETEXT = 0x2,
SC_MOD_CHANGESTYLE = 0x4,
SC_MOD_CHANGEFOLD = 0x8,
SC_PERFORMED_USER = 0x10,
SC_PERFORMED_UNDO = 0x20,
SC_PERFORMED_REDO = 0x40,
SC_MULTISTEPUNDOREDO = 0x80,
SC_LASTSTEPINUNDOREDO = 0x100,
SC_MOD_CHANGEMARKER = 0x200,
SC_MOD_BEFOREINSERT = 0x400,
SC_MOD_BEFOREDELETE = 0x800,
SC_MULTILINEUNDOREDO = 0x1000,
SC_STARTACTION = 0x2000,
SC_MOD_CHANGEINDICATOR = 0x4000,
SC_MOD_CHANGELINESTATE = 0x8000,
SC_MOD_CHANGEMARGIN = 0x10000,
SC_MOD_CHANGEANNOTATION = 0x20000,
SC_MOD_CONTAINER = 0x40000,
SC_MOD_LEXERSTATE = 0x80000,
SC_MOD_INSERTCHECK = 0x100000,
SC_MOD_CHANGETABSTOPS = 0x200000,
SC_MODEVENTMASKALL = 0x3FFFFF,
SC_UPDATE_CONTENT = 0x1,
SC_UPDATE_SELECTION = 0x2,
SC_UPDATE_V_SCROLL = 0x4,
SC_UPDATE_H_SCROLL = 0x8,
SCEN_CHANGE = 768,
SCEN_SETFOCUS = 512,
SCEN_KILLFOCUS = 256,
SCK_DOWN = 300,
SCK_UP = 301,
SCK_LEFT = 302,
SCK_RIGHT = 303,
SCK_HOME = 304,
SCK_END = 305,
SCK_PRIOR = 306,
SCK_NEXT = 307,
SCK_DELETE = 308,
SCK_INSERT = 309,
SCK_ESCAPE = 7,
SCK_BACK = 8,
SCK_TAB = 9,
SCK_RETURN = 13,
SCK_ADD = 310,
SCK_SUBTRACT = 311,
SCK_DIVIDE = 312,
SCK_WIN = 313,
SCK_RWIN = 314,
SCK_MENU = 315,
SCMOD_NORM = 0,
SCMOD_SHIFT = 1,
SCMOD_CTRL = 2,
SCMOD_ALT = 4,
SCMOD_SUPER = 8,
SCMOD_META = 16,
/// Events
SCN_STYLENEEDED = 2000,
/// Events
SCN_CHARADDED = 2001,
/// Events
SCN_SAVEPOINTREACHED = 2002,
/// Events
SCN_SAVEPOINTLEFT = 2003,
/// Events
SCN_MODIFYATTEMPTRO = 2004,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_KEY = 2005,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_DOUBLECLICK = 2006,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_UPDATEUI = 2007,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_MODIFIED = 2008,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_MACRORECORD = 2009,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_MARGINCLICK = 2010,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_NEEDSHOWN = 2011,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_PAINTED = 2013,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_USERLISTSELECTION = 2014,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_URIDROPPED = 2015,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_DWELLSTART = 2016,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_DWELLEND = 2017,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_ZOOM = 2018,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_HOTSPOTCLICK = 2019,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_HOTSPOTDOUBLECLICK = 2020,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_CALLTIPCLICK = 2021,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_AUTOCSELECTION = 2022,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_INDICATORCLICK = 2023,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_INDICATORRELEASE = 2024,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_AUTOCCANCELLED = 2025,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_AUTOCCHARDELETED = 2026,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_HOTSPOTRELEASECLICK = 2027,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_FOCUSIN = 2028,
/// GTK+ Specific to work around focus and accelerator problems:
SCN_FOCUSOUT = 2029,
SC_CP_DBCS = 1,
/// Deprecated in 2.30
/// In palette mode?
SCI_GETUSEPALETTE = 2139,
/// In palette mode, Scintilla uses the environment's palette calls to display
/// more colours. This may lead to ugly displays.
SCI_SETUSEPALETTE = 2039,
/// Deprecated in 3.5.5
/// Always interpret keyboard input as Unicode
SCI_SETKEYSUNICODE = 2521,
/// Are keys always interpreted as Unicode?
SCI_GETKEYSUNICODE = 2522,
/* --Autogenerated -- end of section automatically generated from Scintilla.iface */
SC_SEARCHRESULT_LINEBUFFERMAXLENGTH = 1024
}
public class TextToFind : IDisposable
{
Sci_TextToFind _sciTextToFind;
IntPtr _ptrSciTextToFind;
bool _disposed = false;
///
/// text to find
///
/// range to search
/// the search pattern
public TextToFind(CharacterRange chrRange, string searchText)
{
_sciTextToFind.chrg = chrRange;
_sciTextToFind.lpstrText = Marshal.StringToHGlobalAnsi(searchText);
}
///
/// text to find
///
/// range to search
/// range to search
/// the search pattern
public TextToFind(int cpmin, int cpmax, string searchText)
{
_sciTextToFind.chrg.cpMin = cpmin;
_sciTextToFind.chrg.cpMax = cpmax;
_sciTextToFind.lpstrText = Marshal.StringToHGlobalAnsi(searchText);
}
[StructLayout(LayoutKind.Sequential)]
struct Sci_TextToFind
{
public CharacterRange chrg;
public IntPtr lpstrText;
public CharacterRange chrgText;
}
public IntPtr NativePointer { get { _initNativeStruct(); return _ptrSciTextToFind; } }
public string lpstrText { set { _freeNativeString(); _sciTextToFind.lpstrText = Marshal.StringToHGlobalAnsi(value); } }
public CharacterRange chrg { get { _readNativeStruct(); return _sciTextToFind.chrg; } set { _sciTextToFind.chrg = value; _initNativeStruct(); } }
public CharacterRange chrgText { get { _readNativeStruct(); return _sciTextToFind.chrgText; } }
void _initNativeStruct()
{
if (_ptrSciTextToFind == IntPtr.Zero)
_ptrSciTextToFind = Marshal.AllocHGlobal(Marshal.SizeOf(_sciTextToFind));
Marshal.StructureToPtr(_sciTextToFind, _ptrSciTextToFind, false);
}
void _readNativeStruct()
{
if (_ptrSciTextToFind != IntPtr.Zero)
_sciTextToFind = (Sci_TextToFind)Marshal.PtrToStructure(_ptrSciTextToFind, typeof(Sci_TextToFind));
}
void _freeNativeString()
{
if (_sciTextToFind.lpstrText != IntPtr.Zero) Marshal.FreeHGlobal(_sciTextToFind.lpstrText);
}
public void Dispose()
{
if (!_disposed)
{
_freeNativeString();
if (_ptrSciTextToFind != IntPtr.Zero) Marshal.FreeHGlobal(_ptrSciTextToFind);
_disposed = true;
}
}
~TextToFind()
{
Dispose();
}
}
}