RFC: cmdline completion (#362)

* manual support dot-repeat

* cmdwin and terminal

* cmdline only

* Fix

* fix

* Improve

* Fix test

* Support macro

* disable cmdline for now

* Simplify

* fmt

* consume once

* Ignore = type

* cmdline

* fmt

* Improve

* update

* fmt

* Support incsearch

* fix

* Add api

* Avoid cmdline completion if the native_menu enabled

* fix for macro

* Improve

* fmt

* Insert-mode only by default

* Update

* avoid conflict

* Improve default mapping

* Fix

* fix

* similar to native

* Update

* Fix README.md

* Improve

* Use <afile>
This commit is contained in:
hrsh7th
2021-10-27 12:38:46 +09:00
committed by GitHub
parent b5899f05c5
commit cae2e8f48b
13 changed files with 263 additions and 109 deletions

View File

@@ -9,10 +9,11 @@ api.is_insert_mode = function()
end
api.is_cmdline_mode = function()
return vim.tbl_contains({
local is_cmdline_mode = vim.tbl_contains({
'c',
'cv',
}, vim.api.nvim_get_mode().mode)
return is_cmdline_mode and vim.fn.getcmdtype() ~= '='
end
api.is_select_mode = function()
@@ -41,16 +42,17 @@ api.get_cursor = function()
end
api.get_screen_cursor = function()
local cursor = api.get_cursor()
if api.is_cmdline_mode() then
return cursor
return api.get_cursor()
end
local cursor = api.get_cursor()
local pos = vim.fn.screenpos(0, cursor[1], cursor[2] + 1)
return { pos.row, pos.col - 1 }
end
api.get_cursor_before_line = function()
return string.sub(api.get_current_line(), 1, api.get_cursor()[2] + 1)
local cursor = api.get_cursor()
return string.sub(api.get_current_line(), 1, cursor[2] + 1)
end
return api