Configure LSPs
This commit is contained in:
parent
ca1dfea5d8
commit
0752ab5cc3
|
@ -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" }
|
||||||
}
|
}
|
|
@ -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
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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",
|
||||||
|
|
Loading…
Reference in a new issue