From 8c7329b1d64d53316bb0dd3f47d68d53a4fdef8b Mon Sep 17 00:00:00 2001 From: Bryan Date: Mon, 21 Oct 2024 22:06:58 -0600 Subject: [PATCH] Add function for command line in and out --- lua/in-and-out/init.lua | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lua/in-and-out/init.lua b/lua/in-and-out/init.lua index 0292585..df27351 100644 --- a/lua/in-and-out/init.lua +++ b/lua/in-and-out/init.lua @@ -62,4 +62,20 @@ function M.in_and_out() end end +function M.in_and_out_cmd() + local current_pos = vim.fn.getcmdpos() + + local target_pos = nil + local line = vim.fn.getcmdline() + for _, char in ipairs(targets) do + local found_pos = string.find(line, escape_lua_pattern(char), current_pos + 1) + if found_pos and (not target_pos or found_pos < target_pos) then + -- If char is a multibyte character, we need to take into account the extra bytes. + target_pos = found_pos + vim.fn.strlen(char) - 1 + end + end + if target_pos then + vim.fn.setcmdpos(target_pos) + end +end return M