Настройка редактора
OxL не привязан к одному редактору. Всё «умное» делает компилятор: команда oxl lsp — сервер Language Server Protocol,
запускающий тот же front end, что oxl check, поэтому подсказки и ошибки в редакторе совпадают с ошибками сборки. Отладку даёт
oxl dap — адаптер Debug Adapter Protocol поверх lldb-dap. Любой редактор, который умеет запускать команду и говорить
по stdio, получает почти то же, что VS Code.
| Редактор | Подсветка | LSP | Отладчик (DAP) | Страница |
|---|---|---|---|---|
| VS Code | расширение (TextMate + семантические токены) | да, расширение | встроенный тип oxl | VS Code |
| Neovim | tree-sitter | vim.lsp / nvim-lspconfig | nvim-dap | Neovim |
| Helix | tree-sitter | встроенный клиент | встроенный клиент | Helix |
| Emacs 29+ | tree-sitter / свой режим | eglot или lsp-mode | dape или dap-mode | Emacs |
| Zed | tree-sitter (расширение) | расширение Zed | отладчик Zed | Zed |
| Sublime Text 4 | .sublime-syntax | пакет LSP | — | Sublime Text |
| IntelliJ IDEA, CLion, GoLand… | пакет TextMate | LSP4IJ | LSP4IJ (DAP) | JetBrains |
| другой | любой клиент LSP | любой клиент DAP | LSP-клиенты |
Общее для всех:
- исполняемый файл
oxlдолжен быть вPATH(установка) или указан полным путём; - файлы
*.oxl; корень проекта — каталог сoxl.toml(пакет анализируется целиком, вместе с несохранёнными буферами); - из архива берутся
share/oxl/vscode/*.vsix,share/oxl/tree-sitter-oxl/иshare/oxl/lldb/; - отладчику нужен
lldb-18(apt install lldb-18), см. отладка.
Что умеет сервер#
Диагностики со ссылками на страницы диагностик, hover (сигнатура, ///, у rpc — вызывающие, политики,
версия схемы), переход к определению и в std, ссылки, переименование через границы пакетов, структура документа,
символы рабочей области, дополнение, подсказки сигнатуры, форматирование (канонический oxl fmt), быстрые исправления
(обработать все ошибки цепочки, вынести константу, добавить политику, сгенерировать mock, перенести шаг пайплайна), семантические токены
и inlay-подсказки (выведенные типы, ошибки звеньев цепочки, эффекты, роль шага, маркеры «в процессе / по сети / scatter-gather»).
Полная таблица запросов и настройки — руководство по LSP.
Проверено и не проверено#
Сервер покрыт сценариями протокола и тестом задержки (lsp_scenarios, lsp_latency), расширение VS Code — автоматическими
тестами и ручным чеклистом релиза. Конфигурации остальных редакторов написаны по документации этих редакторов и тому, что
oxl lsp объявляет при initialize; они не входят в автоматические проверки репозитория — если что-то не заработало,
включите oxl lsp --log (трассировка в stderr) и сообщите о проблеме.