aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/lua/init.lua5
-rw-r--r--modules/textadept/bookmarks.lua9
-rw-r--r--modules/textadept/editing.lua24
-rw-r--r--modules/textadept/find.lua13
-rw-r--r--modules/textadept/menu.lua7
-rw-r--r--modules/textadept/run.lua3
-rw-r--r--modules/textadept/snippets.lua8
7 files changed, 29 insertions, 40 deletions
diff --git a/modules/lua/init.lua b/modules/lua/init.lua
index 49ccda17..a735c544 100644
--- a/modules/lua/init.lua
+++ b/modules/lua/init.lua
@@ -98,15 +98,14 @@ local control_structure_patterns = {
function M.try_to_autocomplete_end()
local line_num = buffer:line_from_position(buffer.current_pos)
local line = buffer:get_line(line_num)
- local line_indentation = buffer.line_indentation
for _, patt in ipairs(control_structure_patterns) do
if line:find(patt) then
- local indent = line_indentation[line_num]
+ local indent = buffer.line_indentation[line_num]
buffer:begin_undo_action()
buffer:new_line()
buffer:new_line()
buffer:add_text(patt:find('repeat') and 'until' or 'end')
- line_indentation[line_num + 1] = indent + buffer.tab_width
+ buffer.line_indentation[line_num + 1] = indent + buffer.tab_width
buffer:line_up()
buffer:line_end()
buffer:end_undo_action()
diff --git a/modules/textadept/bookmarks.lua b/modules/textadept/bookmarks.lua
index 0dd7e0fe..7ced37c7 100644
--- a/modules/textadept/bookmarks.lua
+++ b/modules/textadept/bookmarks.lua
@@ -30,9 +30,7 @@ end
---
-- Clears all bookmarks in the current buffer.
-- @name clear
-function M.clear()
- buffer:marker_delete_all(M.MARK_BOOKMARK)
-end
+function M.clear() buffer:marker_delete_all(M.MARK_BOOKMARK) end
---
-- Prompts the user to select a bookmarked line to move the caret to the
@@ -45,14 +43,13 @@ end
-- @name goto_mark
function M.goto_mark(next)
if next == nil then
- local buffer = buffer
local marks, line = {}, buffer:marker_next(0, 2^M.MARK_BOOKMARK)
if line == -1 then return end
- repeat
+ while line >= 0 do
local text = buffer:get_line(line):match('^[^\r\n]*')
marks[#marks + 1] = tostring(line + 1)..': '..text
line = buffer:marker_next(line + 1, 2^M.MARK_BOOKMARK)
- until line < 0
+ end
local button, i = ui.dialogs.filteredlist{
title = _L['Select Bookmark'], columns = _L['Bookmark'], items = marks
}
diff --git a/modules/textadept/editing.lua b/modules/textadept/editing.lua
index ced101b2..d344258b 100644
--- a/modules/textadept/editing.lua
+++ b/modules/textadept/editing.lua
@@ -183,9 +183,7 @@ end)
-- Auto-indent on return.
events.connect(events.CHAR_ADDED, function(char)
if not M.AUTOINDENT or char ~= 10 then return end
- local buffer = buffer
- local pos = buffer.current_pos
- local line = buffer:line_from_position(pos)
+ local line = buffer:line_from_position(buffer.current_pos)
local i = line - 1
while i >= 0 and buffer:get_line(i):find('^[\r\n]+$') do i = i - 1 end
if i >= 0 then
@@ -228,12 +226,13 @@ events.connect(events.FILE_BEFORE_SAVE, function()
local buffer = buffer
buffer:begin_undo_action()
-- Strip trailing whitespace.
- local line_end_position, char_at = buffer.line_end_position, buffer.char_at
local lines = buffer.line_count
for line = 0, lines - 1 do
- local s, e = buffer:position_from_line(line), line_end_position[line]
- local i, c = e - 1, char_at[e - 1]
- while i >= s and c == 9 or c == 32 do i, c = i - 1, char_at[i - 1] end
+ local s, e = buffer:position_from_line(line), buffer.line_end_position[line]
+ local i, c = e - 1, buffer.char_at[e - 1]
+ while i >= s and (c == 9 or c == 32) do
+ i, c = i - 1, buffer.char_at[i - 1]
+ end
if i < e - 1 then buffer:delete_range(i + 1, e - i - 1) end
end
-- Ensure ending newline.
@@ -284,12 +283,10 @@ function M.block_comment()
for line = s, not ignore_last_line and e or e - 1 do
local p = buffer:position_from_line(line)
if buffer:text_range(p, p + #prefix) == prefix then
- buffer:set_sel(p, p + #prefix)
- buffer:replace_sel('')
+ buffer:delete_range(p, #prefix)
if suffix ~= '' then
p = buffer.line_end_position[line]
- buffer:set_sel(p - #suffix, p)
- buffer:replace_sel('')
+ buffer:delete_range(p - #suffix, #suffix)
if line == s then anchor = anchor - #suffix end
if line == e then pos = pos - #suffix end
end
@@ -442,12 +439,11 @@ end
-- @name convert_indentation
function M.convert_indentation()
local buffer = buffer
- local line_indentation = buffer.line_indentation
- local line_indent_position = buffer.line_indent_position
buffer:begin_undo_action()
for line = 0, buffer.line_count do
local s = buffer:position_from_line(line)
- local indent, e = line_indentation[line], line_indent_position[line]
+ local indent = buffer.line_indentation[line]
+ local e = buffer.line_indent_position[line]
current_indentation = buffer:text_range(s, e)
if buffer.use_tabs then
-- Need integer division and LuaJIT does not have // operator.
diff --git a/modules/textadept/find.lua b/modules/textadept/find.lua
index d5fc2d1a..35ce74eb 100644
--- a/modules/textadept/find.lua
+++ b/modules/textadept/find.lua
@@ -156,7 +156,7 @@ local function find_(text, next, flags, no_wrap, wrapped)
-- If nothing was found, wrap the search.
if pos == -1 and not no_wrap then
- local anchor, pos = buffer.anchor, buffer.current_pos
+ local anchor = buffer.anchor
buffer:goto_pos(next and 0 or buffer.length)
ui.statusbar_text = _L['Search wrapped']
events.emit(events.FIND_WRAPPED)
@@ -264,20 +264,19 @@ local function replace(rtext)
if buffer:get_sel_text() == '' then return end
if M.in_files then M.in_files = false end
buffer:target_from_selection()
- rtext = rtext:gsub('\\[abfnrtv\\]', escapes)
- rtext = rtext:gsub('%%%%', '\\037') -- escape '%%'
+ rtext = rtext:gsub('\\[abfnrtv\\]', escapes):gsub('%%%%', '\\037')
if M.captures then
for i = 0, #M.captures do
rtext = rtext:gsub('%%'..i, (M.captures[i]:gsub('%%', '%%%%')))
end
end
- local ok, rtext = pcall(rtext.gsub, rtext, '%%(%b())', function(code)
+ local ok, rtext = pcall(string.gsub, rtext, '%%(%b())', function(code)
code = code:gsub('[\a\b\f\n\r\t\v\\]', escapes)
local result = assert(load('return '..code))()
return tostring(result):gsub('\\[abfnrtv\\]', escapes)
end)
if ok then
- buffer:replace_target(rtext:gsub('\\037', '%%')) -- unescape '%'
+ buffer:replace_target(rtext:gsub('\\037', '%%'))
buffer:goto_pos(buffer.target_end) -- 'find' text after this replacement
else
ui.dialogs.msgbox{
@@ -306,7 +305,7 @@ local function replace_all(ftext, rtext)
local count = 0
if buffer:get_sel_text() == '' then
buffer:goto_pos(0)
- while(find_(ftext, true, nil, true) ~= -1) do
+ while find_(ftext, true, nil, true) ~= -1 do
replace(rtext)
count = count + 1
end
@@ -352,7 +351,7 @@ function M.goto_file_found(line, next)
if not ff_view and not ff_buf then return end
if ff_view then ui.goto_view(ff_view) else view:goto_buffer(ff_buf) end
- -- If not line was given, find the next search result.
+ -- If no line was given, find the next search result.
if not line and next ~= nil then
if next then buffer:line_end() else buffer:home() end
buffer:search_anchor()
diff --git a/modules/textadept/menu.lua b/modules/textadept/menu.lua
index 97e6ce2d..ad662194 100644
--- a/modules/textadept/menu.lua
+++ b/modules/textadept/menu.lua
@@ -250,7 +250,7 @@ local function get_gdk_key(key_seq)
if not mods or not key then return nil end
local modifiers = ((mods:find('s') or key:lower() ~= key) and 1 or 0) +
(mods:find('c') and 4 or 0) + (mods:find('a') and 8 or 0) +
- (mods:find('m') and 268435456 or 0)
+ (mods:find('m') and 0x10000000 or 0)
local byte = string.byte(key)
if #key > 1 or byte < 32 then
for i, s in pairs(keys.KEYSYMS) do
@@ -352,9 +352,8 @@ end
-- @see ui.menubar
-- @see ui.menu
local function set_menubar(menubar)
- key_shortcuts = {}
+ key_shortcuts, menu_actions = {}, {}
for key, f in pairs(keys) do key_shortcuts[get_id(f)] = key end
- menu_actions = {}
local _menubar = {}
for i = 1, #menubar do
_menubar[#_menubar + 1] = ui.menu(read_menu_table(menubar[i]))
@@ -423,7 +422,7 @@ return setmetatable(M, {
elseif k == 'tab_context_menu' then
set_contextmenus(nil, v)
else
- M[k] = v
+ rawset(M, k, v)
end
end
})
diff --git a/modules/textadept/run.lua b/modules/textadept/run.lua
index dbf0301f..e816ff39 100644
--- a/modules/textadept/run.lua
+++ b/modules/textadept/run.lua
@@ -103,11 +103,10 @@ local function command(commands, event)
end
preferred_view = view
- local events_emit = events.emit
local function emit_output(output, focus)
ui.SILENT_PRINT = not focus
for line in output:gmatch('[^\r\n]+') do
- events_emit(event, data, line:iconv('UTF-8', _CHARSET))
+ events.emit(event, data, line:iconv('UTF-8', _CHARSET))
end
ui.SILENT_PRINT = false
end
diff --git a/modules/textadept/snippets.lua b/modules/textadept/snippets.lua
index 81a4247f..a264908e 100644
--- a/modules/textadept/snippets.lua
+++ b/modules/textadept/snippets.lua
@@ -102,8 +102,9 @@ local function new_snippet(text, trigger)
if #lines > 1 then
-- Match indentation on all lines after the first.
local indent_size = #buffer:get_cur_line():match('^%s*')
- if not use_tabs then
- indent_size = math.floor(indent_size / buffer.tab_width) -- for Lua 5.3
+ if not use_tabs then
+ -- Need integer division and LuaJIT does not have // operator.
+ indent_size = math.floor(indent_size / buffer.tab_width)
end
local additional_indent = indent[use_tabs]:rep(indent_size)
for i = 2, #lines do lines[i] = additional_indent..lines[i] end
@@ -273,7 +274,6 @@ M._snippet_mt = {
-- Goes to the next placeholder in a snippet.
-- @param snippet The snippet returned by `new_snippet()`.
next = function(snippet)
- local buffer = buffer
-- If the snippet was just initialized, determine how many placeholders it
-- has.
if not snippet.index then
@@ -307,7 +307,7 @@ M._snippet_mt = {
escaped_text = snippet:get_escaped_text()..' '
local offset = 0
for s, e in escaped_text:gmatch('()%%'..index..'()[^(]') do
- buffer:set_target_range(start + s - 1 + offset,
+ buffer:set_target_range(start + s - 1 + offset,
start + e - 1 + offset)
buffer:replace_target(placeholder)
buffer:add_selection(buffer.target_start, buffer.target_end)