aboutsummaryrefslogtreecommitdiff
path: root/modules/textadept/editing.lua
diff options
context:
space:
mode:
authormitchell <70453897+orbitalquark@users.noreply.github.com>2021-04-14 22:46:20 -0400
committermitchell <70453897+orbitalquark@users.noreply.github.com>2021-04-14 22:46:20 -0400
commita1843428319d1f96acaaf42e81e701de9988d06f (patch)
tree220e91d1110f1856523c50df6c7e4752312a0d54 /modules/textadept/editing.lua
parent07f1785afd1afc28d18a49999ea6f3b3dc836926 (diff)
downloadtextadept-a1843428319d1f96acaaf42e81e701de9988d06f.tar.gz
textadept-a1843428319d1f96acaaf42e81e701de9988d06f.zip
Attempt to restore view scroll state after `textadept.editing.filter_through()`.
Also prefer `view.first_visible_line =` rather than `view:scroll_lines()` since the latter is only needed when display lines are involved.
Diffstat (limited to 'modules/textadept/editing.lua')
-rw-r--r--modules/textadept/editing.lua3
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/textadept/editing.lua b/modules/textadept/editing.lua
index ae98720e..540c5aec 100644
--- a/modules/textadept/editing.lua
+++ b/modules/textadept/editing.lua
@@ -596,7 +596,7 @@ end
function M.filter_through(command)
assert(not (WIN32 and CURSES), 'not implemented in this environment')
assert_type(command, 'string', 1)
- local s, e = buffer.selection_start, buffer.selection_end
+ local s, e, top_line = buffer.selection_start, buffer.selection_end, view.first_visible_line
if s == e then
-- Use the whole buffer as input.
buffer:target_whole_document()
@@ -629,6 +629,7 @@ function M.filter_through(command)
end
end
buffer:replace_target(output:iconv('UTF-8', _CHARSET))
+ view.first_visible_line = top_line
if s == e then
buffer:goto_pos(s)
return