From 787ed309f92d9b9be00a7500e4bf516cff41b859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hamal=20Dvo=C5=99=C3=A1k?= Date: Mon, 13 Jan 2025 14:06:38 +0100 Subject: [PATCH] Use ruff --- lua/config/format.lua | 1 - lua/config/lsp/init.lua | 2 ++ lua/config/lsp/pyright.lua | 4 ---- lua/config/lsp/ruff.lua | 28 ++++++++++++++++++++++++++++ 4 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 lua/config/lsp/ruff.lua diff --git a/lua/config/format.lua b/lua/config/format.lua index 4496014..7b77071 100644 --- a/lua/config/format.lua +++ b/lua/config/format.lua @@ -2,7 +2,6 @@ require('nvim-format-buffer').setup({ verbose = false, format_rules = { { pattern = { '*.c', '*.h' }, command = 'clang-format' }, - { pattern = { '*.py', '*.pyi' }, command = 'black -q --stdin-filename % - 2>/dev/null | isort -q - 2>/dev/null' }, { pattern = { '*.js', '*.mjs', '*.ts', '*.mts', '*.tsx', '*.vue', '*.css' }, command = function() diff --git a/lua/config/lsp/init.lua b/lua/config/lsp/init.lua index edbbbf8..dd0c215 100644 --- a/lua/config/lsp/init.lua +++ b/lua/config/lsp/init.lua @@ -2,6 +2,7 @@ require('vim.lsp.log').set_format_func(vim.inspect) -- vim.lsp.set_log_level("debug") require("config.lsp.pyright") +require("config.lsp.ruff") -- require("config.lsp.pylsp") -- require("config.lsp.typescript") require("config.lsp.clangd") @@ -26,6 +27,7 @@ local function keymappings(_, bufnr) keymap("n", "gh", "lua vim.lsp.buf.signature_help()", opts) keymap("n", "gI", "lua vim.lsp.buf.implementation()", opts) keymap("n", "gb", "lua vim.lsp.buf.type_definition()", opts) + keymap("n", "ca", "lua vim.lsp.buf.code_action()", opts) keymap("n", "gl", "lua vim.diagnostic.reset()", opts) diff --git a/lua/config/lsp/pyright.lua b/lua/config/lsp/pyright.lua index fb24d92..26b059d 100644 --- a/lua/config/lsp/pyright.lua +++ b/lua/config/lsp/pyright.lua @@ -3,11 +3,7 @@ local cmd = { bin_name, "--stdio", } local root_files = { "pyproject.toml", - "setup.py", - "setup.cfg", "requirements.txt", - "Pipfile", - "pyrightconfig.json", ".git", } diff --git a/lua/config/lsp/ruff.lua b/lua/config/lsp/ruff.lua new file mode 100644 index 0000000..56019fd --- /dev/null +++ b/lua/config/lsp/ruff.lua @@ -0,0 +1,28 @@ +local bin_name = "ruff" +local cmd = { bin_name, "server", } + +local root_files = { + "pyproject.toml", + "requirements.txt", + ".git", +} + +vim.api.nvim_create_autocmd("FileType", { + pattern = "python", + callback = function() + vim.lsp.start({ + name = "ruff-server", + cmd = cmd, + root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]), + settings = { + }, + }) + + vim.api.nvim_create_autocmd("BufWritePre", { + pattern = { "*.py", "*.pyi" }, + callback = function() + vim.lsp.buf.format({ timeout_ms = 2000 }) + end, + }) + end, +})