aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--core/events.lua40
-rw-r--r--core/iface.lua10
-rwxr-xr-xscripts/gen_iface.lua60
-rw-r--r--src/textadept.c2
4 files changed, 56 insertions, 56 deletions
diff --git a/core/events.lua b/core/events.lua
index 3cef7687..6857b7e7 100644
--- a/core/events.lua
+++ b/core/events.lua
@@ -363,47 +363,17 @@ function M.emit(event, ...)
end
end
---- Map of Scintilla notifications to their handlers.
-local c = _SCINTILLA.constants
-local scnotifications = {
- [c.SCN_CHARADDED] = {'char_added', 'ch'},
- [c.SCN_SAVEPOINTREACHED] = {'save_point_reached'},
- [c.SCN_SAVEPOINTLEFT] = {'save_point_left'},
- [c.SCN_DOUBLECLICK] = {'double_click', 'position', 'line', 'modifiers'},
- [c.SCN_UPDATEUI] = {'update_ui', 'updated'},
- -- SCN_MODIFIED is undocumented.
- [c.SCN_MODIFIED] = {'modified', 'modification_type', 'position', 'length'},
- [c.SCN_MARGINCLICK] = {'margin_click', 'margin', 'position', 'modifiers'},
- [c.SCN_USERLISTSELECTION] = {
- 'user_list_selection', 'wParam', 'text', 'position'
- },
- [c.SCN_URIDROPPED] = {'uri_dropped', 'text'},
- [c.SCN_DWELLSTART] = {'dwell_start', 'position', 'x', 'y'},
- [c.SCN_DWELLEND] = {'dwell_end', 'position', 'x', 'y'},
- [c.SCN_ZOOM] = {'zoom'},
- [c.SCN_INDICATORCLICK] = {'indicator_click', 'position', 'modifiers'},
- [c.SCN_INDICATORRELEASE] = {'indicator_release', 'position'},
- [c.SCN_CALLTIPCLICK] = {'call_tip_click', 'position'},
- [c.SCN_AUTOCSELECTION] = {'auto_c_selection', 'text', 'position'},
- [c.SCN_AUTOCSELECTIONCHANGE] = {
- 'auto_c_selection_change', 'wParam', 'text', 'position'
- },
- [c.SCN_AUTOCCANCELLED] = {'auto_c_cancelled'},
- [c.SCN_AUTOCCHARDELETED] = {'auto_c_char_deleted'},
- [c.SCN_AUTOCCOMPLETED] = {'auto_c_completed', 'text', 'position'},
-}
-
-- Handles Scintilla notifications.
-M.connect('SCN', function(n)
- local f = scnotifications[n.code]
+M.connect('SCN', function(notification)
+ local f = _SCINTILLA.events[notification.code]
if not f then return end
local args = {}
- for i = 2, #f do args[i - 1] = n[f[i]] end
+ for i = 2, #f do args[i - 1] = notification[f[i]] end
return M.emit(f[1], table.unpack(args))
end)
-- Set event constants.
-for _, n in pairs(scnotifications) do M[n[1]:upper()] = n[1] end
+for _, v in pairs(_SCINTILLA.events) do M[v[1]:upper()] = v[1] end
local textadept_events = {
'appleevent_odoc', 'buffer_after_switch', 'buffer_before_switch',
'buffer_deleted', 'buffer_new', 'csi', 'error', 'find', 'focus',
@@ -411,6 +381,6 @@ local textadept_events = {
'replace_all', 'reset_after', 'reset_before', 'resume', 'suspend',
'tab_clicked', 'view_after_switch', 'view_before_switch', 'view_new'
}
-for _, e in pairs(textadept_events) do M[e:upper()] = e end
+for _, v in pairs(textadept_events) do M[v:upper()] = v end
return M
diff --git a/core/iface.lua b/core/iface.lua
index e01d5b3c..d6d9066e 100644
--- a/core/iface.lua
+++ b/core/iface.lua
@@ -14,7 +14,7 @@ module('_SCINTILLA')]]
-- @class table
-- @name constants
-- @see _G.buffer
-M.constants = {ACCESSIBILITY_DISABLED=0,ACCESSIBILITY_ENABLED=1,ALPHA_NOALPHA=256,ALPHA_OPAQUE=255,ALPHA_TRANSPARENT=0,ANNOTATION_BOXED=2,ANNOTATION_HIDDEN=0,ANNOTATION_INDENTED=3,ANNOTATION_STANDARD=1,AUTOMATICFOLD_CHANGE=0x0004,AUTOMATICFOLD_CLICK=0x0002,AUTOMATICFOLD_SHOW=0x0001,CARETSTICKY_OFF=0,CARETSTICKY_ON=1,CARETSTICKY_WHITESPACE=2,CARETSTYLE_BLOCK=2,CARETSTYLE_BLOCK_AFTER=0x100,CARETSTYLE_INS_MASK=0xF,CARETSTYLE_INVISIBLE=0,CARETSTYLE_LINE=1,CARETSTYLE_OVERSTRIKE_BAR=0,CARETSTYLE_OVERSTRIKE_BLOCK=0x10,CARET_EVEN=0x08,CARET_JUMPS=0x10,CARET_SLOP=0x01,CARET_STRICT=0x04,CASEINSENSITIVEBEHAVIOUR_IGNORECASE=1,CASEINSENSITIVEBEHAVIOUR_RESPECTCASE=0,CASE_CAMEL=3,CASE_LOWER=2,CASE_MIXED=0,CASE_UPPER=1,CHARACTERSOURCE_DIRECT_INPUT=0,CHARACTERSOURCE_IME_RESULT=2,CHARACTERSOURCE_TENTATIVE_INPUT=1,CP_UTF8=65001,CURSORARROW=2,CURSORNORMAL=-1,CURSORREVERSEARROW=7,CURSORWAIT=4,EDGE_BACKGROUND=2,EDGE_LINE=1,EDGE_MULTILINE=3,EDGE_NONE=0,EOL_CR=1,EOL_CRLF=0,EOL_LF=2,FIND_CXX11REGEX=0x00800000,FIND_MATCHCASE=0x4,FIND_NONE=0x0,FIND_REGEXP=10485760,FIND_WHOLEWORD=0x2,FIND_WORDSTART=0x00100000,FOLDACTION_CONTRACT=0,FOLDACTION_EXPAND=1,FOLDACTION_TOGGLE=2,FOLDDISPLAYTEXT_BOXED=2,FOLDDISPLAYTEXT_HIDDEN=0,FOLDDISPLAYTEXT_STANDARD=1,FOLDFLAG_LEVELNUMBERS=0x0040,FOLDFLAG_LINEAFTER_CONTRACTED=0x0010,FOLDFLAG_LINEAFTER_EXPANDED=0x0008,FOLDFLAG_LINEBEFORE_CONTRACTED=0x0004,FOLDFLAG_LINEBEFORE_EXPANDED=0x0002,FOLDFLAG_LINESTATE=0x0080,FOLDLEVELBASE=0x400,FOLDLEVELHEADERFLAG=0x2000,FOLDLEVELNUMBERMASK=0x0FFF,FOLDLEVELWHITEFLAG=0x1000,IDLESTYLING_AFTERVISIBLE=2,IDLESTYLING_ALL=3,IDLESTYLING_NONE=0,IDLESTYLING_TOVISIBLE=1,IME_INLINE=1,IME_WINDOWED=0,INDICATOR_CONTAINER=8,INDICATOR_IME=32,INDICATOR_IME_MAX=35,INDICATOR_MAX=35,INDIC_BOX=6,INDIC_COMPOSITIONTHICK=14,INDIC_COMPOSITIONTHIN=15,INDIC_CONTAINER=8,INDIC_DASH=9,INDIC_DIAGONAL=3,INDIC_DOTBOX=12,INDIC_DOTS=10,INDIC_FULLBOX=16,INDIC_GRADIENT=20,INDIC_GRADIENTCENTRE=21,INDIC_HIDDEN=5,INDIC_IME=32,INDIC_IME_MAX=35,INDIC_MAX=35,INDIC_PLAIN=0,INDIC_POINT=18,INDIC_POINTCHARACTER=19,INDIC_ROUNDBOX=7,INDIC_SQUIGGLE=1,INDIC_SQUIGGLELOW=11,INDIC_SQUIGGLEPIXMAP=13,INDIC_STRAIGHTBOX=8,INDIC_STRIKE=4,INDIC_TEXTFORE=17,INDIC_TT=2,IV_LOOKBOTH=3,IV_LOOKFORWARD=2,IV_NONE=0,IV_REAL=1,LASTSTEPINUNDOREDO=0x100,MARGINOPTION_NONE=0,MARGINOPTION_SUBLINESELECT=1,MARGIN_BACK=2,MARGIN_COLOUR=6,MARGIN_FORE=3,MARGIN_NUMBER=1,MARGIN_RTEXT=5,MARGIN_SYMBOL=0,MARGIN_TEXT=4,MARKER_MAX=31,MARKNUM_FOLDER=30,MARKNUM_FOLDEREND=25,MARKNUM_FOLDERMIDTAIL=27,MARKNUM_FOLDEROPEN=31,MARKNUM_FOLDEROPENMID=26,MARKNUM_FOLDERSUB=29,MARKNUM_FOLDERTAIL=28,MARK_ARROW=2,MARK_ARROWDOWN=6,MARK_ARROWS=24,MARK_AVAILABLE=28,MARK_BACKGROUND=22,MARK_BOOKMARK=31,MARK_BOXMINUS=14,MARK_BOXMINUSCONNECTED=15,MARK_BOXPLUS=12,MARK_BOXPLUSCONNECTED=13,MARK_CHARACTER=10000,MARK_CIRCLE=0,MARK_CIRCLEMINUS=20,MARK_CIRCLEMINUSCONNECTED=21,MARK_CIRCLEPLUS=18,MARK_CIRCLEPLUSCONNECTED=19,MARK_DOTDOTDOT=23,MARK_EMPTY=5,MARK_FULLRECT=26,MARK_LCORNER=10,MARK_LCORNERCURVE=16,MARK_LEFTRECT=27,MARK_MINUS=7,MARK_PIXMAP=25,MARK_PLUS=8,MARK_RGBAIMAGE=30,MARK_ROUNDRECT=1,MARK_SHORTARROW=4,MARK_SMALLRECT=3,MARK_TCORNER=11,MARK_TCORNERCURVE=17,MARK_UNDERLINE=29,MARK_VERTICALBOOKMARK=32,MARK_VLINE=9,MASK_FOLDERS=-33554432,MAX_MARGIN=4,MODEVENTMASKALL=0x3FFFFF,MOD_ALT=4,MOD_BEFOREDELETE=0x800,MOD_BEFOREINSERT=0x400,MOD_CHANGEANNOTATION=0x20000,MOD_CHANGEFOLD=0x8,MOD_CHANGEINDICATOR=0x4000,MOD_CHANGELINESTATE=0x8000,MOD_CHANGEMARGIN=0x10000,MOD_CHANGEMARKER=0x200,MOD_CHANGESTYLE=0x4,MOD_CHANGETABSTOPS=0x200000,MOD_CONTAINER=0x40000,MOD_CTRL=2,MOD_DELETETEXT=0x2,MOD_INSERTCHECK=0x100000,MOD_INSERTTEXT=0x1,MOD_LEXERSTATE=0x80000,MOD_META=16,MOD_NONE=0x0,MOD_NORM=0,MOD_SHIFT=1,MOD_SUPER=8,MOUSE_DRAG=2,MOUSE_PRESS=1,MOUSE_RELEASE=3,MULTIAUTOC_EACH=1,MULTIAUTOC_ONCE=0,MULTILINEUNDOREDO=0x1000,MULTIPASTE_EACH=1,MULTIPASTE_ONCE=0,MULTISTEPUNDOREDO=0x80,ORDER_CUSTOM=2,ORDER_PERFORMSORT=1,ORDER_PRESORTED=0,PERFORMED_REDO=0x40,PERFORMED_UNDO=0x20,PERFORMED_USER=0x10,SCN_AUTOCCANCELLED=2025,SCN_AUTOCCHARDELETED=2026,SCN_AUTOCCOMPLETED=2030,SCN_AUTOCSELECTION=2022,SCN_AUTOCSELECTIONCHANGE=2032,SCN_CALLTIPCLICK=2021,SCN_CHARADDED=2001,SCN_DOUBLECLICK=2006,SCN_DWELLEND=2017,SCN_DWELLSTART=2016,SCN_FOCUSIN=2028,SCN_FOCUSOUT=2029,SCN_HOTSPOTCLICK=2019,SCN_HOTSPOTDOUBLECLICK=2020,SCN_HOTSPOTRELEASECLICK=2027,SCN_INDICATORCLICK=2023,SCN_INDICATORRELEASE=2024,SCN_KEY=2005,SCN_MACRORECORD=2009,SCN_MARGINCLICK=2010,SCN_MARGINRIGHTCLICK=2031,SCN_MODIFIED=2008,SCN_MODIFYATTEMPTRO=2004,SCN_NEEDSHOWN=2011,SCN_PAINTED=2013,SCN_SAVEPOINTLEFT=2003,SCN_SAVEPOINTREACHED=2002,SCN_STYLENEEDED=2000,SCN_UPDATEUI=2007,SCN_URIDROPPED=2015,SCN_USERLISTSELECTION=2014,SCN_ZOOM=2018,SEL_LINES=2,SEL_RECTANGLE=1,SEL_STREAM=0,SEL_THIN=3,STARTACTION=0x2000,STYLE_BRACEBAD=35,STYLE_BRACELIGHT=34,STYLE_CALLTIP=38,STYLE_CONTROLCHAR=36,STYLE_DEFAULT=32,STYLE_FOLDDISPLAYTEXT=39,STYLE_INDENTGUIDE=37,STYLE_LASTPREDEFINED=39,STYLE_LINENUMBER=33,STYLE_MAX=255,TD_LONGARROW=0,TD_STRIKEOUT=1,TIME_FOREVER=10000000,UNDO_NONE=0,UPDATE_CONTENT=0x1,UPDATE_H_SCROLL=0x8,UPDATE_SELECTION=0x2,UPDATE_V_SCROLL=0x4,VISIBLE_SLOP=0x01,VISIBLE_STRICT=0x04,VS_NONE=0,VS_NOWRAPLINESTART=4,VS_RECTANGULARSELECTION=1,VS_USERACCESSIBLE=2,WRAPINDENT_DEEPINDENT=3,WRAPINDENT_FIXED=0,WRAPINDENT_INDENT=2,WRAPINDENT_SAME=1,WRAPVISUALFLAGLOC_DEFAULT=0x0000,WRAPVISUALFLAGLOC_END_BY_TEXT=0x0001,WRAPVISUALFLAGLOC_START_BY_TEXT=0x0002,WRAPVISUALFLAG_END=0x0001,WRAPVISUALFLAG_MARGIN=0x0004,WRAPVISUALFLAG_NONE=0x0000,WRAPVISUALFLAG_START=0x0002,WRAP_CHAR=2,WRAP_NONE=0,WRAP_WHITESPACE=3,WRAP_WORD=1,WS_INVISIBLE=0,WS_VISIBLEAFTERINDENT=2,WS_VISIBLEALWAYS=1,WS_VISIBLEONLYININDENT=3}
+M.constants = {ACCESSIBILITY_DISABLED=0,ACCESSIBILITY_ENABLED=1,ALPHA_NOALPHA=256,ALPHA_OPAQUE=255,ALPHA_TRANSPARENT=0,ANNOTATION_BOXED=2,ANNOTATION_HIDDEN=0,ANNOTATION_INDENTED=3,ANNOTATION_STANDARD=1,AUTOMATICFOLD_CHANGE=0x0004,AUTOMATICFOLD_CLICK=0x0002,AUTOMATICFOLD_SHOW=0x0001,CARETSTICKY_OFF=0,CARETSTICKY_ON=1,CARETSTICKY_WHITESPACE=2,CARETSTYLE_BLOCK=2,CARETSTYLE_BLOCK_AFTER=0x100,CARETSTYLE_INS_MASK=0xF,CARETSTYLE_INVISIBLE=0,CARETSTYLE_LINE=1,CARETSTYLE_OVERSTRIKE_BAR=0,CARETSTYLE_OVERSTRIKE_BLOCK=0x10,CARET_EVEN=0x08,CARET_JUMPS=0x10,CARET_SLOP=0x01,CARET_STRICT=0x04,CASEINSENSITIVEBEHAVIOUR_IGNORECASE=1,CASEINSENSITIVEBEHAVIOUR_RESPECTCASE=0,CASE_CAMEL=3,CASE_LOWER=2,CASE_MIXED=0,CASE_UPPER=1,CHARACTERSOURCE_DIRECT_INPUT=0,CHARACTERSOURCE_IME_RESULT=2,CHARACTERSOURCE_TENTATIVE_INPUT=1,CP_UTF8=65001,CURSORARROW=2,CURSORNORMAL=-1,CURSORREVERSEARROW=7,CURSORWAIT=4,EDGE_BACKGROUND=2,EDGE_LINE=1,EDGE_MULTILINE=3,EDGE_NONE=0,EOL_CR=1,EOL_CRLF=0,EOL_LF=2,FIND_CXX11REGEX=0x00800000,FIND_MATCHCASE=0x4,FIND_NONE=0x0,FIND_REGEXP=10485760,FIND_WHOLEWORD=0x2,FIND_WORDSTART=0x00100000,FOLDACTION_CONTRACT=0,FOLDACTION_EXPAND=1,FOLDACTION_TOGGLE=2,FOLDDISPLAYTEXT_BOXED=2,FOLDDISPLAYTEXT_HIDDEN=0,FOLDDISPLAYTEXT_STANDARD=1,FOLDFLAG_LEVELNUMBERS=0x0040,FOLDFLAG_LINEAFTER_CONTRACTED=0x0010,FOLDFLAG_LINEAFTER_EXPANDED=0x0008,FOLDFLAG_LINEBEFORE_CONTRACTED=0x0004,FOLDFLAG_LINEBEFORE_EXPANDED=0x0002,FOLDFLAG_LINESTATE=0x0080,FOLDLEVELBASE=0x400,FOLDLEVELHEADERFLAG=0x2000,FOLDLEVELNUMBERMASK=0x0FFF,FOLDLEVELWHITEFLAG=0x1000,IDLESTYLING_AFTERVISIBLE=2,IDLESTYLING_ALL=3,IDLESTYLING_NONE=0,IDLESTYLING_TOVISIBLE=1,IME_INLINE=1,IME_WINDOWED=0,INDICATOR_CONTAINER=8,INDICATOR_IME=32,INDICATOR_IME_MAX=35,INDICATOR_MAX=35,INDIC_BOX=6,INDIC_COMPOSITIONTHICK=14,INDIC_COMPOSITIONTHIN=15,INDIC_CONTAINER=8,INDIC_DASH=9,INDIC_DIAGONAL=3,INDIC_DOTBOX=12,INDIC_DOTS=10,INDIC_FULLBOX=16,INDIC_GRADIENT=20,INDIC_GRADIENTCENTRE=21,INDIC_HIDDEN=5,INDIC_IME=32,INDIC_IME_MAX=35,INDIC_MAX=35,INDIC_PLAIN=0,INDIC_POINT=18,INDIC_POINTCHARACTER=19,INDIC_ROUNDBOX=7,INDIC_SQUIGGLE=1,INDIC_SQUIGGLELOW=11,INDIC_SQUIGGLEPIXMAP=13,INDIC_STRAIGHTBOX=8,INDIC_STRIKE=4,INDIC_TEXTFORE=17,INDIC_TT=2,IV_LOOKBOTH=3,IV_LOOKFORWARD=2,IV_NONE=0,IV_REAL=1,LASTSTEPINUNDOREDO=0x100,MARGINOPTION_NONE=0,MARGINOPTION_SUBLINESELECT=1,MARGIN_BACK=2,MARGIN_COLOUR=6,MARGIN_FORE=3,MARGIN_NUMBER=1,MARGIN_RTEXT=5,MARGIN_SYMBOL=0,MARGIN_TEXT=4,MARKER_MAX=31,MARKNUM_FOLDER=30,MARKNUM_FOLDEREND=25,MARKNUM_FOLDERMIDTAIL=27,MARKNUM_FOLDEROPEN=31,MARKNUM_FOLDEROPENMID=26,MARKNUM_FOLDERSUB=29,MARKNUM_FOLDERTAIL=28,MARK_ARROW=2,MARK_ARROWDOWN=6,MARK_ARROWS=24,MARK_AVAILABLE=28,MARK_BACKGROUND=22,MARK_BOOKMARK=31,MARK_BOXMINUS=14,MARK_BOXMINUSCONNECTED=15,MARK_BOXPLUS=12,MARK_BOXPLUSCONNECTED=13,MARK_CHARACTER=10000,MARK_CIRCLE=0,MARK_CIRCLEMINUS=20,MARK_CIRCLEMINUSCONNECTED=21,MARK_CIRCLEPLUS=18,MARK_CIRCLEPLUSCONNECTED=19,MARK_DOTDOTDOT=23,MARK_EMPTY=5,MARK_FULLRECT=26,MARK_LCORNER=10,MARK_LCORNERCURVE=16,MARK_LEFTRECT=27,MARK_MINUS=7,MARK_PIXMAP=25,MARK_PLUS=8,MARK_RGBAIMAGE=30,MARK_ROUNDRECT=1,MARK_SHORTARROW=4,MARK_SMALLRECT=3,MARK_TCORNER=11,MARK_TCORNERCURVE=17,MARK_UNDERLINE=29,MARK_VERTICALBOOKMARK=32,MARK_VLINE=9,MASK_FOLDERS=-33554432,MAX_MARGIN=4,MODEVENTMASKALL=0x3FFFFF,MOD_ALT=4,MOD_BEFOREDELETE=0x800,MOD_BEFOREINSERT=0x400,MOD_CHANGEANNOTATION=0x20000,MOD_CHANGEFOLD=0x8,MOD_CHANGEINDICATOR=0x4000,MOD_CHANGELINESTATE=0x8000,MOD_CHANGEMARGIN=0x10000,MOD_CHANGEMARKER=0x200,MOD_CHANGESTYLE=0x4,MOD_CHANGETABSTOPS=0x200000,MOD_CONTAINER=0x40000,MOD_CTRL=2,MOD_DELETETEXT=0x2,MOD_INSERTCHECK=0x100000,MOD_INSERTTEXT=0x1,MOD_LEXERSTATE=0x80000,MOD_META=16,MOD_NONE=0x0,MOD_NORM=0,MOD_SHIFT=1,MOD_SUPER=8,MOUSE_DRAG=2,MOUSE_PRESS=1,MOUSE_RELEASE=3,MULTIAUTOC_EACH=1,MULTIAUTOC_ONCE=0,MULTILINEUNDOREDO=0x1000,MULTIPASTE_EACH=1,MULTIPASTE_ONCE=0,MULTISTEPUNDOREDO=0x80,ORDER_CUSTOM=2,ORDER_PERFORMSORT=1,ORDER_PRESORTED=0,PERFORMED_REDO=0x40,PERFORMED_UNDO=0x20,PERFORMED_USER=0x10,SEL_LINES=2,SEL_RECTANGLE=1,SEL_STREAM=0,SEL_THIN=3,STARTACTION=0x2000,STYLE_BRACEBAD=35,STYLE_BRACELIGHT=34,STYLE_CALLTIP=38,STYLE_CONTROLCHAR=36,STYLE_DEFAULT=32,STYLE_FOLDDISPLAYTEXT=39,STYLE_INDENTGUIDE=37,STYLE_LASTPREDEFINED=39,STYLE_LINENUMBER=33,STYLE_MAX=255,TD_LONGARROW=0,TD_STRIKEOUT=1,TIME_FOREVER=10000000,UNDO_NONE=0,UPDATE_CONTENT=0x1,UPDATE_H_SCROLL=0x8,UPDATE_SELECTION=0x2,UPDATE_V_SCROLL=0x4,VISIBLE_SLOP=0x01,VISIBLE_STRICT=0x04,VS_NONE=0,VS_NOWRAPLINESTART=4,VS_RECTANGULARSELECTION=1,VS_USERACCESSIBLE=2,WRAPINDENT_DEEPINDENT=3,WRAPINDENT_FIXED=0,WRAPINDENT_INDENT=2,WRAPINDENT_SAME=1,WRAPVISUALFLAGLOC_DEFAULT=0x0000,WRAPVISUALFLAGLOC_END_BY_TEXT=0x0001,WRAPVISUALFLAGLOC_START_BY_TEXT=0x0002,WRAPVISUALFLAG_END=0x0001,WRAPVISUALFLAG_MARGIN=0x0004,WRAPVISUALFLAG_NONE=0x0000,WRAPVISUALFLAG_START=0x0002,WRAP_CHAR=2,WRAP_NONE=0,WRAP_WHITESPACE=3,WRAP_WORD=1,WS_INVISIBLE=0,WS_VISIBLEAFTERINDENT=2,WS_VISIBLEALWAYS=1,WS_VISIBLEONLYININDENT=3}
---
-- Map of Scintilla function names to tables containing their IDs, return types,
@@ -41,7 +41,13 @@ M.functions = {add_ref_document={2376,0,0,1},add_selection={2573,0,1,1},add_styl
-- @see functions
-- @class table
-- @name properties
-M.properties = {accessibility={2703,2702,1,0},additional_caret_fore={2605,2604,3,0},additional_carets_blink={2568,2567,4,0},additional_carets_visible={2609,2608,4,0},additional_sel_alpha={2603,2602,1,0},additional_sel_back={0,2601,3,0},additional_sel_fore={0,2600,3,0},additional_selection_typing={2566,2565,4,0},all_lines_visible={2236,0,4,0},anchor={2009,2026,1,0},annotation_lines={2546,0,1,1},annotation_style={2543,2542,1,1},annotation_style_offset={2551,2550,1,0},annotation_styles={2545,2544,7,1},annotation_text={2541,2540,7,1},annotation_visible={2549,2548,1,0},auto_c_auto_hide={2119,2118,4,0},auto_c_cancel_at_start={2111,2110,4,0},auto_c_case_insensitive_behaviour={2635,2634,1,0},auto_c_choose_single={2114,2113,4,0},auto_c_current={2445,0,1,0},auto_c_current_text={2610,0,7,0},auto_c_drop_rest_of_word={2271,2270,4,0},auto_c_fill_ups={0,2112,6,0},auto_c_ignore_case={2116,2115,4,0},auto_c_max_height={2211,2210,1,0},auto_c_max_width={2209,2208,1,0},auto_c_multi={2637,2636,1,0},auto_c_order={2661,2660,1,0},auto_c_separator={2107,2106,1,0},auto_c_type_separator={2285,2286,1,0},automatic_fold={2664,2663,1,0},back_space_un_indents={2263,2262,4,0},buffered_draw={2034,2035,4,0},call_tip_back={0,2205,3,0},call_tip_fore={0,2206,3,0},call_tip_fore_hlt={0,2207,3,0},call_tip_pos_start={0,2214,1,0},call_tip_position={0,2213,4,0},call_tip_use_style={0,2212,1,0},caret_fore={2138,2069,3,0},caret_line_back={2097,2098,3,0},caret_line_back_alpha={2471,2470,1,0},caret_line_frame={2704,2705,1,0},caret_line_visible={2095,2096,4,0},caret_line_visible_always={2654,2655,4,0},caret_period={2075,2076,1,0},caret_sticky={2457,2458,1,0},caret_style={2513,2512,1,0},caret_width={2189,2188,1,0},char_at={2007,0,1,1},character_category_optimization={2721,2720,1,0},character_pointer={2520,0,1,0},code_page={2137,2037,1,0},column={2129,0,1,1},command_events={2718,2717,4,0},control_char_symbol={2389,2388,1,0},current_pos={2008,2141,1,0},cursor={2387,2386,1,0},direct_function={2184,0,1,0},direct_pointer={2185,0,1,0},distance_to_secondary_styles={4025,0,1,0},doc_pointer={2357,2358,1,0},document_options={2379,0,1,0},edge_colour={2364,2365,3,0},edge_column={2360,2361,1,0},edge_mode={2362,2363,1,0},end_at_last_line={2278,2277,4,0},end_styled={2028,0,1,0},eol_mode={2030,2031,1,0},extra_ascent={2526,2525,1,0},extra_descent={2528,2527,1,0},first_visible_line={2152,2613,1,0},focus={2381,2380,4,0},fold_display_text_style={2707,2701,1,0},fold_expanded={2230,2229,4,1},fold_flags={0,2233,1,0},fold_level={2223,2222,1,1},fold_parent={2225,0,1,1},font_quality={2612,2611,1,0},gap_position={2644,0,1,0},h_scroll_bar={2131,2130,4,0},highlight_guide={2135,2134,1,0},hotspot_active_underline={2496,2412,4,0},hotspot_single_line={2497,2421,4,0},identifier={2623,2622,1,0},identifiers={0,4024,6,1},idle_styling={2693,2692,1,0},ime_interaction={2678,2679,1,0},indent={2123,2122,1,0},indentation_guides={2133,2132,1,0},indic_alpha={2524,2523,1,1},indic_flags={2685,2684,1,1},indic_fore={2083,2082,3,1},indic_hover_fore={2683,2682,3,1},indic_hover_style={2681,2680,1,1},indic_outline_alpha={2559,2558,1,1},indic_style={2081,2080,1,1},indic_under={2511,2510,4,1},indicator_current={2501,2500,1,0},indicator_value={2503,2502,1,0},key_words={0,4005,6,1},layout_cache={2273,2272,1,0},length={2006,0,1,0},lexer={4002,4001,1,0},lexer_language={4012,4006,7,0},line_count={2154,0,1,0},line_end_position={2136,0,1,1},line_end_types_active={2658,0,1,0},line_end_types_allowed={2657,2656,1,0},line_end_types_supported={4018,0,1,0},line_indent_position={2128,0,1,1},line_indentation={2127,2126,1,1},line_state={2093,2092,1,1},line_visible={2228,0,4,1},lines_on_screen={2370,0,1,0},main_selection={2575,2574,1,0},margin_back_n={2251,2250,3,1},margin_cursor_n={2249,2248,1,1},margin_left={2156,2155,1,0},margin_mask_n={2245,2244,1,1},margin_options={2557,2539,1,0},margin_right={2158,2157,1,0},margin_sensitive_n={2247,2246,4,1},margin_style={2533,2532,1,1},margin_style_offset={2538,2537,1,0},margin_styles={2535,2534,7,1},margin_text={2531,2530,7,1},margin_type_n={2241,2240,1,1},margin_width_n={2243,2242,1,1},margins={2253,2252,1,0},marker_alpha={0,2476,1,1},marker_back={0,2042,3,1},marker_back_selected={0,2292,3,1},marker_fore={0,2041,3,1},max_line_state={2094,0,1,0},mod_event_mask={2378,2359,1,0},modify={2159,0,4,0},mouse_down_captures={2385,2384,4,0},mouse_dwell_time={2265,2264,1,0},mouse_selection_rectangular_switch={2669,2668,4,0},mouse_wheel_captures={2697,2696,4,0},move_extends_selection={2706,0,4,0},multi_paste={2615,2614,1,0},multiple_selection={2564,2563,4,0},named_styles={4029,0,1,0},overtype={2187,2186,4,0},paste_convert_endings={2468,2467,4,0},phases_draw={2673,2674,1,0},position_cache={2515,2514,1,0},primary_style_from_style={4028,0,1,1},print_colour_mode={2149,2148,1,0},print_magnification={2147,2146,1,0},print_wrap_mode={2407,2406,1,0},property={4008,4004,7,6},property_expanded={4009,0,7,6},property_int={4010,0,1,6},punctuation_chars={2649,2648,7,0},read_only={2140,2171,4,0},rectangular_selection_anchor={2591,2590,1,0},rectangular_selection_anchor_virtual_space={2595,2594,1,0},rectangular_selection_caret={2589,2588,1,0},rectangular_selection_caret_virtual_space={2593,2592,1,0},rectangular_selection_modifier={2599,2598,1,0},representation={2666,2665,7,6},rgba_image_height={0,2625,1,0},rgba_image_scale={0,2651,1,0},rgba_image_width={0,2624,1,0},scroll_width={2275,2274,1,0},scroll_width_tracking={2517,2516,4,0},search_flags={2199,2198,1,0},sel_alpha={2477,2478,1,0},sel_eol_filled={2479,2480,4,0},selection_empty={2650,0,4,0},selection_end={2145,2144,1,0},selection_is_rectangle={2372,0,4,0},selection_mode={2423,2422,1,0},selection_n_anchor={2579,2578,1,1},selection_n_anchor_virtual_space={2583,2582,1,1},selection_n_caret={2577,2576,1,1},selection_n_caret_virtual_space={2581,2580,1,1},selection_n_end={2587,2586,1,1},selection_n_start={2585,2584,1,1},selection_start={2143,2142,1,0},selections={2570,0,1,0},status={2383,2382,1,0},style_at={2010,0,1,1},style_back={2482,2052,3,1},style_bold={2483,2053,4,1},style_case={2489,2060,1,1},style_changeable={2492,2099,4,1},style_character_set={2490,2066,1,1},style_eol_filled={2487,2057,4,1},style_font={2486,2056,7,1},style_fore={2481,2051,3,1},style_from_sub_style={4027,0,1,1},style_hot_spot={2493,2409,4,1},style_italic={2484,2054,4,1},style_size={2485,2055,1,1},style_size_fractional={2062,2061,1,1},style_underline={2488,2059,4,1},style_visible={2491,2074,4,1},style_weight={2064,2063,1,1},sub_style_bases={4026,0,7,0},sub_styles_length={4022,0,1,1},sub_styles_start={4021,0,1,1},tab_draw_mode={2698,2699,1,0},tab_indents={2261,2260,4,0},tab_width={2121,2036,1,0},tag={2616,0,7,1},target_end={2193,2192,1,0},target_start={2191,2190,1,0},target_text={2687,0,7,0},technology={2631,2630,1,0},text_length={2183,0,1,0},two_phase_draw={2283,2284,4,0},undo_collection={2019,2012,4,0},use_tabs={2125,2124,4,0},v_scroll_bar={2281,2280,4,0},view_eol={2355,2356,4,0},view_ws={2020,2021,1,0},virtual_space_options={2597,2596,1,0},whitespace_chars={2647,2443,7,0},whitespace_size={2087,2086,1,0},word_chars={2646,2077,7,0},wrap_indent_mode={2473,2472,1,0},wrap_mode={2269,2268,1,0},wrap_start_indent={2465,2464,1,0},wrap_visual_flags={2461,2460,1,0},wrap_visual_flags_location={2463,2462,1,0},x_offset={2398,2397,1,0},zoom={2374,2373,1,0},}
+M.properties = {accessibility={2703,2702,1,0},additional_caret_fore={2605,2604,3,0},additional_carets_blink={2568,2567,4,0},additional_carets_visible={2609,2608,4,0},additional_sel_alpha={2603,2602,1,0},additional_sel_back={0,2601,3,0},additional_sel_fore={0,2600,3,0},additional_selection_typing={2566,2565,4,0},all_lines_visible={2236,0,4,0},anchor={2009,2026,1,0},annotation_lines={2546,0,1,1},annotation_style={2543,2542,1,1},annotation_style_offset={2551,2550,1,0},annotation_styles={2545,2544,7,1},annotation_text={2541,2540,7,1},annotation_visible={2549,2548,1,0},auto_c_auto_hide={2119,2118,4,0},auto_c_cancel_at_start={2111,2110,4,0},auto_c_case_insensitive_behaviour={2635,2634,1,0},auto_c_choose_single={2114,2113,4,0},auto_c_current={2445,0,1,0},auto_c_current_text={2610,0,7,0},auto_c_drop_rest_of_word={2271,2270,4,0},auto_c_fill_ups={0,2112,6,0},auto_c_ignore_case={2116,2115,4,0},auto_c_max_height={2211,2210,1,0},auto_c_max_width={2209,2208,1,0},auto_c_multi={2637,2636,1,0},auto_c_order={2661,2660,1,0},auto_c_separator={2107,2106,1,0},auto_c_type_separator={2285,2286,1,0},automatic_fold={2664,2663,1,0},back_space_un_indents={2263,2262,4,0},buffered_draw={2034,2035,4,0},call_tip_back={0,2205,3,0},call_tip_fore={0,2206,3,0},call_tip_fore_hlt={0,2207,3,0},call_tip_pos_start={0,2214,1,0},call_tip_position={0,2213,4,0},call_tip_use_style={0,2212,1,0},caret_fore={2138,2069,3,0},caret_line_back={2097,2098,3,0},caret_line_back_alpha={2471,2470,1,0},caret_line_frame={2704,2705,1,0},caret_line_visible={2095,2096,4,0},caret_line_visible_always={2654,2655,4,0},caret_period={2075,2076,1,0},caret_sticky={2457,2458,1,0},caret_style={2513,2512,1,0},caret_width={2189,2188,1,0},char_at={2007,0,1,1},character_category_optimization={2721,2720,1,0},character_pointer={2520,0,1,0},code_page={2137,2037,1,0},column={2129,0,1,1},command_events={2718,2717,4,0},control_char_symbol={2389,2388,1,0},current_pos={2008,2141,1,0},cursor={2387,2386,1,0},direct_function={2184,0,1,0},direct_pointer={2185,0,1,0},distance_to_secondary_styles={4025,0,1,0},doc_pointer={2357,2358,1,0},document_options={2379,0,1,0},edge_colour={2364,2365,3,0},edge_column={2360,2361,1,0},edge_mode={2362,2363,1,0},end_at_last_line={2278,2277,4,0},end_styled={2028,0,1,0},eol_mode={2030,2031,1,0},extra_ascent={2526,2525,1,0},extra_descent={2528,2527,1,0},first_visible_line={2152,2613,1,0},focus={2381,2380,4,0},fold_display_text_style={2707,2701,1,0},fold_expanded={2230,2229,4,1},fold_flags={0,2233,1,0},fold_level={2223,2222,1,1},fold_parent={2225,0,1,1},font_quality={2612,2611,1,0},gap_position={2644,0,1,0},h_scroll_bar={2131,2130,4,0},highlight_guide={2135,2134,1,0},hotspot_active_underline={2496,2412,4,0},hotspot_single_line={2497,2421,4,0},identifier={2623,2622,1,0},identifiers={0,4024,6,1},idle_styling={2693,2692,1,0},ime_interaction={2678,2679,1,0},indent={2123,2122,1,0},indentation_guides={2133,2132,1,0},indic_alpha={2524,2523,1,1},indic_flags={2685,2684,1,1},indic_fore={2083,2082,3,1},indic_hover_fore={2683,2682,3,1},indic_hover_style={2681,2680,1,1},indic_outline_alpha={2559,2558,1,1},indic_style={2081,2080,1,1},indic_under={2511,2510,4,1},indicator_current={2501,2500,1,0},indicator_value={2503,2502,1,0},key_words={0,4005,6,1},layout_cache={2273,2272,1,0},length={2006,0,1,0},lexer={4002,4001,1,0},lexer_language={4012,4006,7,0},line_count={2154,0,1,0},line_end_position={2136,0,1,1},line_end_types_active={2658,0,1,0},line_end_types_allowed={2657,2656,1,0},line_end_types_supported={4018,0,1,0},line_indent_position={2128,0,1,1},line_indentation={2127,2126,1,1},line_state={2093,2092,1,1},line_visible={2228,0,4,1},lines_on_screen={2370,0,1,0},main_selection={2575,2574,1,0},margin_back_n={2251,2250,3,1},margin_cursor_n={2249,2248,1,1},margin_left={2156,2155,1,0},margin_mask_n={2245,2244,1,1},margin_options={2557,2539,1,0},margin_right={2158,2157,1,0},margin_sensitive_n={2247,2246,4,1},margin_style={2533,2532,1,1},margin_style_offset={2538,2537,1,0},margin_styles={2535,2534,7,1},margin_text={2531,2530,7,1},margin_type_n={2241,2240,1,1},margin_width_n={2243,2242,1,1},margins={2253,2252,1,0},marker_alpha={0,2476,1,1},marker_back={0,2042,3,1},marker_back_selected={0,2292,3,1},marker_fore={0,2041,3,1},max_line_state={2094,0,1,0},mod_event_mask={2378,2359,1,0},modify={2159,0,4,0},mouse_down_captures={2385,2384,4,0},mouse_dwell_time={2265,2264,1,0},mouse_selection_rectangular_switch={2669,2668,4,0},mouse_wheel_captures={2697,2696,4,0},move_extends_selection={2706,0,4,0},multi_paste={2615,2614,1,0},multiple_selection={2564,2563,4,0},named_styles={4029,0,1,0},overtype={2187,2186,4,0},paste_convert_endings={2468,2467,4,0},phases_draw={2673,2674,1,0},position_cache={2515,2514,1,0},primary_style_from_style={4028,0,1,1},print_colour_mode={2149,2148,1,0},print_magnification={2147,2146,1,0},print_wrap_mode={2407,2406,1,0},property={4008,4004,7,6},property_expanded={4009,0,7,6},property_int={4010,0,1,6},punctuation_chars={2649,2648,7,0},read_only={2140,2171,4,0},rectangular_selection_anchor={2591,2590,1,0},rectangular_selection_anchor_virtual_space={2595,2594,1,0},rectangular_selection_caret={2589,2588,1,0},rectangular_selection_caret_virtual_space={2593,2592,1,0},rectangular_selection_modifier={2599,2598,1,0},representation={2666,2665,7,6},rgba_image_height={0,2625,1,0},rgba_image_scale={0,2651,1,0},rgba_image_width={0,2624,1,0},scroll_width={2275,2274,1,0},scroll_width_tracking={2517,2516,4,0},search_flags={2199,2198,1,0},sel_alpha={2477,2478,1,0},sel_eol_filled={2479,2480,4,0},selection_empty={2650,0,4,0},selection_end={2145,2144,1,0},selection_is_rectangle={2372,0,4,0},selection_mode={2423,2422,1,0},selection_n_anchor={2579,2578,1,1},selection_n_anchor_virtual_space={2583,2582,1,1},selection_n_caret={2577,2576,1,1},selection_n_caret_virtual_space={2581,2580,1,1},selection_n_end={2587,2586,1,1},selection_n_end_virtual_space={2727,0,1,1},selection_n_start={2585,2584,1,1},selection_n_start_virtual_space={2726,0,1,1},selection_start={2143,2142,1,0},selections={2570,0,1,0},status={2383,2382,1,0},style_at={2010,0,1,1},style_back={2482,2052,3,1},style_bold={2483,2053,4,1},style_case={2489,2060,1,1},style_changeable={2492,2099,4,1},style_character_set={2490,2066,1,1},style_eol_filled={2487,2057,4,1},style_font={2486,2056,7,1},style_fore={2481,2051,3,1},style_from_sub_style={4027,0,1,1},style_hot_spot={2493,2409,4,1},style_italic={2484,2054,4,1},style_size={2485,2055,1,1},style_size_fractional={2062,2061,1,1},style_underline={2488,2059,4,1},style_visible={2491,2074,4,1},style_weight={2064,2063,1,1},sub_style_bases={4026,0,7,0},sub_styles_length={4022,0,1,1},sub_styles_start={4021,0,1,1},tab_draw_mode={2698,2699,1,0},tab_indents={2261,2260,4,0},tab_minimum_width={2725,2724,1,0},tab_width={2121,2036,1,0},tag={2616,0,7,1},target_end={2193,2192,1,0},target_end_virtual_space={2731,2730,1,0},target_start={2191,2190,1,0},target_start_virtual_space={2729,2728,1,0},target_text={2687,0,7,0},technology={2631,2630,1,0},text_length={2183,0,1,0},two_phase_draw={2283,2284,4,0},undo_collection={2019,2012,4,0},use_tabs={2125,2124,4,0},v_scroll_bar={2281,2280,4,0},view_eol={2355,2356,4,0},view_ws={2020,2021,1,0},virtual_space_options={2597,2596,1,0},whitespace_chars={2647,2443,7,0},whitespace_size={2087,2086,1,0},word_chars={2646,2077,7,0},wrap_indent_mode={2473,2472,1,0},wrap_mode={2269,2268,1,0},wrap_start_indent={2465,2464,1,0},wrap_visual_flags={2461,2460,1,0},wrap_visual_flags_location={2463,2462,1,0},x_offset={2398,2397,1,0},zoom={2374,2373,1,0},}
+
+---
+-- Map of Scintilla event IDs to tables of event names and event parameters.
+-- @class table
+-- @name events
+M.events = {[2000]={"style_needed","position"},[2001]={"char_added","ch","character_source"},[2002]={"save_point_reached"},[2003]={"save_point_left"},[2004]={"modify_attempt_ro"},[2005]={"key","ch","modifiers"},[2006]={"double_click","modifiers","position","line"},[2007]={"update_ui","updated"},[2008]={"modified","position","modification_type","text","length","lines_added","line","fold_level_now","fold_level_prev","token","annotation_lines_added"},[2009]={"macro_record","message","w_param","l_param"},[2010]={"margin_click","margin","position","modifiers"},[2011]={"need_shown","position","length"},[2013]={"painted"},[2014]={"user_list_selection","list_type","text","position","ch","list_completion_method"},[2015]={"uri_dropped","text"},[2016]={"dwell_start","position","x","y"},[2017]={"dwell_end","position","x","y"},[2018]={"zoom"},[2019]={"hot_spot_click","modifiers","position"},[2020]={"hot_spot_double_click","modifiers","position"},[2021]={"call_tip_click","position"},[2022]={"auto_c_selection","text","position","ch","list_completion_method"},[2023]={"indicator_click","modifiers","position"},[2024]={"indicator_release","modifiers","position"},[2025]={"auto_c_cancelled"},[2026]={"auto_c_char_deleted"},[2027]={"hot_spot_release_click","modifiers","position"},[2028]={"focus_in"},[2029]={"focus_out"},[2030]={"auto_c_completed","text","position","ch","list_completion_method"},[2031]={"margin_right_click","margin","position","modifiers"},[2032]={"auto_c_selection_change","list_type","text","position"},}
local marker_number, indic_number, list_type, image_type = -1, -1, 0, 0
diff --git a/scripts/gen_iface.lua b/scripts/gen_iface.lua
index 95e52cbe..3455b2dd 100755
--- a/scripts/gen_iface.lua
+++ b/scripts/gen_iface.lua
@@ -1,9 +1,9 @@
#!/usr/bin/lua
-- Copyright 2007-2020 Mitchell mitchell.att.foicica.com. See LICENSE.
-local constants, functions, properties = {}, {}, {}
+local constants, functions, properties, events = {}, {}, {}, {}
local const_patt = '^val ([%w_]+)=([-%dx%x]+)'
-local event_patt = '^evt %a+ ([%w_]+)=(%d+)'
+local event_patt = '^evt %a+ ([%w_]+)=(%d+)(%b())'
local msg_patt = '^(%a+) (%a+) (%w+)=(%d+)%((%a*) ?([^,]*),%s*(%a*)'
local types = {
[''] = 0, void = 0, int = 1, length = 2, position = 1, line = 1, colour = 3,
@@ -19,7 +19,10 @@ local ignores = { -- constants to ignore
'^SCLEX_', '^UNDO_MAY_COALESCE'
}
local changed_setter = {} -- holds properties changed to setter functions
-local string_format, table_unpack = string.format, table.unpack
+local function to_lua_name(camel_case)
+ return camel_case:gsub('([a-z])([A-Z])', '%1_%2'):
+ gsub('([A-Z])([A-Z][a-z])', '%1_%2'):lower()
+end
for line in io.lines('../src/scintilla/include/Scintilla.iface') do
if line:find('^val ') then
@@ -28,20 +31,31 @@ for line in io.lines('../src/scintilla/include/Scintilla.iface') do
name = name:gsub('^SC_', ''):gsub('^SC([^N]%u+)', '%1')
if name == 'FIND_REGEXP' then
value = tostring(tonumber(value) + 2^23) -- add SCFIND_CXX11REGEX
+ value = value:gsub('%.0$', '') -- Lua 5.3+ may append this
elseif name == 'MASK_FOLDERS' then
- value = '-33554432'
+ value = tostring(-33554432)
end
- constants[#constants + 1] = string_format('%s=%s', name, value)
+ constants[#constants + 1] = string.format('%s=%s', name, value)
elseif line:find('^evt ') then
- local name, value = line:match(event_patt)
- constants[#constants + 1] = string_format('SCN_%s=%s', name:upper(), value)
+ local name, value, param_list = line:match(event_patt)
+ name = to_lua_name(name)
+ local event = {string.format('%q', name)}
+ for param in param_list:gmatch('(%a+)[,)]') do
+ if param ~= 'void' then
+ event[#event + 1] = string.format('%q', to_lua_name(param))
+ end
+ end
+ if name:find('^margin') then
+ event[2], event[4] = event[4], event[2] -- swap modifiers, margin
+ end
+ events[#events + 1] = value
+ events[value] = table.concat(event, ',')
elseif line:find('^fun ') then
local _, rtype, name, id, wtype, param, ltype = line:match(msg_patt)
if rtype:find('^%u') then rtype = 'int' end
if wtype:find('^%u') then wtype = 'int' end
if ltype:find('^%u') then ltype = 'int' end
- name = name:gsub('([a-z])([A-Z])', '%1_%2')
- :gsub('([A-Z])([A-Z][a-z])', '%1_%2'):lower()
+ name = to_lua_name(name)
if name == 'convert_eo_ls' then name = 'convert_eols' end
if types[wtype] == types.int and param == 'length' then wtype = 'length' end
functions[#functions + 1] = name
@@ -51,13 +65,12 @@ for line in io.lines('../src/scintilla/include/Scintilla.iface') do
if rtype:find('^%u') then rtype = 'int' end
if wtype:find('^%u') then wtype = 'int' end
if ltype:find('^%u') then ltype = 'int' end
- name = name:gsub('[GS]et%f[%u]', ''):gsub('([a-z])([A-Z])', '%1_%2')
- :gsub('([A-Z])([A-Z][a-z])', '%1_%2'):lower()
+ name = to_lua_name(name:gsub('[GS]et%f[%u]', ''))
if kind == 'get' and types[wtype] == types.int and
types[ltype] == types.int or wtype == 'bool' and ltype ~= '' or
changed_setter[name] then
-- Special case getter/setter; handle as function.
- local fname = kind..'_'..name
+ local fname = kind .. '_' .. name
functions[#functions + 1] = fname
functions[fname] = {id, types[rtype], types[wtype], types[ltype]}
changed_setter[name] = true
@@ -93,6 +106,7 @@ constants[#constants + 1] = 'MOUSE_RELEASE=3'
table.sort(constants)
table.sort(functions)
table.sort(properties)
+table.sort(events)
local f = io.open('../core/iface.lua', 'wb')
f:write([=[
@@ -134,9 +148,9 @@ f:write([[
-- @class table
-- @name functions
M.functions = {]])
-for i = 1, #functions do
- f:write(string_format('%s={%d,%d,%d,%d},', functions[i],
- table_unpack(functions[functions[i]])))
+for _, func in ipairs(functions) do
+ f:write(
+ string.format('%s={%d,%d,%d,%d},', func, table.unpack(functions[func])))
end
f:write('}\n\n')
f:write([[
@@ -149,9 +163,19 @@ f:write([[
-- @class table
-- @name properties
M.properties = {]])
-for i = 1, #properties do
- f:write(string_format('%s={%d,%d,%d,%d},', properties[i],
- table_unpack(properties[properties[i]])))
+for _, property in ipairs(properties) do
+ f:write(string.format(
+ '%s={%d,%d,%d,%d},', property, table.unpack(properties[property])))
+end
+f:write('}\n\n')
+f:write([[
+---
+-- Map of Scintilla event IDs to tables of event names and event parameters.
+-- @class table
+-- @name events
+M.events = {]])
+for _, event in ipairs(events) do
+ f:write(string.format('[%s]={%s},', event, events[event]))
end
f:write('}\n\n')
f:write([[
diff --git a/src/textadept.c b/src/textadept.c
index 28e06ada..304e99fe 100644
--- a/src/textadept.c
+++ b/src/textadept.c
@@ -1880,7 +1880,7 @@ static void lL_notify(lua_State *L, struct SCNotification *n) {
lua_pushinteger(L, n->length), lua_setfield(L, -2, "length"); // SCN_MODIFIED
//lua_pushinteger(L, n->linesAdded), lua_setfield(L, -2, "lines_added");
//lua_pushinteger(L, n->message), lua_setfield(L, -2, "message");
- lua_pushinteger(L, n->wParam), lua_setfield(L, -2, "wParam");
+ lua_pushinteger(L, n->listType), lua_setfield(L, -2, "list_type");
//lua_pushinteger(L, n->lParam), lua_setfield(L, -2, "lParam");
lua_pushinteger(L, n->line), lua_setfield(L, -2, "line");
//lua_pushinteger(L, n->foldLevelNow), lua_setfield(L, -2, "fold_level_now");