aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2022-03-17 11:07:55 -0400
committerGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2022-03-17 11:07:55 -0400
commit4cdb674929e79104d9f5301656f4169b0fe86f43 (patch)
treecd98bc52cf1ed25e2a3304df2cb6d52eefd06da7
parent84c7e9d01390100ebba39d353049da5fbbe32e79 (diff)
Fixed search wrapping indicator not showing up in the statusbar.
It was being overwritten by the "Match X/Y" indicator.
-rw-r--r--modules/textadept/find.lua9
1 files changed, 6 insertions, 3 deletions
diff --git a/modules/textadept/find.lua b/modules/textadept/find.lua
index d206c2dc..67fe1038 100644
--- a/modules/textadept/find.lua
+++ b/modules/textadept/find.lua
@@ -75,6 +75,7 @@ local M = ui.find
-- Arguments:
--
-- * _`find_text`_: The text originally searched for.
+-- * _`wrapped`_: Whether or not the result found is after a text search wrapped.
-- @field _G.events.FIND_WRAPPED (string)
-- Emitted when a text search wraps (passes through the beginning of the buffer), either
-- from bottom to top (when searching for a next occurrence), or from top to bottom (when
@@ -219,7 +220,7 @@ local function find(text, next, flags, no_wrap, wrapped)
local pos = f(buffer, flags, text)
view:ensure_visible_enforce_policy(buffer:line_from_position(pos))
view:scroll_range(buffer.anchor, buffer.current_pos)
- if pos ~= -1 then events.emit(events.FIND_RESULT_FOUND, text) end
+ if pos ~= -1 then events.emit(events.FIND_RESULT_FOUND, text, wrapped) end
-- Track find text and found text for "replace all" and incremental find.
find_text, found_text = text, buffer:get_sel_text()
repl_text = ui.find.replace_entry_text -- save for ui.find.focus()
@@ -244,7 +245,7 @@ events.connect(events.FIND_TEXT_CHANGED, function()
if not M.incremental then return end
return events.emit(events.FIND, M.find_entry_text, true) -- refresh
end)
-events.connect(events.FIND_RESULT_FOUND, function(text)
+events.connect(events.FIND_RESULT_FOUND, function(text, wrapped)
-- Count and optionally highlight all occurrences.
local count, current = 0, 1
buffer.search_flags = get_flags()
@@ -259,7 +260,9 @@ events.connect(events.FIND_RESULT_FOUND, function(text)
count = count + 1
if s == buffer.current_pos then current = count end
end
- ui.statusbar_text = string.format('%s %d/%d', _L['Match'], current, count)
+ local message = string.format('%s %d/%d', _L['Match'], current, count)
+ if wrapped then message = string.format('%s (%s)', message, _L['Search wrapped']) end
+ ui.statusbar_text = message
-- For regex searches, `buffer.tag` was clobbered. It needs to be filled in again for any
-- subsequent replace operations that need it.
if ui.find.regex then