Browse Source

Wed 27 Jul 2022 19:06:44 ACST

master
Tovi Jaeschke-Rogers 2 years ago
parent
commit
1ccb8eabf9
6 changed files with 60 additions and 168 deletions
  1. +58
    -54
      .config/nvim/lua/config/cmp.lua
  2. +1
    -0
      .config/nvim/lua/config/lsp/keymaps.lua
  3. +0
    -52
      .config/nvim/lua/lsp/init.lua
  4. +0
    -26
      .config/nvim/lua/lsp/installer.lua
  5. +0
    -36
      .config/nvim/lua/lsp/keymaps.lua
  6. +1
    -0
      .config/nvim/plugin/telescope.lua

+ 58
- 54
.config/nvim/lua/config/cmp.lua View File

@ -29,8 +29,8 @@ function M.setup()
})[entry.source.name]
return vim_item
end,
},
mapping = {
},
mapping = {
["<C-k>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
["<C-j>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-4), { "i", "c" }),
@ -38,77 +38,81 @@ function M.setup()
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
["<C-e>"] = cmp.mapping { i = cmp.mapping.close(), c = cmp.mapping.close() },
["<CR>"] = cmp.mapping {
i = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Replace, select = false },
c = function(fallback)
i = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Replace, select = false },
c = function(fallback)
if cmp.visible() then
cmp.confirm { behavior = cmp.ConfirmBehavior.Replace, select = false }
else
fallback()
end
end,
},
["<Tab>"] = cmp.mapping(
function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, {
"i",
"s",
"c",
}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.confirm { behavior = cmp.ConfirmBehavior.Replace, select = false }
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
fallback()
end
end,
},
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, {
"i",
"s",
"c",
}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, {
"i",
"s",
"c",
}),
},
sources = {
{ name = "nvim_lsp" },
{ name = "treesitter" },
{ name = "buffer" },
{ name = "luasnip" },
{ name = "nvim_lua" },
{ name = "path" },
-- { name = "spell" },
-- { name = "emoji" },
-- { name = "calc" },
},
window = {
documentation = {
border = { "", "", "", "", "", "", "", "" },
winhighlight = "NormalFloat:NormalFloat,FloatBorder:TelescopeBorder",
}),
},
sources = {
{ name = "nvim_lsp" },
{ name = "treesitter" },
{ name = "buffer" },
{ name = "luasnip" },
{ name = "nvim_lua" },
{ name = "path" },
-- { name = "spell" },
-- { name = "emoji" },
-- { name = "calc" },
},
window = {
documentation = {
border = { "", "", "", "", "", "", "", "" },
winhighlight = "NormalFloat:NormalFloat,FloatBorder:TelescopeBorder",
},
},
},
}
-- Use buffer source for `/`
cmp.setup.cmdline("/", {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = "buffer" },
},
})
-- Use cmdline & path source for ':'
cmp.setup.cmdline(":", {
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
{ name = 'path' }
}, {
{ name = "cmdline" },
}),
{ name = 'cmdline' }
})
})
end


+ 1
- 0
.config/nvim/lua/config/lsp/keymaps.lua View File

@ -23,6 +23,7 @@ local function keymappings(client, bufnr)
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
-- vim.keymap.set("n", "gr", function() vim.lsp.buf.references({ includeDeclaration = false }) end, opts)
vim.keymap.set("n", "gh", vim.lsp.buf.signature_help, opts)
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
vim.keymap.set("n", "gT", vim.lsp.buf.type_definition, opts)


+ 0
- 52
.config/nvim/lua/lsp/init.lua View File

@ -1,52 +0,0 @@
local M = {}
local servers = {
gopls = {},
html = {},
jsonls = {},
pyright = {},
tsserver = {},
vimls = {},
dartls = {},
dockerls = {},
intelephense = {},
sqlls = {},
volar = {},
}
local function on_attach(client, bufnr)
-- Enable completion triggered by <C-X><C-O>
-- See `:help omnifunc` and `:help ins-completion` for more information.
vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
-- Use LSP as the handler for formatexpr.
-- See `:help formatexpr` for more information.
vim.api.nvim_buf_set_option(0, "formatexpr", "v:lua.vim.lsp.formatexpr()")
-- Configure key mappings
require("lsp.keymaps").setup(client, bufnr)
end
local lsp_signature = require "lsp_signature"
lsp_signature.setup {
bind = true,
handler_opts = {
border = "rounded",
},
}
local capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities())
local opts = {
on_attach = on_attach,
capabilities = cababilities,
flags = {
debounce_text_changes = 150,
},
}
function M.setup()
require("lsp.installer").setup(servers, opts)
end
return M

+ 0
- 26
.config/nvim/lua/lsp/installer.lua View File

@ -1,26 +0,0 @@
local lsp_installer_servers = require "nvim-lsp-installer.servers"
local utils = require "utils"
local M = {}
function M.setup(servers, options)
for server_name, _ in pairs(servers) do
local server_available, server = lsp_installer_servers.get_server(server_name)
if server_available then
server:on_ready(function()
local opts = vim.tbl_deep_extend("force", options, servers[server.name] or {})
server:setup(opts)
end)
if not server:is_installed() then
utils.info("Installing " .. server.name)
server:install()
end
else
utils.error(server)
end
end
end
return M

+ 0
- 36
.config/nvim/lua/lsp/keymaps.lua View File

@ -1,36 +0,0 @@
local M = {}
local keymap = vim.api.nvim_set_keymap
local buf_keymap = vim.api.nvim_buf_set_keymap
local function keymappings(client, bufnr)
local opts = { noremap = true, silent = true }
-- Key mappings
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
vim.keymap.set("n", "[e", function () vim.diagnostic.goto_prev({severity = vim.diagnostic.severity.ERROR}) end, opts)
vim.keymap.set("n", "]e", function () vim.diagnostic.goto_next({severity = vim.diagnostic.severity.ERROR}) end, opts)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
vim.keymap.set("n", "K", vim.lsp.buf.code_action, opts)
vim.keymap.set("n", "<leader>of", vim.diagnostic.open_float, opts)
if client.resolved_capabilities.document_formatting then
vim.keymap.set("n", "<leader>ff", vim.lsp.buf.formatting, opts)
end
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
vim.keymap.set("n", "gh", vim.lsp.buf.signature_help, opts)
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
vim.keymap.set("n", "gT", vim.lsp.buf.type_definition, opts)
end
function M.setup(client, bufnr)
keymappings(client, bufnr)
end
return M

+ 1
- 0
.config/nvim/plugin/telescope.lua View File

@ -57,4 +57,5 @@ end, options)
-- end, options)
vim.keymap.set('n', '<leader>fb', require('telescope.builtin').buffers, options)
vim.keymap.set('n', 'gr', require('telescope.builtin').lsp_references, options)

Loading…
Cancel
Save