feat(pyright): change to ruff

This commit is contained in:
2025-03-28 18:46:58 +01:00
parent c8795c5937
commit c7ec790774
+67 -26
View File
@@ -3,30 +3,69 @@ local utils = require("utils")
---@type ServerConfig ---@type ServerConfig
return { return {
enable = true, enable = true,
mason = { "pyright" }, mason = { "pyright", dependencies = { "ruff" } },
dependencies = { "black", "flake8", "isort" },
linters = { linters = {
{ {
cmd = { cmd = {
"flake8", "ruff",
"--max-line-length=80", "check",
"--max-doc-length=80", "--output-format=json",
"--format", "--line-length=80",
"%(row)d,%(col)d,%(code)s: %(text)s", "--preview",
"--select=YTT,ANN,ASYNC,B,A,COM,C4,DTZ,T10,FIX,FA,ISC,PIE,PYI",
"--extend-select=PT,RET,SIM,TC,I,C90,DOC,D,F,PL,UP,RUF",
"--ignore=D203,D301,D101",
"-q",
"-", "-",
}, },
stdin = true, stdin = true,
stdout = true, stdout = true,
pattern = "^(%d+),(%d+),((%w)%d+): (.*)", json = {
groups = { "lnum", "col", "code", "severity", "message" }, lnum = "location.row",
source = "flake8", end_lnum = "end_location.row",
severity_map = { col = "location.column",
end_col = "end_location.column",
code = "code",
message = "message",
callback = function(diag)
local map = {
YTT = vim.diagnostic.severity.HINT,
ANN = vim.diagnostic.severity.HINT,
ASYNC = vim.diagnostic.severity.HINT,
B = vim.diagnostic.severity.HINT,
A = vim.diagnostic.severity.HINT,
COM = vim.diagnostic.severity.HINT,
C = vim.diagnostic.severity.HINT,
DTZ = vim.diagnostic.severity.HINT,
T = vim.diagnostic.severity.HINT,
FIX = vim.diagnostic.severity.HINT,
FA = vim.diagnostic.severity.HINT,
ISC = vim.diagnostic.severity.HINT,
PIE = vim.diagnostic.severity.HINT,
PYI = vim.diagnostic.severity.HINT,
PT = vim.diagnostic.severity.HINT,
RET = vim.diagnostic.severity.HINT,
SIM = vim.diagnostic.severity.HINT,
TC = vim.diagnostic.severity.HINT,
I = vim.diagnostic.severity.HINT,
E = vim.diagnostic.severity.ERROR, E = vim.diagnostic.severity.ERROR,
W = vim.diagnostic.severity.WARN, W = vim.diagnostic.severity.WARN,
B = vim.diagnostic.severity.HINT, DOC = vim.diagnostic.severity.HINT,
F = vim.diagnostic.severity.HINT,
D = vim.diagnostic.severity.INFO, D = vim.diagnostic.severity.INFO,
F = vim.diagnostic.severity.HINT,
PLC = vim.diagnostic.severity.HINT,
PLE = vim.diagnostic.severity.ERROR,
PLR = vim.diagnostic.severity.HINT,
PLW = vim.diagnostic.severity.WARN,
UP = vim.diagnostic.severity.HINT,
RUF = vim.diagnostic.severity.HINT,
}
if diag.code then
diag.severity = map[diag.code:match("^(%u+)")]
end
end,
}, },
source = "ruff",
}, },
}, },
keymaps = { keymaps = {
@@ -36,11 +75,10 @@ return {
rhs = function() rhs = function()
utils.format({ utils.format({
cmd = { cmd = {
"black", "ruff",
"--line-length", "format",
"80", "--line-length=80",
"--stdin-filename", "--stdin-filename=%filename%",
"%filename%",
"--quiet", "--quiet",
"-", "-",
}, },
@@ -48,7 +86,10 @@ return {
}) })
utils.format({ utils.format({
cmd = { cmd = {
"isort", "ruff",
"check",
"--select=I",
"--fix",
"--quiet", "--quiet",
"-", "-",
}, },
@@ -62,13 +103,12 @@ return {
rhs = function() rhs = function()
utils.format({ utils.format({
cmd = { cmd = {
"black", "ruff",
"--line-length", "format",
"80", "--line-length=80",
"--stdin-filename", "--stdin-filename=%filename%",
"%filename%",
"--quiet", "--quiet",
"--line-ranges=%row_start%-%row_end%", "--range=%row_start%:%col_start%-%row_end%:%col_end%",
"-", "-",
}, },
output = "stdout", output = "stdout",
@@ -83,10 +123,11 @@ return {
settings = { settings = {
python = { python = {
analysis = { analysis = {
disable = true,
autoSearchPaths = true, autoSearchPaths = true,
diagnosticMode = "openFilesOnly", diagnosticMode = "openFilesOnly",
useLibraryCodeForTypes = true, useLibraryCodeForTypes = true,
typeCheckingMode = "off", typeCheckingMode = "strict",
}, },
}, },
}, },