From cf5d8d92f1904511006a89970349dbf723ae1732 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Fri, 21 Jun 2024 22:52:21 -0400 Subject: update things --- home/config/nvim/lua/lsp.lua | 94 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 home/config/nvim/lua/lsp.lua (limited to 'home/config/nvim/lua/lsp.lua') diff --git a/home/config/nvim/lua/lsp.lua b/home/config/nvim/lua/lsp.lua new file mode 100644 index 0000000..a548518 --- /dev/null +++ b/home/config/nvim/lua/lsp.lua @@ -0,0 +1,94 @@ +local lsp = require('lsp-zero').preset('recommended') + +require('mason').setup({}) +require('mason-lspconfig').setup({ + ensure_installed = { + 'tsserver', + 'eslint', + 'rust_analyzer', + 'clangd', + 'html', + 'cssls', + 'pyright', + 'vimls', + 'yamlls', + 'jdtls', + 'bashls', + 'lua_ls', + }, + handlers = { + lsp.default_setup, + }, +}) + +local cmp = require('cmp') + +local cmp_select = {behavior = cmp.SelectBehavior.Select} +local cmp_mappings = cmp.mapping.preset.insert({ + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.select_next_item(cmp_select), + [''] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping.complete(), +}) + +cmp_mappings[''] = nil +cmp_mappings[''] = nil + +cmp.setup({ + mapping = cmp_mappings +}) + +lsp.set_preferences({ + suggest_lsp_servers = false, + sign_icons = { + error = 'E', + warn = 'W', + hint = 'H', + info = 'I' + } +}) + +lsp.on_attach(function(client, bufnr) + local opts = {buffer = bufnr, remap = false} + local keymap = vim.keymap.set + + keymap("n", "gd", function() vim.lsp.buf.definition() end, opts) + keymap("n", "K", function() vim.lsp.buf.hover() end, opts) + keymap("n", "ls", function() vim.lsp.buf.workspace_symbol() end, opts) + keymap("n", "lf", function() vim.diagnostic.open_float() end, opts) + keymap("n", "[d", function() vim.diagnostic.goto_next() end, opts) + keymap("n", "]d", function() vim.diagnostic.goto_prev() end, opts) + keymap("n", "la", function() vim.lsp.buf.code_action() end, opts) + keymap("n", "lr", function() vim.lsp.buf.references() end, opts) + keymap("n", "ln", function() vim.lsp.buf.rename() end, opts) + keymap("i", "", function() vim.lsp.buf.signature_help() end, opts) +end) + +require('lspconfig/prolog_lsp') + +require('lspconfig').gleam.setup {} + +lsp.configure('prolog_lsp', {force_setup = true}) +lsp.setup() + +require('phpactor').setup { + install = { + branch = "master", + bin = "/usr/bin/phpactor", + php_bin = "php", + composer_bin = "composer", + git_bin = "git", + check_on_startup = "none", + }, + lspconfig = { + enabled = true, + options = {}, + }, +} + +vim.diagnostic.config({ + virtual_text = true +}) + +require("neodev").setup() +require("nvim-surround").setup() -- cgit v1.2.3-freya