From fbead62967e3815abd4cd1c7cad1a0d88be21fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20SALVI?= Date: Fri, 28 Mar 2025 02:47:53 +0100 Subject: [PATCH] add nix lsp and formatter --- lua/config/init.lua | 1 + lua/config/lsp/lua.lua | 13 +++++----- lua/config/lsp/nix.lua | 59 ++++++++++++++++++++++++++++++++++++++++++ lua/config/lsp/php.lua | 2 +- lua/plugins/mason.lua | 38 +++++++++++++-------------- 5 files changed, 87 insertions(+), 26 deletions(-) create mode 100644 lua/config/lsp/nix.lua diff --git a/lua/config/init.lua b/lua/config/init.lua index fca6d79..d6f935c 100644 --- a/lua/config/init.lua +++ b/lua/config/init.lua @@ -18,3 +18,4 @@ require("config/lsp/bash") require("config/lsp/lua") require("config/lsp/web") require("config/lsp/php") +require("config/lsp/nix") diff --git a/lua/config/lsp/lua.lua b/lua/config/lsp/lua.lua index 8b630d9..de842c9 100644 --- a/lua/config/lsp/lua.lua +++ b/lua/config/lsp/lua.lua @@ -7,18 +7,15 @@ local ok, mason_lspconfig, mason_tool_installer, lspconfig, conform, lint = pcal end) if not ok then - return + return end mason_lspconfig.setup({ - ensure_installed = { "lua_ls" }, -}) - -mason_tool_installer.setup({ - ensure_installed = { "stylua", "luacheck" }, + ensure_installed = { "lua_ls", }, }) lspconfig.lua_ls.setup({ + cmd = { "lua-language-server" }, -- capabilities = cmp_nvim_lsp.default_capabilities() capabilities = require("config/lsp/lsp-capabilities"), on_attach = require("config/lsp/lsp-attach"), @@ -39,6 +36,10 @@ lspconfig.lua_ls.setup({ }, }) +mason_tool_installer.setup({ + ensure_installed = { "stylua", "luacheck" }, +}) + conform.setup({ formatters_by_ft = { lua = { "stylua" }, diff --git a/lua/config/lsp/nix.lua b/lua/config/lsp/nix.lua new file mode 100644 index 0000000..48a38b6 --- /dev/null +++ b/lua/config/lsp/nix.lua @@ -0,0 +1,59 @@ +local ok, lspconfig, conform, lint = pcall(function() + return + require("lspconfig"), + require("conform"), + require("lint") +end) + +if not ok then + return +end + +lspconfig.nixd.setup({ + -- capabilities = cmp_nvim_lsp.default_capabilities() + capabilities = require("config/lsp/lsp-capabilities"), + on_attach = require("config/lsp/lsp-attach"), + settings = { + nixd = { + nixpkgs = { + expr = "import { }", + }, + -- formatting = { + -- command = { "nixfmt" }, + -- }, + }, + }, +}) + +-- conform.setup({ +-- formatters_by_ft = { +-- nix = { "nixfmt" }, +-- }, +-- format_on_save = { +-- async = false, +-- timeout_ms = 500, +-- lsp_format = "fallback", +-- }, +-- }) +-- +-- vim.keymap.set({ "n", "v" }, "lf", function() +-- conform.format({ +-- async = false, +-- timeout_ms = 500, +-- lsp_format = "fallback", +-- }) +-- end, { desc = "Format" }) + +-- lint.linters_by_ft = { +-- lua = { "luacheck" }, +-- } +-- +-- vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { +-- callback = function() +-- lint.try_lint() +-- end, +-- }) +-- +-- vim.keymap.set("n", "ll", function() +-- lint.try_lint() +-- end, { desc = "Lint" }) diff --git a/lua/config/lsp/php.lua b/lua/config/lsp/php.lua index 23cea51..7ba4eb4 100644 --- a/lua/config/lsp/php.lua +++ b/lua/config/lsp/php.lua @@ -13,7 +13,7 @@ end mason_lspconfig.setup({ ensure_installed = { "intelephense", - "phpactor", + --- "phpactor", }, }) diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 5b99617..723fe48 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -1,21 +1,21 @@ return { - "williamboman/mason.nvim", - dependencies = { - "williamboman/mason-lspconfig.nvim", - "WhoIsSethDaniel/mason-tool-installer.nvim", - { - "neovim/nvim-lspconfig", - event = { "BufReadPre", "BufNewFile" }, - dependencies = { - { - "stevearc/conform.nvim", - event = { "BufReadPre", "BufNewFile" }, - }, - { - "mfussenegger/nvim-lint", - event = { "BufReadPre", "BufNewFile" }, - }, - }, - }, - }, + "williamboman/mason.nvim", + dependencies = { + "williamboman/mason-lspconfig.nvim", + "WhoIsSethDaniel/mason-tool-installer.nvim", + { + "neovim/nvim-lspconfig", + event = { "BufReadPre", "BufNewFile" }, + dependencies = { + { + "stevearc/conform.nvim", + event = { "BufReadPre", "BufNewFile" }, + }, + { + "mfussenegger/nvim-lint", + event = { "BufReadPre", "BufNewFile" }, + }, + }, + }, + }, }