feat: add option for view to follow cursor (#1727)

* feat: add option for custom entry view to follow cursor

Creates an option to allow the custom entries
view to follow the user's cursor as they type.

To enable, set
```lua
require("cmp").setup({
  view = {
    entries = {
      follow_cursor = true
    }
  }
})
```

Original source at 7569056388

Closes #1660

Co-authored-by: lvimuser <109605931+lvimuser@users.noreply.github.com>

* doc: add view.follow_cursor option to docs

---------

Co-authored-by: lvimuser <109605931+lvimuser@users.noreply.github.com>
This commit is contained in:
mcauley-penney
2024-03-30 23:46:16 -07:00
committed by GitHub
parent 97dc716fc9
commit 7aa3f71932
4 changed files with 14 additions and 2 deletions

View File

@@ -161,9 +161,12 @@ custom_entries_view.open = function(self, offset, entries)
height = height ~= 0 and height or #self.entries
height = math.min(height, #self.entries)
local delta = 0
if not config.get().view.entries.follow_cursor then
local cursor_before_line = api.get_cursor_before_line()
delta = vim.fn.strdisplaywidth(cursor_before_line:sub(self.offset))
end
local pos = api.get_screen_cursor()
local cursor_before_line = api.get_cursor_before_line()
local delta = vim.fn.strdisplaywidth(cursor_before_line:sub(self.offset))
local row, col = pos[1], pos[2] - delta - 1
local border_info = window.get_border_info({ style = completion })