From fcaf13a267b7bacd26ad8b2e952a793645e42bba Mon Sep 17 00:00:00 2001 From: Akshay Date: Mon, 15 Feb 2021 14:22:32 +0530 Subject: init --- lua/lsp.lua | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ lua/treesitter.lua | 18 +++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 lua/lsp.lua create mode 100644 lua/treesitter.lua (limited to 'lua') diff --git a/lua/lsp.lua b/lua/lsp.lua new file mode 100644 index 0000000..f921c70 --- /dev/null +++ b/lua/lsp.lua @@ -0,0 +1,59 @@ +local nvim_lsp = require('lspconfig') +local on_attach = function(client, bufnr) + local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end + local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + local opts = { noremap=true, silent=true } + buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) + buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) + buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) + buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) + buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) + buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) + buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) + buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) + buf_set_keymap('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) + buf_set_keymap('n', '[g', 'lua vim.lsp.diagnostic.goto_prev()', opts) + buf_set_keymap('n', ']g', 'lua vim.lsp.diagnostic.goto_next()', opts) + buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) + + -- Set some keybinds conditional on server capabilities + if client.resolved_capabilities.document_formatting then + buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) + elseif client.resolved_capabilities.document_range_formatting then + buf_set_keymap("n", "f", "lua vim.lsp.buf.range_formatting()", opts) + end +end + +local servers = { "hls", "rnix", "bashls", "pyls" } +for _, lsp in ipairs(servers) do + nvim_lsp[lsp].setup { on_attach = on_attach } +end + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities.textDocument.completion.completionItem.snippetSupport = true + +nvim_lsp.rust_analyzer.setup { + capabilities = capabilities, + settings = { + ["rust-analyzer"] = { + procMacro = { + enable = true + }, + }, + }, +} + +nvim_lsp.ccls.setup { + init_options = { + index = { + threads = 0; + }; + clang = { + excludeArgs = { "-frounding-math"} ; + }; + } +} diff --git a/lua/treesitter.lua b/lua/treesitter.lua new file mode 100644 index 0000000..d503b46 --- /dev/null +++ b/lua/treesitter.lua @@ -0,0 +1,18 @@ +require'nvim-treesitter.configs'.setup { + highlight = { + enable = true, + + }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = "gnn", + node_incremental = "g}", + scope_incremental = "grc", + node_decremental = "g{", + }, + }, + indent = { + enable = false + } +} -- cgit v1.2.3