IDE и редакторы: мегатред

Оказывается идея с “неделей Х” показалась кому-то интересной, поэтому давайте внезапно посреди недели начнём “неделю IDE и редакторов”. Как минимум, у всех возникает вопрос, где же писать код на Rust.

Я сам пишу в VS Code с RLS на stable, но меня периодически раздражает, что всё довольно часто разваливается, и работает не слишком-то быстро.

Интересно узнать про CLion: как там работает отладка? Насколько в целом нравится?

А вы используете RLS?

  • Да
  • Нет и не пробовал
  • Пробовал, сейчас не использую

0 голосов

3 лайка

Из приницпа сижу на vscode-rls и ночных RLS. Работоспособность серьезно скачет от ночника к ночнику, так что обновляюсь аккуратно и, если совсем все плохо, откатываюсь на прошлые ночники. Отладка через vscode-lldb, но расчехлять ее приходится крайне редко - обычно хватает или тестов, или логов.

Параллельно держу в системе intellij-rust, на случай если вдруг срочно понадобится + из любопытства поглядываю за его развитием время от времени, но для боевого кода пока не пользуюсь.

1 лайк

Из принципа не использую VSCode, а на RLS смотрю с недоумением: почему его так долго пилят и допиливают? Использую ST3 с полудесятком всяких сценариев сборки. Поскольку серьезного ничего нет, от тестов отмахиваюсь поговоркой хаскеллистов - “скомпилилось, значит багов (почти) нет”.

1 лайк

Так про RLS последнюю неделю куча бурлений (в связи с намерением выпустить 1.0 версию). Вот из последних тема:

У matklad’а там занятная серия развернутых постов.

3 лайка

И как он? Я его запускал пару раз поиграться. В реальных условиях работает?

Я прям сильно-то им не пользовался в работе, фактически просто открывал “боевые” проекты и что-то тыркался поменять, подополнять или погулять по коду. Работает, конечно, сильно стабильней RLS’а и пользы от выдаваемых подсказок больше, но пока тоже далеко не идеал - чувакам еще предстоит значительные куски компилятора жавчины реализовать на котлине.

Пинг @vlad20012 ? :slight_smile:

Для Rust использую IDEA. Другие среды посмотрел скринкасты на youtube сравнил, и даже ставить не стал. ( Может кто объяснить чего такого важного нет в IDEA? заранее спасибо. )
Да поддержка Rust пока не на уровне Scala, но они работают и активно реагируют.
++ Под IDEA у меня написаны плагины, облегчающие процесс написания именно кодогенератора.

Отладка Rust работает, жаль, что не для msvc , а только для gnu. По точке остановки список локальных переменных часто пуст, однако если имена перемененных закинуть в в evaluate, то их и их содержимое прекрасно видно.

Для меня Rust пока одно из направлений кодогенератора BlackBox. Возможно, со временем это выльется в более тесное взаимодействие.

Кстати текущая ситуация Rust мне сильно напоминает то, что однажды уже происходило на моих глазах с поддержкой Scala в IDEA.

В итоге, тогда, произошел мой окончательный транзит с JAVA на Scala.
Пока Rust мне очень нравится, не исключаю для себя ещё одного перехода.

Много раз использовал VSCode + RLS раньше, раз в несколько месяцев нападает скука и я ставлю его снова. Запускаю, пытаюсь что-то сделать, бешусь и удаляю еще на пару месяцев.
На постоянной основе использую IDEA. Вывод типов не всегда работает идеально, но улучшается с каждым обновлением. Иногда бывают false-positive подсвечивание ошибок, что довольно отвлекает, но в целом не вижу ни одной причины использовать RLS сейчас.
Дебагом не пользуюсь.

2 лайка

IntelliJ-Rust is here btw. AMA.
(Хотя я предпочитаю чаты)

1 лайк

VS Code + rls.
Но у меня пока всё на уровне поиграться.
Хочу глянуть на плагин к KDevelop, как руки доберутся.

У проекта есть публичный роадмап или что подобное с прикидками что в каком порядке/приоритете будет реализовываться?

Почему в твитере давно уже нет новых крутых гифок-видях с демонстрацией всяких новых крутых штук, которые пока еще в разработке? :slight_smile:

2 лайка

Публичный Roadmap я собираюсь написать в конце сентября. Вкратце, сейчас допиливаем макросы - последний мегакомпонент в поддержке языка (парсер, резолв, выод типов, макросы), а дальше будем двигаться в сторну повышения качества этих компонентов. Т.е. очевидно, что сейчас в каждом из них у нес немерено багов - где-то имена не резолвятся, где-то типы не выводятся, но сейчас нельзя точно сказать, например, это типы мы вывели неправильно, или это у нас просто макрос не раскрылся. Т.е. пока макросы не допилены, мы даже протестировать все это нормально не можем. Как допилим, начнем гонять анализ на реальных проектах (как crater) и приводить все в соответствие с поведением компилятора. (Вместе с новыми макросами заедет и перфоманс, т.к. сейчас криво реализованные макросы являются основным источником тормозов). + в IntelliJ-Rust сейчас прибудут 2 новых сотрудника, так что у нас появятся ресурсы пилить/допиливать IDEшные фичи (я в основном занят поддержкой языка, т.е. всяким компиляторным хардкором, а не IDEшными фичами).

А про твиттер - ну косяк, надо исправляться :slight_smile:

5 лайков

Поддерживаю @Virtuos86 и так же использую ST3. Очень редко nvim.
VSCode стоит, зайду раз в месяц, минута-две посмотрю и выйду.

Сейчас всех напугаю, emacs + rls.
Впрочем я все делаю в имаксе. :slight_smile:

3 лайка

Я до VSCode Emacs с Flycheck использовал.

@diabolo Какой там уровень поддержки сейчас? Что работает, что нет?

Да в принципе все, что нужно работает, в том числе и таги (я через gtags гоняю). Настройки просты как валенок (правда у меня как понимаете этих настроек вообще завал, но так у всех имаксоидов :slight_smile: setup-rust.el

У меня создалось впечатление, что rls не для рабочих проектов.
Сначала не было поддержки workspace, потом ее добавили, но почему-то
rls не использовал общий кэш для всех crate из проекта, и смысл такой поддержки
workspace от меня полностью ускользал. Потом сделали все-таки единый кэш и “интегрирацию” с
компилятором, но эта “интеграция” как бы понарошку сделана, никакого общего использования
кэша компиляции. Например, у меня build.rs запускает сборку skia (это большой c++ проект от Google), а потом я в своем crate использую эту skia (команда mozilla кстати тоже skia проект из rust использует). И… rls конечно же запускает сборку этой skia второй раз, мало ли что я ее собрал когда запускал cargo build, давайте еще раз загрузим CPU по полной.

И эту проблему в rls в отличии от других чинить не собираются, закрыли как “не проблема”, поэтому использую emacs + racer, и в общем получаю почти те же возможности что и rls, только без жутких тормозов и загрузки CPU на 100%. Плюс использую еще cargo.el, функции типа запустить тест в котором сейчас находиться курсор очень радуют.

Коллеги используют CLion и Android Studio в проектах где в добавлении к Rust есть C++ или Android/Java, о каких-то раздражающих проблемах от них не слышал.

не буду создавать отдельную ветку.

информирую:

обновился плагин Rust под IDEA…лично я, наблюдаю существенный прогресс !
молодцы, так держать!

RLS сейчас конечно очень медленный, и наверное таким и останется пока полностью не реализуют инкрементальную компиляцию.

Вопрос к знатокам IDEA:

  1. Какую редакцию IDEA лучше использовать? Можно ли использовать Community Edition? А отладка под Community Edition работает?

  2. А если еще нужен С/C++ то нужно ставить CLion или можно обойтись Community Edition + плагин для С/C++?

Какую редакцию IDEA лучше использовать

именно Rust плагин работает под любой версией
хотя у меня есть лицензионная подписка на пакет практически всех продуктов Intellij , я пользуюсь самыми последними превьюхами. ибо они достаточно стабильны и при этом предлагают новые фичи.

особенно радует возможность форматировать код, который пока совершенно не пригоден для компиляции. rustfmt - спотыкается.

отладка Rust под IDEA НЕ работает. вне зависимости от версии

для отладки под GNU toolchain есть Rust плагин под СLion. (нужна лицуха)
для отладки под MSVC toolchain есть Visual Studio Code