Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 10.11.20 21:41
Оценка:
День добрый, коллеги.

А есть тут кто-нибудь, кто использует Emacs для разработки на Rust, используя rust-analyzer? Можете поделиться конфигами с работающим автодополнением и прочими фичами?

Большая часть того, что вижу в примерах в инете — на основе RLS (Rust Language Server). Но у меня тут такая особенность, что Cargo и прочие стандартные инструменты не используются, а заставить RLS авто-дополнять просто из указанных вручную каталогов у меня не получилось. rust-analyzer вроде как умеет так работать, но у меня сходу не получилось.

IDEA не предлагать. Она прекрасна и это лучшее, что я видел, но она не работает в удалённом режиме, а у меня весь кодинг идёт на удалённом сервере.
С уважением, Artem Korneev.
Re: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: · Великобритания  
Дата: 11.11.20 09:12
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK> IDEA не предлагать. Она прекрасна и это лучшее, что я видел, но она не работает в удалённом режиме, а у меня весь кодинг идёт на удалённом сервере.

Файлы редактировать локально и отправлять на сервер через git или rsync. Вариант?
avalon/2.0.6
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 11.11.20 09:41
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Большая часть того, что вижу в примерах в инете — на основе RLS (Rust Language Server). Но у меня тут такая особенность, что Cargo и прочие стандартные инструменты не используются


А чем подобное вызвано? Со стороны кажется, что Cargo — это, возможно, одна из самых главных фич языка.
Re[2]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 11.11.20 21:33
Оценка:
Здравствуйте, ·, Вы писали:

·>Файлы редактировать локально и отправлять на сервер через git или rsync. Вариант?


Через GIT пробовал — утомительно очень.
rsync — не пробовал пока. Коллеги говорят, что пытались — медленно очень. Но надо самому пощупать.
С уважением, Artem Korneev.
Re[2]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 11.11.20 21:38
Оценка: 10 (1)
Здравствуйте, kaa.python, Вы писали:

KP>А чем подобное вызвано? Со стороны кажется, что Cargo — это, возможно, одна из самых главных фич языка.


Система сборки у нас другая. Что-то вроде гугловского Bazel. Из преимуществ — унификация (работает почти со всеми нашими языками) и хорошее отслеживание изменений — как следствие, компиляция идёт быстрее. Но вот из недостатков — то, что оно не родное ни для одного из языков и везде приходится что-то докручивать чтоб оно работало с остальными инструментами.
С уважением, Artem Korneev.
Re: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Zhendos  
Дата: 12.11.20 08:29
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>День добрый, коллеги.


AK>А есть тут кто-нибудь, кто использует Emacs для разработки на Rust, используя rust-analyzer? Можете поделиться конфигами с работающим автодополнением и прочими фичами?


Зачем конфиги?
Делаете M-x customize-group для lsp-mode,
там выбираете "Lsp Rust", там выбираете "Lsp Rust Server"
и меняете rls на rust-analyzer. В общем-то и все.
Если "rust-analyzer" не в PATH, то можно там рядом прописать полный путь до него.
В общем если у вас rls работал, то заставить заработать rust-analyzer
дело двух минут.
Re[3]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: · Великобритания  
Дата: 12.11.20 11:27
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK> ·>Файлы редактировать локально и отправлять на сервер через git или rsync. Вариант?

AK> Через GIT пробовал — утомительно очень.
А что утомительного? Можно скриптик написать и на хоткей повесить.

AK> rsync — не пробовал пока. Коллеги говорят, что пытались — медленно очень. Но надо самому пощупать.

А ещё IDEA умеет какую-то магию делать, я правда не пробовал.
https://www.jetbrains.com/help/idea/uploading-and-downloading-files.html#autoupload_definitions
avalon/2.0.6
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 19.11.20 21:51
Оценка:
Здравствуйте, ·, Вы писали:

·>А что утомительного? Можно скриптик написать и на хоткей повесить.


Скриптик и хоткей могут это локально сохранить и запушить. А нужно ещё удалённо это синхронизировать и достать.

·>https://www.jetbrains.com/help/idea/uploading-and-downloading-files.html#autoupload_definitions


Да с IDEA там ещё другая проблема, которую я тоже вскользь упомянул — система сборки другая и IDEA её не понимает. Пытается найти Cargo-файлы, а их нет.
Есть у нас какой-то полурабочий плагин для этой системы сборки, но он работает с очень старыми версиями IDEA, где Rust сам по себе ещё плохо поддерживается.

Поэтому и смотрю в сторону Emacs.
С уважением, Artem Korneev.
Re[2]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 19.11.20 21:57
Оценка:
Здравствуйте, Zhendos, Вы писали:

Z>В общем если у вас rls работал, то заставить заработать rust-analyzer


Ну если б у меня rls работал, я б этот rls и использовал. Нет у меня ничего рабочего.
Попробовал я rls — там автодополнение не заработало совсем. Проблема в том, что Cargo-файлов нет, система сборки другая. Попробовал rust-analyzer — там работало через раз, в основном в пределах того же файла. Сам я Emacs последний раз настраивал для разработки на С++ по конфигам Alex Ott лет эдак 10 назад. В ту пору проще всего было взять чужой настроенный конфиг и допилить там уже по мелочи своё, там где хочется по-другому. Вот потому и сейчас спросил — поделиться готовым конфигом, если кто уже настраивал Emacs для работы с rust-analyzer.
С уважением, Artem Korneev.
Re: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Слава  
Дата: 20.11.20 00:55
Оценка: :))
Здравствуйте, Artem Korneev, Вы писали:

AK>Большая часть того, что вижу в примерах в инете — на основе RLS (Rust Language Server). Но у меня тут такая особенность, что Cargo и прочие стандартные инструменты не используются


Прочитал весь тред. Вспомнил анекдот https://www.anekdot.ru/id/-21419034/
Re: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: SkyDance Земля  
Дата: 20.11.20 05:17
Оценка: :)
AK>IDEA не предлагать. Она прекрасна и это лучшее, что я видел, но она не работает в удалённом режиме, а у меня весь кодинг идёт на удалённом сервере.

А вот я все-таки предложу, ибо "кодинг на удаленном сервере", внезапно, отлично работает и без удаленного сервера. На внутренней вики есть объяснение, как.
Re[5]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: · Великобритания  
Дата: 20.11.20 10:14
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK> ·>А что утомительного? Можно скриптик написать и на хоткей повесить.

AK> Скриптик и хоткей могут это локально сохранить и запушить. А нужно ещё удалённо это синхронизировать и достать.
git config receive.denyCurrentBranch updateInstead

https://stackoverflow.com/questions/7152607/git-force-push-current-working-directory/38363683#38363683

AK> ·>https://www.jetbrains.com/help/idea/uploading-and-downloading-files.html#autoupload_definitions

AK> Да с IDEA там ещё другая проблема, которую я тоже вскользь упомянул — система сборки другая и IDEA её не понимает. Пытается найти Cargo-файлы, а их нет.
Идейный проект можно и вручную настраивать, если плагины не умеют.
avalon/2.0.6
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: aik Австралия  
Дата: 20.11.20 10:22
Оценка: +1
Здравствуйте, Artem Korneev, Вы писали:

AK>IDEA не предлагать. Она прекрасна и это лучшее, что я видел, но она не работает в удалённом режиме, а у меня весь кодинг идёт на удалённом сервере.


в таком случае есть fuse+sshfs и запуск make на удаленной машине. полмегабита должно хватить за глаза, и нервы в порядке.
Re: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: flаt  
Дата: 25.11.20 17:24
Оценка:
Здравствуйте, Artem Korneev, Вы писали:


AK>А есть тут кто-нибудь, кто использует Emacs для разработки на Rust, используя rust-analyzer? Можете поделиться конфигами с работающим автодополнением и прочими фичами?


https://rust-analyzer.github.io/manual.html#emacs


AK>Но у меня тут такая особенность, что Cargo и прочие стандартные инструменты не используются, а заставить RLS авто-дополнять просто из указанных вручную каталогов у меня не получилось. rust-analyzer вроде как умеет так работать, но у меня сходу не получилось.


https://rust-analyzer.github.io/manual.html#non-cargo-based-projects
Re[2]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 17.12.20 00:57
Оценка:
Здравствуйте, flаt, Вы писали:

F>https://rust-analyzer.github.io/manual.html#emacs

F>https://rust-analyzer.github.io/manual.html#non-cargo-based-projects

Это я видел. У меня не заработало. А так как сам я в настройке Emacs и раньше-то слабо разбирался, а сейчас вообще всё забыл, то и спросил тут.
Я подумал, что если кто тут Emacs'ом пользуется, то наверное смогут подсказать, как заставить эту связку работать.
С уважением, Artem Korneev.
Re: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: ути-пути Россия  
Дата: 17.12.20 15:10
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>IDEA не предлагать. Она прекрасна и это лучшее, что я видел, но она не работает в удалённом режиме, а у меня весь кодинг идёт на удалённом сервере.


Так там же синхронизация отличная. Настраиваешь Build, Execution, Deployment | Deployment, редактируешь локально, а оно все измененное прозрачно синхронизирует с удаленным сервером.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 17.12.20 19:04
Оценка:
Здравствуйте, ути-пути, Вы писали:

УП>Так там же синхронизация отличная. Настраиваешь Build, Execution, Deployment | Deployment, редактируешь локально, а оно все измененное прозрачно синхронизирует с удаленным сервером.


Это всё работает, когда IDEA хотя бы локально может работать с теми исходниками. В моём случае — не может из-за отсутствия Cargo-файлов. Оно не может распарсить эти исходники. Часть зависимостей можно решить, вручную создав Cargo.toml и прописав пути к исходникам с зависимостями. Но это не работает для автоматически сгенерированного кода, например.

Эту проблему я тоже пытаюсь решить, но там всё долго и болезненно. Пока хочу хотя бы Emacs настроить, чтоб код можно было писать. С Emacs'ом, правда, будут ровно те же проблемы с автоматически сгенерённым кодом, но там я надеюсь какой-нибудь плагин допилить для автодополнения тех структур.
С уважением, Artem Korneev.
Re[3]: Rust: Emacs + rust-analyzer, поделитесь конфигами
От: ути-пути Россия  
Дата: 17.12.20 20:05
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Это всё работает, когда IDEA хотя бы локально может работать с теми исходниками. В моём случае — не может из-за отсутствия Cargo-файлов. Оно не может распарсить эти исходники. Часть зависимостей можно решить, вручную создав Cargo.toml и прописав пути к исходникам с зависимостями. Но это не работает для автоматически сгенерированного кода, например.


AK>Эту проблему я тоже пытаюсь решить, но там всё долго и болезненно. Пока хочу хотя бы Emacs настроить, чтоб код можно было писать. С Emacs'ом, правда, будут ровно те же проблемы с автоматически сгенерённым кодом, но там я надеюсь какой-нибудь плагин допилить для автодополнения тех структур.


Там сейчас Shared Indexes сделали, не может помочь?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.