LINUX.ORG.RU

А вот кому IDE для C++?

 ,


0

1

Всем привет. Написал себе IDE для плюсов(строго под линукс), от лени, и от того, что другие не нравились. Написана на плюсах, с использованием wxWidgets, плюс clang либа. вот выложил видос как создать проект, сбилдить и пустить аппу.

https://www.youtube.com/watch?v=5DtzFbrjpVw

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

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

исходники не выкладываю. поскольку работаю на убунте 20.04, то приветствуются персоны с этой убунтой, чтобы не пересобирать аппу. Если есть вопросы - пишите сюда.

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

добавленное видео: https://www.youtube.com/watch?v=73qxNBq2Thk

нерафинированный видос - парсинг сорса в фоне. https://www.youtube.com/watch?v=nFyKyAsZEvk

Алексей.

★★★

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

Cmake файл ещё сгенерить/сделать нужно как-то. Если его нет, то… То есть для создания проекта не нужно читать доки к cmake и прописывать самому связи. А если уж понадобится использовать какую-либо систему сборки, то этому можно посвятить время позже.

Что подразумевается под поддержкой cmake?

А ещё есть meson и другие системы сборки.

Нет, поддержки гита нет.

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

Что подразумевается под поддержкой cmake?

я вопроса не понял.

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

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

я для билда просто генерю файл cmakelists.txt

Каким образом? Что отслеживает связи в проекте?

Как ide помогает добавить новый подкаталог с исходниками в cmakelists.txt? Позволяет ли ide управлять переменными cmakelists.txt? Или просто запускает сборку и всё? Отображается ли процесс сборки в ide? В случае ошибки сборки возможен ли переход в ide в файл, где она вызвана?

Плагина для гит пока у кодблокса не предвидится, потому что они используют svn, а третьи лица плагин пока не сделали.

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

Каким образом? Что отслеживает связи в проекте?

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

Как ide помогает добавить новый подкаталог с исходниками в cmakelists.txt?

типа для билда депенденса? или просто добавить сорсов из какой-то директории в данный проект?

Позволяет ли ide управлять переменными cmakelists.txt?

вопрос непонятен - типа передавать смейку переменные юзера в комстроке? или прям их встраивать в генерируемый файл? пока нет, поскольку не требовалось. но проблем нет и передать. я вообще фичи добавляю в режиме - on_demand. если вот прям надо и все тут - тогда добавляю. а если не особо надо, но хочется…то не добавляю.

Или просто запускает сборку и всё?

генерит смейклисты и пускает смейк

Отображается ли процесс сборки в ide?

да и это есть в видосе о «боевом применениии»

В случае ошибки сборки возможен ли переход в ide в файл, где она вызвана?

разумеется.

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

система сборки это ниндзя, а нинья это «малышка» по-испански.

мучос грасиас камарада, но пасаран!

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

А ранее подготовленный умеет использовать без его порчи?

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

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

alysnix ★★★
() автор топика

подумал вот, как поддержать смейк файлы напрямую… видимо сделаю как в студии, насколько я это помню..

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

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

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

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

а что интересного в чужих исходниках?

тебе-то они зачем?

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

Правильно ли вас понял, что будут разные типы солюшен /в т.ч. и для Cmake/?

Да. Сейчас есть по собственному солюшену, что удобно для написания нечта нового. Я лично так и делаю.

Но поскольку есть и такой вариант, что у людей есть готовый смейкфайл, и они билдят солюшн(или просто проект) строго по нему, и не хотят ничего менять, то надо делать и такую возможность работы.

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

Шутка

В Visual Studio sln не плохо продуманы и реализованы.
Можно сделать интерфейс подобный их реализации, а можно и просто … /ну вы поняли/.

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

В Visual Studio sln не плохо продуманы и реализованы.

солюшн там удобен, если делаеть строго под винду.

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

для такого дела там есть Project Folder и интеграция с cmake. https://docs.microsoft.com/ru-ru/cpp/build/cmake-projects-in-visual-studio?view=msvc-160

Это примерно то, что я вот хочу сделать.

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

то есть на винде билдил в студии по смейкфайлу, чтобы не делать там свой солюшн.

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

Visual Studio

ну и кто это сейчас юзает? разве что вендузятники на винде:)

Устройся на работу.

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

Какие киллер-фичи по сравнению с другими ide на wxWidgets, такими как codeblocks, codelite?

Ну например живой разработчик, готовый работать над своим продуктом.

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

если есть предложения, то предлагайте… типа уметь распарсить смейк файл от такой-то опенсорсной системы.

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

в общем случае вопрос парсинга смейклиста не поднять

А действительно, тут уже предложили использовать генераторы в файлы проектов других сред, и парсить уже их, это куда проще. На мой взгляд на первое время можно обойтись этим.

А вообще мне кажется, в одиночку целую IDE не осилить, и с моей невысокой колокольни мне видятся два пути. Первый это сделать проект опенсорсным, что бы привлечь энтузиастов. А второй - сделать проект комерческим и нанимать в команду людей, можно даже совместить с опенсорсом, как Qt, MySQL и прочие примеры. Только в обоих случаях придётся взять на себя труд по управлению этим проектом.

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

А вообще мне кажется, в одиночку целую IDE не осилить,

осилить. иде - не ос. ничего особо сложного нет. я куда больше времени потратил не на сам код, а на чтение мануалов и копание в сети по поводу wxWidgets, clang, cmake, gdb и прочего. наверное процентов 70 времени на это ушло.

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

У codelite был плагин для работы с cmake и умеющий в генерацию CMakeLists.txt + поддержка дописывая своих опций в сгенерированный файл: http://codelite.org/pmwiki/pmwiki.php?n=Main.TheCMakePlugin

Но я этим всем не пользовался, поэтому не могу сказать как и насколько хорошо или плохо это работает.

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

Остальные готовы и работают, не?

Ну попробуй багрепорт какой-нибудь отправить. Несколько лет назад на их форумах создавалась видимость активности (чисто на форуме), а по факту многолетние баги на том же месте. Я пытался пользоваться кодблоксом, пытался кодлайтом, но так как первый скорее мёртв чем жимв, а второй УГ, бросил эту затею.

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

А для C?..

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

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

Отправлял, правда не на форум, а в багтрекер. И судя по трекера баги исправляются. Хотя вон плагин symbol browser долго восстановить не могли при переходе на wxgtk 3.0.

Бег репорт и фич-реквест немного разные вещи. А многолетние баги у всех проектов на том же месте, если их не закрыли как wontfix.

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

Я пытался пользоваться кодблоксом, пытался кодлайтом, но так как первый скорее мёртв чем жив

https://www.codeblocks.org/downloads/ многие советуют … /не использовал/ …

ТС хорошую и нужную задачу выбрал для разработки …

anonymous
()
Ответ на: комментарий от normann

Осилить, осилить. Вон codelite один человек тоже пишет по сути. Так что если будет время и желание, то получится всё ;)

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

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

Осилить, осилить. Вон codelite ...

Я сравнил сабж с нормальными полноценными IDE, codelite таковой не является, и как раз именно потому, что пилится одним человеком. Ей уж е тыща лет, а она всё на том же месте. Хочется иметь альтернативу студии, qtcreator-у и clion-у, а не всяким мёртвым кодлайтам и кодблоксам, а тут по любому нужна команда, причём с разносторонними глубокими знаниями, бактрекинг и всё такое, ну хотя бы гибкий API для сторонних плагинов, если не опенсорс, у самого автора вон не хватает времени даже что бы страницу в википедии создать для пиара. Если бы автор заланировал такое, было бы замечательно.

normann ★★★
()
Последнее исправление: normann (всего исправлений: 1)

С какой интенсивностью ведётся разработка, полный рабочий день, или после работы когда время находится? Платформа для донатов есть?

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

С какой интенсивностью ведётся разработка, полный рабочий день, или после работы когда время находится? Платформа для донатов есть?

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

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

платформы для донатов нет.

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

Ей уж е тыща лет, а она всё на том же месте.

вот здесь подробнее, тем более codelite не только для C++

всяким мёртвым кодлайтам и кодблоксам

Странно слышать о живых проектах, поддержка генерации проектов которых есть в новых версиях cmake

qtcreator-у и clion-у

В первом хоть ещё python проекты можно разрабатывать. Ну и к слову, разработчикам codelite и codeblocks есть ещё чем заняться в свободное время.

Хочется иметь альтернативу студии, qtcreator-у и clion-у

Почему бы просто не пользоваться ими, раз они настолько быстро развиваются?

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

Ей уж е тыща лет, а она всё на том же месте.

вот здесь подробнее, тем более codelite не только для C++

Ну кодблокс и кодлайт старше креатора, первый в 2005-м появился, второй в 2006-м, креатор в 2007-м, clion не знаю когда, но подозреваю, что приблизительно тогда же, когда и первые. Но по количеству функционала и поддерживаемости, от того и по популярности, кодблокс и кодлайт сосут, вот пруф: статья про рейтинг IDE с сылками

Странно слышать о живых проектах, поддержка генерации проектов которых есть в новых версиях cmake

Ну копошатся по тихоньку, а толку то.

Почему бы просто не пользоваться ими, раз они настолько быстро развиваются?

Ну это так-то это не единственный критерий для желания, их использовать всё время.

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

Ну ты сравнил. QtCreator разрабатывался коммерческой конторой и явно не вечерами после работы. У него 350 комтрибьютеров.

Clion появился в ~2015 не на пустом месте - на основе idea и плагина для неё и использовал вдобавок sdk от codeblocks (внезапно). Разрабатывается тоже в конторе, которая в основном занимается разработками сред программирования.

Codeblocks, codelite (как и сабж) разрабатываются в свободное время людьми, которым это интересно прежде всего под свои собственные нужды, при этом имея поддержку более чем одного языка.

Рейтинги сосут.

Ну это так-то это не единственный критерий для желания, их использовать всё время.

Денег нет на покупку лицензии что ли?

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

Ну ты сравнил. QtCreator разрабатывался коммерческой

Да, я сравнил, о чём я и твержу. Проект надо сделать комерческим, что бы он разрабатывался не вечерами и был стимул к хорошему развитию.

Денег нет на покупку лицензии что ли?

Если бы у меня не было денег на покупку лицензии, то сейчас я нахваливал бы кодблокс с кодлайтом.

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

Что-то я не пойму: есть несколько коммерческих проектов. Но и там не всё так хорошо, если тебе другие подавай.

Всё развивается так, насколько это нужно самим разработчикам проектов.

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

Если бы у меня не было денег на покупку лицензии, то сейчас я нахваливал бы кодблокс с кодлайтом.

вы лучше скажите что нравится в …это CLion небось? и что не нравится - по личным ощущениям.

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

Что-то я не пойму: есть несколько коммерческих проектов. Но и там не всё так хорошо, если тебе другие подавай.

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

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

вы лучше скажите что нравится в …это CLion небось

В нем мне нравится богатый функционал. Ненравится то, что этот функционал нельзя отключить. Куча багов, часть из которых очень медленно исправляются, а некоторые вообще не будут исправлены, видел багрепорты 15-ти летней давности. Самое главный недостаток это то, что это java, среда сжирает ресурсы компьютера и начинает тормозить на крупных проектах. Причём тормоза уникальные, например, если не выдержать паузу между Ctrl+F и Ctrl-V, то получаешь внезапную и незаметную вставку в текст, потом ищи её. Это не среда для серьёзных крупных проектов.

normann ★★★
()

Не помню отписывался ли я в этой теме. Лень листать.

Чем оно лучше clion?

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

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

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

вы лучше скажите что нравится в …это CLion небось?

А конкретно по функционалу это очень хорошая навигация по коду, хорошая поддержка CMake, богатая расцветка синтаксиса, включая doxygen (хотя это не так уж и важно), свободное разбиение окон редактора, много по мелочи, наличие «right margin», адекватная подсветка выделенных, много чего, но уже не помню, бросил её. Ну и кроссплаторменность.

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

С какой стати ему не быть в обиходе, есть лучшая альтернатива? Даже майкрософт недавно включила его поддержку в студии.

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

Особенно мне понравилось выражение «грязную работу» …

Конечно такую «рекламу» мог написать лишь какой-то Вася …

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

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