From 8bcea5312eb9a7a495a26164470ffb2c871b9eee Mon Sep 17 00:00:00 2001 From: Pratik Tripathy Date: Mon, 20 Oct 2025 16:56:12 +0530 Subject: [PATCH] neovim(python): Use `basedpyright` for LSP & `ruff` for linting & formatting --- common/.config/nvim/lsp/pylsp.lua | 7 ------- common/.config/nvim/lua/core/lsp.lua | 2 +- common/.config/nvim/lua/plugins/formatting.lua | 5 +++-- common/.config/nvim/lua/plugins/linting.lua | 6 +++--- scripts/package-list-brew | 1 + scripts/package-list-os | 2 +- 6 files changed, 9 insertions(+), 14 deletions(-) delete mode 100644 common/.config/nvim/lsp/pylsp.lua diff --git a/common/.config/nvim/lsp/pylsp.lua b/common/.config/nvim/lsp/pylsp.lua deleted file mode 100644 index 84cae12..0000000 --- a/common/.config/nvim/lsp/pylsp.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - cmd = { "pylsp" }, - filetypes = { "python" }, - settings = { - pylsp = {}, - }, -} diff --git a/common/.config/nvim/lua/core/lsp.lua b/common/.config/nvim/lua/core/lsp.lua index 042c4e1..24543f3 100644 --- a/common/.config/nvim/lua/core/lsp.lua +++ b/common/.config/nvim/lua/core/lsp.lua @@ -6,6 +6,7 @@ -- Step 4: Return a lua table containing required lsp config in it -- NOTE: Only LSPs here, NOT linters or formatter vim.lsp.enable({ + "basedpyright", "bashls", "cssls", "docker_compose_language_service", @@ -14,7 +15,6 @@ vim.lsp.enable({ "jsonls", "lua_ls", "marksman", - "pylsp", "taplo", "trivy", "ts_ls", diff --git a/common/.config/nvim/lua/plugins/formatting.lua b/common/.config/nvim/lua/plugins/formatting.lua index 59404d9..3f8723a 100644 --- a/common/.config/nvim/lua/plugins/formatting.lua +++ b/common/.config/nvim/lua/plugins/formatting.lua @@ -21,11 +21,12 @@ return { lua = { "stylua" }, markdown = { "markdownlint" }, - python = { "black" }, - rust = { "rustfmt" }, + python = { "ruff_fix", "ruff_format", "ruff_organize_imports" }, xml = { "xmllint" }, yaml = { "yamlfmt" }, + rust = { "rustfmt" }, + ["_"] = { "trim_whitespace" }, }, format_on_save = { diff --git a/common/.config/nvim/lua/plugins/linting.lua b/common/.config/nvim/lua/plugins/linting.lua index 7a4e599..159c61c 100644 --- a/common/.config/nvim/lua/plugins/linting.lua +++ b/common/.config/nvim/lua/plugins/linting.lua @@ -8,11 +8,11 @@ return { -- Linters are only required for dynamically typed languages lint.linters_by_ft = { - python = { "pylint" }, - markdown = { "markdownlint" }, - yaml = { "yamllint", "trivy" }, dockerfile = { "hadolint", "trivy" }, + markdown = { "markdownlint" }, + python = { "ruff" }, terraform = { "trivy" }, + yaml = { "yamllint", "trivy" }, ["*"] = { "codespell" }, } diff --git a/scripts/package-list-brew b/scripts/package-list-brew index 729c703..c4b74f7 100644 --- a/scripts/package-list-brew +++ b/scripts/package-list-brew @@ -20,6 +20,7 @@ neovim prettierd python-lsp-server python@3.12 +basedpyright rclone sccache shodan diff --git a/scripts/package-list-os b/scripts/package-list-os index 4ad5b16..f3216cf 100644 --- a/scripts/package-list-os +++ b/scripts/package-list-os @@ -21,10 +21,10 @@ node nodejs-bash-language-server npm podman -pylint python3 python3-pip ripgrep +ruff sccache shellcheck shfmt