WIP: Telescope LSP autocomplete

This commit is contained in:
Joseph Ferano 2022-12-21 02:45:26 +07:00
parent 064e282804
commit 4c5f638171
2 changed files with 75 additions and 6 deletions

View File

@ -7,7 +7,8 @@ set.wrap = false
set.number = true set.relativenumber = true set.ignorecase = true set.smartcase = true set.termguicolors = true set.swapfile = false set.backup = false set.undodir = os.getenv("XDG_CACHE_HOME") .. "/nvim/undo" set.undofile = true set.hlsearch = false set.number = true set.relativenumber = true set.ignorecase = true set.smartcase = true set.termguicolors = true set.swapfile = false set.backup = false set.undodir = os.getenv("XDG_CACHE_HOME") .. "/nvim/undo" set.undofile = true set.hlsearch = false
set.incsearch = true set.incsearch = true
set.cursorline = true set.cursorline = true
set.cmdheight = 0 -- set.cmdheight = 0
set.cmdheight = 1
set.mouse = 'a' set.mouse = 'a'
set.splitright = true set.splitright = true
set.splitbelow = true set.splitbelow = true
@ -81,4 +82,76 @@ map('n', '<C-l>', '<C-w>l', {})
-- --
-- neogit.setup {} -- neogit.setup {}
vim.keymap.set("n", "<leader>tw", ":set wrap!<CR>") map("n", "<leader>tw", ":set wrap!<CR>")
function get_lsp_client_info()
-- local info = vim.lsp.buf.completion()
local pickers = require "telescope.pickers"
local finders = require "telescope.finders"
local previewers = require "telescope.previewers"
local conf = require("telescope.config").values
local params = vim.lsp.util.make_position_params()
opts = opts or {}
local comp_text = {}
for _, client in pairs(vim.lsp.buf_get_clients(0)) do
client.request('textDocument/completion', params, function(arg1, arg2, arg3, arg4)
local i = 0
for key,value in pairs(arg2.items) do
if value.textEdit.newText ~= nil and value.textEdit.newText ~= "" and i < 100 then
table.insert(comp_text, value.textEdit.newText)
i = i + 1
end
end
pickers.new(opts, {
prompt_title = "Lsp autocomplete",
finder = finders.new_table {
-- results = { "red", "green", "blue" }
results = comp_text
},
previewer = previewers.new_buffer_previewer(
{
title = "LSP Documentation",
define_preview = function(self, entry, status)
return "DO IT"
end
}
),
sorter = conf.generic_sorter(opts),
}):find()
end)
end
end
map('i', '<C-y>', get_lsp_client_info)
-- _request('textDocument/completion', params, function(err, response)
-- if err or response == nil then
-- return args.abort()
-- end
-- args.callback(compe.helper.convert_lsp({
-- keyword_pattern_offset = args.keyword_pattern_offset,
-- context = args.context,
-- request = params,
-- response = response,
-- }))
-- end)
--
-- function Source._request(self, params, callback)
-- local params = vim.lsp.util.make_position_params()
-- if self.request_ids['textDocument/completion'] ~= nil then
-- self.client.cancel_request(self.request_ids['textDocument/completion'])
-- self.request_ids['textDocument/completion'] = nil
-- end
--
-- local _, request_id
-- _, request_id = self.client.request('textDocument/completion', params, function(arg1, arg2, arg3, arg4)
-- print("hello1")
-- if self.request_ids['textDocument/completion'] ~= request_id then
-- return
-- end
-- print("hello2")
-- end)
-- self.request_ids['textDocument/completion'] = request_id
-- end
--

View File

@ -124,10 +124,6 @@ packer.startup(function(use)
config = function() config = function()
local cmp = require('cmp') local cmp = require('cmp')
cmp.setup({ cmp.setup({
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
completion = { completion = {
autocomplete = false autocomplete = false
}, },