Here's an include for Scintilla-SciLexer. Thought I share it...

DLL-SciLexer.pbi
Code: Select all
; Taken from Scintilla Documentation Version 1.67 - 20-Feb-2006.
; http://scintilla.sourceforge.net/ScintillaDoc.html
; Captured by AKEE for the PureBasic community. :)
;- ** SCINTILLA FUNCTIONS **
;{
;-- Text Retrieval and modification.
#SCI_GETTEXT = 2182
#SCI_SETTEXT = 2181
#SCI_SETSAVEPOINT = 2014
#SCI_GETLINE = 2153
#SCI_REPLACESEL = 2170
#SCI_SETREADONLY = 2171
#SCI_GETREADONLY = 2140
#SCI_GETTEXTRANGE = 2162
#SCI_ALLOCATE = 2446
#SCI_ADDTEXT = 2001
#SCI_ADDSTYLEDTEXT = 2002
#SCI_APPENDTEXT = 2282
#SCI_INSERTTEXT = 2003
#SCI_CLEARALL = 2004
#SCI_CLEARDOCUMENTSTYLE = 2005
#SCI_GETCHARAT = 2007
#SCI_GETSTYLEAT = 2010
#SCI_GETSTYLEDTEXT = 2015
#SCI_SETSTYLEBITS = 2090
#SCI_GETSTYLEBITS = 2091
#SCI_TARGETASUTF8 = 2447
#SCI_ENCODEDFROMUTF8 = 2449
#SCI_SETLENGTHFORENCODE = 2448
;-- Searching.
#SCI_FINDTEXT = 2150
#SCI_SEARCHANCHOR = 2366
#SCI_SEARCHNEXT = 2367
#SCI_SEARCHPREV = 2368
;-- Search and replace using a target.
#SCI_SETTARGETSTART = 2190
#SCI_GETTARGETSTART = 2191
#SCI_SETTARGETEND = 2192
#SCI_GETTARGETEND = 2193
#SCI_TARGETFROMSELECTION = 2287
#SCI_SETSEARCHFLAGS = 2198
#SCI_GETSEARCHFLAGS = 2199
#SCI_SEARCHINTARGET = 2197
#SCI_REPLACETARGET = 2194
#SCI_REPLACETARGETRE = 2195
;-- Overtype.
#SCI_SETOVERTYPE = 2186
#SCI_GETOVERTYPE = 2187
;-- Cut, copy and paste.
#SCI_CUT = 2177
#SCI_COPY = 2178
#SCI_PASTE = 2179
#SCI_CLEAR = 2180
#SCI_CANPASTE = 2173
#SCI_COPYRANGE = 2419
#SCI_COPYTEXT = 2420
#SCI_SETPASTECONVERTENDINGS = 2467
#SCI_GETPASTECONVERTENDINGS = 2468
;-- Error handling.
#SCI_SETSTATUS = 2382
#SCI_GETSTATUS = 2383
;-- Undo and Redo.
#SCI_UNDO = 2176
#SCI_CANUNDO = 2174
#SCI_EMPTYUNDOBUFFER = 2175
#SCI_REDO = 2011
#SCI_CANREDO = 2016
#SCI_SETUNDOCOLLECTION = 2012
#SCI_GETUNDOCOLLECTION = 2019
#SCI_BEGINUNDOACTION = 2078
#SCI_ENDUNDOACTION = 2079
;-- Selection and information.
#SCI_GETTEXTLENGTH = 2183
#SCI_GETLENGTH = 2006
#SCI_GETLINECOUNT = 2154
#SCI_GETFIRSTVISIBLELINE = 2152
#SCI_LINESONSCREEN = 2370
#SCI_GETMODIFY = 2159
#SCI_SETSEL = 2160
#SCI_GOTOPOS = 2025
#SCI_GOTOLINE = 2024
#SCI_SETCURRENTPOS = 2141
#SCI_GETCURRENTPOS = 2008
#SCI_SETANCHOR = 2026
#SCI_GETANCHOR = 2009
#SCI_SETSELECTIONSTART = 2142
#SCI_GETSELECTIONSTART = 2143
#SCI_SETSELECTIONEND = 2144
#SCI_GETSELECTIONEND = 2145
#SCI_SELECTALL = 2013
#SCI_LINEFROMPOSITION = 2166
#SCI_POSITIONFROMLINE = 2167
#SCI_GETLINEENDPOSITION = 2136
#SCI_LINELENGTH = 2350
#SCI_GETCOLUMN = 2129
#SCI_FINDCOLUMN = 2456
#SCI_POSITIONFROMPOINT = 2022
#SCI_POSITIONFROMPOINTCLOSE = 2023
#SCI_POINTXFROMPOSITION = 2164
#SCI_POINTYFROMPOSITION = 2165
#SCI_HIDESELECTION = 2163
#SCI_GETSELTEXT = 2161
#SCI_GETCURLINE = 2027
#SCI_SELECTIONISRECTANGLE = 2372
#SCI_SETSELECTIONMODE = 2422
#SCI_GETSELECTIONMODE = 2423
#SCI_GETLINESELSTARTPOSITION = 2424
#SCI_GETLINESELENDPOSITION = 2425
#SCI_MOVECARETINSIDEVIEW = 2401
#SCI_WORDENDPOSITION = 2267
#SCI_WORDSTARTPOSITION = 2266
#SCI_POSITIONBEFORE = 2417
#SCI_POSITIONAFTER = 2418
#SCI_TEXTWIDTH = 2276
#SCI_TEXTHEIGHT = 2279
#SCI_CHOOSECARETX = 2399
;-- Scrolling and automatic scrolling.
#SCI_LINESCROLL = 2168
#SCI_SCROLLCARET = 2169
#SCI_SETXCARETPOLICY = 2402
#SCI_SETYCARETPOLICY = 2403
#SCI_SETVISIBLEPOLICY = 2394
#SCI_SETHSCROLLBAR = 2130
#SCI_GETHSCROLLBAR = 2131
#SCI_SETVSCROLLBAR = 2280
#SCI_GETVSCROLLBAR = 2281
#SCI_GETXOFFSET = 2398
#SCI_SETXOFFSET = 2397
#SCI_SETSCROLLWIDTH = 2274
#SCI_GETSCROLLWIDTH = 2275
#SCI_SETENDATLASTLINE = 2277
#SCI_GETENDATLASTLINE = 2278
;-- White space.
#SCI_SETVIEWWS = 2021
#SCI_GETVIEWWS = 2020
#SCI_SETWHITESPACEFORE = 2084
#SCI_SETWHITESPACEBACK = 2085
;-- Cursor.
#SCI_SETCURSOR = 2386
#SCI_GETCURSOR = 2387
;-- Mouse capture.
#SCI_SETMOUSEDOWNCAPTURES = 2384
#SCI_GETMOUSEDOWNCAPTURES = 2385
;-- Line endings.
#SCI_SETEOLMODE = 2031
#SCI_GETEOLMODE = 2030
#SCI_CONVERTEOLS = 2029
#SCI_SETVIEWEOL = 2356
#SCI_GETVIEWEOL = 2355
;-- Styling.
#SCI_GETENDSTYLED = 2028
#SCI_STARTSTYLING = 2032
#SCI_SETSTYLING = 2033
#SCI_SETSTYLINGEX = 2073
#SCI_SETLINESTATE = 2092
#SCI_GETLINESTATE = 2093
#SCI_GETMAXLINESTATE = 2094
;-- Style definition.
#SCI_STYLERESETDEFAULT = 2058
#SCI_STYLECLEARALL = 2050
#SCI_STYLESETFONT = 2056
#SCI_STYLESETSIZE = 2055
#SCI_STYLESETBOLD = 2053
#SCI_STYLESETITALIC = 2054
#SCI_STYLESETUNDERLINE = 2059
#SCI_STYLESETFORE = 2051
#SCI_STYLESETBACK = 2052
#SCI_STYLESETEOLFILLED = 2057
#SCI_STYLESETCHARACTERSET = 2066
#SCI_STYLESETCASE = 2060
#SCI_STYLESETVISIBLE = 2074
#SCI_STYLESETCHANGEABLE = 2099
#SCI_STYLESETHOTSPOT = 2409
;-- Caret, selection and hotspot styles.
#SCI_SETSELFORE = 2067
#SCI_SETSELBACK = 2068
#SCI_SETCARETFORE = 2069
#SCI_GETCARETFORE = 2138
#SCI_SETCARETLINEVISIBLE = 2096
#SCI_GETCARETLINEVISIBLE = 2095
#SCI_SETCARETLINEBACK = 2098
#SCI_GETCARETLINEBACK = 2097
#SCI_SETCARETPERIOD = 2076
#SCI_GETCARETPERIOD = 2075
#SCI_SETCARETWIDTH = 2188
#SCI_GETCARETWIDTH = 2189
#SCI_SETHOTSPOTACTIVEFORE = 2410
#SCI_SETHOTSPOTACTIVEBACK = 2411
#SCI_SETHOTSPOTACTIVEUNDERLINE = 2412
#SCI_SETHOTSPOTSINGLELINE = 2421
#SCI_SETCONTROLCHARSYMBOL = 2388
#SCI_GETCONTROLCHARSYMBOL = 2389
#SCI_SETCARETSTICKY = 2458
#SCI_GETCARETSTICKY = 2457
#SCI_TOGGLECARETSTICKY = 2459
;-- Margins.
#SCI_SETMARGINTYPEN = 2240
#SCI_GETMARGINTYPEN = 2241
#SCI_SETMARGINWIDTHN = 2242
#SCI_GETMARGINWIDTHN = 2243
#SCI_SETMARGINMASKN = 2244
#SCI_GETMARGINMASKN = 2245
#SCI_SETMARGINSENSITIVEN = 2246
#SCI_GETMARGINSENSITIVEN = 2247
#SCI_SETMARGINLEFT = 2155
#SCI_GETMARGINLEFT = 2156
#SCI_SETMARGINRIGHT = 2157
#SCI_GETMARGINRIGHT = 2158
#SCI_SETFOLDMARGINCOLOUR = 2290
#SCI_SETFOLDMARGINHICOLOUR = 2291
;-- Other settings.
#SCI_SETUSEPALETTE = 2039
#SCI_GETUSEPALETTE = 2139
#SCI_SETBUFFEREDDRAW = 2035
#SCI_GETBUFFEREDDRAW = 2034
#SCI_SETTWOPHASEDRAW = 2284
#SCI_GETTWOPHASEDRAW = 2283
#SCI_SETCODEPAGE = 2037
#SCI_GETCODEPAGE = 2137
#SCI_SETWORDCHARS = 2077
#SCI_SETWHITESPACECHARS = 2443
#SCI_SETCHARSDEFAULT = 2444
#SCI_GRABFOCUS = 2400
#SCI_SETFOCUS = 2380
#SCI_GETFOCUS = 2381
;-- Brace highlighting.
#SCI_BRACEHIGHLIGHT = 2351
#SCI_BRACEBADLIGHT = 2352
#SCI_BRACEMATCH = 2353
;-- Tab and Indentation Guides.
#SCI_SETTABWIDTH = 2036
#SCI_GETTABWIDTH = 2121
#SCI_SETUSETABS = 2124
#SCI_GETUSETABS = 2125
#SCI_SETINDENT = 2122
#SCI_GETINDENT = 2123
#SCI_SETTABINDENTS = 2260
#SCI_GETTABINDENTS = 2261
#SCI_SETBACKSPACEUNINDENTS = 2262
#SCI_GETBACKSPACEUNINDENTS = 2263
#SCI_SETLINEINDENTATION = 2126
#SCI_GETLINEINDENTATION = 2127
#SCI_GETLINEINDENTPOSITION = 2128
#SCI_SETINDENTATIONGUIDES = 2132
#SCI_GETINDENTATIONGUIDES = 2133
#SCI_SETHIGHLIGHTGUIDE = 2134
#SCI_GETHIGHLIGHTGUIDE = 2135
;-- Markers.
#SCI_MARKERDEFINE = 2040
#SCI_MARKERDEFINEPIXMAP = 2049
#SCI_MARKERSETFORE = 2041
#SCI_MARKERSETBACK = 2042
#SCI_MARKERADD = 2043
#SCI_MARKERADDSET = 2466
#SCI_MARKERDELETE = 2044
#SCI_MARKERDELETEALL = 2045
#SCI_MARKERGET = 2046
#SCI_MARKERNEXT = 2047
#SCI_MARKERPREVIOUS = 2048
#SCI_MARKERLINEFROMHANDLE = 2017
#SCI_MARKERDELETEHANDLE = 2018
;-- Indicators.
#SCI_INDICSETSTYLE = 2080
#SCI_INDICGETSTYLE = 2081
#SCI_INDICSETFORE = 2082
#SCI_INDICGETFORE = 2083
;-- Autocompletion.
#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_AUTOCGETCURRENT = 2445
#SCI_AUTOCSETCANCELATSTART = 2110
#SCI_AUTOCGETCANCELATSTART = 2111
#SCI_AUTOCSETFILLUPS = 2112
#SCI_AUTOCSETCHOOSESINGLE = 2113
#SCI_AUTOCGETCHOOSESINGLE = 2114
#SCI_AUTOCSETIGNORECASE = 2115
#SCI_AUTOCGETIGNORECASE = 2116
#SCI_AUTOCSETAUTOHIDE = 2118
#SCI_AUTOCGETAUTOHIDE = 2119
#SCI_AUTOCSETDROPRESTOFWORD = 2270
#SCI_AUTOCGETDROPRESTOFWORD = 2271
#SCI_REGISTERIMAGE = 2405
#SCI_CLEARREGISTEREDIMAGES = 2408
#SCI_AUTOCSETTYPESEPARATOR = 2286
#SCI_AUTOCGETTYPESEPARATOR = 2285
#SCI_AUTOCSETMAXHEIGHT = 2210
#SCI_AUTOCGETMAXHEIGHT = 2211
#SCI_AUTOCSETMAXWIDTH = 2208
#SCI_AUTOCGETMAXWIDTH = 2209
;-- User lists.
#SCI_USERLISTSHOW = 2117
;-- Call tips.
#SCI_CALLTIPSHOW = 2200
#SCI_CALLTIPCANCEL = 2201
#SCI_CALLTIPACTIVE = 2202
#SCI_CALLTIPPOSSTART = 2203
#SCI_CALLTIPSETHLT = 2204
#SCI_CALLTIPSETBACK = 2205
#SCI_CALLTIPSETFORE = 2206
#SCI_CALLTIPSETFOREHLT = 2207
;-- Keyboard commands.
#SCI_LINEDOWN = 2300
#SCI_LINEDOWNEXTEND = 2301
#SCI_LINEDOWNRECTEXTEND = 2426
#SCI_LINESCROLLDOWN = 2342
#SCI_LINEUP = 2302
#SCI_LINEUPEXTEND = 2303
#SCI_LINEUPRECTEXTEND = 2427
#SCI_LINESCROLLUP = 2343
#SCI_PARADOWN = 2413
#SCI_PARADOWNEXTEND = 2414
#SCI_PARAUP = 2415
#SCI_PARAUPEXTEND = 2416
#SCI_CHARLEFT = 2304
#SCI_CHARLEFTEXTEND = 2305
#SCI_CHARLEFTRECTEXTEND = 2428
#SCI_CHARRIGHT = 2306
#SCI_CHARRIGHTEXTEND = 2307
#SCI_CHARRIGHTRECTEXTEND = 2429
#SCI_WORDLEFT = 2308
#SCI_WORDLEFTEXTEND = 2309
#SCI_WORDRIGHT = 2310
#SCI_WORDRIGHTEXTEND = 2311
#SCI_WORDLEFTEND = 2439
#SCI_WORDLEFTENDEXTEND = 2440
#SCI_WORDRIGHTEND = 2441
#SCI_WORDRIGHTENDEXTEND = 2442
#SCI_WORDPARTLEFT = 2390
#SCI_WORDPARTLEFTEXTEND = 2391
#SCI_WORDPARTRIGHT = 2392
#SCI_WORDPARTRIGHTEXTEND = 2393
#SCI_HOME = 2312
#SCI_HOMEEXTEND = 2313
#SCI_HOMERECTEXTEND = 2430
#SCI_HOMEDISPLAY = 2345
#SCI_HOMEDISPLAYEXTEND = 2346
#SCI_HOMEWRAP = 2349
#SCI_HOMEWRAPEXTEND = 2450
#SCI_VCHOME = 2331
#SCI_VCHOMEEXTEND = 2332
#SCI_VCHOMERECTEXTEND = 2431
#SCI_VCHOMEWRAP = 2453
#SCI_VCHOMEWRAPEXTEND = 2454
#SCI_LINEEND = 2314
#SCI_LINEENDEXTEND = 2315
#SCI_LINEENDRECTEXTEND = 2432
#SCI_LINEENDDISPLAY = 2347
#SCI_LINEENDDISPLAYEXTEND = 2348
#SCI_LINEENDWRAP = 2451
#SCI_LINEENDWRAPEXTEND = 2452
#SCI_DOCUMENTSTART = 2316
#SCI_DOCUMENTSTARTEXTEND = 2317
#SCI_DOCUMENTEND = 2318
#SCI_DOCUMENTENDEXTEND = 2319
#SCI_PAGEUP = 2320
#SCI_PAGEUPEXTEND = 2321
#SCI_PAGEUPRECTEXTEND = 2433
#SCI_PAGEDOWN = 2322
#SCI_PAGEDOWNEXTEND = 2323
#SCI_PAGEDOWNRECTEXTEND = 2434
#SCI_STUTTEREDPAGEUP = 2435
#SCI_STUTTEREDPAGEUPEXTEND = 2436
#SCI_STUTTEREDPAGEDOWN = 2437
#SCI_STUTTEREDPAGEDOWNEXTEND = 2438
#SCI_DELETEBACK = 2326
#SCI_DELETEBACKNOTLINE = 2344
#SCI_DELWORDLEFT = 2335
#SCI_DELWORDRIGHT = 2336
#SCI_DELLINELEFT = 2395
#SCI_DELLINERIGHT = 2396
#SCI_LINEDELETE = 2338
#SCI_LINECUT = 2337
#SCI_LINECOPY = 2455
#SCI_LINETRANSPOSE = 2339
#SCI_LINEDUPLICATE = 2404
#SCI_LOWERCASE = 2340
#SCI_UPPERCASE = 2341
#SCI_CANCEL = 2325
#SCI_EDITTOGGLEOVERTYPE = 2324
#SCI_NEWLINE = 2329
#SCI_FORMFEED = 2330
#SCI_TAB = 2327
#SCI_BACKTAB = 2328
#SCI_SELECTIONDUPLICATE = 2469
;-- Key bindings.
#SCI_ASSIGNCMDKEY = 2070
#SCI_CLEARALLCMDKEYS = 2072
#SCI_CLEARCMDKEY = 2071
#SCI_NULL = 2172
;-- Popup edit menu.
#SCI_USEPOPUP = 2371
;-- Macro recording.
#SCI_STARTRECORD = 3001
#SCI_STOPRECORD = 3002
;-- Printing.
#SCI_FORMATRANGE = 2151
#SCI_SETPRINTMAGNIFICATION = 2146
#SCI_GETPRINTMAGNIFICATION = 2147
#SCI_SETPRINTCOLOURMODE = 2148
#SCI_GETPRINTCOLOURMODE = 2149
#SCI_SETPRINTWRAPMODE = 2406
#SCI_GETPRINTWRAPMODE = 2407
;-- Direct access.
#SCI_GETDIRECTFUNCTION = 2184
#SCI_GETDIRECTPOINTER = 2185
;-- Multiple views.
#SCI_GETDOCPOINTER = 2357
#SCI_SETDOCPOINTER = 2358
#SCI_CREATEDOCUMENT = 2375
#SCI_ADDREFDOCUMENT = 2376
#SCI_RELEASEDOCUMENT = 2377
;-- Folding.
#SCI_VISIBLEFROMDOCLINE = 2220
#SCI_DOCLINEFROMVISIBLE = 2221
#SCI_SHOWLINES = 2226
#SCI_HIDELINES = 2227
#SCI_GETLINEVISIBLE = 2228
#SCI_SETFOLDLEVEL = 2222
#SCI_GETFOLDLEVEL = 2223
#SCI_SETFOLDFLAGS = 2233
#SCI_GETLASTCHILD = 2224
#SCI_GETFOLDPARENT = 2225
#SCI_SETFOLDEXPANDED = 2229
#SCI_GETFOLDEXPANDED = 2230
#SCI_TOGGLEFOLD = 2231
#SCI_ENSUREVISIBLE = 2232
#SCI_ENSUREVISIBLEENFORCEPOLICY = 2234
;-- Line wrapping.
#SCI_SETWRAPMODE = 2268
#SCI_GETWRAPMODE = 2269
#SCI_SETWRAPVISUALFLAGS = 2460
#SCI_GETWRAPVISUALFLAGS = 2461
#SCI_SETWRAPVISUALFLAGSLOCATION = 2462
#SCI_GETWRAPVISUALFLAGSLOCATION = 2463
#SCI_SETWRAPSTARTINDENT = 2464
#SCI_GETWRAPSTARTINDENT = 2465
#SCI_SETLAYOUTCACHE = 2272
#SCI_GETLAYOUTCACHE = 2273
#SCI_LINESSPLIT = 2289
#SCI_LINESJOIN = 2288
#SCI_WRAPCOUNT = 2235
;-- Zooming.
#SCI_ZOOMIN = 2333
#SCI_ZOOMOUT = 2334
#SCI_SETZOOM = 2373
#SCI_GETZOOM = 2374
;-- Long lines.
#SCI_SETEDGEMODE = 2363
#SCI_GETEDGEMODE = 2362
#SCI_SETEDGECOLUMN = 2361
#SCI_GETEDGECOLUMN = 2360
#SCI_SETEDGECOLOUR = 2365
#SCI_GETEDGECOLOUR = 2364
;-- Lexer.
#SCI_SETLEXER = 4001
#SCI_GETLEXER = 4002
#SCI_SETLEXERLANGUAGE = 4006
#SCI_LOADLEXERLIBRARY = 4007
#SCI_COLOURISE = 4003
#SCI_SETPROPERTY = 4004
#SCI_GETPROPERTY = 4008
#SCI_GETPROPERTYEXPANDED = 4009
#SCI_GETPROPERTYINT = 4010
#SCI_SETKEYWORDS = 4005
#SCI_GETSTYLEBITSNEEDED = 4011
;-- Notifications.
#SCI_SETMODEVENTMASK = 2359
#SCI_GETMODEVENTMASK = 2378
#SCI_SETMOUSEDWELLTIME = 2264
#SCI_GETMOUSEDWELLTIME = 2265
#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_URIDROPPED = 2015
#SCN_DWELLSTART = 2016
#SCN_DWELLEND = 2017
#SCN_ZOOM = 2018
#SCN_HOTSPOTCLICK = 2019
#SCN_HOTSPOTDOUBLECLICK = 2020
#SCN_CALLTIPCLICK = 2021
#SCN_AUTOCSELECTION = 2022
#SCEN_CHANGE = 768
#SCEN_SETFOCUS = 512
#SCEN_KILLFOCUS = 256
; Others.
#SCI_START = 2000
#SCI_OPTIONAL_START = 3000
#SCI_LEXER_START = 4000
;}
;- ** FLAGS AND CONSTANTS **
;{
;-- Search Flags.
#SCFIND_MATCHCASE = 4
#SCFIND_WHOLEWORD = 2
#SCFIND_WORDSTART = $00100000
#SCFIND_REGEXP = $00200000
#SCFIND_POSIX = $00400000
#SC_SEL_STREAM = 0
#SC_SEL_RECTANGLE = 1
#SC_SEL_LINES = 2
#CARET_SLOP = $01
#CARET_STRICT = $04
#CARET_JUMPS = $10
#CARET_EVEN = $08
#VISIBLE_SLOP = $01
#VISIBLE_STRICT = $04
;-- White space costants.
#SCWS_INVISIBLE = 0
#SCWS_VISIBLEALWAYS = 1
#SCWS_VISIBLEAFTERINDENT = 2
;-- Cursor constants.
#SC_CURSORNORMAL = -1
#SC_CURSORWAIT = 4
;-- Line Ending Constants.
#SC_EOL_CRLF = 0
#SC_EOL_CR = 1
#SC_EOL_LF = 2
;-- Style definition Constants.
#STYLE_DEFAULT = 32
#STYLE_LINENUMBER = 33
#STYLE_BRACELIGHT = 34
#STYLE_BRACEBAD = 35
#STYLE_CONTROLCHAR = 36
#STYLE_INDENTGUIDE = 37
#STYLE_LASTPREDEFINED = 39
; #STYLE_MAX = 127
;-- Character Set Constants.
#SC_CHARSET_8859_15 = 1000
#SC_CHARSET_ANSI = 0
#SC_CHARSET_ARABIC = 178
#SC_CHARSET_BALTIC = 186
#SC_CHARSET_CHINESEBIG5 = 136
#SC_CHARSET_CYRILLIC = 1251
#SC_CHARSET_DEFAULT = 1
#SC_CHARSET_EASTEUROPE = 238
#SC_CHARSET_GB2312 = 134
#SC_CHARSET_GREEK = 161
#SC_CHARSET_HANGUL = 129
#SC_CHARSET_HEBREW = 177
#SC_CHARSET_JOHAB = 130
#SC_CHARSET_MAC = 77
#SC_CHARSET_OEM = 255
#SC_CHARSET_RUSSIAN = 204
#SC_CHARSET_SHIFTJIS = 128
#SC_CHARSET_SYMBOL = 2
#SC_CHARSET_THAI = 222
#SC_CHARSET_TURKISH = 162
#SC_CHARSET_VIETNAMESE = 163
;-- Character Case.
#SC_CASE_MIXED = 0
#SC_CASE_UPPER = 1
#SC_CASE_LOWER = 2
;-- Margin Constants.
#SC_MARGIN_SYMBOL = 0
#SC_MARGIN_NUMBER = 1
;-- Code Page Constants.
#SC_CP_DBCS = 1
#SC_CP_UTF8 = 65001
;-- Markers Constants.
#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_DOTDOTDOT = 23
#SC_MARK_BACKGROUND = 22
#SC_MARK_FULLRECT = 26
#SC_MARK_BOXMINUS = 14
#SC_MARK_BOXMINUSCONNECTED = 15
#SC_MARK_BOXPLUS = 12
#SC_MARK_BOXPLUSCONNECTED = 13
#SC_MARK_CIRCLEMINUS = 20
#SC_MARK_CIRCLEMINUSCONNECTED = 21
#SC_MARK_CIRCLEPLUS = 18
#SC_MARK_CIRCLEPLUSCONNECTED = 19
#SC_MARK_LCORNER = 10
#SC_MARK_LCORNERCURVE = 16
#SC_MARK_TCORNER = 11
#SC_MARK_TCORNERCURVE = 17
#SC_MARK_ARROWS = 24
#SC_MARK_VLINE = 9
#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
;-- Indicators Constants.
#INDIC_PLAIN = 0
#INDIC_SQUIGGLE = 1
#INDIC_TT = 2
#INDIC_DIAGONAL = 3
#INDIC_STRIKE = 4
#INDIC_HIDDEN = 5
#INDIC_BOX = 6
; #INDIC_MAX = 7
#INDIC0_MASK = $20
#INDIC1_MASK = $40
#INDIC2_MASK = $80
#INDICS_MASK = $E0
;-- Key Definitions Constants.
#SCK_ADD = 310
#SCK_BACK = 8
#SCK_DELETE = 308
#SCK_DIVIDE = 312
#SCK_DOWN = 300
#SCK_END = 305
#SCK_ESCAPE = 7
#SCK_HOME = 304
#SCK_INSERT = 309
#SCK_LEFT = 302
#SCK_NEXT = 307
#SCK_PRIOR = 306
#SCK_RETURN = 13
#SCK_RIGHT = 303
#SCK_SUBTRACT = 311
#SCK_TAB = 9
#SCK_UP = 301
#SCMOD_ALT = 4
#SCMOD_CTRL = 2
#SCMOD_NORM = 0
#SCMOD_SHIFT = 1
;-- Printing Constants.
#SC_PRINT_NORMAL = 0
#SC_PRINT_INVERTLIGHT = 1
#SC_PRINT_BLACKONWHITE = 2
#SC_PRINT_COLOURONWHITE = 3
#SC_PRINT_COLOURONWHITEDEFAULTBG = 4
;-- Wrap Constants.
#SC_WRAP_NONE = 0
#SC_WRAP_WORD = 1
#SC_WRAP_CHAR = 2
;-- Foldlevel Constants.
#SC_FOLDLEVELNUMBERMASK = $0FFF
#SC_FOLDLEVELBASE = $400
#SC_FOLDLEVELBOXFOOTERFLAG = $8000
#SC_FOLDLEVELBOXHEADERFLAG = $4000
#SC_FOLDLEVELCONTRACTED = $10000
#SC_FOLDLEVELHEADERFLAG = $2000
#SC_FOLDLEVELUNINDENT = $20000
#SC_FOLDLEVELWHITEFLAG = $1000
#SC_FOLDFLAG_BOX = $0001
#SC_FOLDFLAG_LINEBEFORE_EXPANDED = $0002
#SC_FOLDFLAG_LINEBEFORE_CONTRACTED = $0004
#SC_FOLDFLAG_LINEAFTER_EXPANDED = $0008
#SC_FOLDFLAG_LINEAFTER_CONTRACTED = $0010
#SC_FOLDFLAG_LEVELNUMBERS = $0040
;-- Wrap Visual Flags Constant.
#SC_WRAPVISUALFLAG_NONE = $0000
#SC_WRAPVISUALFLAG_END = $0001
#SC_WRAPVISUALFLAG_START = $0002
#SC_WRAPVISUALFLAGLOC_DEFAULT = $0000
#SC_WRAPVISUALFLAGLOC_END_BY_TEXT = $0001
#SC_WRAPVISUALFLAGLOC_START_BY_TEXT = $0002
;-- Cache Constants.
#SC_CACHE_NONE = 0
#SC_CACHE_CARET = 1
#SC_CACHE_PAGE = 2
#SC_CACHE_DOCUMENT = 3
;-- Edge Constants.
#EDGE_NONE = 0
#EDGE_LINE = 1
#EDGE_BACKGROUND = 2
;-- Modified Constants.
#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_MULTISTEPUNDOREDO = $80
#SC_LASTSTEPINUNDOREDO = $100
#SC_MOD_CHANGEMARKER = $200
#SC_MOD_BEFOREINSERT = $400
#SC_MOD_BEFOREDELETE = $800
#SC_MULTILINEUNDOREDO = $1000
; #SC_MODEVENTMASKALL = $1FFF
;-- Others.
#SC_MASK_FOLDERS = $FE000000
#SC_TIME_FOREVER = 10000000
#KEYWORDSET_MAX = 8
#INVALID_POSITION = -1
;}
;- ** STRUCTURES **
;{-
;-- CharacterRange
Structure CharacterRange
cpMin.l;
cpMax.l;
EndStructure
;-- TextRange
;Structure TextRange
; chrg.CharacterRange
; lpstrText.l
;EndStructure
;-- TextToFind
Structure TextToFind
chrg.CharacterRange
lpstrText.l
chrgText.CharacterRange
EndStructure
;-- RangeToFormat
Structure RangeToFormat
hdc.l
hdcTarget.l
rc.RECT
rcPage.RECT
chrg.CharacterRange
EndStructure
;-- NotifyHeader
Structure NotifyHeader
hwndFrom.l
idFrom.l
code.l
EndStructure
;-- SCNotification
; Structure SCNotification
; nmhdr.NotifyHeader
; position.l
; ch.l
; modifiers.l
; modificationType.l
; text.l
; length.l
; linesAdded.l
; message.l
; wParam.l
; lParam.l
; line.l
; foldLevelNow.l
; foldLevelPrev.l
; margin.l
; listType.l
; x.l
; y.l
; EndStructure
;}
;- ** LIBRARY FUNCTIONS **
Global DLL_Scintilla.l = 0
Global DLL_Scintilla_hWnd.l = 0
Global DLL_Scintilla_Handle.l
Global DLL_Scintilla_Function.l
Procedure SciLexerInitDLL()
If DLL_Scintilla = 0
DLL_Scintilla = OpenLibrary(#PB_Any, "SciLexer.dll")
EndIf
ProcedureReturn DLL_Scintilla
EndProcedure
Procedure SciLexerFreeDLL()
If DLL_Scintilla <> 0
CloseLibrary(DLL_Scintilla)
DLL_Scintilla = 0
EndIf
EndProcedure
Procedure SciLexerUseGadget(hWndParent.l, x.l, y.l, width.l, height.l)
If DLL_Scintilla_hWnd = 0
DLL_Scintilla_hWnd = CreateWindowEx_(#WS_EX_CLIENTEDGE, "Scintilla", 0, #WS_CHILD | #WS_VISIBLE, x, y, width, height, hWndParent, 0, GetModuleHandle_(0), 0)
DLL_Scintilla_Function = SendMessage_(DLL_Scintilla_hWnd, #SCI_GETDIRECTPOINTER, 0, 0)
DLL_Scintilla_Handle = GetFunction(DLL_Scintilla, "Scintilla_DirectFunction")
EndIf
ProcedureReturn DLL_Scintilla_hWnd
EndProcedure
Procedure SciLexerFreeGadget()
If DLL_Scintilla_hWnd <> 0
DestroyWindow_(DLL_Scintilla_hWnd)
DLL_Scintilla_hWnd = 0
EndIf
EndProcedure
Macro SciLexer(m, p1 = 0, p2 = 0)
CallFunctionFast(DLL_Scintilla_Handle, DLL_Scintilla_Function, m, p1, p2)
EndMacro
MacroEx.pb
Code: Select all
XIncludeFile "C:\DLL-SciLexer.pbi"
SciLexerInitDLL()
OpenWindow(0, 0, 0, 640, 480, "Scintilla Macro Example", #PB_Window_SystemMenu)
GetClientRect_(WindowID(0), rect.RECT)
SciLexerUseGadget(WindowID(0), 0, 0, rect\right, rect\bottom)
SciLexer(#SCI_STYLESETFONT, #STYLE_DEFAULT, @"Courier New")
SciLexer(#SCI_STYLESETSIZE, #STYLE_DEFAULT, 10)
SciLexer(#SCI_SETMARGINTYPEN, 0, #SC_MARGIN_NUMBER)
SciLexer(#SCI_SETMARGINWIDTHN, 0, 50)
running.l = #True
Repeat
event.l = WaitWindowEvent()
Select event
Case #PB_Event_CloseWindow
running = #False
EndSelect
Until Not running
SciLexerFreeGadget()
SciLexerFreeDLL()