mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 16:08:05 +00:00
In projects configured for Ruff (ruff.toml, .ruff.toml, or pyproject.toml with a [tool.ruff] table), ruff server runs next to basedpyright as a managed pip tool: its lint diagnostics, Reformat Code / format on save, Optimize Imports and Code Cleanup's fix-all. It is listed after the type checkers, so hover, navigation and rename stay with them; projects without a Ruff configuration never start or install it. Root markers accept file#table to require a TOML table, and a hand-defined server named ruff now only overrides how the built-in one launches. Verified with the real-servers end-to-end test against ruff and basedpyright. Co-authored-by: andreabasile <7715018+andreabasile@users.noreply.github.com>
58 lines
2.0 KiB
TOML
58 lines
2.0 KiB
TOML
id = "python"
|
|
name = "Python"
|
|
extensions = ["py", "pyi", "pyw"]
|
|
filenames = ["SConstruct", "SConscript"]
|
|
first-line = "^#!.*\\bpython[0-9.]*\\b"
|
|
line-comment = "#"
|
|
indent = { tab-size = 4, insert-spaces = true }
|
|
ui-mode = "Python"
|
|
tree-sitter = "python"
|
|
|
|
[[language-servers]]
|
|
name = "basedpyright"
|
|
command = "basedpyright-langserver"
|
|
args = ["--stdio"]
|
|
root-markers = ["pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", "Pipfile", "pyrightconfig.json"]
|
|
install-hint = "pip install basedpyright (or: uv tool install basedpyright)"
|
|
|
|
# basedpyright defaults to "recommended", which flags unannotated attributes and
|
|
# every unknown type. "standard" reports real problems; a project's own
|
|
# `[tool.basedpyright]` / pyrightconfig.json still takes precedence.
|
|
[language-servers.initialization-options.settings.basedpyright.analysis]
|
|
typeCheckingMode = "standard"
|
|
# Off whenever analysis settings are sent without it: `src/` layouts would stop resolving.
|
|
autoSearchPaths = true
|
|
|
|
[[language-servers]]
|
|
name = "pyright"
|
|
# Alternative: used only when the server above is not installed.
|
|
fallback = true
|
|
command = "pyright-langserver"
|
|
args = ["--stdio"]
|
|
root-markers = ["pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", "Pipfile", "pyrightconfig.json"]
|
|
install-hint = "npm i -g pyright (or: pip install pyright)"
|
|
|
|
[[language-servers]]
|
|
name = "ty"
|
|
fallback = true
|
|
command = "ty"
|
|
args = ["server"]
|
|
root-markers = ["ty.toml", "pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", "Pipfile"]
|
|
install-hint = "uv tool install ty (or: pip install ty)"
|
|
|
|
# Lint, format, organize imports and fix all next to the type checker, in
|
|
# projects configured for Ruff (formatting is Ruff's alone: basedpyright has none).
|
|
[[language-servers]]
|
|
name = "ruff"
|
|
command = "ruff"
|
|
args = ["server"]
|
|
root-markers = ["ruff.toml", ".ruff.toml", "pyproject.toml#tool.ruff"]
|
|
require-root-marker = true
|
|
install-hint = "pip install ruff (or: uv tool install ruff)"
|
|
|
|
[debugger]
|
|
adapter = "debugpy"
|
|
command = "python3"
|
|
args = ["-m", "debugpy.adapter"]
|
|
install-hint = "pip install debugpy"
|