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

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

Возможно ли включить в Idea индикацию ошибки на полях - там где номера строк, а то красное подчеркивание в тексте плохо видно?

ошибки и результаты поиска в IDEA высвечиваются на скролбаре.

Говорят, Xi на маках годен для использования таки.

посмотрел из свежего а поновее кто нибудь знает где?

радует это всё конечно. хотелось бы узнать побольше. скринкастов каких нибудь…

например IDEA вполне способна форматировать даже совершенно НЕ валидный Rust исходник.
за что им огромное спасибо. кто ещё может этим похвастаться? кто это делает лучше?
при кодогенерации это очень надо.

Официально поддерживается фронт мака, но у них такой же модульный принцип как у nvim. По этому есть отдельные фронты и под другие платформы. Например gtk.

Честно сказать у меня ни когда с nvim не было проблем в плане скорости. Единственное что мне не нравится это работа RLS. В целом все более менее, когда правишь один крейт, но когда их несколько и они все в разных директориях то тут как то не понятно когда он проводит индексацию. Надеюсь у rust-analyzer получится решить эту проблему. И сделать подобный IDEA помошник. Но IDEA в свое время так сильно обидела своим вим плагином, что до сих пор болезненно в ее сторону смотрю. Да и к работе интерфейса были вопросы.

1 лайк

попробовал в деле intellij idea(CLion 2018.3) + Rust plugin(v0.2.0.2111-183) могу сказать следующие:

  1. Автодополнение кода работает медленнее чем в vscode + rls
  2. Ловит не все ошибки, но если включить(по умолчанию выключена) опцию “Use cargo check to analyze code” начинает ловить все. код для примера
2 лайка

Обновился Rust плагин IDEA … цветная косоль, теперь понимает модули 2018… очень доволен.
платил и буду платить!

1 лайк