Configure LSPs

This commit is contained in:
Maciej Jur 2023-07-12 19:15:14 +02:00
parent ca1dfea5d8
commit 0752ab5cc3
No known key found for this signature in database
GPG key ID: ADA3BF323198C639
4 changed files with 51 additions and 37 deletions

View file

@ -19,10 +19,12 @@
"nvim-dap": { "branch": "master", "commit": "3bde6f786057fa29d8356559b2ae3a52d9317fba" }, "nvim-dap": { "branch": "master", "commit": "3bde6f786057fa29d8356559b2ae3a52d9317fba" },
"nvim-dap-ui": { "branch": "master", "commit": "c020f660b02772f9f3d11f599fefad3268628a9e" }, "nvim-dap-ui": { "branch": "master", "commit": "c020f660b02772f9f3d11f599fefad3268628a9e" },
"nvim-lspconfig": { "branch": "master", "commit": "deade69789089c3da15237697156334fb3e943f0" }, "nvim-lspconfig": { "branch": "master", "commit": "deade69789089c3da15237697156334fb3e943f0" },
"nvim-treesitter": { "branch": "master", "commit": "f2efc5f35743b8383a1b50f727faae94658506d5" }, "nvim-treesitter": { "branch": "master", "commit": "b4b94ec387525cb9df4b56eb1a8bf33231a0df47" },
"nvim-web-devicons": { "branch": "master", "commit": "9ab9b0b894b2388a9dbcdee5f00ce72e25d85bf9" }, "nvim-web-devicons": { "branch": "master", "commit": "9ab9b0b894b2388a9dbcdee5f00ce72e25d85bf9" },
"plenary.nvim": { "branch": "master", "commit": "bda256fab0eb66a15e8190937e417e6a14ee5d72" }, "plenary.nvim": { "branch": "master", "commit": "bda256fab0eb66a15e8190937e417e6a14ee5d72" },
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
"rust-tools.nvim": { "branch": "master", "commit": "71d2cf67b5ed120a0e31b2c8adb210dd2834242f" }, "rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" },
"telescope.nvim": { "branch": "master", "commit": "276362a8020c6e94c7a76d49aa00d4923b0c02f3" } "telescope.nvim": { "branch": "master", "commit": "276362a8020c6e94c7a76d49aa00d4923b0c02f3" },
"tree-sitter-typst": { "branch": "main", "commit": "2e66ef4b798a26f0b82144143711f3f7a9e8ea35" },
"typst.vim": { "branch": "main", "commit": "5c1a933d6e8178d8d2596165b1709a7605b26d11" }
} }

View file

@ -1,28 +0,0 @@
return function()
local configs = require("lspconfig")
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local on_attach = function(client, buf_number)
local buf_opts = { noremap = true, silent = true, buffer = buf_number }
vim.keymap.set('n', 'K', vim.lsp.buf.hover, buf_opts)
end
configs.lua_ls.setup({
capabilities = capabilities,
on_attach = on_attach,
settings = {
Lua = {
diagnostics = {
globals = { "vim" }
}
}
},
})
local opts = { on_attach = on_attach, capabilities = capabilities }
configs.tsserver.setup(opts)
configs.astro.setup(opts)
configs.svelte.setup(opts)
end

View file

@ -18,6 +18,17 @@ vim.filetype.add({
} }
}) })
-- LSP hotkeys
local cmds_lsp = vim.api.nvim_create_augroup("cmds_lsp", { clear = true })
vim.api.nvim_create_autocmd("LspAttach", {
group = cmds_lsp,
desc = "LSP actions",
callback = function()
local buf_opts = { noremap = true, silent = true, buffer = true }
vim.keymap.set('n', 'K', vim.lsp.buf.hover, buf_opts)
end
})
-- Workaround: https://github.com/neovim/neovim/issues/21856 -- Workaround: https://github.com/neovim/neovim/issues/21856
vim.api.nvim_create_autocmd({ "VimLeave" }, { vim.api.nvim_create_autocmd({ "VimLeave" }, {
callback = function() callback = function()

View file

@ -29,8 +29,8 @@ return {
"nix", "nix",
-- haskell -- haskell
"haskell", "haskell",
-- latex -- literate
"latex", "bibtex", "latex", "bibtex", -- "typst",
-- misc -- misc
"gitignore", "diff", "dockerfile", "json", "yaml", "regex", "gitignore", "diff", "dockerfile", "json", "yaml", "regex",
}, },
@ -44,10 +44,9 @@ return {
vim.treesitter.language.register("markdown", "mdx") vim.treesitter.language.register("markdown", "mdx")
end, end,
}, },
-- LSP Configs -- LSP
{ {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
config = require "configs/lsp",
}, },
-- Snippet engine -- Snippet engine
{ {
@ -95,17 +94,42 @@ return {
{ {
"williamboman/mason-lspconfig.nvim", "williamboman/mason-lspconfig.nvim",
config = function() config = function()
require("mason-lspconfig").setup({ local mason = require "mason-lspconfig"
mason.setup({
automatic_installation = true, automatic_installation = true,
ensure_installed = { ensure_installed = {
"lua_ls", -- Lua
"rust_analyzer", -- Rust "rust_analyzer", -- Rust
"hls", -- Haskell "hls", -- Haskell
"html", -- HTML
"cssls", -- CSS / SCSS
"tsserver", -- TypeScript "tsserver", -- TypeScript
"astro", -- Astro "astro", -- Astro
"svelte", -- Svelte "svelte", -- Svelte
"lua_ls", -- Lua "pyright", -- Python
"typst_lsp", -- Typst
}, },
}) })
local lsp = require "lspconfig"
local capabilities = require("cmp_nvim_lsp").default_capabilities()
mason.setup_handlers({
function(server)
lsp[server].setup({
single_file_support = true,
capabilities = capabilities,
})
end,
["lua_ls"] = function()
lsp.lua_ls.setup({
single_file_support = true,
capabilities = capabilities,
settings = {
Lua = { diagnostics = { globals = { "vim" } } }
},
})
end,
})
end, end,
dependencies = { dependencies = {
"williamboman/mason.nvim", "williamboman/mason.nvim",
@ -141,6 +165,11 @@ return {
}, },
branch = "1.x.x", branch = "1.x.x",
}, },
-- Typst
{
"kaarmu/typst.vim",
ft = "typst",
},
-- File tree -- File tree
{ {
"nvim-neo-tree/neo-tree.nvim", "nvim-neo-tree/neo-tree.nvim",