diff options
-rw-r--r-- | core/gui.lua | 2 | ||||
-rw-r--r-- | core/locale.conf | 2 | ||||
-rw-r--r-- | modules/textadept/mime_types.lua | 17 | ||||
-rw-r--r-- | src/textadept.c | 4 |
4 files changed, 14 insertions, 11 deletions
diff --git a/core/gui.lua b/core/gui.lua index 3418e5ea..ee0daafe 100644 --- a/core/gui.lua +++ b/core/gui.lua @@ -8,7 +8,7 @@ function gui.check_focused_buffer(buffer) if type(buffer) ~= 'table' or not buffer.doc_pointer then error(L('Buffer argument expected.'), 2) elseif gui.focused_doc_pointer ~= buffer.doc_pointer then - error(L('The indexed buffer is not the focused one.'), 2) + error(L('This buffer is not the current one.'), 2) end end diff --git a/core/locale.conf b/core/locale.conf index fe97a16d..0ac77d6c 100644 --- a/core/locale.conf +++ b/core/locale.conf @@ -44,7 +44,7 @@ has been modified. Reload it? = has been modified. Reload it? % core/gui.lua Buffer argument expected. = Buffer argument expected. -The indexed buffer is not the focused one. = The indexed buffer is not the focused one. +This buffer is not the current one. = This buffer is not the current one. Switch Buffers = Switch Buffers Search wrapped = Search wrapped diff --git a/modules/textadept/mime_types.lua b/modules/textadept/mime_types.lua index e47170d8..2d8034ff 100644 --- a/modules/textadept/mime_types.lua +++ b/modules/textadept/mime_types.lua @@ -102,6 +102,7 @@ local SETLEXERLANGUAGE = _SCINTILLA.functions.set_lexer_language[1] -- @param lang The string language to set. -- @usage buffer:set_lexer('language_name') local function set_lexer(buffer, lang) + gui.check_focused_buffer(buffer) buffer._lexer = lang buffer:private_lexer_call(SETDIRECTPOINTER, buffer.direct_pointer) buffer:private_lexer_call(SETLEXERLANGUAGE, lang) @@ -119,6 +120,7 @@ local GETLEXERLANGUAGE = _SCINTILLA.functions.get_lexer_language[1] -- Replacement for buffer:get_lexer_language(). -- @param buffer The buffer to get the lexer language of. local function get_lexer(buffer) + gui.check_focused_buffer(buffer) return buffer:private_lexer_call(GETLEXERLANGUAGE) end @@ -128,6 +130,7 @@ end -- @param style_num A style number in the range 0 <= style_num < 256. -- @see buffer.style_at local function get_style_name(buffer, style_num) + gui.check_focused_buffer(buffer) if style_num < 0 or style_num > 255 then error('0 <= style_num < 256') end return buffer:private_lexer_call(style_num) end @@ -176,13 +179,13 @@ local function restore_lexer() buffer:private_lexer_call(SETLEXERLANGUAGE, buffer._lexer or 'container') end -events.connect('file_opened', handle_new) -events.connect('file_saved_as', handle_new) -events.connect('buffer_after_switch', restore_lexer) -events.connect('view_new', restore_lexer) -events.connect('view_after_switch', restore_lexer) -- only useful after reset -events.connect('reset_after', - function() buffer:set_lexer(buffer._lexer or 'container') end) +local connect = events.connect +connect('file_opened', handle_new) +connect('file_saved_as', handle_new) +connect('buffer_after_switch', restore_lexer) +connect('view_new', restore_lexer, 1) +connect('reset_after', + function() buffer:set_lexer(buffer._lexer or 'container') end) --- -- Prompts the user to select a lexer from a filtered list for the current diff --git a/src/textadept.c b/src/textadept.c index 02146db8..4bb1eb13 100644 --- a/src/textadept.c +++ b/src/textadept.c @@ -1402,7 +1402,7 @@ static long l_toscintillaparam(lua_State *lua, int type, int *arg_idx) { static void l_check_focused_buffer(lua_State *lua, int narg) { sptr_t cur_doc = SS(focused_editor, SCI_GETDOCPOINTER, 0, 0); luaL_argcheck(lua, cur_doc == l_checkdocpointer(lua, narg), 1, - "the indexed Buffer is not the focused one"); + "this buffer is not the current one"); } /******************************************************************************/ @@ -1572,6 +1572,7 @@ static int l_call_buffer_function(lua_State *lua) { int rt_type = l_rawgeti_int(lua, buffer_func_table_idx, 2); int p1_type = l_rawgeti_int(lua, buffer_func_table_idx, 3); int p2_type = l_rawgeti_int(lua, buffer_func_table_idx, 4); + l_check_focused_buffer(lua, 1); return l_call_scintilla(lua, editor, msg, p1_type, p2_type, rt_type, 2); } @@ -1590,7 +1591,6 @@ static int l_buffer_mt_index(lua_State *lua) { lua_getfield(lua, -1, key); lua_remove(lua, -2); // buffer functions if (lua_istable(lua, -1)) { - l_check_focused_buffer(lua, 1); // Of the form { msg, rt_type, p1_type, p2_type } lua_pushlightuserdata(lua, (GtkWidget *)focused_editor); lua_insert(lua, lua_gettop(lua) - 1); // shift buffer functions down |