Как я Helix и amber-lsp не подружил
На прошлой неделе увидел новость, что вышла новая версия языка-транслятора bash - Amber.
Я об этом языке никогда ранее не слышал, но связка "транслятор bash" дернула какой-то хук в моей голове и я перешел на сайт Amber, чтобы узнать поподробнее, что этот язык нам предлагает.
💡 А предлагает он нам писать программы для bash, но с синтаксисом, похожим на Ruby или Rust. То есть, мы пишем в Amber безо всяких причуд, вроде "fi" в конце условия (у меня это "фи" всегда вызавает какие-то отталкивающие ассоциации) или двойных квадратных скобок в самом условии, и на выходе получаем те же работающие bash-скрипты.
Я, по роду своей деятельности, регулярно (можно даже сказать постоянно) имеющий дело с bash, заинтересовался идеей писать скрипты на интуитивно понятном языке. И, разумеется, сразу же установил себе эту самую свежую версию Amber.
В документации Amber я увидел упоминание редактора Helix. Его я тоже никогда не видел. Тоже скачал и установил.
Ни язык, ни редактор описывать не буду - каждый заслуживает отдельного поста.
🤔 Но увидел я на демо-видео, как ловко в этом Helix работает автодополнение и прочие штуки, как в "больших" IDE. И захотелось мне, чтобы у меня тоже так было c Amber. Тем более, он "native supported" в Helix. Забегая вперед, native supported там только подсветка синтаксиса. Ну и он по умолчанию подключается к amber-lsp (language server protocol), даже безо всякого конфига. Впрочем, мне это не сильно помогло.
В отличие от своих собратьев - модальных редакторов, Helix не расширяет свою функциональность за счет внешних плагинов. Если хочется чего-то дополнительного - добро пожаловать в файлы конфигов и добавлять туда необходимые секции параметров. Что я и сделал, когда после установки amber-lsp (читай - перемещения в PATH-dir) ничего почему-то не заработало - ни autocomplete тебе, ни даже привычных двухпробельных отступов в скобках.
🤯 Нашел я один вариант конфига - не работает. Нашел другой вариант - не работает. Включил RUST_BACKTRACE по совету в логах Helix - вижу, lsp ругается, что не может найти файл или папку. Причем, что именно он ищет, я так и не понял. Умный Perplexity мне подсказывал, что надо ему подсказать, как определять папку проекта - типа, прописать в в конфиге маркеры, вроде ".git", "cargo.lock" или что-то в этом духе, создать один из этих файлов в папке, где редактируем файл с amber-кодом - и вот тогда, как-будто, все должно было заработать.
❗Нифига. Нифигашечки. И в конфиге прописал. И файлы- и директории-маркеры создавал. Как ругался amber-lsp, что не может какой-то файл или папку найти, так и продолжил эту же партию. Да и совсем какой-то гемор выходил - чтобы заработали фичи нормального редактора, нужно обязательно файлы редактировать в папках проекта, где есть .git, фигит и прочее... И для чего мне, граждане, такой аэроклуб?
🛑 В итоге, на данный момент, я так и не смог победить связку Helix+amber-lsp. Кроме подсветки ничего не работает. Пока, в качестве возможных причин рассматриваю несоответствие версий - amber-lsp допускает себя запустить только с версией самого языка не выше 0.5.0-alpha и обновлялся более двух недель назад. Я же поставил себе уже 0.5.1... Возможно собака зарыта тут. Пробовал я ему указывать, что он с 0.5.0 работает. Но он не верит - все равно валится.
В общем, ждем обновления amber-lsp.
✅ К слову, ради интереса, настроил pylsp (это lsp, соответственно, для python) - там красота.
Но хочется-то amber...