diff options
Diffstat (limited to 'after')
| -rw-r--r-- | after/plugin/colors.lua | 9 | ||||
| -rw-r--r-- | after/plugin/lsp.lua | 120 | ||||
| -rw-r--r-- | after/plugin/telescope.lua | 6 | ||||
| -rw-r--r-- | after/plugin/treesitter.lua | 21 | 
4 files changed, 74 insertions, 82 deletions
| diff --git a/after/plugin/colors.lua b/after/plugin/colors.lua deleted file mode 100644 index 7c7bd0f..0000000 --- a/after/plugin/colors.lua +++ /dev/null @@ -1,9 +0,0 @@ -function ColorMyPencils(color) -	color = color or 'wal' -	vim.cmd.colorscheme(color) -	vim.api.nvim_set_hl(0, "Normal", { bg = 'none'}) -	vim.api.nvim_set_hl(0, "NormalFloat", { bg = 'none'}) -	vim.api.nvim_set_hl(0, "EndOfBuffer", { bg = 'none'}) -end - -ColorMyPencils() diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua index cfb10e8..7722c1e 100644 --- a/after/plugin/lsp.lua +++ b/after/plugin/lsp.lua @@ -1,59 +1,81 @@ -local lsp = require("lsp-zero") +-- Setup autocomplete/LSP clients +local lspconfig = require('lspconfig') +local lsp_capabilities = require('cmp_nvim_lsp').default_capabilities() -lsp.preset("recommended") +local servers = {"clangd", "zls", "rust_analyzer", "lua_ls"} +  for _, lsp in pairs(servers) do +    lspconfig[lsp].setup { +      capabilities = lsp_capabilities, +      on_attach = onattach, +      flags = {debounce_text_changes = 500} +  } +end -lsp.setup_servers({ -  'clangd', -  'rust_analyzer', -  'lua_ls', -}) +vim.api.nvim_create_autocmd('LspAttach', { +  desc = 'LSP actions', +  callback = function() +    local bufmap = function(mode, lhs, rhs) +      local opts = {buffer = true} +      vim.keymap.set(mode, lhs, rhs, opts) +    end --- Fix Undefined global 'vim' -lsp.nvim_workspace() +    bufmap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>') +    bufmap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>') +    bufmap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>') +    bufmap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>') +    bufmap('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<cr>') +    bufmap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>') +    bufmap('n', 'gs', '<cmd>lua vim.lsp.buf.signature_help()<cr>') +    bufmap('n', '<F2>', '<cmd>lua vim.lsp.buf.rename()<cr>') +    bufmap('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>') +    bufmap('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<cr>') +    bufmap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>') +    bufmap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>') +  end +}) +require('luasnip.loaders.from_vscode').lazy_load()  local cmp = require('cmp') -local cmp_select = {behavior = cmp.SelectBehavior.Select} -local cmp_mappings = lsp.defaults.cmp_mappings({ -  ['<C-p>'] = cmp.mapping.select_prev_item(cmp_select), -  ['<C-n>'] = cmp.mapping.select_next_item(cmp_select), -  ['<C-y>'] = cmp.mapping.confirm({ select = true }), -  ["<C-Space>"] = cmp.mapping.complete(), -}) +local luasnip = require('luasnip') -cmp_mappings['<Tab>'] = nil -cmp_mappings['<S-Tab>'] = nil +local select_opts = {behavior = cmp.SelectBehavior.Select} +cmp.setup({ +  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, +  }, +  snippet = { +    expand = function(args) +      luasnip.lsp_expand(args.body) +    end +  }, +  sources = { +    {name = 'path'}, +    {name = 'nvim_lsp', keyword_length = 1}, +    {name = 'buffer', keyword_length = 3}, +    {name = 'luasnip', keyword_length = 2}, +  }, +  mapping = { +    ['<Up>'] = cmp.mapping.select_prev_item(select_opts), +    ['<Down>'] = cmp.mapping.select_next_item(select_opts), -lsp.setup_nvim_cmp({ -  mapping = cmp_mappings -}) +    ['<C-p>'] = cmp.mapping.select_prev_item(select_opts), +    ['<C-n>'] = cmp.mapping.select_next_item(select_opts), -lsp.set_preferences({ -    suggest_lsp_servers = false, -    sign_icons = { -        error = 'E', -        warn = 'W', -        hint = 'H', -        info = 'I' -    } -}) +    ['<C-u>'] = cmp.mapping.scroll_docs(-4), +    ['<C-d>'] = cmp.mapping.scroll_docs(4), -lsp.on_attach(function(client, bufnr) -  local opts = {buffer = bufnr, remap = false} - -  vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) -  vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) -  vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts) -  vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts) -  vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts) -  vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts) -  vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts) -  vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts) -  vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts) -  vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts) -end) - -lsp.setup() - -vim.diagnostic.config({ -    virtual_text = true +    ['<C-e>'] = cmp.mapping.abort(), +    ['<C-y>'] = cmp.mapping.confirm({select = true}), +    ['<CR>'] = cmp.mapping.confirm({select = false}), +  },  }) diff --git a/after/plugin/telescope.lua b/after/plugin/telescope.lua index 8dae86b..7eeb0a1 100644 --- a/after/plugin/telescope.lua +++ b/after/plugin/telescope.lua @@ -1,4 +1,4 @@ -local builtin = require('telescope.builtin') +local builtin = require "telescope.builtin"  vim.keymap.set('n', '<leader>pf', builtin.find_files, {}) -vim.keymap.set('n', '<C-p>', builtin.git_files, {}) -vim.keymap.set('n', '<C-g>', builtin.live_grep, {}) +vim.keymap.set('n', '<leader>fg', builtin.live_grep, {}) +vim.keymap.set('n', '<leader>ff', builtin.buffers, {}) diff --git a/after/plugin/treesitter.lua b/after/plugin/treesitter.lua deleted file mode 100644 index 86826a0..0000000 --- a/after/plugin/treesitter.lua +++ /dev/null @@ -1,21 +0,0 @@ -require'nvim-treesitter.configs'.setup { -  -- A list of parser names, or "all" (the five listed parsers should always be installed) -  ensure_installed = { "zig", "rust", "c", "lua", "vim", "vimdoc", "query" }, - -  -- Install parsers synchronously (only applied to `ensure_installed`) -  sync_install = false, - -  -- Automatically install missing parsers when entering buffer -  -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally -  auto_install = true, - -  highlight = { -    enable = true, - -    -- Setting this to true will run `:h syntax` and tree-sitter at the same time. -    -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). -    -- Using this option may slow down your editor, and you may see some duplicate highlights. -    -- Instead of true it can also be a list of languages -    additional_vim_regex_highlighting = false, -  }, -} | 
