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..b33051a 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") @@ -27,6 +28,8 @@ local function keymappings(_, bufnr) keymap("n", "gI", "lua vim.lsp.buf.implementation()", opts) keymap("n", "gb", "lua vim.lsp.buf.type_definition()", opts) + keymap("n", "ca", "lua require('fzf-lua').lsp_code_actions()", opts) + keymap("n", "gl", "lua vim.diagnostic.reset()", opts) -- api.nvim_set_keymap("i", "", [[pumvisible() ? "\" : "\"]], { noremap = true, expr = true }) 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, +})