From ac77d0429c843ca9be9c9ec50c61a4d37dbce7a7 Mon Sep 17 00:00:00 2001 From: Dhruv Manilawala Date: Fri, 22 Mar 2024 11:13:32 +0530 Subject: feat: add the new Ruff language server (#3084) --- lua/lspconfig/server_configurations/ruff.lua | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 lua/lspconfig/server_configurations/ruff.lua (limited to 'lua') diff --git a/lua/lspconfig/server_configurations/ruff.lua b/lua/lspconfig/server_configurations/ruff.lua new file mode 100644 index 00000000..09a494cc --- /dev/null +++ b/lua/lspconfig/server_configurations/ruff.lua @@ -0,0 +1,41 @@ +local util = require 'lspconfig.util' + +local root_files = { + 'pyproject.toml', + 'ruff.toml', + '.ruff.toml', +} + +return { + default_config = { + cmd = { 'ruff', 'server', '--preview' }, + filetypes = { 'python' }, + root_dir = util.root_pattern(unpack(root_files)) or util.find_git_ancestor(), + single_file_support = true, + settings = {}, + }, + docs = { + description = [[ +https://github.com/astral-sh/ruff + +A Language Server Protocol implementation for Ruff, an extremely fast Python linter and code formatter, written in Rust. It can be installed via pip. + +```sh +pip install ruff +``` + +_Requires Ruff v0.3.3 or later._ + +This is the new Rust-based version of the original `ruff-lsp` implementation. It's currently in alpha, meaning that some features are under development. Currently, the following capabilities are supported: + +1. Diagnostics +2. Code actions +3. Formatting +4. Range Formatting + +Please note that the `ruff-lsp` server will continue to be maintained until further notice. + + ]], + root_dir = [[root_pattern("pyproject.toml", "ruff.toml", ".ruff.toml", ".git")]], + }, +} -- cgit v1.2.3-70-g09d2