LINUX.ORG.RU
ФорумTalks

На чём разрабатываются большие проекты?

 


0

3

Скачал тут исходники хромиума, почти гиговый тарбол. И стало интересно какая IDE это потянет и какое железо нужно. Нагуглил такое https://chromium.googlesource.com/chromium/src/+/HEAD/docs/README.md#Integrated-Development-Environment-IDE_Set-Up-Guides

Integrated Development Environment (IDE) Set Up Guides

    Android Studio - Android Studio for Android builds
    Atom - Atom multi-platform code editor
    CLion - CLion IDE, supports GUI debugging.
    Eclipse for Android - Eclipse for Android
    Eclipse for Linux - Eclipse for other platforms (This guide was written for Linux, but is probably usable on Windows/MacOS as well)
    EMACS Notes - EMACS commands/styles/tool integrations
    Qt Creator - Using Qt Creator as an IDE or GUI debugger
    Visual Studio Code - Visual Studio Code

Интересно какое железо у разработчиков хромиума. Ну и других крупных проектах вроде Firefox или Linux.

★★★★
Ответ на: комментарий от rupert

Сейчас только две разумные опции: Emacs и VSCode. С LSP и clangd обе опции отлично тянут большие проекты

Atom и Sublime же.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Atom и Sublime же

Ненужно и проприетарное ненужно.

Nervous ★★★★★
()
Ответ на: комментарий от byko3y

Атом ещё жив? Он мне чем-то напоминает Eclipse, которая загнулась после выпуска иде от жетбрейнсов.

dnb ★★★★
() автор топика
Ответ на: комментарий от byko3y

Мне нужен инструмент для того, чтобы закрыть 7300 ненужных вкладок и оставить 200 последних нужных.

Заносишь «нужные вкладки» в текстовый файлик (рекомендую org-mode), быстро и решительно закрываешь все вкладки.

P. S. Кроме лора, конечно.

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 3)
Ответ на: комментарий от byko3y

если надо именно очень быстро править текст - vim всегда выигрывает по сравнению с мышкой, в руках умеющего девелопера.

но IDE выигрывают по другим параметрам, которые к редактированию текста вообще не особо имеют отношения, либо имеют косвенно - т.е. отладка, навигация, поиск, рефакторинг, статик-анализ, всякие визуальные редакторы UI с realtime preview, …

на фоне всего этого, редактирование текста становится лишь одним маленьким аспектом, который несомненно важен, но далеко не всегда является САМЫМ важным.

waker ★★★★★
()
Ответ на: комментарий от Nervous

Заносишь «нужные вкладки» в текстовый файлик (рекомендую org-mode), быстро и решительно закрываешь все вкладки

Как я тебе найду эти «нужные вкладки»?

byko3y ★★★★
()
Ответ на: комментарий от waker

если надо именно очень быстро править текст - vim всегда выигрывает по сравнению с мышкой, в руках умеющего девелопера

Что значит «очень быстро править текст»? Если мне нужно очень быстро перенести кусок текста «отсюда вот сюда», то мышка выигрывает.

навигация, поиск, рефакторинг, статик-анализ

Разве Vim в это не умеет? Через LSP. Другое дело, что мышкой этим заниматься намного удобнее — это да.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Как я тебе найду эти «нужные вкладки»?

Значит, они все ненужные. Ты знаешь, что делать.

Nervous ★★★★★
()
Ответ на: комментарий от Im_not_a_robot

Надеюсь ты хотя бы используешь TST

Конечно нет — оно мне стабильно херило все открытые вкладки.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Что значит «очень быстро править текст»? Если мне нужно очень быстро перенести кусок текста «отсюда вот сюда», то мышка выигрывает.

я могу в виме это делать без мышки быстрее и гибче, чем в IDE мышкой. если у тебя получается мышкой быстрее, то видимо ты просто не умеешь в вим.

Разве Vim в это не умеет? Через LSP. Другое дело, что мышкой этим заниматься намного удобнее — это да.

можно нагородить каких-то костылей чтобы он хоть как-то умел, но все равно будет примитивщина.

waker ★★★★★
()
Ответ на: комментарий от waker

я могу в виме это делать без мышки быстрее и гибче, чем в IDE мышкой. если у тебя получается мышкой быстрее, то видимо ты просто не умеешь в вим

Видимо, я просто не умею в вим. Можешь привести пример каких-то недавних операций редактирования, которые ты делал в виме и которые я не смогу сделать как минимум сравнимо быстро мышкой?

byko3y ★★★★
()
Ответ на: комментарий от byko3y

да практически любые. что вообще можно мышкой натыкать? в виме очень мощные блочные операции, запись/повтор последовательности операций, поточная обработка через внешние команды (т.е. шелл).

в других редакторах и IDE для типовых операций придется еще ставить какие-то плагины и настраивать автоматизацию, а в VIM все встроено.

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

waker ★★★★★
()
Ответ на: комментарий от waker

да практически любые. что вообще можно мышкой натыкать? в виме очень мощные блочные операции, запись/повтор последовательности операций, поточная обработка через внешние команды (т.е. шелл)

Я тебя попросил привести пример конкретных операций. Не «очень мощные», а

"+c
c<ESC>"+p
и прочее.

я бы конечно мог попробовать придумать которые особо завернутые операции многократной макро-вставки с заменой текста на что-то хитрое, чтобы ты точно обломался вообще в любом IDE

Ты лучше придумай, зачем мне особо завернутые операции многократной макро-вставки в IDE? Для рефакторинга? К сожалению, рефакторинг подразумевает анализ синтаксиса, который Vim вряд ли делает. У меня вон в делфях были макросы, но я так и не придумал, зачем они мне. Максимум отступы подправить, и то там уже давно встроено изменение отступов по табам.

byko3y ★★★★
()

Ну что ж, раз мне не могут здесь что-то показать, то покажу я в исполнении других людей:

https://www.youtube.com/watch?v=XA2WjJbmmoM - How to Do 90% of What Plugins Do (With Just Vim)
https://www.youtube.com/watch?v=wlR5gYd6um0 - Mastering the Vim Language
https://medium.com/@mkozlows/why-atom-cant-replace-vim-433852f4b4d1 — Why atom can't replace Vim - Vim’s Big Idea - Learning the lesson of vi

Найти файл в проекте? VS Code делает это через Ctrl+P из коробки. Прыгнуть к тэгу? Автодополнение? Никакой текстовой редактор не умеет этого с глубокой семантикой, даже подпертый костылями. Заготовки кода? Есть везде, но я так и не понял, зачем они мне. Повторение действий аля макросы? Раз в неделю пригождается. Рефакторинга с глубокой семантикой, опять же, ни один текстовой редактор даже с костылями не умеет. Найти и заменить все вхождения строки умеет почти любая IDE/текстовой редактор. Интеграция с системой сборки? Опять же это умеет любая IDE.

Статья «Why atom can't replace Vim» по сути говорит нам «Atom не может заменить Vim, потому что Atom не может решить проблем, актуальных только для Vim». У меня никогда не возникало проблемы плана «как же мне выделить строку/слово?» — я просто беру и выделяю их. Выделить, прыгнуть на любую позицию в тексте на экране — у меня для этого всегда есть мышка. Двойной клик — вуаля, я нашел это слово по всему файлу. Вот так вот просто, даже без тыкания в клавиатуру. Найти подстроку в большом файле? Хорошо, Ctrl+F и инкрементальный поиск.

Умеет ли Vim индексировать и искать по текстовым файлам, как это делает VS Code из коробки? Может быть подсвечивать незакоммиченные в Git строки кода, выдавать diff, историю изменений файлов В ОДНОМ ОКНЕ? Может и сможет, но с горой костылей, не так красиво и удобно. Peek definition? Только в Emacs есть кривой аналог, не дотягивающий до VS/VS Code. А сколько еще вещей Vim не может и не сможет никогда так же удобно, как это делают IDE? Например, отладка.

Всё, за этим официально отправляю Vim на свалку истории. Реально спорить там можно только про «Vim или Emacs», то есть, про «редакторы для тех, кто в 2021 не осилил мышь», потому что они оба затмеваются современными гуевыми IDE, или даже просто гуевыми текстовыми редакторами со сравнимым набором фич. Да, есть вялые попытки делать всякие NeoVim, но реально никаких преимуществ для мышки он не предоставляет, поскольку сохранил клавиатура-ориентированное ядро Vim. Вы скажете «но как же Org-mode или Tex-mode?». Откройте для себя аналогичные плагины VS Code и купите уже себе мышку для компьютера.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Никакой текстовой редактор не умеет этого с глубокой семантикой

/0, семантика что в vim-е что в твоём любимом ide подтягивается от clang-а. Что clang умеет дополнять, то они и дополняют. Что не умеет, то они и не умеют.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

/0, семантика что в vim-е что в твоём любимом ide подтягивается от clang-а. Что clang умеет дополнять, то они и дополняют. Что не умеет, то они и не умеют

https://www.vim.org/scripts/script.php?script_id=3302

«If you've got special flags for a project (especially -I and -D ones), clang may be unable to complete your code. To overcome this limitation put the flags inside the file .clang_complete at the root of your project»

Опять пердолинг с конфигами. Ну или вам повезло иметь проекты, которые компилируются совсем без флагов "-I" и "-D". Вроде hello world. Чтобы clang мог дополнить код с хорошей семантикой, ему нужно уметь собирать этот проект. А такой интеграции нету — всё ручками.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Org-mode или Tex-mode?». Откройте для себя аналогичные плагины VS Code

Что-то они довольно убогонькие пока что.

Nervous ★★★★★
()
Ответ на: комментарий от byko3y

Вы скажете «но как же Org-mode

Долго пользовался org-mode в качестве подобия персональной вики / дневника (в основном дневника). Недавно перешел на Obsidian (проприетарщина, к сожалению) и никогда не смотрел назад. Язык разметки в org-mode кривой и устаревший, им банально неудобно пользоваться. Это ненормально иметь в тексте паскаледрысню вида:

 #+BEGIN_SRC 
 #+END_SRC
Im_not_a_robot ★★★★★
()
Последнее исправление: Im_not_a_robot (всего исправлений: 1)
Ответ на: комментарий от byko3y

Зачем так болезненно реагировать? Ну не осилил клавиатуру и ладно. Никто ж не упрекает. На самом деле, у vim и emacs есть свои фишечки для удобного ввода и простой навигации по тексту, но если лень осваивать, то можно и мышевозить.

andalevor ★★★
()
Ответ на: комментарий от byko3y

Притащить дохлый плагин десятилетней давности чтобы доказать что-то это сильно. Почему бы не попробовать доказать тоже самое с coc.nvim или ycm?

andalevor ★★★
()
Ответ на: комментарий от byko3y

Ты какое-то старьё притащил времён царя гороха которым и тогда не пользовались. ycm хотя уже тоже не последний писк моды и вроде есть более современное что-то, но там такой фигни нету.

peregrine ★★★★★
()
Ответ на: комментарий от Im_not_a_robot

Недавно перешел на Obsidian (проприетарщина, к сожалению) и никогда не смотрел назад. Язык разметки в org-mode кривой и устаревший, им банально неудобно пользоваться

О, а это что-то новенькое. Давно смотрел на альтернативы для организации знаний, но почему-то Obsidian не замечал.

byko3y ★★★★
()
Ответ на: комментарий от andalevor

Зачем так болезненно реагировать? Ну не осилил клавиатуру и ладно. Никто ж не упрекает. На самом деле, у vim и emacs есть свои фишечки для удобного ввода и простой навигации по тексту, но если лень осваивать, то можно и мышевозить

Vim/Emacs тупо не адаптированы под GUI, под большой экран с хорошим разрешением. Их всеми силами пытаются подтянуть, вроде вот этого Emacs с Treemacs и Centaur Tabs:

https://i.redd.it/7kn6lmkp7l931.png

И в этих чертах до боли узнается Atom/VS Code.

byko3y ★★★★
()
Ответ на: комментарий от andalevor

Притащить дохлый плагин десятилетней давности чтобы доказать что-то это сильно. Почему бы не попробовать доказать тоже самое с coc.nvim или ycm?

Посмотрел — солидные плагины на базе технологий VS Code. Расишрения не используют ни одного сервера старее 5 лет. Что они делали до того, как Microsoft им выкатила LSP и LSP-подобные сервера? Особенно позабавило coc.nvim, которое даже расширения VS Code умеет использовать. Правда, «peek definition» делать как это делает VS Code оно по прежнему не умеет. А это ведь одна из самых эффективных фич для обзора кода.

upd: Хорошо. самое старое Jedi от 2013 года первого релиза.

byko3y ★★★★
()
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от byko3y

И что по ссылке такого похожего на Atom/VS Code? Тёмная тема, древовидная иерархия или закладки? Может NerdTree идею у VS Code подрезал?

andalevor ★★★
()
Ответ на: комментарий от andalevor

Тёмная тема, древовидная иерархия или закладки? Может NerdTree идею у VS Code подрезал?

На цвет вообще пофиг. Разговор был о высоком разрешении экрана, для использования которого нужны более одной панели, за счет чего «управление» функциями редактора осуществляется банальным движением глаз, что будет пошустрее любой комбинации клавиш. NerdTree добавляет только одну боковую древовидную панель — этого очень мало. Ты видел панели VS Code, например? Даже Treemacs + Centaur Tab не дотягивают до этого уровня, хотя очень хотят, о чем я и написал.

byko3y ★★★★
()
Ответ на: комментарий от andalevor

ycm был и до VS Code

Это правда, но был он совсем другой и совсем куцый:

https://github.com/ycm-core/YouCompleteMe/tree/421e15f1e1f1a7bbde5ec5eb0d1135...

Там был только libclang (clangd тогда еще не существовал), чуть позже добавили Jedi и OmniSharp:

https://github.com/ycm-core/YouCompleteMe/tree/e14ffadbd25298edf1dd642d947cd3...

В то время это было только автодополнение и переход к символу. Даже подсказок аргументов не было — только после VS Code оно появилось. Вот состояние на момент релиза VS Code:

https://github.com/ycm-core/YouCompleteMe/tree/9e58245088bdb3b65e082446639672...

Те же самые libclang, Jedi, OmniSharp, из семантики появился переход к определению/объявлению и переключение между интерфейсом и реализацией. Поиска объявлений, рефакторинга, подсказки аргументов/типов по прежнему нет.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

нужны более одной панели

Ну это как раз мне в Emacs нравится больше, чем в других редакторах. Очень легко делится экран в любых направлениях и потом удобно можно перемещаться между панелями. А в VS Code, похоже, до сих пор не осилили сделать нормальное переключение по панелям. Можно переключаться только по Ctrl + 1 и другие цифры, ни цикличного обхода, ни «перейти влево/вправо». Такая же история с шоткатом для перехода в терминал и обратно. Только мышевозить.

andalevor ★★★
()
Ответ на: комментарий от andalevor

Да с приходом LSP многое изменилось, только каким боком VS Code к LSP?

Полное название — VSCode Client/Server Language Protocol:

https://github.com/microsoft/language-server-protocol/tree/46f9a55db0a57cff98...

Это протокол для расширений VS Code. Потом MS почесало репу и подумало «а давайте сервера под него будет писать сообщество, да еще и сообщества других IDE».

byko3y ★★★★
()
Ответ на: комментарий от andalevor

Можно переключаться только по Ctrl + 1 и другие цифры, ни цикличного обхода, ни «перейти влево/вправо»

Ctrl+PgUp/Ctrl+PgDown — следующая/предыдущая. Ctrl+P открыть файл по имени, с нечетким поиском. И при всем при этом можно мышевозить, потому как есть уникальная панель вкладок с прокруткой, чего я до сих пор не видел нигде. А чего стоит панель просмотра миниатюры всего файла целиком? С отметками незакоммиченных изменений и ошибок компиляции/линта. В каком Emacs такое есть?

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Ctrl+PgUp/Ctrl+PgDown — следующая/предыдущая

Это листает и вкладки, и панели, а как только по панелям? В терминал, кстати, тоже не заглядывает.

А чего стоит панель просмотра миниатюры всего файла целиком?

Сомнительная фича, когда гуглил как отключить нашёл немало таких же запросов. Признаться, не имею понятия, есть такое в Emacs или нет, не искал.

andalevor ★★★
()
Ответ на: комментарий от andalevor

Это листает и вкладки, и панели, а как только по панелям? В терминал, кстати, тоже не заглядывает

А, ты про это. Ctrl+K, Ctrl+стрелки. Просто «Ctrk+K, стрелки» двигает панели.

В терминал, кстати, тоже не заглядывает

А просто Ctrl+тильда не?

А чего стоит панель просмотра миниатюры всего файла целиком?

Сомнительная фича, когда гуглил как отключить нашёл немало таких же запросов. Признаться, не имею понятия, есть такое в Emacs или нет, не искал

Ctrl+Shift+P или F1 или View->Command Palette, дальше «minimap», и находится одна команда «View: Toggle Minimap».

Да, фича не переворачивает представление о редакторах, но как вспомогательное средство порой может быть удобна для беглого обзора. А теперь делаешь "editor.minimap.scale": 3, и миниатюру уже почти можно читать.

byko3y ★★★★
()
Ответ на: комментарий от fernandos

Нет. Но если ты пробовал, то готов послушать.

В обсидиане мне нравится, что я могу просто написать [[Джигурда]] и он создаст соответствующий файл. Ну и переименует все автоматом, если что-то изменилось. Т.е. как wiki-движок. Для меня это киллер-фича.

Im_not_a_robot ★★★★★
()
Ответ на: комментарий от fernandos

Немного посмотрел, честно говоря пока не понял его. Видимо что-то для умных людей.

Im_not_a_robot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.