From 3bf3836bd705c28a205c40746d0eec85cba898bd Mon Sep 17 00:00:00 2001 From: Jonathan Apodaca Date: Fri, 11 Oct 2024 22:56:10 -0600 Subject: [PATCH] remove use of feedkeys --- lua/tt/repeat.lua | 7 ++----- lua/tt/utils.lua | 11 ++--------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/lua/tt/repeat.lua b/lua/tt/repeat.lua index 41d456c..7bc3636 100644 --- a/lua/tt/repeat.lua +++ b/lua/tt/repeat.lua @@ -1,12 +1,9 @@ local M = {} local function _normal(cmd) vim.cmd.normal { cmd = 'normal', args = { cmd }, bang = true } end -local function _feedkeys(keys, mode) - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(keys, true, false, true), mode or 'nx', true) -end -M.native_repeat = function() _feedkeys '.' end -M.native_undo = function() _feedkeys 'u' end +M.native_repeat = function() _normal '.' end +M.native_undo = function() _normal 'u' end ---@param cmd? string|fun():unknown function M.set(cmd) diff --git a/lua/tt/utils.lua b/lua/tt/utils.lua index 259cf9f..d5e57f1 100644 --- a/lua/tt/utils.lua +++ b/lua/tt/utils.lua @@ -6,13 +6,6 @@ local M = {} ---@alias QfItem { col: number, filename: string, kind: string, lnum: number, text: string } ---@alias KeyMaps table } - ----@param keys string ----@param mode? string -function M.feedkeys(keys, mode) - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(keys, true, false, true), mode or 'nx', true) -end - ---@alias CmdArgs { args: string; bang: boolean; count: number; fargs: string[]; line1: number; line2: number; mods: string; name: string; range: 0|1|2; reg: string; smods: any; info: Range|nil } --- A utility for creating user commands that also pre-computes useful information @@ -61,7 +54,7 @@ function M.define_text_object(key_seq, fn, opts) local range = range_or_pos --[[@as Range]] range:set_visual_selection() else - M.feedkeys '' + vim.cmd { cmd = 'normal', args = { '' }, bang = true } end end vim.keymap.set({ 'x' }, key_seq, handle_visual, opts and { buffer = opts.buffer } or nil) @@ -70,7 +63,7 @@ function M.define_text_object(key_seq, fn, opts) local State = require 'tt.state' -- enter visual mode: - M.feedkeys 'v' + vim.cmd { cmd = 'normal', args = { 'v' }, bang = true } local range_or_pos = fn(key_seq) if range_or_pos == nil then return end