Configure LSPs
This commit is contained in:
parent
ca1dfea5d8
commit
0752ab5cc3
|
@ -19,10 +19,12 @@
|
|||
"nvim-dap": { "branch": "master", "commit": "3bde6f786057fa29d8356559b2ae3a52d9317fba" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "c020f660b02772f9f3d11f599fefad3268628a9e" },
|
||||
"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" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "bda256fab0eb66a15e8190937e417e6a14ee5d72" },
|
||||
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
|
||||
"rust-tools.nvim": { "branch": "master", "commit": "71d2cf67b5ed120a0e31b2c8adb210dd2834242f" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "276362a8020c6e94c7a76d49aa00d4923b0c02f3" }
|
||||
"rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" },
|
||||
"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
|
||||
vim.api.nvim_create_autocmd({ "VimLeave" }, {
|
||||
callback = function()
|
||||
|
|
|
@ -29,8 +29,8 @@ return {
|
|||
"nix",
|
||||
-- haskell
|
||||
"haskell",
|
||||
-- latex
|
||||
"latex", "bibtex",
|
||||
-- literate
|
||||
"latex", "bibtex", -- "typst",
|
||||
-- misc
|
||||
"gitignore", "diff", "dockerfile", "json", "yaml", "regex",
|
||||
},
|
||||
|
@ -44,10 +44,9 @@ return {
|
|||
vim.treesitter.language.register("markdown", "mdx")
|
||||
end,
|
||||
},
|
||||
-- LSP Configs
|
||||
-- LSP
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
config = require "configs/lsp",
|
||||
},
|
||||
-- Snippet engine
|
||||
{
|
||||
|
@ -95,17 +94,42 @@ return {
|
|||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
config = function()
|
||||
require("mason-lspconfig").setup({
|
||||
local mason = require "mason-lspconfig"
|
||||
mason.setup({
|
||||
automatic_installation = true,
|
||||
ensure_installed = {
|
||||
"lua_ls", -- Lua
|
||||
"rust_analyzer", -- Rust
|
||||
"hls", -- Haskell
|
||||
"html", -- HTML
|
||||
"cssls", -- CSS / SCSS
|
||||
"tsserver", -- TypeScript
|
||||
"astro", -- Astro
|
||||
"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,
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
|
@ -141,6 +165,11 @@ return {
|
|||
},
|
||||
branch = "1.x.x",
|
||||
},
|
||||
-- Typst
|
||||
{
|
||||
"kaarmu/typst.vim",
|
||||
ft = "typst",
|
||||
},
|
||||
-- File tree
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
|
|
Loading…
Reference in a new issue