diff options
Diffstat (limited to 'lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua')
| -rw-r--r-- | lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua | 301 |
1 files changed, 301 insertions, 0 deletions
diff --git a/lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua b/lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua new file mode 100644 index 0000000..dd25d9a --- /dev/null +++ b/lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua @@ -0,0 +1,301 @@ +local lsp_defaults = { + flags = { + debounce_text_changes = 150, + }, + capabilities = require('cmp_nvim_lsp').update_capabilities( + vim.lsp.protocol.make_client_capabilities() + ), + on_attach = function(client, bufnr) + vim.api.nvim_exec_autocmds('User', {pattern = 'LspAttached'}) + end +} + +local lspconfig = require('lspconfig') + +lspconfig.util.default_config = vim.tbl_deep_extend( + 'force', + lspconfig.util.default_config, + lsp_defaults +) + +lspconfig.sumneko_lua.setup({ + single_file_support = true, + on_attach = function(client, bufnr) + print('hello') + lspconfig.util.default_config.on_attach(client, bufnr) + end +}) + +vim.api.nvim_create_autocmd('User', { + pattern = 'LspAttached', + desc = 'LSP actions', + callback = function() + local bufmap = function(mode, lhs, rhs) + local opts = {buffer = true} + vim.keymap.set(mode, lhs, rhs, opts) + end + + -- Displays hover information about the symbol under the cursor + bufmap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>') + + -- Jump to the definition + bufmap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>') + + -- Jump to declaration + bufmap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>') + + -- Lists all the implementations for the symbol under the cursor + bufmap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>') + + -- Jumps to the definition of the type symbol + bufmap('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<cr>') + + -- Lists all the references + bufmap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>') + + -- Displays a function's signature information + bufmap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<cr>') + + -- Renames all references to the symbol under the cursor + bufmap('n', '<F2>', '<cmd>lua vim.lsp.buf.rename()<cr>') + + -- Selects a code action available at the current cursor position + bufmap('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>') + bufmap('x', '<F4>', '<cmd>lua vim.lsp.buf.range_code_action()<cr>') + + -- Show diagnostics in a floating window + bufmap('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<cr>') + + -- Move to the previous diagnostic + bufmap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>') + + -- Move to the next diagnostic + bufmap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>') + end +}) + +-- +---Snippets +-- +require('luasnip.loaders.from_vscode').lazy_load() + +-- +--- Autocompletion/nvim-cmp +-- +vim.opt.completeopt = {'menu', 'menuone', 'noselect'} -- Suggested values for completeopt +local cmp = require('cmp') +local luasnip = require('luasnip') + +local select_opts = {behavior = cmp.SelectBehavior.Select} + +cmp.setup({ + +}) + +snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end +}, + +sources = { + {name = 'path'}, + {name = 'nvim_lsp', keyword_length = 3}, + {name = 'buffer', keyword_length = 3}, + {name = 'luasnip', keyword_length = 2}, +}, + +window = { + documentation = cmp.config.window.bordered() +}, + +formatting = { + fields = {'menu', 'abbr', 'kind'} +}, + +formatting = { + fields = {'menu', 'abbr', 'kind'}, + format = function(entry, item) + local menu_icon = { + nvim_lsp = 'λ', + luasnip = '⋗', + buffer = 'Ω', + path = '🖫', + } + + item.menu = menu_icon[entry.source.name] + return item + end, +}, + +mapping = { + ['<CR>'] = cmp.mapping.confirm({select = true}), +} +['<Up>'] = cmp.mapping.select_prev_item(select_opts), +['<Down>'] = cmp.mapping.select_next_item(select_opts), + +['<C-p>'] = cmp.mapping.select_prev_item(select_opts), +['<C-n>'] = cmp.mapping.select_next_item(select_opts), +['<C-u>'] = cmp.mapping.scroll_docs(-4), +['<C-f>'] = cmp.mapping.scroll_docs(4), +['<C-e>'] = cmp.mapping.abort(), +['<CR>'] = cmp.mapping.confirm({select = true}), +['<C-d>'] = cmp.mapping(function(fallback) + if luasnip.jumpable(1) then + luasnip.jump(1) + else + fallback() + end +end, {'i', 's'}), +['<C-b>'] = cmp.mapping(function(fallback) + if luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end +end, {'i', 's'}), + +vim.opt.completeopt = {'menu', 'menuone', 'noselect'} + +require('luasnip.loaders.from_vscode').lazy_load() + +local cmp = require('cmp') +local luasnip = require('luasnip') + +local select_opts = {behavior = cmp.SelectBehavior.Select} + +cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end + }, + sources = { + {name = 'path'}, + {name = 'nvim_lsp', keyword_length = 3}, + {name = 'buffer', keyword_length = 3}, + {name = 'luasnip', keyword_length = 2}, + }, + window = { + documentation = cmp.config.window.bordered() + }, + formatting = { + fields = {'menu', 'abbr', 'kind'}, + format = function(entry, item) + local menu_icon = { + nvim_lsp = 'λ', + luasnip = '⋗', + buffer = 'Ω', + path = '🖫', + } + + item.menu = menu_icon[entry.source.name] + return item + end, + }, + mapping = { + ['<Up>'] = cmp.mapping.select_prev_item(select_opts), + ['<Down>'] = cmp.mapping.select_next_item(select_opts), + + ['<C-p>'] = cmp.mapping.select_prev_item(select_opts), + ['<C-n>'] = cmp.mapping.select_next_item(select_opts), + + ['<C-u>'] = cmp.mapping.scroll_docs(-4), + ['<C-f>'] = cmp.mapping.scroll_docs(4), + + ['<C-e>'] = cmp.mapping.abort(), + ['<CR>'] = cmp.mapping.confirm({select = true}), + + ['<C-d>'] = cmp.mapping(function(fallback) + if luasnip.jumpable(1) then + luasnip.jump(1) + else + fallback() + end + end, {'i', 's'}), + + ['<C-b>'] = cmp.mapping(function(fallback) + if luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, {'i', 's'}), + + ['<Tab>'] = cmp.mapping(function(fallback) + local col = vim.fn.col('.') - 1 + + if cmp.visible() then + cmp.select_next_item(select_opts) + elseif col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then + fallback() + else + cmp.complete() + end + end, {'i', 's'}), + + ['<S-Tab>'] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item(select_opts) + else + fallback() + end + end, {'i', 's'}), + }, +}) + + +vim.diagnostic.config({ + virtual_text = false, + severity_sort = true, + float = { + border = 'rounded', + source = 'always', + header = '', + prefix = '', + }, +}) + +vim.lsp.handlers['textDocument/hover'] = vim.lsp.with( + vim.lsp.handlers.hover, + {border = 'rounded'} +) + +vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with( + vim.lsp.handlers.signature_help, + {border = 'rounded'} +) + +require('mason').setup() +require('mason-lspconfig').setup() + + +local lsp_defaults = { + flags = { + debounce_text_changes = 150, + }, + capabilities = require('cmp_nvim_lsp').update_capabilities( + vim.lsp.protocol.make_client_capabilities() + ), + on_attach = function(client, bufnr) + vim.api.nvim_exec_autocmds('User', {pattern = 'LspAttached'}) + end +} + +local lspconfig = require('lspconfig') + +lspconfig.util.default_config = vim.tbl_deep_extend( + 'force', + lspconfig.util.default_config, + lsp_defaults +) + +lspconfig.sumneko_lua.setup({}) + + + + + + + + |
