aboutsummaryrefslogtreecommitdiff
path: root/lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua
diff options
context:
space:
mode:
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.lua301
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({})
+
+
+
+
+
+
+
+