I've got some programs I've written in Delphi, mainly having to do with cleaning up .txt e-books to make them easier to read on a computer screen (Scripted Search-and-Replace, Auto-generating Table of Contents, etc). I would love to convert them to Notepad++ plugins to take advantage of its superior editing capabilities. However, I'm having a hard time getting started. My main problem is figuring out how to use the Notepad++ and Scintilla messages. I've looked through the plugins How-To page, but it assumes you're programming in C. I've downloaded and compiled the Delphi plugin template, but it doesn't have any examples of using the messages. I've downloaded the source code to several plugins that were written in Delphi, but they're all way too complex to understand. I've scoured these forums for anything that mentions Delphi, to no avail. So I was wondering if someone who programs in Delphi would be willing to help me out.
Here's my idea. I'd like someone to write a plugin, in Delphi, that replaces the currently selected text with "Hello World." (Or some other simple example that shows how to interface with the text) If you just want to post the source code to this thread instead of creating a new SourceForge project for this otherwise pointless example, that's fine. Hopefully it will be as simple as it sounds.
Once I get over this first hurdle, I hope to have several plugins available soon to finally show my appreciation for everyone's hard work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
// Notepad++
// @file Notepad_plus_msgs.pas
// Interface to Notepad++.
library DllEntry;
uses
SysUtils,
Windows,
Shlwapi,
Scintilla in 'Scintilla.pas',
menuCmdID in 'menuCmdID.pas',
Notepad_plus_msgs in 'Notepad_plus_msgs.pas';
type
NppData = record
_nppHandle : HWND;
_scintillaMainHandle : HWND;
_scintillaSecondHandle : HWND;
end;
TProc = procedure; cdecl;
FuncItem = record
_itemName:array[0..63] of char;
_pFunc : TProc;
_cmdID : integer;
_init2Check : integer;
_PShKey : pointer;
end;
function getCurrentHScintilla(which: integer):HWND;
begin
if (which=0) then
result := LocalNppData._scintillaMainHandle
else
result := LocalNppData._scintillaSecondHandle;
end;
procedure tata; cdecl;
begin
MessageBox(LocalNppData._nppHandle, 'TaTa!', '', MB_OK);
end;
procedure DLLEntryPoint(dwReason: DWord);
var
nppPath: array[0..MAX_PATH-1] of Char;
begin
// Here we initialize the FuncItem Array.
// AWARE : no need to initialize _cmdID field.
// This filed will be initialized by Notepad++ plugins system
case dwReason of
DLL_PROCESS_ATTACH:
begin
//ShowMessage('Attaching to process');
FillChar(FI[0],sizeof(FuncItem),0);
//Procedure to Call
FI[0]._pFunc := replaceAll;
// Name in Menu
strcopy(FI[0]._itemName,'replaceAll');
// if you want your menu item is checked while the launch of program
// set it as 1 ( true), otherwise set it as 0 (false)
FI[0]._init2Check := 0;
//Short Key
FI[0]._PShKey := nil;
end;
DLL_PROCESS_DETACH: begin end;
DLL_THREAD_ATTACH: MessageBeep(0);
DLL_THREAD_DETACH: MessageBeep(0);
end;
GetModuleFilename(hInstance,nppPath,SizeOf(nppPath));
// remove the module name : get plugins directory path
PathRemoveFileSpec(nppPath);
// cd .. : get npp executable path
PathRemoveFileSpec(nppPath);
end;
//--------------------------------------------------
// The 4 extern functions are mandatory
// They will be called by Notepad++ plugins system
//--------------------------------------------------
// The setInfo function gets the needed infos from Notepad++ plugins system
procedure setInfo(NotePadPlusData : NppData);cdecl; // Needs struct nppdata
begin
// ShowMessage('setInfo');
LocalNppData := NotePadPlusData;
end;
// The getName function tells Notepad++ plugins system its name
function getName:PChar; cdecl;
begin
// ShowMessage('getName');
Result := PLUGIN_NAME;
end;
// The getFuncsArray function gives Notepad++ plugins system the pointer FuncItem Array
// and the size of this array (the number of functions)
function getFuncsArray(var nFuncs:integer):Pointer;cdecl;
begin
// ShowMessage('getFuncsArray');
nFuncs := PLUGIN_FUNCTIONS;
Result := @FI;
end;
// If you don't need get the notification from Notepad++,
// just let it be empty.
procedure beNotified; cdecl;
begin
end;
function messageProc(p1,p2:integer;p3:pointer): integer; cdecl;
begin
Result := 0;
end;
exports
setInfo,
getName,
getFuncsArray,
beNotified,
messageProc;
begin
{ First, assign the procedure to the DLLProc variable }
DllProc := @DLLEntryPoint;
{ Now invoke the procedure to reflect that the DLL is attaching to the
process }
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
TNotifyHeader = record
// hwndFrom is really an environment specifc window handle or pointer
// but most clients of Scintilla.h do not have this type visible.
//WindowID hwndFrom;
hwndFrom : Pointer;
idFrom : Cardinal;
code : Cardinal;
end;
PSCNotification = ^TSCNotification;
TSCNotification = record
nmhdr : TNotifyHeader;
position : Integer; // SCN_STYLENEEDED, SCN_MODIFIED
ch : Integer; // SCN_CHARADDED, SCN_KEY
modifiers : Integer; // SCN_KEY
modificationType : Integer; // SCN_MODIFIED
text : PChar; // SCN_MODIFIED
length : Integer; // SCN_MODIFIED
linesAdded : Integer; // SCN_MODIFIED
message : Integer; // SCN_MACRORECORD
wParam : uptr_t; // SCN_MACRORECORD
lParam : sptr_t; // SCN_MACRORECORD
line : Integer; // SCN_MODIFIED
foldLevelNow : Integer; // SCN_MODIFIED
foldLevelPrev : Integer; // SCN_MODIFIED
margin : Integer; // SCN_MARGINCLICK
listType : Integer; // SCN_USERLISTSELECTION
x : Integer; // SCN_DWELLSTART, SCN_DWELLEND
y : Integer; // SCN_DWELLSTART, SCN_DWELLEND
end;
// These structures are defined to be exactly the same shape as the Win32
// CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs.
// So older code that treats Scintilla as a RichEdit will work.
TCharacterRange = Record
cpMin : LongInt;
cpMax : LongInt;
end;
Have you looked at dbgp plugin. I know it looks horribly complicated. You just need to make a clean cut between the framework code and useful code. I don't want to open a new SF project; that would be just wasting good disk space.
If you're interested, drop me a mail and I'll send you an example. I wanted to prepare an example for some time now.. One of these days, I'm sure I'll find some time to submit it. q:)
Re,
-Zobo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
(I'm the original poster. I posted anonymously because I hadn't created my SourceForge account yet)
Zobo:
The dbgp plugin was the first one I looked at. Just like you said, I can't figure out how to mentally separate the framework from the useful code.
I agree with not wanting to start a new project for just a "Hello World" plugin like this. I was hoping it would be simple enough just to copy and paste the source code into this thread, but if not, I'd be very interested in having you email me an example.
Merijn:
If you wouldn't mind sending me a simple framework setup too, I would appreciate it. Sometimes looking at two different ways of doing the same thing can help to understand it better.
Thanks. If I can get this figured out with your help, you two will be my heroes!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You're already my hero for developing Notepad++ in the first place.
I've already tried the example you linked to, and it works fine to show how to set up a plugin and attach it to the menus, but it doesn't show how to interface with the actual text of the document.
Don't worry, though. Zobo sent me an example that looks like it does just what I need. It's actually starting to make sense. I'll play around with it a little and hopefully get it figured out.
To all 3 of you, thanks for all your help.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
NPPM_DMMGETPLUGINHWNDBYNAME = (NPPMSG + 43);
//HWND WM_DMM_GETPLUGINHWNDBYNAME(const char *windowName, const char *moduleName)
// if moduleName is NULL, then return value is NULL
// if windowName is NULL, then the first found window handle which matches with the moduleName will be returned
NPPM_MSGTOPLUGIN = (NPPMSG + 47);
//BOOL NPPM_MSGTOPLUGIN(char *destModuleName, CommunicationInfo *info)
// return value is TRUE when the message arrive to the destination plugins.
// if destModule or info is NULL, then return value is FALSE
// struct CommunicationInfo {
// long internalMsg;
// const char * srcModuleName;
// void * info; // defined by plugin
// };
NPPM_MENUCOMMAND = (NPPMSG + 48);
//void NPPM_MENUCOMMAND(0, int cmdID)
// uncomment //#include "menuCmdID.h"
// in the beginning of this file then use the command symbols defined in "menuCmdID.h" file
// to access all the Notepad++ menu command items
// Notification code
NPPN_FIRST = 1000;
NPPN_READY = (NPPN_FIRST + 1); // To notify plugins that all the procedures of launchment of notepad++ are done.
//scnNotification->nmhdr.code = NPPN_READY;
//scnNotification->nmhdr.hwndFrom = hwndNpp;
//scnNotification->nmhdr.idFrom = 0;
NPPN_TBMODIFICATION = (NPPN_FIRST + 2); // To notify plugins that toolbar icons can be registered
//scnNotification->nmhdr.code = NPPN_TB_MODIFICATION;
//scnNotification->nmhdr.hwndFrom = hwndNpp;
//scnNotification->nmhdr.idFrom = 0;
NPPN_FILEBEFORECLOSE = (NPPN_FIRST + 3); // To notify plugins that the current file is about to be closed
//scnNotification->nmhdr.code = NPPN_FILEBEFORECLOSE;
//scnNotification->nmhdr.hwndFrom = hwndNpp;
//scnNotification->nmhdr.idFrom = 0;
NPPN_FILEJUSTOPENED = (NPPN_FIRST + 4); // To notify plugins that the current file is just opened
//scnNotification->nmhdr.code = NPPN_FILEJUSTOPENED;
//scnNotification->nmhdr.hwndFrom = hwndNpp;
//scnNotification->nmhdr.idFrom = 0;
implementation
end.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've got some programs I've written in Delphi, mainly having to do with cleaning up .txt e-books to make them easier to read on a computer screen (Scripted Search-and-Replace, Auto-generating Table of Contents, etc). I would love to convert them to Notepad++ plugins to take advantage of its superior editing capabilities. However, I'm having a hard time getting started. My main problem is figuring out how to use the Notepad++ and Scintilla messages. I've looked through the plugins How-To page, but it assumes you're programming in C. I've downloaded and compiled the Delphi plugin template, but it doesn't have any examples of using the messages. I've downloaded the source code to several plugins that were written in Delphi, but they're all way too complex to understand. I've scoured these forums for anything that mentions Delphi, to no avail. So I was wondering if someone who programs in Delphi would be willing to help me out.
Here's my idea. I'd like someone to write a plugin, in Delphi, that replaces the currently selected text with "Hello World." (Or some other simple example that shows how to interface with the text) If you just want to post the source code to this thread instead of creating a new SourceForge project for this otherwise pointless example, that's fine. Hopefully it will be as simple as it sounds.
Once I get over this first hurdle, I hope to have several plugins available soon to finally show my appreciation for everyone's hard work.
// Notepad++
// @file Notepad_plus_msgs.pas
// Interface to Notepad++.
library DllEntry;
uses
SysUtils,
Windows,
Shlwapi,
Scintilla in 'Scintilla.pas',
menuCmdID in 'menuCmdID.pas',
Notepad_plus_msgs in 'Notepad_plus_msgs.pas';
type
NppData = record
_nppHandle : HWND;
_scintillaMainHandle : HWND;
_scintillaSecondHandle : HWND;
end;
TProc = procedure; cdecl;
FuncItem = record
_itemName:array[0..63] of char;
_pFunc : TProc;
_cmdID : integer;
_init2Check : integer;
_PShKey : pointer;
end;
const
ULL_CURRENT_PATH = 1;
CURRENT_DIRECTORY = 2;
FILE_NAME = 3;
// This is the name which will be displayed in Plugins Menu
const PLUGIN_NAME = 'usPlugin';
// The number of functionality
const PLUGIN_FUNCTIONS = 3;
var
LocalNppData : NppData;
FI : array[0..PLUGIN_FUNCTIONS] of FuncItem;
currentEdit: LongInt;
currentEditView: HWND;
currentSelectionLen: LongInt;
currentSelection: string;
function getCurrentHScintilla(which: integer):HWND;
begin
if (which=0) then
result := LocalNppData._scintillaMainHandle
else
result := LocalNppData._scintillaSecondHandle;
end;
procedure getEdit; cdecl;
begin
SendMessage(LocalNppData._nppHandle, NPPM_GETCURRENTSCINTILLA, 0, LParam(@currentEdit));
currentEditView := getCurrentHScintilla(currentEdit);
end;
procedure selectAll; cdecl;
begin
SendMessage(currentEditView, SCI_SELECTALL, 0, 0);
end;
procedure getSelection; cdecl;
begin
currentSelectionLen := SendMessage(currentEditView, SCI_GETTEXTLENGTH, 0, 0);
setlength(currentSelection, currentSelectionLen);
SendMessage(currentEditView, SCI_GETSELTEXT, 0, LParam(Pchar(currentSelection)));
end;
procedure setSelection; cdecl;
begin
SendMessage(currentEditView, SCI_BEGINUNDOACTION, 0, 0);
SendMessage(currentEditView, SCI_REPLACESEL, 0, LParam(PChar(currentSelection)));
SendMessage(currentEditView, SCI_ENDUNDOACTION, 0, 0);
end;
//-------------------------------------
// Here're the definition of functions
//-------------------------------------
procedure replaceAll; cdecl;
begin
getEdit;
selectAll;
getSelection;
// do something with selection
currentSelection := StringReplace(currentSelection, #13#10, '_'+#13#10, [rfReplaceAll]);
setSelection;
MessageBox(LocalNppData._nppHandle, 'Everything replaced!', '', MB_OK);
end;
procedure replaceSelection; cdecl;
begin
getEdit;
getSelection;
// do something with selection
currentSelection := StringReplace(currentSelection, #13#10, '_'+#13#10, [rfReplaceAll]);
setSelection;
MessageBox(LocalNppData._nppHandle, 'Selection replaced!', '', MB_OK);
end;
procedure tata; cdecl;
begin
MessageBox(LocalNppData._nppHandle, 'TaTa!', '', MB_OK);
end;
procedure DLLEntryPoint(dwReason: DWord);
var
nppPath: array[0..MAX_PATH-1] of Char;
begin
// Here we initialize the FuncItem Array.
// AWARE : no need to initialize _cmdID field.
// This filed will be initialized by Notepad++ plugins system
case dwReason of
DLL_PROCESS_ATTACH:
begin
//ShowMessage('Attaching to process');
FillChar(FI[0],sizeof(FuncItem),0);
//Procedure to Call
FI[0]._pFunc := replaceAll;
// Name in Menu
strcopy(FI[0]._itemName,'replaceAll');
// if you want your menu item is checked while the launch of program
// set it as 1 ( true), otherwise set it as 0 (false)
FI[0]._init2Check := 0;
//Short Key
FI[0]._PShKey := nil;
FillChar(FI[1],sizeof(FuncItem),0);
FI[1]._pFunc := replaceSelection;
strcopy(FI[1]._itemName,'replaceSelection');
FI[1]._init2Check := 0;
FI[1]._PShKey := nil;
FillChar(FI[2],sizeof(FuncItem),0);
FI[2]._pFunc := tata;
strcopy(FI[2]._itemName,'tata');
FI[2]._init2Check := 0;
FI[2]._PShKey := nil;
end;
DLL_PROCESS_DETACH: begin end;
DLL_THREAD_ATTACH: MessageBeep(0);
DLL_THREAD_DETACH: MessageBeep(0);
end;
GetModuleFilename(hInstance,nppPath,SizeOf(nppPath));
// remove the module name : get plugins directory path
PathRemoveFileSpec(nppPath);
// cd .. : get npp executable path
PathRemoveFileSpec(nppPath);
end;
//--------------------------------------------------
// The 4 extern functions are mandatory
// They will be called by Notepad++ plugins system
//--------------------------------------------------
// The setInfo function gets the needed infos from Notepad++ plugins system
procedure setInfo(NotePadPlusData : NppData);cdecl; // Needs struct nppdata
begin
// ShowMessage('setInfo');
LocalNppData := NotePadPlusData;
end;
// The getName function tells Notepad++ plugins system its name
function getName:PChar; cdecl;
begin
// ShowMessage('getName');
Result := PLUGIN_NAME;
end;
// The getFuncsArray function gives Notepad++ plugins system the pointer FuncItem Array
// and the size of this array (the number of functions)
function getFuncsArray(var nFuncs:integer):Pointer;cdecl;
begin
// ShowMessage('getFuncsArray');
nFuncs := PLUGIN_FUNCTIONS;
Result := @FI;
end;
// If you don't need get the notification from Notepad++,
// just let it be empty.
procedure beNotified; cdecl;
begin
end;
function messageProc(p1,p2:integer;p3:pointer): integer; cdecl;
begin
Result := 0;
end;
exports
setInfo,
getName,
getFuncsArray,
beNotified,
messageProc;
begin
{ First, assign the procedure to the DLLProc variable }
DllProc := @DLLEntryPoint;
{ Now invoke the procedure to reflect that the DLL is attaching to the
process }
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
// Scintilla source code edit control
// @file Scintilla.pas
// Interface to the edit control.
unit Scintilla;
interface
uses Windows;
type
TScintillaMessageFnc = function(ptr : Pointer; Msg, wParam, lParam : LongInt) : LongInt; cdecl;
uptr_t = Longword;
sptr_t = LongInt;
TNotifyHeader = record
// hwndFrom is really an environment specifc window handle or pointer
// but most clients of Scintilla.h do not have this type visible.
//WindowID hwndFrom;
hwndFrom : Pointer;
idFrom : Cardinal;
code : Cardinal;
end;
PSCNotification = ^TSCNotification;
TSCNotification = record
nmhdr : TNotifyHeader;
position : Integer; // SCN_STYLENEEDED, SCN_MODIFIED
ch : Integer; // SCN_CHARADDED, SCN_KEY
modifiers : Integer; // SCN_KEY
modificationType : Integer; // SCN_MODIFIED
text : PChar; // SCN_MODIFIED
length : Integer; // SCN_MODIFIED
linesAdded : Integer; // SCN_MODIFIED
message : Integer; // SCN_MACRORECORD
wParam : uptr_t; // SCN_MACRORECORD
lParam : sptr_t; // SCN_MACRORECORD
line : Integer; // SCN_MODIFIED
foldLevelNow : Integer; // SCN_MODIFIED
foldLevelPrev : Integer; // SCN_MODIFIED
margin : Integer; // SCN_MARGINCLICK
listType : Integer; // SCN_USERLISTSELECTION
x : Integer; // SCN_DWELLSTART, SCN_DWELLEND
y : Integer; // SCN_DWELLSTART, SCN_DWELLEND
end;
// These structures are defined to be exactly the same shape as the Win32
// CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs.
// So older code that treats Scintilla as a RichEdit will work.
TCharacterRange = Record
cpMin : LongInt;
cpMax : LongInt;
end;
PTextRange = ^TTextRange;
TTextRange = Record
chrg : TCharacterRange;
lpstrText : LPSTR;
end;
PTextToFind = ^TTextToFind;
TTextToFind = Record
chrg : TCharacterRange;
lpstrText : LPSTR;
chrgText : TCharacterRange;
end;
PRangeToFormat = ^TRangeToFormat;
TRangeToFormat = record
hdc: HDC;
hdcTarget: HDC;
rc: TRect;
rcPage: TRect;
chrg: TCharacterRange;
end;
const
//++Autogenerated -- start of section automatically generated from Scintilla.iface
INVALID_POSITION = -1;
SCI_START = 2000;
SCI_OPTIONAL_START = 3000;
SCI_LEXER_START = 4000;
SCI_ADDTEXT = 2001;
SCI_ADDSTYLEDTEXT = 2002;
SCI_INSERTTEXT = 2003;
SCI_CLEARALL = 2004;
SCI_CLEARDOCUMENTSTYLE = 2005;
SCI_GETLENGTH = 2006;
SCI_GETCHARAT = 2007;
SCI_GETCURRENTPOS = 2008;
SCI_GETANCHOR = 2009;
SCI_GETSTYLEAT = 2010;
SCI_REDO = 2011;
SCI_SETUNDOCOLLECTION = 2012;
SCI_SELECTALL = 2013;
SCI_SETSAVEPOINT = 2014;
SCI_GETSTYLEDTEXT = 2015;
SCI_CANREDO = 2016;
SCI_MARKERLINEFROMHANDLE = 2017;
SCI_MARKERDELETEHANDLE = 2018;
SCI_GETUNDOCOLLECTION = 2019;
SCWS_INVISIBLE = 0;
SCWS_VISIBLEALWAYS = 1;
SCWS_VISIBLEAFTERINDENT = 2;
SCI_GETVIEWWS = 2020;
SCI_SETVIEWWS = 2021;
SCI_POSITIONFROMPOINT = 2022;
SCI_POSITIONFROMPOINTCLOSE = 2023;
SCI_GOTOLINE = 2024;
SCI_GOTOPOS = 2025;
SCI_SETANCHOR = 2026;
SCI_GETCURLINE = 2027;
SCI_GETENDSTYLED = 2028;
SC_EOL_CRLF = 0;
SC_EOL_CR = 1;
SC_EOL_LF = 2;
SCI_CONVERTEOLS = 2029;
SCI_GETEOLMODE = 2030;
SCI_SETEOLMODE = 2031;
SCI_STARTSTYLING = 2032;
SCI_SETSTYLING = 2033;
SCI_GETBUFFEREDDRAW = 2034;
SCI_SETBUFFEREDDRAW = 2035;
SCI_SETTABWIDTH = 2036;
SCI_GETTABWIDTH = 2121;
SC_CP_UTF8 = 65001;
SC_CP_DBCS = 1;
SCI_SETCODEPAGE = 2037;
SCI_SETUSEPALETTE = 2039;
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_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 = $FE000000;
SCI_MARKERDEFINE = 2040;
SCI_MARKERSETFORE = 2041;
SCI_MARKERSETBACK = 2042;
SCI_MARKERADD = 2043;
SCI_MARKERDELETE = 2044;
SCI_MARKERDELETEALL = 2045;
SCI_MARKERGET = 2046;
SCI_MARKERNEXT = 2047;
SCI_MARKERPREVIOUS = 2048;
SCI_MARKERDEFINEPIXMAP = 2049;
SC_MARGIN_SYMBOL = 0;
SC_MARGIN_NUMBER = 1;
SCI_SETMARGINTYPEN = 2240;
SCI_GETMARGINTYPEN = 2241;
SCI_SETMARGINWIDTHN = 2242;
SCI_GETMARGINWIDTHN = 2243;
SCI_SETMARGINMASKN = 2244;
SCI_GETMARGINMASKN = 2245;
SCI_SETMARGINSENSITIVEN = 2246;
SCI_GETMARGINSENSITIVEN = 2247;
STYLE_DEFAULT = 32;
STYLE_LINENUMBER = 33;
STYLE_BRACELIGHT = 34;
STYLE_BRACEBAD = 35;
STYLE_CONTROLCHAR = 36;
STYLE_INDENTGUIDE = 37;
STYLE_LASTPREDEFINED = 39;
STYLE_MAX = 127;
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_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;
SCI_STYLECLEARALL = 2050;
SCI_STYLESETFORE = 2051;
SCI_STYLESETBACK = 2052;
SCI_STYLESETBOLD = 2053;
SCI_STYLESETITALIC = 2054;
SCI_STYLESETSIZE = 2055;
SCI_STYLESETFONT = 2056;
SCI_STYLESETEOLFILLED = 2057;
SCI_STYLERESETDEFAULT = 2058;
SCI_STYLESETUNDERLINE = 2059;
SC_CASE_MIXED = 0;
SC_CASE_UPPER = 1;
SC_CASE_LOWER = 2;
SCI_STYLESETCASE = 2060;
SCI_STYLESETCHARACTERSET = 2066;
SCI_STYLESETHOTSPOT = 2409;
SCI_SETSELFORE = 2067;
SCI_SETSELBACK = 2068;
SCI_SETCARETFORE = 2069;
SCI_ASSIGNCMDKEY = 2070;
SCI_CLEARCMDKEY = 2071;
SCI_CLEARALLCMDKEYS = 2072;
SCI_SETSTYLINGEX = 2073;
SCI_STYLESETVISIBLE = 2074;
SCI_GETCARETPERIOD = 2075;
SCI_SETCARETPERIOD = 2076;
SCI_SETWORDCHARS = 2077;
SCI_BEGINUNDOACTION = 2078;
SCI_ENDUNDOACTION = 2079;
INDIC_MAX = 7;
INDIC_PLAIN = 0;
INDIC_SQUIGGLE = 1;
INDIC_TT = 2;
INDIC_DIAGONAL = 3;
INDIC_STRIKE = 4;
INDIC_HIDDEN = 5;
INDIC_BOX = 6;
INDIC0_MASK = $20;
INDIC1_MASK = $40;
INDIC2_MASK = $80;
INDICS_MASK = $E0;
SCI_INDICSETSTYLE = 2080;
SCI_INDICGETSTYLE = 2081;
SCI_INDICSETFORE = 2082;
SCI_INDICGETFORE = 2083;
SCI_SETWHITESPACEFORE = 2084;
SCI_SETWHITESPACEBACK = 2085;
SCI_SETSTYLEBITS = 2090;
SCI_GETSTYLEBITS = 2091;
SCI_SETLINESTATE = 2092;
SCI_GETLINESTATE = 2093;
SCI_GETMAXLINESTATE = 2094;
SCI_GETCARETLINEVISIBLE = 2095;
SCI_SETCARETLINEVISIBLE = 2096;
SCI_GETCARETLINEBACK = 2097;
SCI_SETCARETLINEBACK = 2098;
SCI_STYLESETCHANGEABLE = 2099;
SCI_AUTOCSHOW = 2100;
SCI_AUTOCCANCEL = 2101;
SCI_AUTOCACTIVE = 2102;
SCI_AUTOCPOSSTART = 2103;
SCI_AUTOCCOMPLETE = 2104;
SCI_AUTOCSTOPS = 2105;
SCI_AUTOCSETSEPARATOR = 2106;
SCI_AUTOCGETSEPARATOR = 2107;
SCI_AUTOCSELECT = 2108;
SCI_AUTOCSETCANCELATSTART = 2110;
SCI_AUTOCGETCANCELATSTART = 2111;
SCI_AUTOCSETFILLUPS = 2112;
SCI_AUTOCSETCHOOSESINGLE = 2113;
SCI_AUTOCGETCHOOSESINGLE = 2114;
SCI_AUTOCSETIGNORECASE = 2115;
SCI_AUTOCGETIGNORECASE = 2116;
SCI_USERLISTSHOW = 2117;
SCI_AUTOCSETAUTOHIDE = 2118;
SCI_AUTOCGETAUTOHIDE = 2119;
SCI_AUTOCSETDROPRESTOFWORD = 2270;
SCI_AUTOCGETDROPRESTOFWORD = 2271;
SCI_REGISTERIMAGE = 2405;
SCI_CLEARREGISTEREDIMAGES = 2408;
SCI_AUTOCGETTYPESEPARATOR = 2285;
SCI_AUTOCSETTYPESEPARATOR = 2286;
SCI_AUTOCSETMAXWIDTH = 2208;
SCI_AUTOCGETMAXWIDTH = 2209;
SCI_AUTOCSETMAXHEIGHT = 2210;
SCI_AUTOCGETMAXHEIGHT = 2211;
SCI_SETINDENT = 2122;
SCI_GETINDENT = 2123;
SCI_SETUSETABS = 2124;
SCI_GETUSETABS = 2125;
SCI_SETLINEINDENTATION = 2126;
SCI_GETLINEINDENTATION = 2127;
SCI_GETLINEINDENTPOSITION = 2128;
SCI_GETCOLUMN = 2129;
SCI_SETHSCROLLBAR = 2130;
SCI_GETHSCROLLBAR = 2131;
SCI_SETINDENTATIONGUIDES = 2132;
SCI_GETINDENTATIONGUIDES = 2133;
SCI_SETHIGHLIGHTGUIDE = 2134;
SCI_GETHIGHLIGHTGUIDE = 2135;
SCI_GETLINEENDPOSITION = 2136;
SCI_GETCODEPAGE = 2137;
SCI_GETCARETFORE = 2138;
SCI_GETUSEPALETTE = 2139;
SCI_GETREADONLY = 2140;
SCI_SETCURRENTPOS = 2141;
SCI_SETSELECTIONSTART = 2142;
SCI_GETSELECTIONSTART = 2143;
SCI_SETSELECTIONEND = 2144;
SCI_GETSELECTIONEND = 2145;
SCI_SETPRINTMAGNIFICATION = 2146;
SCI_GETPRINTMAGNIFICATION = 2147;
SC_PRINT_NORMAL = 0;
SC_PRINT_INVERTLIGHT = 1;
SC_PRINT_BLACKONWHITE = 2;
SC_PRINT_COLOURONWHITE = 3;
SC_PRINT_COLOURONWHITEDEFAULTBG = 4;
SCI_SETPRINTCOLOURMODE = 2148;
SCI_GETPRINTCOLOURMODE = 2149;
SCFIND_WHOLEWORD = 2;
SCFIND_MATCHCASE = 4;
SCFIND_WORDSTART = $00100000;
SCFIND_REGEXP = $00200000;
SCFIND_POSIX = $00400000;
SCI_FINDTEXT = 2150;
SCI_FORMATRANGE = 2151;
SCI_GETFIRSTVISIBLELINE = 2152;
SCI_GETLINE = 2153;
SCI_GETLINECOUNT = 2154;
SCI_SETMARGINLEFT = 2155;
SCI_GETMARGINLEFT = 2156;
SCI_SETMARGINRIGHT = 2157;
SCI_GETMARGINRIGHT = 2158;
SCI_GETMODIFY = 2159;
SCI_SETSEL = 2160;
SCI_GETSELTEXT = 2161;
SCI_GETTEXTRANGE = 2162;
SCI_HIDESELECTION = 2163;
SCI_POINTXFROMPOSITION = 2164;
SCI_POINTYFROMPOSITION = 2165;
SCI_LINEFROMPOSITION = 2166;
SCI_POSITIONFROMLINE = 2167;
SCI_LINESCROLL = 2168;
SCI_SCROLLCARET = 2169;
SCI_REPLACESEL = 2170;
SCI_SETREADONLY = 2171;
SCI_NULL = 2172;
SCI_CANPASTE = 2173;
SCI_CANUNDO = 2174;
SCI_EMPTYUNDOBUFFER = 2175;
SCI_UNDO = 2176;
SCI_CUT = 2177;
SCI_COPY = 2178;
SCI_PASTE = 2179;
SCI_CLEAR = 2180;
SCI_SETTEXT = 2181;
SCI_GETTEXT = 2182;
SCI_GETTEXTLENGTH = 2183;
SCI_GETDIRECTFUNCTION = 2184;
SCI_GETDIRECTPOINTER = 2185;
SCI_SETOVERTYPE = 2186;
SCI_GETOVERTYPE = 2187;
SCI_SETCARETWIDTH = 2188;
SCI_GETCARETWIDTH = 2189;
SCI_SETTARGETSTART = 2190;
SCI_GETTARGETSTART = 2191;
SCI_SETTARGETEND = 2192;
SCI_GETTARGETEND = 2193;
SCI_REPLACETARGET = 2194;
SCI_REPLACETARGETRE = 2195;
SCI_SEARCHINTARGET = 2197;
SCI_SETSEARCHFLAGS = 2198;
SCI_GETSEARCHFLAGS = 2199;
SCI_CALLTIPSHOW = 2200;
SCI_CALLTIPCANCEL = 2201;
SCI_CALLTIPACTIVE = 2202;
SCI_CALLTIPPOSSTART = 2203;
SCI_CALLTIPSETHLT = 2204;
SCI_CALLTIPSETBACK = 2205;
SCI_CALLTIPSETFORE = 2206;
SCI_CALLTIPSETFOREHLT = 2207;
SCI_VISIBLEFROMDOCLINE = 2220;
SCI_DOCLINEFROMVISIBLE = 2221;
SCI_WRAPCOUNT = 2235;
SC_FOLDLEVELBASE = $400;
SC_FOLDLEVELWHITEFLAG = $1000;
SC_FOLDLEVELHEADERFLAG = $2000;
SC_FOLDLEVELBOXHEADERFLAG = $4000;
SC_FOLDLEVELBOXFOOTERFLAG = $8000;
SC_FOLDLEVELCONTRACTED = $10000;
SC_FOLDLEVELUNINDENT = $20000;
SC_FOLDLEVELNUMBERMASK = $0FFF;
SCI_SETFOLDLEVEL = 2222;
SCI_GETFOLDLEVEL = 2223;
SCI_GETLASTCHILD = 2224;
SCI_GETFOLDPARENT = 2225;
SCI_SHOWLINES = 2226;
SCI_HIDELINES = 2227;
SCI_GETLINEVISIBLE = 2228;
SCI_SETFOLDEXPANDED = 2229;
SCI_GETFOLDEXPANDED = 2230;
SCI_TOGGLEFOLD = 2231;
SCI_ENSUREVISIBLE = 2232;
SC_FOLDFLAG_LINEBEFORE_EXPANDED = $0002;
SC_FOLDFLAG_LINEBEFORE_CONTRACTED = $0004;
SC_FOLDFLAG_LINEAFTER_EXPANDED = $0008;
SC_FOLDFLAG_LINEAFTER_CONTRACTED = $0010;
SC_FOLDFLAG_LEVELNUMBERS = $0040;
SC_FOLDFLAG_BOX = $0001;
SCI_SETFOLDFLAGS = 2233;
SCI_ENSUREVISIBLEENFORCEPOLICY = 2234;
SCI_SETTABINDENTS = 2260;
SCI_GETTABINDENTS = 2261;
SCI_SETBACKSPACEUNINDENTS = 2262;
SCI_GETBACKSPACEUNINDENTS = 2263;
SC_TIME_FOREVER = 10000000;
SCI_SETMOUSEDWELLTIME = 2264;
SCI_GETMOUSEDWELLTIME = 2265;
SCI_WORDSTARTPOSITION = 2266;
SCI_WORDENDPOSITION = 2267;
SC_WRAP_NONE = 0;
SC_WRAP_WORD = 1;
SC_WRAP_CHAR = 2;
SCI_SETWRAPMODE = 2268;
SCI_GETWRAPMODE = 2269;
SC_WRAPVISUALFLAG_NONE = $0000;
SC_WRAPVISUALFLAG_END = $0001;
SC_WRAPVISUALFLAG_START = $0002;
SCI_SETWRAPVISUALFLAGS = 2460;
SCI_GETWRAPVISUALFLAGS = 2461;
SC_WRAPVISUALFLAGLOC_DEFAULT = $0000;
SC_WRAPVISUALFLAGLOC_END_BY_TEXT = $0001;
SC_WRAPVISUALFLAGLOC_START_BY_TEXT = $0002;
SCI_SETWRAPVISUALFLAGSLOCATION = 2462;
SCI_GETWRAPVISUALFLAGSLOCATION = 2463;
SCI_SETWRAPSTARTINDENT = 2464;
SCI_GETWRAPSTARTINDENT = 2465;
SC_CACHE_NONE = 0;
SC_CACHE_CARET = 1;
SC_CACHE_PAGE = 2;
SC_CACHE_DOCUMENT = 3;
SCI_SETLAYOUTCACHE = 2272;
SCI_GETLAYOUTCACHE = 2273;
SCI_SETSCROLLWIDTH = 2274;
SCI_GETSCROLLWIDTH = 2275;
SCI_TEXTWIDTH = 2276;
SCI_SETENDATLASTLINE = 2277;
SCI_GETENDATLASTLINE = 2278;
SCI_TEXTHEIGHT = 2279;
SCI_SETVSCROLLBAR = 2280;
SCI_GETVSCROLLBAR = 2281;
SCI_APPENDTEXT = 2282;
SCI_GETTWOPHASEDRAW = 2283;
SCI_SETTWOPHASEDRAW = 2284;
SCI_TARGETFROMSELECTION = 2287;
SCI_LINESJOIN = 2288;
SCI_LINESSPLIT = 2289;
SCI_SETFOLDMARGINCOLOUR = 2290;
SCI_SETFOLDMARGINHICOLOUR = 2291;
SCI_LINEDOWN = 2300;
SCI_LINEDOWNEXTEND = 2301;
SCI_LINEUP = 2302;
SCI_LINEUPEXTEND = 2303;
SCI_CHARLEFT = 2304;
SCI_CHARLEFTEXTEND = 2305;
SCI_CHARRIGHT = 2306;
SCI_CHARRIGHTEXTEND = 2307;
SCI_WORDLEFT = 2308;
SCI_WORDLEFTEXTEND = 2309;
SCI_WORDRIGHT = 2310;
SCI_WORDRIGHTEXTEND = 2311;
SCI_HOME = 2312;
SCI_HOMEEXTEND = 2313;
SCI_LINEEND = 2314;
SCI_LINEENDEXTEND = 2315;
SCI_DOCUMENTSTART = 2316;
SCI_DOCUMENTSTARTEXTEND = 2317;
SCI_DOCUMENTEND = 2318;
SCI_DOCUMENTENDEXTEND = 2319;
SCI_PAGEUP = 2320;
SCI_PAGEUPEXTEND = 2321;
SCI_PAGEDOWN = 2322;
SCI_PAGEDOWNEXTEND = 2323;
SCI_EDITTOGGLEOVERTYPE = 2324;
SCI_CANCEL = 2325;
SCI_DELETEBACK = 2326;
SCI_TAB = 2327;
SCI_BACKTAB = 2328;
SCI_NEWLINE = 2329;
SCI_FORMFEED = 2330;
SCI_VCHOME = 2331;
SCI_VCHOMEEXTEND = 2332;
SCI_ZOOMIN = 2333;
SCI_ZOOMOUT = 2334;
SCI_DELWORDLEFT = 2335;
SCI_DELWORDRIGHT = 2336;
SCI_LINECUT = 2337;
SCI_LINEDELETE = 2338;
SCI_LINETRANSPOSE = 2339;
SCI_LINEDUPLICATE = 2404;
SCI_LOWERCASE = 2340;
SCI_UPPERCASE = 2341;
SCI_LINESCROLLDOWN = 2342;
SCI_LINESCROLLUP = 2343;
SCI_DELETEBACKNOTLINE = 2344;
SCI_HOMEDISPLAY = 2345;
SCI_HOMEDISPLAYEXTEND = 2346;
SCI_LINEENDDISPLAY = 2347;
SCI_LINEENDDISPLAYEXTEND = 2348;
SCI_HOMEWRAP = 2349;
SCI_HOMEWRAPEXTEND = 2450;
SCI_LINEENDWRAP = 2451;
SCI_LINEENDWRAPEXTEND = 2452;
SCI_VCHOMEWRAP = 2453;
SCI_VCHOMEWRAPEXTEND = 2454;
SCI_LINECOPY = 2455;
SCI_MOVECARETINSIDEVIEW = 2401;
SCI_LINELENGTH = 2350;
SCI_BRACEHIGHLIGHT = 2351;
SCI_BRACEBADLIGHT = 2352;
SCI_BRACEMATCH = 2353;
SCI_GETVIEWEOL = 2355;
SCI_SETVIEWEOL = 2356;
SCI_GETDOCPOINTER = 2357;
SCI_SETDOCPOINTER = 2358;
SCI_SETMODEVENTMASK = 2359;
EDGE_NONE = 0;
EDGE_LINE = 1;
EDGE_BACKGROUND = 2;
SCI_GETEDGECOLUMN = 2360;
SCI_SETEDGECOLUMN = 2361;
SCI_GETEDGEMODE = 2362;
SCI_SETEDGEMODE = 2363;
SCI_GETEDGECOLOUR = 2364;
SCI_SETEDGECOLOUR = 2365;
SCI_SEARCHANCHOR = 2366;
SCI_SEARCHNEXT = 2367;
SCI_SEARCHPREV = 2368;
SCI_LINESONSCREEN = 2370;
SCI_USEPOPUP = 2371;
SCI_SELECTIONISRECTANGLE = 2372;
SCI_SETZOOM = 2373;
SCI_GETZOOM = 2374;
SCI_CREATEDOCUMENT = 2375;
SCI_ADDREFDOCUMENT = 2376;
SCI_RELEASEDOCUMENT = 2377;
SCI_GETMODEVENTMASK = 2378;
SCI_SETFOCUSEX = 2380;
SCI_GETFOCUS = 2381;
SCI_SETSTATUS = 2382;
SCI_GETSTATUS = 2383;
SCI_SETMOUSEDOWNCAPTURES = 2384;
SCI_GETMOUSEDOWNCAPTURES = 2385;
SC_CURSORNORMAL = -1;
SC_CURSORWAIT = 4;
SCI_SETCURSOR = 2386;
SCI_GETCURSOR = 2387;
SCI_SETCONTROLCHARSYMBOL = 2388;
SCI_GETCONTROLCHARSYMBOL = 2389;
SCI_WORDPARTLEFT = 2390;
SCI_WORDPARTLEFTEXTEND = 2391;
SCI_WORDPARTRIGHT = 2392;
SCI_WORDPARTRIGHTEXTEND = 2393;
VISIBLE_SLOP = $01;
VISIBLE_STRICT = $04;
SCI_SETVISIBLEPOLICY = 2394;
SCI_DELLINELEFT = 2395;
SCI_DELLINERIGHT = 2396;
SCI_SETXOFFSET = 2397;
SCI_GETXOFFSET = 2398;
SCI_CHOOSECARETX = 2399;
SCI_GRABFOCUS = 2400;
CARET_SLOP = $01;
CARET_STRICT = $04;
CARET_JUMPS = $10;
CARET_EVEN = $08;
SCI_SETXCARETPOLICY = 2402;
SCI_SETYCARETPOLICY = 2403;
SCI_SETPRINTWRAPMODE = 2406;
SCI_GETPRINTWRAPMODE = 2407;
SCI_SETHOTSPOTACTIVEFORE = 2410;
SCI_SETHOTSPOTACTIVEBACK = 2411;
SCI_SETHOTSPOTACTIVEUNDERLINE = 2412;
SCI_SETHOTSPOTSINGLELINE = 2421;
SCI_PARADOWN = 2413;
SCI_PARADOWNEXTEND = 2414;
SCI_PARAUP = 2415;
SCI_PARAUPEXTEND = 2416;
SCI_POSITIONBEFORE = 2417;
SCI_POSITIONAFTER = 2418;
SCI_COPYRANGE = 2419;
SCI_COPYTEXT = 2420;
SC_SEL_STREAM = 0;
SC_SEL_RECTANGLE = 1;
SC_SEL_LINES = 2;
SCI_SETSELECTIONMODE = 2422;
SCI_GETSELECTIONMODE = 2423;
SCI_GETLINESELSTARTPOSITION = 2424;
SCI_GETLINESELENDPOSITION = 2425;
SCI_LINEDOWNRECTEXTEND = 2426;
SCI_LINEUPRECTEXTEND = 2427;
SCI_CHARLEFTRECTEXTEND = 2428;
SCI_CHARRIGHTRECTEXTEND = 2429;
SCI_HOMERECTEXTEND = 2430;
SCI_VCHOMERECTEXTEND = 2431;
SCI_LINEENDRECTEXTEND = 2432;
SCI_PAGEUPRECTEXTEND = 2433;
SCI_PAGEDOWNRECTEXTEND = 2434;
SCI_STUTTEREDPAGEUP = 2435;
SCI_STUTTEREDPAGEUPEXTEND = 2436;
SCI_STUTTEREDPAGEDOWN = 2437;
SCI_STUTTEREDPAGEDOWNEXTEND = 2438;
SCI_WORDLEFTEND = 2439;
SCI_WORDLEFTENDEXTEND = 2440;
SCI_WORDRIGHTEND = 2441;
SCI_WORDRIGHTENDEXTEND = 2442;
SCI_SETWHITESPACECHARS = 2443;
SCI_SETCHARSDEFAULT = 2444;
SCI_AUTOCGETCURRENT = 2445;
SCI_ALLOCATE = 2446;
SCI_FINDCOLUMN = 2456;
SCI_GETCARETSTICKY = 2457;
SCI_SETCARETSTICKY = 2458;
SCI_TOGGLECARETSTICKY = 2459;
SCI_STARTRECORD = 3001;
SCI_STOPRECORD = 3002;
SCI_SETLEXER = 4001;
SCI_GETLEXER = 4002;
SCI_COLOURISE = 4003;
SCI_SETPROPERTY = 4004;
KEYWORDSET_MAX = 8;
SCI_SETKEYWORDS = 4005;
SCI_SETLEXERLANGUAGE = 4006;
SCI_LOADLEXERLIBRARY = 4007;
SC_MOD_INSERTTEXT = $1;
SC_MOD_DELETETEXT = $2;
SC_MOD_CHANGESTYLE = $4;
SC_MOD_CHANGEFOLD = $8;
SC_PERFORMED_USER = $10;
SC_PERFORMED_UNDO = $20;
SC_PERFORMED_REDO = $40;
SC_LASTSTEPINUNDOREDO = $100;
SC_MOD_CHANGEMARKER = $200;
SC_MOD_BEFOREINSERT = $400;
SC_MOD_BEFOREDELETE = $800;
SC_MODEVENTMASKALL = $F7F;
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;
SCMOD_SHIFT = 1;
SCMOD_CTRL = 2;
SCMOD_ALT = 4;
SCLEX_CONTAINER = 0;
SCLEX_NULL = 1;
SCLEX_PYTHON = 2;
SCLEX_CPP = 3;
SCLEX_HTML = 4;
SCLEX_XML = 5;
SCLEX_PERL = 6;
SCLEX_SQL = 7;
SCLEX_VB = 8;
SCLEX_PROPERTIES = 9;
SCLEX_ERRORLIST = 10;
SCLEX_MAKEFILE = 11;
SCLEX_BATCH = 12;
SCLEX_XCODE = 13;
SCLEX_LATEX = 14;
SCLEX_LUA = 15;
SCLEX_DIFF = 16;
SCLEX_CONF = 17;
SCLEX_PASCAL = 18;
SCLEX_AVE = 19;
SCLEX_ADA = 20;
SCLEX_LISP = 21;
SCLEX_RUBY = 22;
SCLEX_EIFFEL = 23;
SCLEX_EIFFELKW = 24;
SCLEX_TCL = 25;
SCLEX_NNCRONTAB = 26;
SCLEX_BULLANT = 27;
SCLEX_VBSCRIPT = 28;
SCLEX_BAAN = 31;
SCLEX_MATLAB = 32;
SCLEX_SCRIPTOL = 33;
SCLEX_ASM = 34;
SCLEX_CPPNOCASE = 35;
SCLEX_FORTRAN = 36;
SCLEX_F77 = 37;
SCLEX_CSS = 38;
SCLEX_POV = 39;
SCLEX_LOUT = 40;
SCLEX_ESCRIPT = 41;
SCLEX_PS = 42;
SCLEX_NSIS = 43;
SCLEX_MMIXAL = 44;
SCLEX_CLW = 45;
SCLEX_CLWNOCASE = 46;
SCLEX_LOT = 47;
SCLEX_YAML = 48;
SCLEX_TEX = 49;
SCLEX_METAPOST = 50;
SCLEX_POWERBASIC = 51;
SCLEX_FORTH = 52;
SCLEX_ERLANG = 53;
SCLEX_OCTAVE = 54;
SCLEX_MSSQL = 55;
SCLEX_VERILOG = 56;
SCLEX_KIX = 57;
SCLEX_GUI4CLI = 58;
SCLEX_SPECMAN = 59;
SCLEX_AU3 = 60;
SCLEX_APDL = 61;
SCLEX_BASH = 62;
SCLEX_ASN1 = 63;
SCLEX_VHDL = 64;
SCLEX_CAML = 65;
SCLEX_BLITZBASIC = 66;
SCLEX_PUREBASIC = 67;
SCLEX_HASKELL = 68;
SCLEX_PHPSCRIPT = 69;
SCLEX_AUTOMATIC = 1000;
SCE_P_DEFAULT = 0;
SCE_P_COMMENTLINE = 1;
SCE_P_NUMBER = 2;
SCE_P_STRING = 3;
SCE_P_CHARACTER = 4;
SCE_P_WORD = 5;
SCE_P_TRIPLE = 6;
SCE_P_TRIPLEDOUBLE = 7;
SCE_P_CLASSNAME = 8;
SCE_P_DEFNAME = 9;
SCE_P_OPERATOR = 10;
SCE_P_IDENTIFIER = 11;
SCE_P_COMMENTBLOCK = 12;
SCE_P_STRINGEOL = 13;
SCE_C_DEFAULT = 0;
SCE_C_COMMENT = 1;
SCE_C_COMMENTLINE = 2;
SCE_C_COMMENTDOC = 3;
SCE_C_NUMBER = 4;
SCE_C_WORD = 5;
SCE_C_STRING = 6;
SCE_C_CHARACTER = 7;
SCE_C_UUID = 8;
SCE_C_PREPROCESSOR = 9;
SCE_C_OPERATOR = 10;
SCE_C_IDENTIFIER = 11;
SCE_C_STRINGEOL = 12;
SCE_C_VERBATIM = 13;
SCE_C_REGEX = 14;
SCE_C_COMMENTLINEDOC = 15;
SCE_C_WORD2 = 16;
SCE_C_COMMENTDOCKEYWORD = 17;
SCE_C_COMMENTDOCKEYWORDERROR = 18;
SCE_C_GLOBALCLASS = 19;
SCE_H_DEFAULT = 0;
SCE_H_TAG = 1;
SCE_H_TAGUNKNOWN = 2;
SCE_H_ATTRIBUTE = 3;
SCE_H_ATTRIBUTEUNKNOWN = 4;
SCE_H_NUMBER = 5;
SCE_H_DOUBLESTRING = 6;
SCE_H_SINGLESTRING = 7;
SCE_H_OTHER = 8;
SCE_H_COMMENT = 9;
SCE_H_ENTITY = 10;
SCE_H_TAGEND = 11;
SCE_H_XMLSTART = 12;
SCE_H_XMLEND = 13;
SCE_H_SCRIPT = 14;
SCE_H_ASP = 15;
SCE_H_ASPAT = 16;
SCE_H_CDATA = 17;
SCE_H_QUESTION = 18;
SCE_H_VALUE = 19;
SCE_H_XCCOMMENT = 20;
SCE_H_SGML_DEFAULT = 21;
SCE_H_SGML_COMMAND = 22;
SCE_H_SGML_1ST_PARAM = 23;
SCE_H_SGML_DOUBLESTRING = 24;
SCE_H_SGML_SIMPLESTRING = 25;
SCE_H_SGML_ERROR = 26;
SCE_H_SGML_SPECIAL = 27;
SCE_H_SGML_ENTITY = 28;
SCE_H_SGML_COMMENT = 29;
SCE_H_SGML_1ST_PARAM_COMMENT = 30;
SCE_H_SGML_BLOCK_DEFAULT = 31;
SCE_HJ_START = 40;
SCE_HJ_DEFAULT = 41;
SCE_HJ_COMMENT = 42;
SCE_HJ_COMMENTLINE = 43;
SCE_HJ_COMMENTDOC = 44;
SCE_HJ_NUMBER = 45;
SCE_HJ_WORD = 46;
SCE_HJ_KEYWORD = 47;
SCE_HJ_DOUBLESTRING = 48;
SCE_HJ_SINGLESTRING = 49;
SCE_HJ_SYMBOLS = 50;
SCE_HJ_STRINGEOL = 51;
SCE_HJ_REGEX = 52;
SCE_HJA_START = 55;
SCE_HJA_DEFAULT = 56;
SCE_HJA_COMMENT = 57;
SCE_HJA_COMMENTLINE = 58;
SCE_HJA_COMMENTDOC = 59;
SCE_HJA_NUMBER = 60;
SCE_HJA_WORD = 61;
SCE_HJA_KEYWORD = 62;
SCE_HJA_DOUBLESTRING = 63;
SCE_HJA_SINGLESTRING = 64;
SCE_HJA_SYMBOLS = 65;
SCE_HJA_STRINGEOL = 66;
SCE_HJA_REGEX = 67;
SCE_HB_START = 70;
SCE_HB_DEFAULT = 71;
SCE_HB_COMMENTLINE = 72;
SCE_HB_NUMBER = 73;
SCE_HB_WORD = 74;
SCE_HB_STRING = 75;
SCE_HB_IDENTIFIER = 76;
SCE_HB_STRINGEOL = 77;
SCE_HBA_START = 80;
SCE_HBA_DEFAULT = 81;
SCE_HBA_COMMENTLINE = 82;
SCE_HBA_NUMBER = 83;
SCE_HBA_WORD = 84;
SCE_HBA_STRING = 85;
SCE_HBA_IDENTIFIER = 86;
SCE_HBA_STRINGEOL = 87;
SCE_HP_START = 90;
SCE_HP_DEFAULT = 91;
SCE_HP_COMMENTLINE = 92;
SCE_HP_NUMBER = 93;
SCE_HP_STRING = 94;
SCE_HP_CHARACTER = 95;
SCE_HP_WORD = 96;
SCE_HP_TRIPLE = 97;
SCE_HP_TRIPLEDOUBLE = 98;
SCE_HP_CLASSNAME = 99;
SCE_HP_DEFNAME = 100;
SCE_HP_OPERATOR = 101;
SCE_HP_IDENTIFIER = 102;
SCE_HPHP_COMPLEX_VARIABLE = 104;
SCE_HPA_START = 105;
SCE_HPA_DEFAULT = 106;
SCE_HPA_COMMENTLINE = 107;
SCE_HPA_NUMBER = 108;
SCE_HPA_STRING = 109;
SCE_HPA_CHARACTER = 110;
SCE_HPA_WORD = 111;
SCE_HPA_TRIPLE = 112;
SCE_HPA_TRIPLEDOUBLE = 113;
SCE_HPA_CLASSNAME = 114;
SCE_HPA_DEFNAME = 115;
SCE_HPA_OPERATOR = 116;
SCE_HPA_IDENTIFIER = 117;
SCE_HPHP_DEFAULT = 118;
SCE_HPHP_HSTRING = 119;
SCE_HPHP_SIMPLESTRING = 120;
SCE_HPHP_WORD = 121;
SCE_HPHP_NUMBER = 122;
SCE_HPHP_VARIABLE = 123;
SCE_HPHP_COMMENT = 124;
SCE_HPHP_COMMENTLINE = 125;
SCE_HPHP_HSTRING_VARIABLE = 126;
SCE_HPHP_OPERATOR = 127;
SCE_PL_DEFAULT = 0;
SCE_PL_ERROR = 1;
SCE_PL_COMMENTLINE = 2;
SCE_PL_POD = 3;
SCE_PL_NUMBER = 4;
SCE_PL_WORD = 5;
SCE_PL_STRING = 6;
SCE_PL_CHARACTER = 7;
SCE_PL_PUNCTUATION = 8;
SCE_PL_PREPROCESSOR = 9;
SCE_PL_OPERATOR = 10;
SCE_PL_IDENTIFIER = 11;
SCE_PL_SCALAR = 12;
SCE_PL_ARRAY = 13;
SCE_PL_HASH = 14;
SCE_PL_SYMBOLTABLE = 15;
SCE_PL_REGEX = 17;
SCE_PL_REGSUBST = 18;
SCE_PL_LONGQUOTE = 19;
SCE_PL_BACKTICKS = 20;
SCE_PL_DATASECTION = 21;
SCE_PL_HERE_DELIM = 22;
SCE_PL_HERE_Q = 23;
SCE_PL_HERE_QQ = 24;
SCE_PL_HERE_QX = 25;
SCE_PL_STRING_Q = 26;
SCE_PL_STRING_QQ = 27;
SCE_PL_STRING_QX = 28;
SCE_PL_STRING_QR = 29;
SCE_PL_STRING_QW = 30;
SCE_B_DEFAULT = 0;
SCE_B_COMMENT = 1;
SCE_B_NUMBER = 2;
SCE_B_KEYWORD = 3;
SCE_B_STRING = 4;
SCE_B_PREPROCESSOR = 5;
SCE_B_OPERATOR = 6;
SCE_B_IDENTIFIER = 7;
SCE_B_DATE = 8;
SCE_B_STRINGEOL = 9;
SCE_B_KEYWORD2 = 10;
SCE_B_KEYWORD3 = 11;
SCE_B_KEYWORD4 = 12;
SCE_B_CONSTANT = 13;
SCE_B_ASM = 14;
SCE_B_LABEL = 15;
SCE_B_ERROR = 16;
SCE_B_HEXNUMBER = 17;
SCE_B_BINNUMBER = 18;
SCE_PROPS_DEFAULT = 0;
SCE_PROPS_COMMENT = 1;
SCE_PROPS_SECTION = 2;
SCE_PROPS_ASSIGNMENT = 3;
SCE_PROPS_DEFVAL = 4;
SCE_L_DEFAULT = 0;
SCE_L_COMMAND = 1;
SCE_L_TAG = 2;
SCE_L_MATH = 3;
SCE_L_COMMENT = 4;
SCE_LUA_DEFAULT = 0;
SCE_LUA_COMMENT = 1;
SCE_LUA_COMMENTLINE = 2;
SCE_LUA_COMMENTDOC = 3;
SCE_LUA_NUMBER = 4;
SCE_LUA_WORD = 5;
SCE_LUA_STRING = 6;
SCE_LUA_CHARACTER = 7;
SCE_LUA_LITERALSTRING = 8;
SCE_LUA_PREPROCESSOR = 9;
SCE_LUA_OPERATOR = 10;
SCE_LUA_IDENTIFIER = 11;
SCE_LUA_STRINGEOL = 12;
SCE_LUA_WORD2 = 13;
SCE_LUA_WORD3 = 14;
SCE_LUA_WORD4 = 15;
SCE_LUA_WORD5 = 16;
SCE_LUA_WORD6 = 17;
SCE_LUA_WORD7 = 18;
SCE_LUA_WORD8 = 19;
SCE_ERR_DEFAULT = 0;
SCE_ERR_PYTHON = 1;
SCE_ERR_GCC = 2;
SCE_ERR_MS = 3;
SCE_ERR_CMD = 4;
SCE_ERR_BORLAND = 5;
SCE_ERR_PERL = 6;
SCE_ERR_NET = 7;
SCE_ERR_LUA = 8;
SCE_ERR_CTAG = 9;
SCE_ERR_DIFF_CHANGED = 10;
SCE_ERR_DIFF_ADDITION = 11;
SCE_ERR_DIFF_DELETION = 12;
SCE_ERR_DIFF_MESSAGE = 13;
SCE_ERR_PHP = 14;
SCE_ERR_ELF = 15;
SCE_ERR_IFC = 16;
SCE_ERR_IFORT = 17;
SCE_ERR_ABSF = 18;
SCE_ERR_TIDY = 19;
SCE_ERR_JAVA_STACK = 20;
SCE_BAT_DEFAULT = 0;
SCE_BAT_COMMENT = 1;
SCE_BAT_WORD = 2;
SCE_BAT_LABEL = 3;
SCE_BAT_HIDE = 4;
SCE_BAT_COMMAND = 5;
SCE_BAT_IDENTIFIER = 6;
SCE_BAT_OPERATOR = 7;
SCE_MAKE_DEFAULT = 0;
SCE_MAKE_COMMENT = 1;
SCE_MAKE_PREPROCESSOR = 2;
SCE_MAKE_IDENTIFIER = 3;
SCE_MAKE_OPERATOR = 4;
SCE_MAKE_TARGET = 5;
SCE_MAKE_IDEOL = 9;
SCE_DIFF_DEFAULT = 0;
SCE_DIFF_COMMENT = 1;
SCE_DIFF_COMMAND = 2;
SCE_DIFF_HEADER = 3;
SCE_DIFF_POSITION = 4;
SCE_DIFF_DELETED = 5;
SCE_DIFF_ADDED = 6;
SCE_CONF_DEFAULT = 0;
SCE_CONF_COMMENT = 1;
SCE_CONF_NUMBER = 2;
SCE_CONF_IDENTIFIER = 3;
SCE_CONF_EXTENSION = 4;
SCE_CONF_PARAMETER = 5;
SCE_CONF_STRING = 6;
SCE_CONF_OPERATOR = 7;
SCE_CONF_IP = 8;
SCE_CONF_DIRECTIVE = 9;
SCE_AVE_DEFAULT = 0;
SCE_AVE_COMMENT = 1;
SCE_AVE_NUMBER = 2;
SCE_AVE_WORD = 3;
SCE_AVE_STRING = 6;
SCE_AVE_ENUM = 7;
SCE_AVE_STRINGEOL = 8;
SCE_AVE_IDENTIFIER = 9;
SCE_AVE_OPERATOR = 10;
SCE_AVE_WORD1 = 11;
SCE_AVE_WORD2 = 12;
SCE_AVE_WORD3 = 13;
SCE_AVE_WORD4 = 14;
SCE_AVE_WORD5 = 15;
SCE_AVE_WORD6 = 16;
SCE_ADA_DEFAULT = 0;
SCE_ADA_WORD = 1;
SCE_ADA_IDENTIFIER = 2;
SCE_ADA_NUMBER = 3;
SCE_ADA_DELIMITER = 4;
SCE_ADA_CHARACTER = 5;
SCE_ADA_CHARACTEREOL = 6;
SCE_ADA_STRING = 7;
SCE_ADA_STRINGEOL = 8;
SCE_ADA_LABEL = 9;
SCE_ADA_COMMENTLINE = 10;
SCE_ADA_ILLEGAL = 11;
SCE_BAAN_DEFAULT = 0;
SCE_BAAN_COMMENT = 1;
SCE_BAAN_COMMENTDOC = 2;
SCE_BAAN_NUMBER = 3;
SCE_BAAN_WORD = 4;
SCE_BAAN_STRING = 5;
SCE_BAAN_PREPROCESSOR = 6;
SCE_BAAN_OPERATOR = 7;
SCE_BAAN_IDENTIFIER = 8;
SCE_BAAN_STRINGEOL = 9;
SCE_BAAN_WORD2 = 10;
SCE_LISP_DEFAULT = 0;
SCE_LISP_COMMENT = 1;
SCE_LISP_NUMBER = 2;
SCE_LISP_KEYWORD = 3;
SCE_LISP_STRING = 6;
SCE_LISP_STRINGEOL = 8;
SCE_LISP_IDENTIFIER = 9;
SCE_LISP_OPERATOR = 10;
SCE_EIFFEL_DEFAULT = 0;
SCE_EIFFEL_COMMENTLINE = 1;
SCE_EIFFEL_NUMBER = 2;
SCE_EIFFEL_WORD = 3;
SCE_EIFFEL_STRING = 4;
SCE_EIFFEL_CHARACTER = 5;
SCE_EIFFEL_OPERATOR = 6;
SCE_EIFFEL_IDENTIFIER = 7;
SCE_EIFFEL_STRINGEOL = 8;
SCE_NNCRONTAB_DEFAULT = 0;
SCE_NNCRONTAB_COMMENT = 1;
SCE_NNCRONTAB_TASK = 2;
SCE_NNCRONTAB_SECTION = 3;
SCE_NNCRONTAB_KEYWORD = 4;
SCE_NNCRONTAB_MODIFIER = 5;
SCE_NNCRONTAB_ASTERISK = 6;
SCE_NNCRONTAB_NUMBER = 7;
SCE_NNCRONTAB_STRING = 8;
SCE_NNCRONTAB_ENVIRONMENT = 9;
SCE_NNCRONTAB_IDENTIFIER = 10;
SCE_FORTH_DEFAULT = 0;
SCE_FORTH_COMMENT = 1;
SCE_FORTH_COMMENT_ML = 2;
SCE_FORTH_IDENTIFIER = 3;
SCE_FORTH_CONTROL = 4;
SCE_FORTH_KEYWORD = 5;
SCE_FORTH_DEFWORD = 6;
SCE_FORTH_PREWORD1 = 7;
SCE_FORTH_PREWORD2 = 8;
SCE_FORTH_NUMBER = 9;
SCE_FORTH_STRING = 10;
SCE_FORTH_LOCALE = 11;
SCE_MATLAB_DEFAULT = 0;
SCE_MATLAB_COMMENT = 1;
SCE_MATLAB_COMMAND = 2;
SCE_MATLAB_NUMBER = 3;
SCE_MATLAB_KEYWORD = 4;
SCE_MATLAB_STRING = 5;
SCE_MATLAB_OPERATOR = 6;
SCE_MATLAB_IDENTIFIER = 7;
SCE_MATLAB_DOUBLEQUOTESTRING = 8;
SCE_SCRIPTOL_DEFAULT = 0;
SCE_SCRIPTOL_WHITE = 1;
SCE_SCRIPTOL_COMMENTLINE = 2;
SCE_SCRIPTOL_PERSISTENT = 3;
SCE_SCRIPTOL_CSTYLE = 4;
SCE_SCRIPTOL_COMMENTBLOCK = 5;
SCE_SCRIPTOL_NUMBER = 6;
SCE_SCRIPTOL_STRING = 7;
SCE_SCRIPTOL_CHARACTER = 8;
SCE_SCRIPTOL_STRINGEOL = 9;
SCE_SCRIPTOL_KEYWORD = 10;
SCE_SCRIPTOL_OPERATOR = 11;
SCE_SCRIPTOL_IDENTIFIER = 12;
SCE_SCRIPTOL_TRIPLE = 13;
SCE_SCRIPTOL_CLASSNAME = 14;
SCE_SCRIPTOL_PREPROCESSOR = 15;
SCE_ASM_DEFAULT = 0;
SCE_ASM_COMMENT = 1;
SCE_ASM_NUMBER = 2;
SCE_ASM_STRING = 3;
SCE_ASM_OPERATOR = 4;
SCE_ASM_IDENTIFIER = 5;
SCE_ASM_CPUINSTRUCTION = 6;
SCE_ASM_MATHINSTRUCTION = 7;
SCE_ASM_REGISTER = 8;
SCE_ASM_DIRECTIVE = 9;
SCE_ASM_DIRECTIVEOPERAND = 10;
SCE_ASM_COMMENTBLOCK = 11;
SCE_ASM_CHARACTER = 12;
SCE_ASM_STRINGEOL = 13;
SCE_ASM_EXTINSTRUCTION = 14;
SCE_F_DEFAULT = 0;
SCE_F_COMMENT = 1;
SCE_F_NUMBER = 2;
SCE_F_STRING1 = 3;
SCE_F_STRING2 = 4;
SCE_F_STRINGEOL = 5;
SCE_F_OPERATOR = 6;
SCE_F_IDENTIFIER = 7;
SCE_F_WORD = 8;
SCE_F_WORD2 = 9;
SCE_F_WORD3 = 10;
SCE_F_PREPROCESSOR = 11;
SCE_F_OPERATOR2 = 12;
SCE_F_LABEL = 13;
SCE_F_CONTINUATION = 14;
SCE_CSS_DEFAULT = 0;
SCE_CSS_TAG = 1;
SCE_CSS_CLASS = 2;
SCE_CSS_PSEUDOCLASS = 3;
SCE_CSS_UNKNOWN_PSEUDOCLASS = 4;
SCE_CSS_OPERATOR = 5;
SCE_CSS_IDENTIFIER = 6;
SCE_CSS_UNKNOWN_IDENTIFIER = 7;
SCE_CSS_VALUE = 8;
SCE_CSS_COMMENT = 9;
SCE_CSS_ID = 10;
SCE_CSS_IMPORTANT = 11;
SCE_CSS_DIRECTIVE = 12;
SCE_CSS_DOUBLESTRING = 13;
SCE_CSS_SINGLESTRING = 14;
SCE_CSS_IDENTIFIER2 = 15;
SCE_CSS_ATTRIBUTE = 16;
SCE_POV_DEFAULT = 0;
SCE_POV_COMMENT = 1;
SCE_POV_COMMENTLINE = 2;
SCE_POV_NUMBER = 3;
SCE_POV_OPERATOR = 4;
SCE_POV_IDENTIFIER = 5;
SCE_POV_STRING = 6;
SCE_POV_STRINGEOL = 7;
SCE_POV_DIRECTIVE = 8;
SCE_POV_BADDIRECTIVE = 9;
SCE_POV_WORD2 = 10;
SCE_POV_WORD3 = 11;
SCE_POV_WORD4 = 12;
SCE_POV_WORD5 = 13;
SCE_POV_WORD6 = 14;
SCE_POV_WORD7 = 15;
SCE_POV_WORD8 = 16;
SCE_LOUT_DEFAULT = 0;
SCE_LOUT_COMMENT = 1;
SCE_LOUT_NUMBER = 2;
SCE_LOUT_WORD = 3;
SCE_LOUT_WORD2 = 4;
SCE_LOUT_WORD3 = 5;
SCE_LOUT_WORD4 = 6;
SCE_LOUT_STRING = 7;
SCE_LOUT_OPERATOR = 8;
SCE_LOUT_IDENTIFIER = 9;
SCE_LOUT_STRINGEOL = 10;
SCE_ESCRIPT_DEFAULT = 0;
SCE_ESCRIPT_COMMENT = 1;
SCE_ESCRIPT_COMMENTLINE = 2;
SCE_ESCRIPT_COMMENTDOC = 3;
SCE_ESCRIPT_NUMBER = 4;
SCE_ESCRIPT_WORD = 5;
SCE_ESCRIPT_STRING = 6;
SCE_ESCRIPT_OPERATOR = 7;
SCE_ESCRIPT_IDENTIFIER = 8;
SCE_ESCRIPT_BRACE = 9;
SCE_ESCRIPT_WORD2 = 10;
SCE_ESCRIPT_WORD3 = 11;
SCE_PS_DEFAULT = 0;
SCE_PS_COMMENT = 1;
SCE_PS_DSC_COMMENT = 2;
SCE_PS_DSC_VALUE = 3;
SCE_PS_NUMBER = 4;
SCE_PS_NAME = 5;
SCE_PS_KEYWORD = 6;
SCE_PS_LITERAL = 7;
SCE_PS_IMMEVAL = 8;
SCE_PS_PAREN_ARRAY = 9;
SCE_PS_PAREN_DICT = 10;
SCE_PS_PAREN_PROC = 11;
SCE_PS_TEXT = 12;
SCE_PS_HEXSTRING = 13;
SCE_PS_BASE85STRING = 14;
SCE_PS_BADSTRINGCHAR = 15;
SCE_NSIS_DEFAULT = 0;
SCE_NSIS_COMMENT = 1;
SCE_NSIS_STRINGDQ = 2;
SCE_NSIS_STRINGLQ = 3;
SCE_NSIS_STRINGRQ = 4;
SCE_NSIS_FUNCTION = 5;
SCE_NSIS_VARIABLE = 6;
SCE_NSIS_LABEL = 7;
SCE_NSIS_USERDEFINED = 8;
SCE_NSIS_SECTIONDEF = 9;
SCE_NSIS_SUBSECTIONDEF = 10;
SCE_NSIS_IFDEFINEDEF = 11;
SCE_NSIS_MACRODEF = 12;
SCE_NSIS_STRINGVAR = 13;
SCE_NSIS_NUMBER = 14;
SCE_NSIS_SECTIONGROUP = 15;
SCE_NSIS_PAGEEX = 16;
SCE_NSIS_FUNCTIONDEF = 17;
SCE_NSIS_COMMENTBOX = 18;
SCE_MMIXAL_LEADWS = 0;
SCE_MMIXAL_COMMENT = 1;
SCE_MMIXAL_LABEL = 2;
SCE_MMIXAL_OPCODE = 3;
SCE_MMIXAL_OPCODE_PRE = 4;
SCE_MMIXAL_OPCODE_VALID = 5;
SCE_MMIXAL_OPCODE_UNKNOWN = 6;
SCE_MMIXAL_OPCODE_POST = 7;
SCE_MMIXAL_OPERANDS = 8;
SCE_MMIXAL_NUMBER = 9;
SCE_MMIXAL_REF = 10;
SCE_MMIXAL_CHAR = 11;
SCE_MMIXAL_STRING = 12;
SCE_MMIXAL_REGISTER = 13;
SCE_MMIXAL_HEX = 14;
SCE_MMIXAL_OPERATOR = 15;
SCE_MMIXAL_SYMBOL = 16;
SCE_MMIXAL_INCLUDE = 17;
SCE_CLW_DEFAULT = 0;
SCE_CLW_LABEL = 1;
SCE_CLW_COMMENT = 2;
SCE_CLW_STRING = 3;
SCE_CLW_USER_IDENTIFIER = 4;
SCE_CLW_INTEGER_CONSTANT = 5;
SCE_CLW_REAL_CONSTANT = 6;
SCE_CLW_PICTURE_STRING = 7;
SCE_CLW_KEYWORD = 8;
SCE_CLW_COMPILER_DIRECTIVE = 9;
SCE_CLW_RUNTIME_EXPRESSIONS = 10;
SCE_CLW_BUILTIN_PROCEDURES_FUNCTION = 11;
SCE_CLW_STRUCTURE_DATA_TYPE = 12;
SCE_CLW_ATTRIBUTE = 13;
SCE_CLW_STANDARD_EQUATE = 14;
SCE_CLW_ERROR = 15;
SCE_CLW_DEPRECATED = 16;
SCE_LOT_DEFAULT = 0;
SCE_LOT_HEADER = 1;
SCE_LOT_BREAK = 2;
SCE_LOT_SET = 3;
SCE_LOT_PASS = 4;
SCE_LOT_FAIL = 5;
SCE_LOT_ABORT = 6;
SCE_YAML_DEFAULT = 0;
SCE_YAML_COMMENT = 1;
SCE_YAML_IDENTIFIER = 2;
SCE_YAML_KEYWORD = 3;
SCE_YAML_NUMBER = 4;
SCE_YAML_REFERENCE = 5;
SCE_YAML_DOCUMENT = 6;
SCE_YAML_TEXT = 7;
SCE_YAML_ERROR = 8;
SCE_TEX_DEFAULT = 0;
SCE_TEX_SPECIAL = 1;
SCE_TEX_GROUP = 2;
SCE_TEX_SYMBOL = 3;
SCE_TEX_COMMAND = 4;
SCE_TEX_TEXT = 5;
SCE_METAPOST_DEFAULT = 0;
SCE_METAPOST_SPECIAL = 1;
SCE_METAPOST_GROUP = 2;
SCE_METAPOST_SYMBOL = 3;
SCE_METAPOST_COMMAND = 4;
SCE_METAPOST_TEXT = 5;
SCE_METAPOST_EXTRA = 6;
SCE_ERLANG_DEFAULT = 0;
SCE_ERLANG_COMMENT = 1;
SCE_ERLANG_VARIABLE = 2;
SCE_ERLANG_NUMBER = 3;
SCE_ERLANG_KEYWORD = 4;
SCE_ERLANG_STRING = 5;
SCE_ERLANG_OPERATOR = 6;
SCE_ERLANG_ATOM = 7;
SCE_ERLANG_FUNCTION_NAME = 8;
SCE_ERLANG_CHARACTER = 9;
SCE_ERLANG_MACRO = 10;
SCE_ERLANG_RECORD = 11;
SCE_ERLANG_SEPARATOR = 12;
SCE_ERLANG_NODE_NAME = 13;
SCE_ERLANG_UNKNOWN = 31;
SCE_MSSQL_DEFAULT = 0;
SCE_MSSQL_COMMENT = 1;
SCE_MSSQL_LINE_COMMENT = 2;
SCE_MSSQL_NUMBER = 3;
SCE_MSSQL_STRING = 4;
SCE_MSSQL_OPERATOR = 5;
SCE_MSSQL_IDENTIFIER = 6;
SCE_MSSQL_VARIABLE = 7;
SCE_MSSQL_COLUMN_NAME = 8;
SCE_MSSQL_STATEMENT = 9;
SCE_MSSQL_DATATYPE = 10;
SCE_MSSQL_SYSTABLE = 11;
SCE_MSSQL_GLOBAL_VARIABLE = 12;
SCE_MSSQL_FUNCTION = 13;
SCE_MSSQL_STORED_PROCEDURE = 14;
SCE_MSSQL_DEFAULT_PREF_DATATYPE = 15;
SCE_MSSQL_COLUMN_NAME_2 = 16;
SCE_V_DEFAULT = 0;
SCE_V_COMMENT = 1;
SCE_V_COMMENTLINE = 2;
SCE_V_COMMENTLINEBANG = 3;
SCE_V_NUMBER = 4;
SCE_V_WORD = 5;
SCE_V_STRING = 6;
SCE_V_WORD2 = 7;
SCE_V_WORD3 = 8;
SCE_V_PREPROCESSOR = 9;
SCE_V_OPERATOR = 10;
SCE_V_IDENTIFIER = 11;
SCE_V_STRINGEOL = 12;
SCE_V_USER = 19;
SCE_KIX_DEFAULT = 0;
SCE_KIX_COMMENT = 1;
SCE_KIX_STRING1 = 2;
SCE_KIX_STRING2 = 3;
SCE_KIX_NUMBER = 4;
SCE_KIX_VAR = 5;
SCE_KIX_MACRO = 6;
SCE_KIX_KEYWORD = 7;
SCE_KIX_FUNCTIONS = 8;
SCE_KIX_OPERATOR = 9;
SCE_KIX_IDENTIFIER = 31;
SCE_GC_DEFAULT = 0;
SCE_GC_COMMENTLINE = 1;
SCE_GC_COMMENTBLOCK = 2;
SCE_GC_GLOBAL = 3;
SCE_GC_EVENT = 4;
SCE_GC_ATTRIBUTE = 5;
SCE_GC_CONTROL = 6;
SCE_GC_COMMAND = 7;
SCE_GC_STRING = 8;
SCE_GC_OPERATOR = 9;
SCE_SN_DEFAULT = 0;
SCE_SN_CODE = 1;
SCE_SN_COMMENTLINE = 2;
SCE_SN_COMMENTLINEBANG = 3;
SCE_SN_NUMBER = 4;
SCE_SN_WORD = 5;
SCE_SN_STRING = 6;
SCE_SN_WORD2 = 7;
SCE_SN_WORD3 = 8;
SCE_SN_PREPROCESSOR = 9;
SCE_SN_OPERATOR = 10;
SCE_SN_IDENTIFIER = 11;
SCE_SN_STRINGEOL = 12;
SCE_SN_REGEXTAG = 13;
SCE_SN_SIGNAL = 14;
SCE_SN_USER = 19;
SCE_AU3_DEFAULT = 0;
SCE_AU3_COMMENT = 1;
SCE_AU3_COMMENTBLOCK = 2;
SCE_AU3_NUMBER = 3;
SCE_AU3_FUNCTION = 4;
SCE_AU3_KEYWORD = 5;
SCE_AU3_MACRO = 6;
SCE_AU3_STRING = 7;
SCE_AU3_OPERATOR = 8;
SCE_AU3_VARIABLE = 9;
SCE_AU3_SENT = 10;
SCE_AU3_PREPROCESSOR = 11;
SCE_AU3_SPECIAL = 12;
SCE_AU3_EXPAND = 13;
SCE_APDL_DEFAULT = 0;
SCE_APDL_COMMENT = 1;
SCE_APDL_COMMENTBLOCK = 2;
SCE_APDL_NUMBER = 3;
SCE_APDL_STRING = 4;
SCE_APDL_OPERATOR = 5;
SCE_APDL_WORD = 6;
SCE_APDL_PROCESSOR = 7;
SCE_APDL_COMMAND = 8;
SCE_APDL_SLASHCOMMAND = 9;
SCE_APDL_STARCOMMAND = 10;
SCE_APDL_ARGUMENT = 11;
SCE_APDL_FUNCTION = 12;
SCE_SH_DEFAULT = 0;
SCE_SH_ERROR = 1;
SCE_SH_COMMENTLINE = 2;
SCE_SH_NUMBER = 3;
SCE_SH_WORD = 4;
SCE_SH_STRING = 5;
SCE_SH_CHARACTER = 6;
SCE_SH_OPERATOR = 7;
SCE_SH_IDENTIFIER = 8;
SCE_SH_SCALAR = 9;
SCE_SH_PARAM = 10;
SCE_SH_BACKTICKS = 11;
SCE_SH_HERE_DELIM = 12;
SCE_SH_HERE_Q = 13;
SCE_ASN1_DEFAULT = 0;
SCE_ASN1_COMMENT = 1;
SCE_ASN1_IDENTIFIER = 2;
SCE_ASN1_STRING = 3;
SCE_ASN1_OID = 4;
SCE_ASN1_SCALAR = 5;
SCE_ASN1_KEYWORD = 6;
SCE_ASN1_ATTRIBUTE = 7;
SCE_ASN1_DESCRIPTOR = 8;
SCE_ASN1_TYPE = 9;
SCE_ASN1_OPERATOR = 10;
SCE_VHDL_DEFAULT = 0;
SCE_VHDL_COMMENT = 1;
SCE_VHDL_COMMENTLINEBANG = 2;
SCE_VHDL_NUMBER = 3;
SCE_VHDL_STRING = 4;
SCE_VHDL_OPERATOR = 5;
SCE_VHDL_IDENTIFIER = 6;
SCE_VHDL_STRINGEOL = 7;
SCE_VHDL_KEYWORD = 8;
SCE_VHDL_STDOPERATOR = 9;
SCE_VHDL_ATTRIBUTE = 10;
SCE_VHDL_STDFUNCTION = 11;
SCE_VHDL_STDPACKAGE = 12;
SCE_VHDL_STDTYPE = 13;
SCE_VHDL_USERWORD = 14;
SCE_CAML_DEFAULT = 0;
SCE_CAML_IDENTIFIER = 1;
SCE_CAML_TAGNAME = 2;
SCE_CAML_KEYWORD = 3;
SCE_CAML_KEYWORD2 = 4;
SCE_CAML_LINENUM = 5;
SCE_CAML_OPERATOR = 6;
SCE_CAML_NUMBER = 7;
SCE_CAML_CHAR = 8;
SCE_CAML_STRING = 9;
SCE_CAML_COMMENT = 10;
SCE_CAML_COMMENT1 = 11;
SCE_CAML_COMMENT2 = 12;
SCE_CAML_COMMENT3 = 13;
SCE_HA_DEFAULT = 0;
SCE_HA_IDENTIFIER = 1;
SCE_HA_KEYWORD = 2;
SCE_HA_NUMBER = 3;
SCE_HA_STRING = 4;
SCE_HA_CHARACTER = 5;
SCE_HA_CLASS = 6;
SCE_HA_MODULE = 7;
SCE_HA_CAPITAL = 8;
SCE_HA_DATA = 9;
SCE_HA_IMPORT = 10;
SCE_HA_OPERATOR = 11;
SCE_HA_INSTANCE = 12;
SCE_HA_COMMENTLINE = 13;
SCE_HA_COMMENTBLOCK = 14;
SCE_HA_COMMENTBLOCK2 = 15;
SCE_HA_COMMENTBLOCK3 = 16;
SCN_STYLENEEDED = 2000;
SCN_CHARADDED = 2001;
SCN_SAVEPOINTREACHED = 2002;
SCN_SAVEPOINTLEFT = 2003;
SCN_MODIFYATTEMPTRO = 2004;
SCN_KEY = 2005;
SCN_DOUBLECLICK = 2006;
SCN_UPDATEUI = 2007;
SCN_MODIFIED = 2008;
SCN_MACRORECORD = 2009;
SCN_MARGINCLICK = 2010;
SCN_NEEDSHOWN = 2011;
SCN_PAINTED = 2013;
SCN_USERLISTSELECTION = 2014;
SCN_DWELLSTART = 2016;
SCN_DWELLEND = 2017;
SCN_ZOOM = 2018;
SCN_HOTSPOTCLICK = 2019;
SCN_HOTSPOTDOUBLECLICK = 2020;
SCN_CALLTIPCLICK = 2021;
SCN_AUTOCSELECTION = 2022;
//--Autogenerated -- end of section automatically generated from Scintilla.iface
implementation
end.
I hope this Example makes You happy!
gocher (Udo Schmal)
Hi Nobody.
Have you looked at dbgp plugin. I know it looks horribly complicated. You just need to make a clean cut between the framework code and useful code. I don't want to open a new SF project; that would be just wasting good disk space.
If you're interested, drop me a mail and I'll send you an example. I wanted to prepare an example for some time now.. One of these days, I'm sure I'll find some time to submit it. q:)
Re,
-Zobo
I can also send you a simple framework setup, just let me know...
(I'm the original poster. I posted anonymously because I hadn't created my SourceForge account yet)
Zobo:
The dbgp plugin was the first one I looked at. Just like you said, I can't figure out how to mentally separate the framework from the useful code.
I agree with not wanting to start a new project for just a "Hello World" plugin like this. I was hoping it would be simple enough just to copy and paste the source code into this thread, but if not, I'd be very interested in having you email me an example.
Merijn:
If you wouldn't mind sending me a simple framework setup too, I would appreciate it. Sometimes looking at two different ways of doing the same thing can help to understand it better.
Thanks. If I can get this figured out with your help, you two will be my heroes!
> Thanks. If I can get this figured out with your help, you two will be my heroes!
3, Including me :)
Did you try this one?
http://notepad-plus.sourceforge.net/commun/misc/NPP_Plugin_Delphi_template.zip
Don
Don:
You're already my hero for developing Notepad++ in the first place.
I've already tried the example you linked to, and it works fine to show how to set up a plugin and attach it to the menus, but it doesn't show how to interface with the actual text of the document.
Don't worry, though. Zobo sent me an example that looks like it does just what I need. It's actually starting to make sense. I'll play around with it a little and hopefully get it figured out.
To all 3 of you, thanks for all your help.
your sourceforge mail address bounces, where can I send it to?
// Notepad++
// @file menuCmdID.pas
// Interface to Notepad++.
unit menuCmdID;
interface
const
IDM = 40000;
IDM_FILE = (IDM + 1000);
IDM_FILE_NEW = (IDM_FILE + 1);
IDM_FILE_OPEN = (IDM_FILE + 2);
IDM_FILE_CLOSE = (IDM_FILE + 3);
IDM_FILE_CLOSEALL = (IDM_FILE + 4);
IDM_FILE_CLOSEALL_BUT_CURRENT = (IDM_FILE + 5);
IDM_FILE_SAVE = (IDM_FILE + 6);
IDM_FILE_SAVEALL = (IDM_FILE + 7);
IDM_FILE_SAVEAS = (IDM_FILE + 8);
IDM_FILE_ASIAN_LANG = (IDM_FILE + 9);
IDM_FILE_PRINT = (IDM_FILE + 10);
IDM_FILE_PRINTNOW = 1001;
IDM_FILE_EXIT = (IDM_FILE + 11);
IDM_FILE_LOADSESSION = (IDM_FILE + 12);
IDM_FILE_SAVESESSION = (IDM_FILE + 13);
IDM_FILE_RELOAD = (IDM_FILE + 14);
IDM_FILEMENU_LASTONE = IDM_FILE_RELOAD;
IDM_EDIT = (IDM + 2000);
IDM_EDIT_CUT = (IDM_EDIT + 1);
IDM_EDIT_COPY = (IDM_EDIT + 2);
IDM_EDIT_UNDO = (IDM_EDIT + 3);
IDM_EDIT_REDO = (IDM_EDIT + 4);
IDM_EDIT_PASTE = (IDM_EDIT + 5);
IDM_EDIT_DELETE = (IDM_EDIT + 6);
IDM_EDIT_SELECTALL = (IDM_EDIT + 7);
IDM_EDIT_INS_TAB = (IDM_EDIT + 8);
IDM_EDIT_RMV_TAB = (IDM_EDIT + 9);
IDM_EDIT_DUP_LINE = (IDM_EDIT + 10);
IDM_EDIT_TRANSPOSE_LINE = (IDM_EDIT + 11);
IDM_EDIT_SPLIT_LINES = (IDM_EDIT + 12);
IDM_EDIT_JOIN_LINES = (IDM_EDIT + 13);
IDM_EDIT_LINE_UP = (IDM_EDIT + 14);
IDM_EDIT_LINE_DOWN = (IDM_EDIT + 15);
IDM_EDIT_UPPERCASE = (IDM_EDIT + 16);
IDM_EDIT_LOWERCASE = (IDM_EDIT + 17);
IDM_EDIT_BLOCK_COMMENT = (IDM_EDIT + 22);
IDM_EDIT_STREAM_COMMENT = (IDM_EDIT + 23);
IDM_EDIT_TRIMTRAILING = (IDM_EDIT + 24);
IDM_EDIT_RTL = (IDM_EDIT+26);
IDM_EDIT_LTR = (IDM_EDIT+27);
IDM_EDIT_SETREADONLY = (IDM_EDIT+28);
IDM_EDIT_FULLPATHTOCLIP = (IDM_EDIT+29);
IDM_EDIT_FILENAMETOCLIP = (IDM_EDIT+30);
IDM_EDIT_CURRENTDIRTOCLIP = (IDM_EDIT+31);
IDM_EDIT_CLEARREADONLY = (IDM_EDIT+33);
IDM_EDIT_COLUMNMODE = (IDM_EDIT+34);
IDM_EDIT_AUTOCOMPLETE = (50000+0);
IDM_EDIT_AUTOCOMPLETE_CURRENTFILE = (50000+1);
//Belong to MENU FILE
IDM_OPEN_ALL_RECENT_FILE = (IDM_EDIT + 40);
IDM_SEARCH = (IDM + 3000);
IDM_SEARCH_FIND = (IDM_SEARCH + 1);
IDM_SEARCH_FINDNEXT = (IDM_SEARCH + 2);
IDM_SEARCH_REPLACE = (IDM_SEARCH + 3);
IDM_SEARCH_GOTOLINE = (IDM_SEARCH + 4);
IDM_SEARCH_TOGGLE_BOOKMARK = (IDM_SEARCH + 5);
IDM_SEARCH_NEXT_BOOKMARK = (IDM_SEARCH + 6);
IDM_SEARCH_PREV_BOOKMARK = (IDM_SEARCH + 7);
IDM_SEARCH_CLEAR_BOOKMARKS = (IDM_SEARCH + 8);
IDM_SEARCH_GOTOMATCHINGBRACE = (IDM_SEARCH + 9);
IDM_SEARCH_FINDPREV = (IDM_SEARCH + 10);
IDM_SEARCH_FINDINCREMENT = (IDM_SEARCH + 11);
IDM_SEARCH_FINDINFILES = (IDM_SEARCH + 13);
IDM_SEARCH_VOLATILE_FINDNEXT = (IDM_SEARCH + 14);
IDM_SEARCH_VOLATILE_FINDPREV = (IDM_SEARCH + 15);
IDM_SEARCH_MARKALL = (IDM_SEARCH + 16);
IDM_SEARCH_UNMARKALL = (IDM_SEARCH + 17);
IDM_VIEW = (IDM + 4000);
IDM_VIEW_TOOLBAR_HIDE = (IDM_VIEW + 1);
IDM_VIEW_TOOLBAR_REDUCE = (IDM_VIEW + 2);
IDM_VIEW_TOOLBAR_ENLARGE = (IDM_VIEW + 3);
IDM_VIEW_TOOLBAR_STANDARD = (IDM_VIEW + 4);
IDM_VIEW_REDUCETABBAR = (IDM_VIEW + 5);
IDM_VIEW_LOCKTABBAR = (IDM_VIEW + 6);
IDM_VIEW_DRAWTABBAR_TOPBAR = (IDM_VIEW + 7);
IDM_VIEW_DRAWTABBAR_INACIVETAB = (IDM_VIEW + 8);
IDM_VIEW_STATUSBAR = (IDM_VIEW + 9);
IDM_VIEW_TOGGLE_FOLDALL = (IDM_VIEW + 10);
IDM_VIEW_USER_DLG = (IDM_VIEW + 11);
IDM_VIEW_LINENUMBER = (IDM_VIEW + 12);
IDM_VIEW_SYMBOLMARGIN = (IDM_VIEW + 13);
IDM_VIEW_FOLDERMAGIN = (IDM_VIEW + 14);
IDM_VIEW_FOLDERMAGIN_SIMPLE = (IDM_VIEW + 15);
IDM_VIEW_FOLDERMAGIN_ARROW = (IDM_VIEW + 16);
IDM_VIEW_FOLDERMAGIN_CIRCLE = (IDM_VIEW + 17);
IDM_VIEW_FOLDERMAGIN_BOX = (IDM_VIEW + 18);
IDM_VIEW_ALL_CHARACTERS = (IDM_VIEW + 19);
IDM_VIEW_INDENT_GUIDE = (IDM_VIEW + 20);
IDM_VIEW_CURLINE_HILITING = (IDM_VIEW + 21);
IDM_VIEW_WRAP = (IDM_VIEW + 22);
IDM_VIEW_ZOOMIN = (IDM_VIEW + 23);
IDM_VIEW_ZOOMOUT = (IDM_VIEW + 24);
IDM_VIEW_TAB_SPACE = (IDM_VIEW + 25);
IDM_VIEW_EOL = (IDM_VIEW + 26);
IDM_VIEW_EDGELINE = (IDM_VIEW + 27);
IDM_VIEW_EDGEBACKGROUND = (IDM_VIEW + 28);
IDM_VIEW_TOGGLE_UNFOLDALL = (IDM_VIEW + 29);
IDM_VIEW_FOLD_CURRENT = (IDM_VIEW + 30);
IDM_VIEW_UNFOLD_CURRENT = (IDM_VIEW + 31);
IDM_VIEW_FULLSCREENTOGGLE = (IDM_VIEW + 32);
IDM_VIEW_ZOOMRESTORE = (IDM_VIEW + 33);
IDM_VIEW_ALWAYSONTOP = (IDM_VIEW + 34);
IDM_VIEW_SYNSCROLLV = (IDM_VIEW + 35);
IDM_VIEW_SYNSCROLLH = (IDM_VIEW + 36);
IDM_VIEW_EDGENONE = (IDM_VIEW + 37);
IDM_VIEW_DRAWTABBAR_CLOSEBOTTUN = (IDM_VIEW + 38);
IDM_VIEW_DRAWTABBAR_DBCLK2CLOSE = (IDM_VIEW + 39);
IDM_VIEW_REFRESHTABAR = (IDM_VIEW + 40);
IDM_VIEW_WRAP_SYMBOL = (IDM_VIEW + 41);
IDM_VIEW_FOLD = (IDM_VIEW + 50);
IDM_VIEW_FOLD_1 = (IDM_VIEW_FOLD + 1);
IDM_VIEW_FOLD_2 = (IDM_VIEW_FOLD + 2);
IDM_VIEW_FOLD_3 = (IDM_VIEW_FOLD + 3);
IDM_VIEW_FOLD_4 = (IDM_VIEW_FOLD + 4);
IDM_VIEW_FOLD_5 = (IDM_VIEW_FOLD + 5);
IDM_VIEW_FOLD_6 = (IDM_VIEW_FOLD + 6);
IDM_VIEW_FOLD_7 = (IDM_VIEW_FOLD + 7);
IDM_VIEW_FOLD_8 = (IDM_VIEW_FOLD + 8);
IDM_VIEW_UNFOLD = (IDM_VIEW + 60);
IDM_VIEW_UNFOLD_1 = (IDM_VIEW_UNFOLD + 1);
IDM_VIEW_UNFOLD_2 = (IDM_VIEW_UNFOLD + 2);
IDM_VIEW_UNFOLD_3 = (IDM_VIEW_UNFOLD + 3);
IDM_VIEW_UNFOLD_4 = (IDM_VIEW_UNFOLD + 4);
IDM_VIEW_UNFOLD_5 = (IDM_VIEW_UNFOLD + 5);
IDM_VIEW_UNFOLD_6 = (IDM_VIEW_UNFOLD + 6);
IDM_VIEW_UNFOLD_7 = (IDM_VIEW_UNFOLD + 7);
IDM_VIEW_UNFOLD_8 = (IDM_VIEW_UNFOLD + 8);
IDM_VIEW_GOTO_ANOTHER_VIEW = 10001;
IDM_VIEW_CLONE_TO_ANOTHER_VIEW = 10002;
IDM_FORMAT = (IDM + 5000);
IDM_FORMAT_TODOS = (IDM_FORMAT + 1);
IDM_FORMAT_TOUNIX = (IDM_FORMAT + 2);
IDM_FORMAT_TOMAC = (IDM_FORMAT + 3);
IDM_FORMAT_ANSI = (IDM_FORMAT + 4);
IDM_FORMAT_UTF_8 = (IDM_FORMAT + 5);
IDM_FORMAT_UCS_2BE = (IDM_FORMAT + 6);
IDM_FORMAT_UCS_2LE = (IDM_FORMAT + 7);
IDM_FORMAT_AS_UTF_8 = (IDM_FORMAT + 8);
IDM_LANG = (IDM + 6000);
IDM_LANGSTYLE_CONFIG_DLG = (IDM_LANG + 1);
IDM_LANG_C = (IDM_LANG + 2);
IDM_LANG_CPP = (IDM_LANG + 3);
IDM_LANG_JAVA = (IDM_LANG + 4);
IDM_LANG_HTML = (IDM_LANG + 5);
IDM_LANG_XML = (IDM_LANG + 6);
IDM_LANG_JS = (IDM_LANG + 7);
IDM_LANG_PHP = (IDM_LANG + 8);
IDM_LANG_ASP = (IDM_LANG + 9);
IDM_LANG_CSS = (IDM_LANG + 10);
IDM_LANG_PASCAL = (IDM_LANG + 11);
IDM_LANG_PYTHON = (IDM_LANG + 12);
IDM_LANG_PERL = (IDM_LANG + 13);
IDM_LANG_OBJC = (IDM_LANG + 14);
IDM_LANG_ASCII = (IDM_LANG + 15);
IDM_LANG_TEXT = (IDM_LANG + 16);
IDM_LANG_RC = (IDM_LANG + 17);
IDM_LANG_MAKEFILE = (IDM_LANG + 18);
IDM_LANG_INI = (IDM_LANG + 19);
IDM_LANG_SQL = (IDM_LANG + 20);
IDM_LANG_VB = (IDM_LANG + 21);
IDM_LANG_BATCH = (IDM_LANG + 22);
IDM_LANG_CS = (IDM_LANG + 23);
IDM_LANG_LUA = (IDM_LANG + 24);
IDM_LANG_TEX = (IDM_LANG + 25);
IDM_LANG_FORTRAN = (IDM_LANG + 26);
IDM_LANG_SH = (IDM_LANG + 27);
IDM_LANG_FLASH = (IDM_LANG + 28);
IDM_LANG_NSIS = (IDM_LANG + 29);
IDM_LANG_TCL = (IDM_LANG + 30);
IDM_LANG_LISP = (IDM_LANG + 31);
IDM_LANG_SCHEME = (IDM_LANG + 32);
IDM_LANG_ASM = (IDM_LANG + 33);
IDM_LANG_DIFF = (IDM_LANG + 34);
IDM_LANG_PROPS = (IDM_LANG + 35);
IDM_LANG_PS = (IDM_LANG + 36);
IDM_LANG_RUBY = (IDM_LANG + 37);
IDM_LANG_SMALLTALK = (IDM_LANG + 38);
IDM_LANG_VHDL = (IDM_LANG + 39);
IDM_LANG_CAML = (IDM_LANG + 40);
IDM_LANG_KIX = (IDM_LANG + 41);
IDM_LANG_ADA = (IDM_LANG + 42);
IDM_LANG_VERILOG = (IDM_LANG + 43);
IDM_LANG_AU3 = (IDM_LANG + 44);
IDM_LANG_MATLAB = (IDM_LANG + 45);
IDM_LANG_HASKELL = (IDM_LANG + 46);
IDM_LANG_INNO = (IDM_LANG + 47);
IDM_LANG_CMAKE = (IDM_LANG + 48);
IDM_LANG_USER = (IDM_LANG + 50); //46050
IDM_LANG_USER_LIMIT = (IDM_LANG + 80); //46080
IDM_ABOUT = (IDM + 7000);
IDM_HOMESWEETHOME = (IDM_ABOUT + 1);
IDM_PROJECTPAGE = (IDM_ABOUT + 2);
IDM_ONLINEHELP = (IDM_ABOUT + 3);
IDM_FORUM = (IDM_ABOUT + 4);
IDM_PLUGINSHOME = (IDM_ABOUT + 5);
IDM_SETTING = (IDM + 8000);
IDM_SETTING_TAB_SIZE = (IDM_SETTING + 1);
IDM_SETTING_TAB_REPLCESPACE = (IDM_SETTING + 2);
IDM_SETTING_HISTORY_SIZE = (IDM_SETTING + 3);
IDM_SETTING_EDGE_SIZE = (IDM_SETTING + 4);
IDM_SETTING_FILEASSOCIATION_DLG = (IDM_SETTING + 5);
//IDM_SETTING_FILE_AUTODETECTION = (IDM_SETTING + 6);
IDM_SETTING_HISTORY_DONT_CHECK = (IDM_SETTING + 7);
IDM_SETTING_TRAYICON = (IDM_SETTING + 8);
IDM_SETTING_SHORTCUT_MAPPER = (IDM_SETTING + 9);
IDM_SETTING_REMEMBER_LAST_SESSION = (IDM_SETTING + 10);
IDM_SETTING_PREFERECE = (IDM_SETTING + 11);
IDM_SETTING_FILE_AUTODETECTION_ENABLE = (IDM_SETTING + 12);
IDM_SETTING_FILE_AUTODETECTION_DISABLE = (IDM_SETTING + 13);
IDM_SETTING_FILE_AUTODETECTION_ENABLESILENTLY = (IDM_SETTING + 14);
// Menu macro
IDM_MACRO_STARTRECORDINGMACRO = (IDM_EDIT + 18);
IDM_MACRO_STOPRECORDINGMACRO = (IDM_EDIT + 19);
IDM_MACRO_PLAYBACKRECORDEDMACRO = (IDM_EDIT + 21);
IDM_MACRO_SAVECURRENTMACRO = (IDM_EDIT + 25);
IDM_MACRO_RUNMULTIMACRODLG = (IDM_EDIT+32);
IDM_EXECUTE = (IDM + 9000);
implementation
end.
// Notepad++
// @file Notepad_plus_msgs.pas
// Interface to Notepad++.
unit Notepad_plus_msgs;
interface
uses Windows, Messages, menuCmdID;
type
LangType = (L_TXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,
L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_NFO, L_USER,
L_ASP, L_SQL, L_VB, L_JS, L_CSS, L_PERL, L_PYTHON, L_LUA,
L_TEX, L_FORTRAN, L_BASH, L_FLASH, L_NSIS, L_TCL, L_LISP, L_SCHEME,
L_ASM, L_DIFF, L_PROPS, L_PS, L_RUBY, L_SMALLTALK, L_VHDL, L_KIX, L_AU3,
L_CAML, L_ADA, L_VERILOG, L_MATLAB, L_HASKELL, L_INNO, L_SEARCHRESULT, L_CMAKE,
// The end of enumated language type, so it should be always at the end
L_END);
winVer = (WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV_S2003, WV_XPX64, WV_VISTA);
const
NPPMSG = (WM_USER + 1000);
NPPM_GETCURRENTSCINTILLA = (NPPMSG + 4);
NPPM_GETCURRENTLANGTYPE = (NPPMSG + 5);
NPPM_SETCURRENTLANGTYPE = (NPPMSG + 6);
NPPM_GETNBOPENFILES = (NPPMSG + 7);
ALL_OPEN_FILES = 0;
PRIMARY_VIEW = 1;
SECOND_VIEW = 2;
NPPM_GETOPENFILENAMES = (NPPMSG + 8);
NPPM_MODELESSDIALOG = (NPPMSG + 12);
MODELESSDIALOGADD = 0;
MODELESSDIALOGREMOVE = 1;
NPPM_GETNBSESSIONFILES = (NPPMSG + 13);
NPPM_GETSESSIONFILES = (NPPMSG + 14);
NPPM_SAVESESSION = (NPPMSG + 15);
NPPM_SAVECURRENTSESSION = (NPPMSG + 16);
type
PSessionInfo = ^TSessionInfo;
TSessionInfo = Record
sessionFilePathName: PChar; //??????
nbFile: Integer;
files: PChar; //??????
end;
// struct sessionInfo {
// char* sessionFilePathName;
// int nbFile;
// char** files;
// };
const
NPPM_GETOPENFILENAMESPRIMARY = (NPPMSG + 17);
NPPM_GETOPENFILENAMESSECOND = (NPPMSG + 18);
NPPM_CREATESCINTILLAHANDLE = (NPPMSG + 20);
NPPM_DESTROYSCINTILLAHANDLE = (NPPMSG + 21);
NPPM_GETNBUSERLANG = (NPPMSG + 22);
NPPM_GETCURRENTDOCINDEX = (NPPMSG + 23);
MAIN_VIEW = 0;
SUB_VIEW = 1;
NPPM_SETSTATUSBAR = (NPPMSG + 24);
STATUSBAR_DOC_TYPE = 0;
STATUSBAR_DOC_SIZE = 1;
STATUSBAR_CUR_POS = 2;
STATUSBAR_EOF_FORMAT = 3;
STATUSBAR_UNICODE_TYPE = 4;
STATUSBAR_TYPING_MODE = 5;
NPPM_GETMENUHANDLE = (NPPMSG + 25);
NPPPLUGINMENU = 0;
NPPM_ENCODESCI = (NPPMSG + 26);
//ascii file to unicode
//int NPPM_ENCODESCI(MAIN_VIEW/SUB_VIEW, 0)
//return new unicodeMode
NPPM_DECODESCI = (NPPMSG + 27);
//unicode file to ascii
//int NPPM_DECODESCI(MAIN_VIEW/SUB_VIEW, 0)
//return old unicodeMode
NPPM_ACTIVATEDOC = (NPPMSG + 28);
//void NPPM_ACTIVATEDOC(int index2Activate, int view)
NPPM_LAUNCHFINDINFILESDLG = (NPPMSG + 29);
//void NPPM_LAUNCHFINDINFILESDLG(char * dir2Search, char * filtre)
NPPM_DMMSHOW = (NPPMSG + 30);
NPPM_DMMHIDE = (NPPMSG + 31);
NPPM_DMMUPDATEDISPINFO = (NPPMSG + 32);
//void NPPM_DMMxxx(0, tTbData->hClient)
NPPM_DMMREGASDCKDLG = (NPPMSG + 33);
//void NPPM_DMMREGASDCKDLG(0, &tTbData)
NPPM_LOADSESSION = (NPPMSG + 34);
//void NPPM_LOADSESSION(0, const char* file name)
NPPM_DMMVIEWOTHERTAB = (NPPMSG + 35);
//void WM_DMM_VIEWOTHERTAB(0, tTbData->hClient)
NPPM_RELOADFILE = (NPPMSG + 36);
//BOOL NPPM_RELOADFILE(BOOL withAlert, char *filePathName2Reload)
NPPM_SWITCHTOFILE = (NPPMSG + 37);
//BOOL NPPM_SWITCHTOFILE(0, char *filePathName2switch)
NPPM_SAVECURRENTFILE = (NPPMSG + 38);
//BOOL WM_SWITCHTOFILE(0, 0)
NPPM_SAVEALLFILES = (NPPMSG + 39);
//BOOL NPPM_SAVEALLFILES(0, 0)
NPPM_SETMENUITEMCHECK = (NPPMSG + 40);
//void WM_PIMENU_CHECK(UINT funcItem[X]._cmdID, TRUE/FALSE)
NPPM_ADDTOOLBARICON = (NPPMSG + 41);
//void WM_ADDTOOLBARICON(UINT funcItem[X]._cmdID, toolbarIcons icon)
type
PToolbarIcons = ^TToolbarIcons;
TToolbarIcons = Record
hToolbarBmp: HBITMAP;
hToolbarIcon: HICON;
end;
const
NPPM_GETWINDOWSVERSION = (NPPMSG + 42);
//winVer NPPM_GETWINDOWSVERSION(0, 0)
NPPM_DMMGETPLUGINHWNDBYNAME = (NPPMSG + 43);
//HWND WM_DMM_GETPLUGINHWNDBYNAME(const char *windowName, const char *moduleName)
// if moduleName is NULL, then return value is NULL
// if windowName is NULL, then the first found window handle which matches with the moduleName will be returned
NPPM_MAKECURRENTBUFFERDIRTY = (NPPMSG + 44);
//BOOL NPPM_MAKECURRENTBUFFERDIRTY(0, 0)
NPPM_GETENABLETHEMETEXTUREFUNC = (NPPMSG + 45);
//BOOL NPPM_GETENABLETHEMETEXTUREFUNC(0, 0)
NPPM_GETPLUGINSCONFIGDIR = (NPPMSG + 46);
//void NPPM_GETPLUGINSCONFIGDIR(int strLen, char *str)
NPPM_MSGTOPLUGIN = (NPPMSG + 47);
//BOOL NPPM_MSGTOPLUGIN(char *destModuleName, CommunicationInfo *info)
// return value is TRUE when the message arrive to the destination plugins.
// if destModule or info is NULL, then return value is FALSE
// struct CommunicationInfo {
// long internalMsg;
// const char * srcModuleName;
// void * info; // defined by plugin
// };
NPPM_MENUCOMMAND = (NPPMSG + 48);
//void NPPM_MENUCOMMAND(0, int cmdID)
// uncomment //#include "menuCmdID.h"
// in the beginning of this file then use the command symbols defined in "menuCmdID.h" file
// to access all the Notepad++ menu command items
RUNCOMMAND_USER = (WM_USER + 3000);
VAR_NOT_RECOGNIZED = 0;
FULL_CURRENT_PATH = 1;
CURRENT_DIRECTORY = 2;
FILE_NAME = 3;
NAME_PART = 4;
EXT_PART = 5;
CURRENT_WORD = 6;
NPP_DIRECTORY = 7;
NPPM_GETFULLCURRENTPATH = (RUNCOMMAND_USER + FULL_CURRENT_PATH);
NPPM_GETCURRENTDIRECTORY = (RUNCOMMAND_USER + CURRENT_DIRECTORY);
NPPM_GETFILENAME = (RUNCOMMAND_USER + FILE_NAME);
NPPM_GETNAMEPART = (RUNCOMMAND_USER + NAME_PART);
NPPM_GETEXTPART = (RUNCOMMAND_USER + EXT_PART);
NPPM_GETCURRENTWORD = (RUNCOMMAND_USER + CURRENT_WORD);
NPPM_GETNPPDIRECTORY = (RUNCOMMAND_USER + NPP_DIRECTORY);
// Notification code
NPPN_FIRST = 1000;
NPPN_READY = (NPPN_FIRST + 1); // To notify plugins that all the procedures of launchment of notepad++ are done.
//scnNotification->nmhdr.code = NPPN_READY;
//scnNotification->nmhdr.hwndFrom = hwndNpp;
//scnNotification->nmhdr.idFrom = 0;
NPPN_TBMODIFICATION = (NPPN_FIRST + 2); // To notify plugins that toolbar icons can be registered
//scnNotification->nmhdr.code = NPPN_TB_MODIFICATION;
//scnNotification->nmhdr.hwndFrom = hwndNpp;
//scnNotification->nmhdr.idFrom = 0;
NPPN_FILEBEFORECLOSE = (NPPN_FIRST + 3); // To notify plugins that the current file is about to be closed
//scnNotification->nmhdr.code = NPPN_FILEBEFORECLOSE;
//scnNotification->nmhdr.hwndFrom = hwndNpp;
//scnNotification->nmhdr.idFrom = 0;
NPPN_FILEJUSTOPENED = (NPPN_FIRST + 4); // To notify plugins that the current file is just opened
//scnNotification->nmhdr.code = NPPN_FILEJUSTOPENED;
//scnNotification->nmhdr.hwndFrom = hwndNpp;
//scnNotification->nmhdr.idFrom = 0;
implementation
end.