LINUX.ORG.RU

Легковесный редактор исходного кода C++ с деревом объявлений

 , ,


0

2

Существуют ли такие? Для Haiku есть Pe, но под другими системами он не работает.

Требования:

  1. Быстрый запуск. Легковесность.

  2. Подсветка синтаксиса C++.

  3. Навигация по объявлениям. Должна работать для файлов вне проекта, без настроек путей заголовочных файлов и т.п.. Список должен быть в порядке объявления без сортировки по именам. Ещё хотелось бы разделитель, если между функциями две пустых строки и вывод специально форматированных комментариев (//#pragma mark <section name> в Pe).

  4. Поддержка hiDPI.

  5. Больше ничего не надо.

Не предлагать: Vim-подобное, Electron, GTK 3+, требующие онлайн аккаунты, онлайн редакторы.

Что не подходит:

  1. Notepad++. Медленно работает навигация по объявлениям, всё вешается во время генерации списка объявлений.

  2. VS Code. Часто вообще не работает навигация по объявлениям.

  3. Geany. Медленно открывает файлы. Не нашёл настройки так чтобы всегда объявления сортировались по позиции в коде, а не по имени.

  4. Kate. Нет навигации по коду. Может быть плохо искал?

  5. QtCreator. Требует аккаунт для установки. Может быть есть сторонние сборки в том числе под Windows? Что-то странное происходит при hiDPI.

  6. Netbeans/Eclipse. Запускаются целую вечность. Не работает навигация вне проекта.

★★★

QtCreator. Требует аккаунт для установки. Может быть есть сторонние сборки в том числе под Windows?

Под Windows можно использовать msys2

pacman -S mingw-w64-x86_64-qt-creator

Под Linux если пользоваться пакетным менеджером дистрибутива тоже аккаунт не нужен.

Аккаунт нужен, только если устанавливать версию с сайта Qt.

fsb4000 ★★★★★ ()

Как ни странно, vim. К нему можно прикрутить ctags.

Еще был раньше такой старенький редактор nedit.

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

Как ни странно, vim. К нему можно прикрутить ctags.

Как там выглядит дерево символов?

Еще был раньше такой старенький редактор nedit.

Меня старина особо не волнует, главное чтобы было дерево символов.

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

Вообще ctags генерирует файлик с символами, который потом можно открыть в любом текстовом редакторе. Хоть в vim в дополнительной панельке. Может и плагины какие есть.

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

Прям окошко с символами надо?

Да. Панель слева или справа от исходника.

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

Вообще ctags генерирует файлик с символами, который потом можно открыть в любом текстовом редакторе.

Оно же сразу устареет если редактировать файл.

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

И что блин, трудно один раз зарегиться?

Да, религия категорически не позволяет регистрироваться для скачивания софта.

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

Ну я тоже бы вим посоветовал, но на любителя, конечно, мне минимализм нравится в интерфейсе, все очень шустро. Список символов выглядит так http://0x0.st/-a3e.png там правдва сортировка по имени символа а не по номеру строки, но можно в этом окне искать нужное и все такое. Из плагинов только YouCompleteMe. Если интересно, могу и vimrc выложить свой для быстрого старта (там 100 строк).

pavlick ★★ ()

Попробовал Atom с symbols-tree-view, в половине случаев методы классов не выводятся.

X512 ★★★ ()

Kate

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

В VS Code аналогично. Скорее всего нужно поставить плагин. И скоре всего он тебе его даже предлагал поставить.

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

и в том числе под Windows?

Так бы сразу и сказал, что тебе под windows нужно. Тем более notepad++ упомянул.

Codeblocks же. Он сам дерево проекта строит для добавленных файлов.

Может codelite зайдёт, если только C++ нужен.

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

В VS Code аналогично. Скорее всего нужно поставить плагин. И скоре всего он тебе его даже предлагал поставить.

Плагин C++ установлен, но работает через раз. Для некоторых исходников дерево показывается, для некоторых пусто.

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

Желательно чтобы одновременно в Линукс и Windows было. На планшете всё кроме Windows плохо работает. Хотелось бы иметь возможность читать исходники с планшета.

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

codelite

Outline пуст, добавление в Workspace не помогает.

Codeblocks

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

В последней версии дерево символов не работает.

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

старенький редактор nedit.

Это который на Motif? Да он старее 90% лоровцев.

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

В последней версии дерево символов не работает.

Для Linux или виндоус? Попробуй ночную сборку - там починили. Либо проси ментейнера добавить патчи. Либо в версии 17.12 должно работать в виндоус.

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

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

QtCreator. Требует аккаунт для установки.

Чет не припомню такого

code::blocks отличный редактор, если надо писать что-то небольшое. Но у тебя слишком большие требования.. не знаю подходит ли под твои требования хоть один из существующих редакотров или сред разработки..

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

Но у тебя слишком большие требования

Навигация по коду – это большие требования? Это умеет примитивный редактор Pe для BeOS/Haiku из 90-х годов с размером 1.25 МБ.

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

Для Linux или виндоус?

Пока с Windows планшета проверяю. Попытка открыть распакованный архив ночной сборки стабильно убивает Проводник.

Под Линукс только из исходников собирать?

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

Попытка открыть распакованный архив ночной сборки стабильно убивает Проводник.

Странно.

Под Линукс только из исходников собирать?

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

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

Напиши ментейнерам письмо со ссылкой на нужные патчи, мотивируя их тем, что пофикшена очень важная фича, отключённая ранее для wxwidgets 3.0 и работавшая для wxwidgets 2.8

Как минимум эти.

  • applied patch #1031: Fully threaded Symbol Browser; thanks Miguel Gimenez
  • applied patch #1061 Fix Symbol Browser compilation when CC_NO_COLLAPSE_ITEM is undefined; thanks Miguel Gimenez

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

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

Странно.

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

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

Neovim + tagbar.

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

Но я так понял, ты просто хочешь, чтобы тебе кто-то зарегистрировал аккаунт, чтобы скачать QtCreator.

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

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

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

Neovim + tagbar.

Выглядит годно. Такое чувство, что все эти Электроны и кривые тормозные редактроы скоро меня надоумят перейти на Vim…

Но я так понял, ты просто хочешь, чтобы тебе кто-то зарегистрировал аккаунт, чтобы скачать QtCreator.

Для моей задачи Code::Block пока работает лучше QtCreator. QtCreator сбивает с толка упреждающие объявления класса и это отключает группировку методов.

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

Если человек установил сусю, то он явно готов страдать.

Я уже не знаю где не страдать. Старался искать что-то близкое к LSB и не слишком нестабильное.

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

Нашёл баг: для кода void* Thread::operator new(size_t size) в дереве выводится «operatornew» и оно не выбирается (прогрутки и выделения места в коде не происходит). Но это мелочи, в Pe есть баги и покруче.

X512 ★★★ ()

QtCreator. Требует аккаунт для установки.

Кошмар, давно так?

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

иерархия включается правым кликом в этом treeview

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

Убунта

Там телеметрия, магазины, Snap, GNOME.

арч, гента

не страдать

/0

Зачем?

Стандарт как никак. Я предпочитаю стандарты, а не бардак. RPM можно так собрать, чтобы почти везде работал. Также есть YaST GUI и история установки пакетов.

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

телеметрия

Собирают информацию не о вас, а о вашей системе. Можете отключить.

магазины

Что?

Snap

Недостаток, не спорю. Всё же.

GNOME

Выберите с другим ДЕ.

/0

Вообще нет. С арчем не страдал от слова совсем, с гентой так же.

Стандарт как никак

Крайне сомнительная нужность конкретно этого стандарта.

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

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

fernandos ★★★ ()

Ну, если не предлагать vim…

QtCreator. Требует аккаунт для установки

Собери его из сорцов если это проблема.

Не предлагаю, просто веду цепочку: для vim есть vista и tagbar. 100% что-то похожее есть для emacs.

Не предлагать: Vim-подобное, Electron, GTK 3+, требующие онлайн аккаунты, онлайн редакторы.

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

pon4ik ★★★★★ ()

Я бы при таких требованиях плясал от поддержки редактором LSP рассматривая ccls в качестве language server’а.

zezic ★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.