1. reiniero
  2. Notepad++PluginLazarus

Commits

reiniero  committed a8f7a9f

Add Ludo's unicode translation

  • Participants
  • Parent commits 8963f10
  • Branches default

Comments (0)

Files changed (16)

File Unicode/AboutForms.lfm

View file
  • Ignore whitespace
+inherited AboutForm: TAboutForm
+  Caption = 'About Hello World'
+  PixelsPerInch = 96
+  TextHeight = 13
+  object Label1: TLabel
+    Left = 24
+    Top = 24
+    Width = 71
+    Height = 13
+    Caption = 'Example plugin'
+  end
+  object Label2: TLabel
+    Left = 24
+    Top = 48
+    Width = 195
+    Height = 13
+    Caption = 'Damjan Zobo Cvetko, zobo@users.sf.net'
+  end
+  object Button1: TButton
+    Left = 136
+    Top = 224
+    Width = 75
+    Height = 25
+    Caption = 'Ok'
+    ModalResult = 1
+    TabOrder = 0
+  end
+end

File Unicode/AboutForms.pas

View file
  • Ignore whitespace
+unit AboutForms;
+
+{$MODE Delphi}
+
+interface
+
+uses
+  LCLIntf, LCLType, LMessages, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, NppForms, StdCtrls;
+
+type
+  TAboutForm = class(TNppForm)
+    Button1: TButton;
+    Label1: TLabel;
+    Label2: TLabel;
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+  end;
+
+var
+  AboutForm: TAboutForm;
+
+implementation
+
+{$R *.lfm}
+
+end.

File Unicode/helloworld.lpi

View file
  • Ignore whitespace
+<?xml version="1.0"?>
+<CONFIG>
+  <ProjectOptions>
+    <Version Value="9"/>
+    <PathDelim Value="\"/>
+    <General>
+      <Flags>
+        <MainUnitHasUsesSectionForAllUnits Value="False"/>
+        <MainUnitHasCreateFormStatements Value="False"/>
+        <MainUnitHasTitleStatement Value="False"/>
+      </Flags>
+      <SessionStorage Value="InProjectDir"/>
+      <MainUnit Value="0"/>
+      <Title Value="helloworld"/>
+      <UseAppBundle Value="False"/>
+      <ResourceType Value="res"/>
+    </General>
+    <i18n>
+      <EnableI18N LFM="False"/>
+    </i18n>
+    <VersionInfo>
+      <StringTable ProductVersion=""/>
+    </VersionInfo>
+    <BuildModes Count="2">
+      <Item1 Name="Default" Default="True"/>
+      <Item2 Name="Debug">
+        <CompilerOptions>
+          <Version Value="11"/>
+          <PathDelim Value="\"/>
+          <Target>
+            <Filename Value="fpctwit"/>
+          </Target>
+          <SearchPaths>
+            <IncludeFiles Value="$(ProjOutDir)"/>
+            <OtherUnitFiles Value="C:\Documents and Settings\Ludo\Mes documents\Borland Studio Projects\ODBCHTTP\synapse\source\libsvn"/>
+            <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
+          </SearchPaths>
+          <CodeGeneration>
+            <Optimizations>
+              <OptimizationLevel Value="0"/>
+            </Optimizations>
+          </CodeGeneration>
+          <Linking>
+            <Debugging>
+              <DebugInfoType Value="dsDwarf2Set"/>
+              <UseHeaptrc Value="True"/>
+            </Debugging>
+          </Linking>
+          <Other>
+            <CompilerMessages>
+              <MsgFileName Value=""/>
+            </CompilerMessages>
+            <CompilerPath Value="$(CompPath)"/>
+          </Other>
+        </CompilerOptions>
+      </Item2>
+    </BuildModes>
+    <PublishOptions>
+      <Version Value="2"/>
+      <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
+      <ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/>
+    </PublishOptions>
+    <RunParams>
+      <local>
+        <FormatVersion Value="1"/>
+        <HostApplicationFilename Value="C:\Program Files\Notepad++\notepad++.exe"/>
+      </local>
+    </RunParams>
+    <RequiredPackages Count="1">
+      <Item1>
+        <PackageName Value="LCL"/>
+      </Item1>
+    </RequiredPackages>
+    <Units Count="8">
+      <Unit0>
+        <Filename Value="helloworld.lpr"/>
+        <IsPartOfProject Value="True"/>
+      </Unit0>
+      <Unit1>
+        <Filename Value="lib\nppplugin.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="nppplugin"/>
+      </Unit1>
+      <Unit2>
+        <Filename Value="lib\SciSupport.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="scisupport"/>
+      </Unit2>
+      <Unit3>
+        <Filename Value="lib\NppForms.pas"/>
+        <IsPartOfProject Value="True"/>
+        <HasResources Value="True"/>
+        <UnitName Value="NppForms"/>
+      </Unit3>
+      <Unit4>
+        <Filename Value="lib\NppDockingForms.pas"/>
+        <IsPartOfProject Value="True"/>
+        <HasResources Value="True"/>
+        <UnitName Value="NppDockingForms"/>
+      </Unit4>
+      <Unit5>
+        <Filename Value="helloworldplugin.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="helloworldplugin"/>
+      </Unit5>
+      <Unit6>
+        <Filename Value="AboutForms.pas"/>
+        <IsPartOfProject Value="True"/>
+        <HasResources Value="True"/>
+        <UnitName Value="AboutForms"/>
+      </Unit6>
+      <Unit7>
+        <Filename Value="helloworlddockingforms.pas"/>
+        <IsPartOfProject Value="True"/>
+        <HasResources Value="True"/>
+        <UnitName Value="helloworlddockingforms"/>
+      </Unit7>
+    </Units>
+  </ProjectOptions>
+  <CompilerOptions>
+    <Version Value="11"/>
+    <PathDelim Value="\"/>
+    <Target>
+      <Filename Value="C:\Program Files\Notepad++\plugins\helloworld.dll"/>
+    </Target>
+    <SearchPaths>
+      <IncludeFiles Value="lib;$(ProjOutDir)"/>
+      <OtherUnitFiles Value="C:\Documents and Settings\Ludo\Mes documents\Borland Studio Projects\ODBCHTTP\synapse\source\libsvn\;lib"/>
+      <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
+    </SearchPaths>
+    <CodeGeneration>
+      <SmartLinkUnit Value="True"/>
+      <Optimizations>
+        <OptimizationLevel Value="2"/>
+      </Optimizations>
+    </CodeGeneration>
+    <Linking>
+      <Debugging>
+        <DebugInfoType Value="dsStabs"/>
+        <UseExternalDbgSyms Value="True"/>
+      </Debugging>
+      <Options>
+        <Win32>
+          <GraphicApplication Value="True"/>
+        </Win32>
+        <ExecutableType Value="Library"/>
+      </Options>
+    </Linking>
+    <Other>
+      <CompilerMessages>
+        <MsgFileName Value=""/>
+      </CompilerMessages>
+      <CustomOptions Value="-dNPPUNICODE"/>
+      <CompilerPath Value="$(CompPath)"/>
+    </Other>
+  </CompilerOptions>
+  <Debugging>
+    <Exceptions Count="3">
+      <Item1>
+        <Name Value="EAbort"/>
+      </Item1>
+      <Item2>
+        <Name Value="ECodetoolError"/>
+      </Item2>
+      <Item3>
+        <Name Value="EFOpenError"/>
+      </Item3>
+    </Exceptions>
+  </Debugging>
+</CONFIG>

File Unicode/helloworld.lpr

View file
  • Ignore whitespace
+library helloworld;
+
+{$MODE Delphi}
+
+{ Important note about DLL memory management: ShareMem must be the
+  first unit in your library's USES clause AND your project's (select
+  Project-View Source) USES clause if your DLL exports any procedures or
+  functions that pass strings as parameters or function results. This
+  applies to all strings passed to and from your DLL--even those that
+  are nested in records and classes. ShareMem is the interface unit to
+  the BORLNDMM.DLL shared memory manager, which must be deployed along
+  with your DLL. To avoid using BORLNDMM.DLL, pass string information
+  using PChar or ShortString parameters. }
+
+{$R 'helloworldres.res' 'helloworldres.rc'}
+
+uses
+  SysUtils,
+  Classes,
+  Types,
+  Interfaces, LCLIntf, LCLType, LMessages,forms,
+  Messages,
+  nppplugin in 'lib\nppplugin.pas',
+  scisupport in 'lib\SciSupport.pas',
+  NppForms in 'lib\NppForms.pas' {NppForm},
+  NppDockingForms in 'lib\NppDockingForms.pas' {NppDockingForm},
+  helloworldplugin in 'helloworldplugin.pas',
+  AboutForms in 'AboutForms.pas' {AboutForm},
+  helloworlddockingforms in 'helloworlddockingforms.pas' {HelloWorldDockingForm},
+  windows;
+
+{$Include 'lib\NppPluginInclude.pas'}
+
+begin
+  { First, assign the procedure to the DLLProc variable }
+  Dll_Process_Detach_Hook:= @DLLEntryPoint;
+  { Now invoke the procedure to reflect that the DLL is attaching to the process }
+  DLLEntryPoint(DLL_PROCESS_ATTACH);
+  Application.Initialize;
+end.

File Unicode/helloworlddockingforms.lfm

View file
  • Ignore whitespace
+inherited HelloWorldDockingForm: THelloWorldDockingForm
+  BorderStyle = bsSizeToolWin
+  Caption = 'HelloWorldDockingForm'
+  OnCreate = FormCreate
+  OnHide = FormHide
+  OnKeyPress = FormKeyPress
+  OnShow = FormShow
+  PixelsPerInch = 96
+  TextHeight = 13
+  object Button1: TButton
+    Left = 8
+    Top = 112
+    Width = 75
+    Height = 25
+    Caption = 'Update Info'
+    TabOrder = 0
+    OnClick = Button1Click
+  end
+  object Button2: TButton
+    Left = 96
+    Top = 112
+    Width = 75
+    Height = 25
+    Caption = 'Close'
+    TabOrder = 1
+    OnClick = Button2Click
+  end
+  object Memo1: TMemo
+    Left = 8
+    Top = 8
+    Width = 185
+    Height = 89
+    Lines.Strings = (
+      'Memo1')
+    TabOrder = 2
+  end
+end

File Unicode/helloworlddockingforms.pas

View file
  • Ignore whitespace
+unit helloworlddockingforms;
+
+{$MODE Delphi}
+
+interface
+
+uses
+  LCLIntf, LCLType, LMessages, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, NppDockingForms, StdCtrls, NppPlugin;
+
+type
+  THelloWorldDockingForm = class(TNppDockingForm)
+    Button1: TButton;
+    Button2: TButton;
+    Memo1: TMemo;
+    procedure Button1Click(Sender: TObject);
+    procedure Button2Click(Sender: TObject);
+    procedure FormCreate(Sender: TObject);
+    procedure FormKeyPress(Sender: TObject; var Key: Char);
+    procedure FormHide(Sender: TObject);
+    procedure FormFloat(Sender: TObject);
+    procedure FormDock(Sender: TObject);
+    procedure FormShow(Sender: TObject);
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+  end;
+
+var
+  HelloWorldDockingForm: THelloWorldDockingForm;
+
+implementation
+
+{$R *.lfm}
+
+procedure THelloWorldDockingForm.FormCreate(Sender: TObject);
+begin
+  self.NppDefaultDockingMask := DWS_DF_FLOATING; // whats the default docking position
+  self.KeyPreview := true; // special hack for input forms
+  self.OnFloat := self.FormFloat;
+  self.OnDock := self.FormDock;
+  inherited;
+end;
+
+procedure THelloWorldDockingForm.Button1Click(Sender: TObject);
+begin
+  inherited;
+  self.UpdateDisplayInfo('test');
+end;
+
+procedure THelloWorldDockingForm.Button2Click(Sender: TObject);
+begin
+  inherited;
+  self.Hide;
+end;
+
+// special hack for input forms
+// This is the best possible hack I could came up for
+// memo boxes that don't process enter keys for reasons
+// too complicated... Has something to do with Dialog Messages
+// I sends a Ctrl+Enter in place of Enter
+procedure THelloWorldDockingForm.FormKeyPress(Sender: TObject;
+  var Key: Char);
+begin
+  inherited;
+  if (Key = #13) and (self.Memo1.Focused) then self.Memo1.Perform(WM_CHAR, 10, 0);
+end;
+
+// Docking code calls this when the form is hidden by either "x" or self.Hide
+procedure THelloWorldDockingForm.FormHide(Sender: TObject);
+begin
+  inherited;
+  SendMessage(self.Npp.NppData.NppHandle, NPPM_SETMENUITEMCHECK, self.CmdID, 0);
+end;
+
+procedure THelloWorldDockingForm.FormDock(Sender: TObject);
+begin
+  SendMessage(self.Npp.NppData.NppHandle, NPPM_SETMENUITEMCHECK, self.CmdID, 1);
+end;
+
+procedure THelloWorldDockingForm.FormFloat(Sender: TObject);
+begin
+  SendMessage(self.Npp.NppData.NppHandle, NPPM_SETMENUITEMCHECK, self.CmdID, 1);
+end;
+
+procedure THelloWorldDockingForm.FormShow(Sender: TObject);
+begin
+  inherited;
+  SendMessage(self.Npp.NppData.NppHandle, NPPM_SETMENUITEMCHECK, self.CmdID, 1);
+end;
+
+end.

File Unicode/helloworldplugin.pas

View file
  • Ignore whitespace
+unit helloworldplugin;
+
+{$MODE Delphi}
+
+interface
+
+uses
+  NppPlugin, SysUtils, LCLIntf, LCLType, LMessages, SciSupport, AboutForms, HelloWorldDockingForms,windows;
+
+type
+  THelloWorldPlugin = class(TNppPlugin)
+  public
+    constructor Create;
+    procedure FuncHelloWorld;
+    procedure FuncHelloWorldDocking;
+    procedure FuncAbout;
+    procedure DoNppnToolbarModification; override;
+  end;
+
+procedure _FuncHelloWorld; cdecl;
+procedure _FuncHelloWorldDocking; cdecl;
+procedure _FuncAbout; cdecl;
+
+var
+  Npp: THelloWorldPlugin;
+
+implementation
+
+{ THelloWorldPlugin }
+
+constructor THelloWorldPlugin.Create;
+var
+  sk: TShortcutKey;
+  i: Integer;
+begin
+  inherited;
+  self.PluginName := 'Hello &World';
+  i := 0;
+
+  sk.IsCtrl := true; sk.IsAlt := true; sk.IsShift := false;
+  sk.Key := #118; // CTRL ALT SHIFT F7
+  self.AddFuncItem('Replace Hello World', _FuncHelloWorld, sk);
+
+  self.AddFuncItem('Docking Test', _FuncHelloWorldDocking);
+
+  self.AddFuncItem('-', _FuncHelloWorld);
+
+  self.AddFuncItem('About', _FuncAbout);
+end;
+
+procedure _FuncHelloWorld; cdecl;
+begin
+  Npp.FuncHelloWorld;
+end;
+procedure _FuncAbout; cdecl;
+begin
+  Npp.FuncAbout;
+end;
+procedure _FuncHelloWorldDocking; cdecl;
+begin
+  Npp.FuncHelloWorldDocking;
+end;
+
+procedure THelloWorldPlugin.FuncHelloWorld;
+var
+  s: string;
+begin
+  s := 'Hello World';
+  SendMessage(self.NppData.ScintillaMainHandle, SCI_REPLACESEL, 0, LPARAM(PChar(s)));
+end;
+
+procedure THelloWorldPlugin.FuncAbout;
+var
+  a: TAboutForm;
+begin
+  a := TAboutForm.Create(self);
+  a.ShowModal;
+  a.Free;
+end;
+
+procedure THelloWorldPlugin.FuncHelloWorldDocking;
+begin
+  if (not Assigned(HelloWorldDockingForm)) then HelloWorldDockingForm := THelloWorldDockingForm.Create(self, 1);
+  HelloWorldDockingForm.Show;
+end;
+
+procedure THelloWorldPlugin.DoNppnToolbarModification;
+var
+  tb: TToolbarIcons;
+begin
+  tb.ToolbarIcon := 0;
+  tb.ToolbarBmp := LoadImage(Hinstance, 'IDB_TB_TEST', IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE or LR_LOADMAP3DCOLORS));
+  SendMessage(self.NppData.NppHandle, NPPM_ADDTOOLBARICON, WPARAM(self.CmdIdFromDlgId(1)), LPARAM(@tb));
+end;
+
+initialization
+  Npp := THelloWorldPlugin.Create;
+end.

File Unicode/helloworldres.rc

View file
  • Ignore whitespace
+IDB_TB_TEST               BITMAP                  "tbtest.bmp"

File Unicode/helloworldres.res

  • Ignore whitespace
Binary file added.

File Unicode/lib/NppDockingForms.lfm

View file
  • Ignore whitespace
+object NppDockingForm: TNppDockingForm
+  Left = 244
+  Top = 211
+  Width = 320
+  Height = 240
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = True
+  PixelsPerInch = 96
+  TextHeight = 13
+end

File Unicode/lib/NppDockingForms.pas

View file
  • Ignore whitespace
+{
+    This file is part of DBGP Plugin for Notepad++
+    Copyright (C) 2007  Damjan Zobo Cvetko
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+}
+
+unit NppDockingForms;
+
+{$MODE Delphi}
+
+interface
+
+uses
+  LCLIntf, LCLType, LMessages, Messages, SysUtils, Classes, Forms, NppPlugin, Dialogs, Controls, NppForms,windows;
+
+type
+  TNppDockingForm = class(TNppForm) {TCustomForm}
+  private
+    { Private declarations }
+    FDlgId: Integer;
+    FOnDock: TNotifyEvent;
+    FOnFloat: TNotifyEvent;
+    procedure RemoveControlParent(control: TControl);
+  protected
+    { Protected declarations }
+    ToolbarData: TToolbarData;
+    NppDefaultDockingMask: Cardinal;
+    // @todo: change caption and stuff....
+    procedure OnWM_NOTIFY(var msg: TWMNotify); message WM_NOTIFY;
+    property OnDock: TNotifyEvent read FOnDock write FOnDock;
+    property OnFloat: TNotifyEvent read FOnFloat write FOnFloat;
+  public
+    { Public declarations }
+    CmdId: Integer;
+    constructor Create(NppParent: TNppPlugin); overload;
+    constructor Create(AOwner: TNppForm); overload;
+    constructor Create(NppParent: TNppPlugin; DlgId: Integer); overload; virtual;
+    constructor Create(AOwner: TNppForm; DlgId: Integer); overload;  virtual;
+    procedure Show;
+    procedure Hide;
+    procedure RegisterDockingForm(MaskStyle: Cardinal = DWS_DF_CONT_LEFT);
+    procedure UpdateDisplayInfo; overload;
+    procedure UpdateDisplayInfo(Info: String); overload;
+    property DlgID: Integer read FDlgid;
+  published
+    { Published declarations }
+  end;
+
+var
+  NppDockingForm: TNppDockingForm;
+
+implementation
+
+{$R *.lfm}
+
+{ TNppDockingForm }
+
+// I don't know how else to hide a constructor.
+constructor TNppDockingForm.Create(NppParent: TNppPlugin);
+begin
+  MessageBox(0, 'Do not use this constructor', 'Plugin Framework error', MB_OK);
+  Halt(1);
+end;
+constructor TNppDockingForm.Create(AOwner: TNppForm);
+begin
+  MessageBox(0, 'Do not use this constructor', 'Plugin Framework error', MB_OK);
+  Halt(1);
+end;
+
+constructor TNppDockingForm.Create(NppParent: TNppPlugin; DlgId: Integer);
+begin
+  inherited Create(NppParent);
+  self.FDlgId := DlgId;
+  self.CmdId := self.Npp.CmdIdFromDlgId(DlgId);
+  self.RegisterDockingForm(self.NppDefaultDockingMask);
+  self.RemoveControlParent(self);
+end;
+
+constructor TNppDockingForm.Create(AOwner: TNppForm; DlgId: Integer);
+begin
+  inherited Create(AOwner);
+  self.FDlgId := DlgId;
+  self.RegisterDockingForm(self.NppDefaultDockingMask);
+  self.RemoveControlParent(self);
+end;
+
+procedure TNppDockingForm.OnWM_NOTIFY(var msg: TWMNotify);
+begin
+  if (self.Npp.NppData.NppHandle <> msg.NMHdr.hwndFrom) then
+  begin
+    inherited;
+    exit;
+  end;
+  msg.Result := 0;
+
+  if (msg.NMHdr.code = DMN_CLOSE) then
+  begin
+    self.DoHide;
+  end;
+  if ((msg.NMHdr.code and $ffff) = DMN_FLOAT) then
+  begin
+    // msg.NMHdr.code shr 16 - container
+    if Assigned(FOnFloat) then FOnFloat(Self);
+  end;
+  if ((msg.NMHdr.code and $ffff) = DMN_DOCK) then
+  begin
+    // msg.NMHdr.code shr 16 - container
+    if Assigned(FOnDock) then FOnDock(Self);
+  end;
+ inherited;
+end;
+
+procedure TNppDockingForm.RegisterDockingForm(MaskStyle: Cardinal = DWS_DF_CONT_LEFT);
+var
+  r:Integer;
+begin
+  self.HandleNeeded;
+  //self.Visible := true;
+
+  FillChar(self.ToolbarData,sizeof(TToolbarData),0);
+
+  if (not self.Icon.Empty) then
+  begin
+    self.ToolbarData.IconTab := self.Icon.Handle;
+    self.ToolbarData.Mask := self.ToolbarData.Mask or DWS_ICONTAB;
+  end;
+
+  self.ToolbarData.ClientHandle := self.Handle;
+
+  self.ToolbarData.DlgId := self.FDlgId;
+  self.ToolbarData.Mask := MaskStyle;
+
+  self.ToolbarData.Mask := self.ToolbarData.Mask or DWS_ADDINFO;
+
+  GetMem(self.ToolbarData.Title, 500*sizeof(nppPChar));
+  GetMem(self.ToolbarData.ModuleName, 1000*sizeof(nppPChar));
+  GetMem(self.ToolbarData.AdditionalInfo, 1000*sizeof(nppPChar));
+
+{$IFDEF NPPUNICODE}
+  StringToWideChar(self.Caption, self.ToolbarData.Title, 500);
+  GetModuleFileNameW(HInstance, self.ToolbarData.ModuleName, 1000);
+  StringToWideChar(ExtractFileName(self.ToolbarData.ModuleName), self.ToolbarData.ModuleName, 1000);
+  StringToWideChar('', self.ToolbarData.AdditionalInfo, 1);
+  r:=SendMessageW(self.Npp.NppData.NppHandle, NPPM_DMMREGASDCKDLG, 0, Integer(@self.ToolbarData));
+{$ELSE}
+  StrCopy(self.ToolbarData.Title, PChar(self.Caption));
+  GetModuleFileNameA(HInstance, self.ToolbarData.ModuleName, 1000);
+  StrLCopy(self.ToolbarData.ModuleName, PChar(ExtractFileName(self.ToolbarData.ModuleName)), 1000);
+  StrCopy(self.ToolbarData.AdditionalInfo, PChar(''));
+  r:=SendMessageA(self.Npp.NppData.NppHandle, NPPM_DMMREGASDCKDLG, 0, Integer(@self.ToolbarData));
+{$ENDIF}
+
+  self.Visible := true;
+end;
+
+procedure TNppDockingForm.Show;
+begin
+  SendMessage(self.Npp.NppData.NppHandle, NPPM_DMMSHOW, 0, LPARAM(self.Handle));
+  inherited;
+  self.DoShow;
+end;
+
+procedure TNppDockingForm.Hide;
+begin
+  SendMessage(self.Npp.NppData.NppHandle, NPPM_DMMHIDE, 0, LPARAM(self.Handle));
+  self.DoHide;
+end;
+
+// This hack prevents the Win Dialog default procedure from an endless loop while
+// looking for the prevoius component, while in a floating state.
+// I still don't know why the pointer climbs up to the docking dialog that holds this one
+// but this works for now.
+procedure TNppDockingForm.RemoveControlParent(control: TControl);
+var
+  wincontrol: TWinControl;
+  i, r: integer;
+begin
+  if (control is TWinControl) then
+  begin
+    wincontrol := control as TWinControl;
+    wincontrol.HandleNeeded;
+    r := Windows.GetWindowLong(wincontrol.Handle, GWL_EXSTYLE);
+    if (r and WS_EX_CONTROLPARENT = WS_EX_CONTROLPARENT) then
+    begin
+      Windows.SetWindowLong(wincontrol.Handle, GWL_EXSTYLE, r and not WS_EX_CONTROLPARENT);
+    end;
+  end;
+  for i:=control.ComponentCount-1 downto 0 do
+  begin
+    if (control.Components[i] is TControl) then self.RemoveControlParent(control.Components[i] as TControl);
+  end;
+end;
+
+procedure TNppDockingForm.UpdateDisplayInfo;
+begin
+  self.UpdateDisplayInfo('');
+end;
+
+procedure TNppDockingForm.UpdateDisplayInfo(Info: String);
+begin
+{$IFDEF NPPUNICODE}
+  StringToWideChar(Info, self.ToolbarData.AdditionalInfo, 1000);
+  SendMessageW(self.Npp.NppData.NppHandle, NPPM_DMMUPDATEDISPINFO, 0, self.Handle);
+{$ELSE}
+  StrLCopy(self.ToolbarData.AdditionalInfo, PChar(Info), 1000);
+  SendMessageA(self.Npp.NppData.NppHandle, NPPM_DMMUPDATEDISPINFO, 0, self.Handle);
+{$ENDIF}
+end;
+
+end.

File Unicode/lib/NppForms.lfm

View file
  • Ignore whitespace
+object NppForm: TNppForm
+  Left = 647
+  Top = 454
+  Width = 351
+  Height = 294
+  BorderStyle = bsSizeToolWin
+  Caption = 'NppForm'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  PixelsPerInch = 96
+  TextHeight = 13
+end

File Unicode/lib/NppForms.pas

View file
  • Ignore whitespace
+{
+    This file is part of DBGP Plugin for Notepad++
+    Copyright (C) 2007  Damjan Zobo Cvetko
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+}
+
+unit NppForms;
+
+{$MODE Delphi}
+
+interface
+
+uses
+  LCLIntf, LCLType, LMessages, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, NppPlugin;
+
+type
+  TNppForm = class(TForm)
+  private
+    { Private declarations }
+  protected
+    procedure RegisterForm();
+    procedure UnregisterForm();
+    procedure DoClose(var Action: TCloseAction); override;
+  public
+    { Public declarations }
+    Npp: TNppPlugin;
+    DefaultCloseAction: TCloseAction;
+    constructor Create(NppParent: TNppPlugin); overload;
+    constructor Create(AOwner: TNppForm); overload;
+    destructor Destroy; override;
+//    procedure Show;
+    function WantChildKey(Child: TControl; var Message: TMessage): Boolean; override;
+  end;
+
+var
+  NppForm: TNppForm;
+
+implementation
+
+{$R *.lfm}
+
+{ TNppForm }
+
+constructor TNppForm.Create(NppParent: TNppPlugin);
+begin
+  self.Npp := NppParent;
+  self.DefaultCloseAction := caNone;
+  inherited Create(nil);
+  // We figure right now this does more damage than good.
+  // So let the main transalte and dispatch do it's thing instead of isdialogmessage
+  self.RegisterForm();
+end;
+
+constructor TNppForm.Create(AOwner: TNppForm);
+begin
+  self.Npp := AOwner.Npp;
+  self.DefaultCloseAction := caNone;
+  inherited Create(Aowner);
+  //self.RegisterForm();
+end;
+
+destructor TNppForm.Destroy;
+begin
+  if (self.HandleAllocated) then
+  begin
+    self.UnregisterForm();
+  end;
+  inherited;
+end;
+
+procedure TNppForm.RegisterForm();
+var
+  r: Integer;
+begin
+  r:=SendMessage(self.Npp.NppData.NppHandle, NPPM_MODELESSDIALOG, MODELESSDIALOGADD, self.Handle);
+{
+  if (r = 0) then
+  begin
+    ShowMessage('Failed reg of form '+form.Name);
+    exit;
+  end;
+}
+end;
+
+procedure TNppForm.UnregisterForm();
+var
+  r: Integer;
+begin
+  if (not self.HandleAllocated) then exit;
+  r:=SendMessage(self.Npp.NppData.NppHandle, NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, self.Handle);
+{
+  if (r = 0) then
+  begin
+    ShowMessage('Failed unreg form '+form.Name);
+    exit;
+  end;
+}
+end;
+
+procedure TNppForm.DoClose(var Action: TCloseAction);
+begin
+  if (self.DefaultCloseAction <> caNone) then Action := self.DefaultCloseAction;
+  inherited;
+end;
+
+// This is going to help us solve the problems we are having because of N++ handling our messages
+function TNppForm.WantChildKey(Child: TControl; var Message: TMessage): Boolean;
+begin
+  Result := Child.Perform(CN_BASE + Message.Msg, Message.WParam, Message.LParam) <> 0;
+end;
+
+end.

File Unicode/lib/NppPluginInclude.pas

View file
  • Ignore whitespace
+procedure DLLEntryPoint(dwReason: DWord);
+begin
+  case dwReason of
+  DLL_PROCESS_ATTACH:
+  begin
+    // create the main object
+    //Npp := TDbgpNppPlugin.Create;
+  end;
+  DLL_PROCESS_DETACH:
+  begin
+    if (Assigned(Npp)) then Npp.Destroy;
+  end;
+  //DLL_THREAD_ATTACH: MessageBeep(0);
+  //DLL_THREAD_DETACH: MessageBeep(0);
+  end;
+end;
+
+procedure setInfo(NppData: TNppData); cdecl; export;
+begin
+  Npp.SetInfo(NppData);
+end;
+
+function getName(): nppPchar; cdecl; export;
+begin
+  Result := Npp.GetName;
+end;
+
+function getFuncsArray(var nFuncs:integer):Pointer;cdecl; export;
+begin
+  Result := Npp.GetFuncsArray(nFuncs);
+end;
+
+procedure beNotified(sn: PSCNotification); cdecl; export;
+begin
+  Npp.BeNotified(sn);
+end;
+
+function messageProc(msg: Integer; _wParam: WPARAM; _lParam: LPARAM): LRESULT; cdecl; export;
+var xmsg:TMessage;
+begin
+  xmsg.Msg := msg;
+  xmsg.WParam := _wParam;
+  xmsg.LParam := _lParam;
+  xmsg.Result := 0;
+  Npp.MessageProc(xmsg);
+  Result := xmsg.Result;
+end;
+
+{$IFDEF NPPUNICODE}
+function isUnicode : Boolean; cdecl; export;
+begin
+  Result := true;
+end;
+{$ENDIF}
+
+exports
+  setInfo, getName, getFuncsArray, beNotified, messageProc;
+{$IFDEF NPPUNICODE}
+exports
+  isUnicode;
+{$ENDIF}

File Unicode/lib/SciSupport.pas

View file
  • Ignore whitespace
+unit scisupport;
+
+{$MODE Delphi}
+
+// Support unit for scintilla use in pascal. The constants are all created from scintilla.iface by
+// a python script.
+
+interface
+
+{$DEFINE MACRO_SUPPORT}
+
+uses LCLIntf, LCLType, LMessages;
+
+type
+  TScintillaMessageFnc = function(ptr : Pointer; Msg, wParam, lParam : LongInt) : LongInt; cdecl;
+  uptr_t = Longword;
+  sptr_t = Longint;
+  TNotifyHeader = record
+	  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
+{$ifdef MACRO_SUPPORT}
+    message		    : Integer;		// SCN_MACRORECORD
+    wParam		    : uptr_t;		// SCN_MACRORECORD
+    lParam		    : sptr_t;			// SCN_MACRORECORD
+{$endif}
+    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;
+  TCharacterRange = Record
+    cpMin : Longint;
+	  cpMax : Longint;
+  end;
+  PTextRange = ^TTextRange;
+  TTextRange = Record
+    chrg : TCharacterRange;
+    lpstrText : pchar;
+  end;
+  PTextToFind = ^TTextToFind;
+  TTextToFind  = Record
+    chrg : TCharacterRange;
+	  lpstrText : pchar;
+	  chrgText : TCharacterRange;
+  end;
+
+const
+//++Const -- 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;
+    SCI_SETCHARSDEFAULT = 2444;
+    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_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;
+    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;
+    SCI_SETWRAPMODE = 2268;
+    SCI_GETWRAPMODE = 2269;
+    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_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 = $F77;
+    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_ASP = 29;
+    SCLEX_PHP = 30;
+    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_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_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_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_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_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;