LINUX.ORG.RU

Положить конфигурацию LSP сервера в проект

 ,


0

1

Привет,

Есть команда и N человек у которых K разных сред для разработки (VSCode, neovim, vim). Код на питоне. Используется pylsp. Хочется заставить pylsp использовать venv. У pylsp есть опция pylsp.plugins.jedi.environment, но я пока не вижу способа сделать это универсальной опцией для всех сред разработки (вроде общего .gitignore). Есть ли способ создать какой-то конфигурационный файл, который будет прочитан либо самим pylsp, либо всеми редакторами? Совершенно не хочется решать эту проблему каждый раз заново для каждого нового пришедшего править код.

Что такое pylsp? Никогда не сталкивался. Я знаю людей, которые в vim используют pyright, basedpyright, ruff LSP, про pylsp никогда не слышал.

У pyright конфиг хранится в pyproject.toml, не знаю, реагирует ли на него VS Code, по идее как бы должен… Но не пользуюсь VS Code, так что не уверен.

Если хочется единый стиль, то это неверный подход. Верный подход - использовать линтеры и другие проверки (например, mypy, pyright), например, в pre-commit и (обязательно) в CI/CD.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

Что такое pylsp? Никогда не сталкивался. Я знаю людей, которые в vim используют pyright, basedpyright, ruff LSP, про pylsp никогда не слышал.

примерно то же что и pyright

Если хочется единый стиль, то это неверный подход. Верный подход - использовать линтеры и другие проверки (например, mypy, pyright), например, в pre-commit и (обязательно) в CI/CD.

Это не поможет при написании кода. pylsp нужен для навигации по кодовой базе.

У pyright конфиг хранится в pyproject.toml, не знаю, реагирует ли на него VS Code, по идее как бы должен… Но не пользуюсь VS Code, так что не уверен.

Похоже у pylsp тоже, да. VS Code на него реагировать не нужно, достаточно чтобы это сделал pylsp. Сейчас проверю.

tinykey
() автор топика
Ответ на: комментарий от tinykey

примерно то же что и pyright

Да нет, выглдяит как намного более старые и кондовые технологии.

Это не поможет при написании кода. pylsp нужен для навигации по кодовой базе.

Хм, без специальных настроек не работает навигация по коду? Мне кажется, что в таком случае, лучше менять код.

Всякие выподвыверты типа манипуляций с sys.path ведут к запутыванию в самых разных ситуациях, труднообнаружимых ошибках, когда модули доступны через более, чем один путь, и т.д. и т.п. Сильно не люблю такие проекты, считаю это неправильным подходом, который регулярно будет бить по лбу граблями.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

Хм, без специальных настроек не работает навигация по коду? Мне кажется, что в таком случае, лучше менять код.

Я не понимаю, о чем ты. Для навигации по питоновом коду есть что-то лучше LSP, что работает и в neovim, и в vscode?

tinykey
() автор топика

pyright умеет pyproject.toml из коробки, в отличии от pylsp:

[tool.pyright]
venv = ".venv"
venvPath = "."

Работает везде. Проблема решена.

tinykey
() автор топика
Ответ на: комментарий от tinykey

Я не понимаю, о чем ты. Для навигации по питоновом коду есть что-то лучше LSP, что работает и в neovim, и в vscode?

Я имею в виду, что мне известен только один хороший LSP - pyright. Не слышал, чтобы были лучше него.

Chiffchaff
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.