Я тут сделал доклад в JetBrains (внутренний, сорян) про будущее IDE. И после доклада было много вопросов из серии “Но ведь будущее определенно за Х, а вы его даже не рассматриваете”. Отвечаю.
Вон же написано: только с++, только хардкор. Кроссплатформенность у vs code тоже из коробки идет, насколько я знаю. Короче, мой поинт в том, что создатели vs code как-то смогли, не смотря на все описанные проблемы. Как?
Главный, но не единственный. Плюс VS Code не запускается на iOS, насколько я знаю? JS это приятный язык для скриптования плагинов, но вот чтобы прям core на нем писать, Atom вон например отказались (как VS Code не знаю).
А что скажете насчёт Vim + SpaceVim + нормальный терминал типа kitty/alacritty? Может ли он заменить IDE? Не для монструозных Java/Scala, а для Rust, C, C++, D, Clojure, Erlang и подобного...
Не пробовал писать в SpaceVim на плюсах, но не подскажете, в чём может быть фрустрация? Какая фича из IDE, вот прям мастхэвная, может понадобиться, и её не будет в SpaceVim?
Не знаю, какие фичи есть в SpaceVim. Когда я работал на Емаксе, было прям сильно неудобно. Конкретно, список того, что я хочу видеть от IDE: - Переход к определению символа. - Поиск по проекту (не по каталогу, а по документам, включенным в проект). - Хорошее управление проектом, возможность добавлять отдельные каталоги или файлы вручную. - Поддержка билд систем: грэдл, мавен. - IntelliSense - подсказка параметров, методов объекта. - Отладка внутри IDE. - Подсветка ошибок, ворнингов.
> Переход к определению символа > Подсветка ошибок, ворнингов > IntelliSense - подсказка параметров, методов объекта
Реализовано в SpaceVim, есть также плагин для Rust.
> Отладка внутри IDE
Да, есть такой плагин.
> Поддержка билд систем: грэдл, мавен
Ну это что-то Java-специфичное. А вот для всяких meson, ninja, cargo (Rust) и поддержка не нужна. Открыл простой конфиг и подправил.
> Поиск по проекту (не по каталогу, а по документам, включенным в проект) > Хорошее управление проектом, возможность добавлять отдельные каталоги или файлы вручную
Единственная вещь, которой нет в SpaceVim. Но сам workflow сомнительный: зачем держать в директории что-то, не включённое в проект? Но в любом случае ripgrep поддерживается через плагин, а лишние файлы и директории можно в игнор добавить.
Так или иначе, выглядит сомнительным сама идея покупки IDE и установка блоба на компьютер, на котором придётся работать с проприетарным кодом. Ведь блоб может и украсть исходники. Паранойя, но вполне уместная, так как можно и без проприетарных IDE
А если модификация файла пришла например из гита, индексер это заметит? Не знаю зачем, всякое бывает. Когда я с этой штукой экспериментировал, непонятливость в плане локального/глобального скоупа раздражала.
> А если модификация файла пришла например из гита, индексер это заметит?
Пока что это не реализовано, а реализован хоткей "Обновить базу данных тэгов проекта в фоновом режиме".
Но в целом вещь простая: в Linux есть inotify-tools, можно запускать автоматически в бэкграунде при запуске SpaceVim и заскриптовать, чтобы при изменении файлов добавлял их в базу тэгов.
Reply
Reply
Reply
Reply
Reply
Reply
Reply
Reply
- Переход к определению символа.
- Поиск по проекту (не по каталогу, а по документам, включенным в проект).
- Хорошее управление проектом, возможность добавлять отдельные каталоги или файлы вручную.
- Поддержка билд систем: грэдл, мавен.
- IntelliSense - подсказка параметров, методов объекта.
- Отладка внутри IDE.
- Подсветка ошибок, ворнингов.
Reply
> Подсветка ошибок, ворнингов
> IntelliSense - подсказка параметров, методов объекта
Реализовано в SpaceVim, есть также плагин для Rust.
> Отладка внутри IDE
Да, есть такой плагин.
> Поддержка билд систем: грэдл, мавен
Ну это что-то Java-специфичное. А вот для всяких meson, ninja, cargo (Rust) и поддержка не нужна. Открыл простой конфиг и подправил.
> Поиск по проекту (не по каталогу, а по документам, включенным в проект)
> Хорошее управление проектом, возможность добавлять отдельные каталоги или файлы вручную
Единственная вещь, которой нет в SpaceVim. Но сам workflow сомнительный: зачем держать в директории что-то, не включённое в проект? Но в любом случае ripgrep поддерживается через плагин, а лишние файлы и директории можно в игнор добавить.
Так или иначе, выглядит сомнительным сама идея покупки IDE и установка блоба на компьютер, на котором придётся работать с проприетарным кодом. Ведь блоб может и украсть исходники. Паранойя, но вполне уместная, так как можно и без проприетарных IDE
Reply
Reply
Reply
Reply
> не различаются разные объекты с одинаковым названием
Не проверял. Возможно, это так. И здесь сразу вопрос: зачем в одном сишном/растовом/дишном/плюс-плюсном проекте так делать?
Reply
Не знаю зачем, всякое бывает. Когда я с этой штукой экспериментировал, непонятливость в плане локального/глобального скоупа раздражала.
Reply
Пока что это не реализовано, а реализован хоткей "Обновить базу данных тэгов проекта в фоновом режиме".
Но в целом вещь простая: в Linux есть inotify-tools, можно запускать автоматически в бэкграунде при запуске SpaceVim и заскриптовать, чтобы при изменении файлов добавлял их в базу тэгов.
Reply
Leave a comment