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. Запускаются целую вечность. Не работает навигация вне проекта.

★★★★★

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

CudaText

Выглядит очень годно, но в дереве не показываются конструкторы/деструкторы, operator <...>() и переменные.

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

А зачем редактор C++ нужен? Если есть IDE для крестов… это как «редактор для Java», хочется странного?

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

Если есть IDE для крестов…

Замучаешься приделывать IDE ко всему зоопарку систем сборки. Мне редактор кода в основном нужен для работы с существующими открытыми проектами, а не для написания проектов с нуля.

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

для больших проектов, раньше был такой sourcenav (sourcenavigator ng), но давно заброшен :-(

сейчас есть некий sourcetrail.com со схожим функционалом и плагинами в любимые редакторы - потыкай его палочкой

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

А тебе какую метку поставить "линусятник"или «анемешнятик» или может быть «дошколятник»?

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

Вот это уже правда.

Просто скажи за сколько тебя купили? Для нормального человека недоговорить нечто важное и обмануть – одно и то же. К твоему сведению, ты уже не раз палишься прикрывая подобных обманщиков. В чёрный список ты уже попал. Время за чёрной меткой.

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

Кстати и то не обязательно, там были по крайней мере 4 месяца назад оффлайн варианты в которых бы в том числе mingw и опциональный набор библиотек, собственно вот, для 5.9 даже проверял - работает и ничего не просит.

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

Для навигации по кода в vscode нужен compile_commands.json, который формируется, например, с помощью bear (build ear), и мне кажется, что многие системы сборки его умеют генерировать.

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

работает и ничего не просит.

Скачал по твоей ссылке оффлайн установщик: qt-creator-opensource-windows-x86_64-4.14.2.exe

Первые два окна установщика: https://imgur.com/a/z0DRYff

У меня есть аккаунт и это не проблема, но всё-таки аккаунт требуется…

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

Тебе ставить метку «вантузятник»?

Пользоваться Windows теперь нельзя никогда и не при каких обстоятельствах? Я не настолько фанатик. Даже Mac OS приходилось пользоваться.

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

Пользоваться Windows теперь нельзя никогда и не при каких обстоятельствах?

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

Даже Mac OS приходилось пользоваться.

Ну это не такой зашквар как венда.

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

Ну это не такой зашквар как венда.

Ну не знаю, не знаю. В Apple лютые копирасты и проприетарщики и там всё огорожено. С Windows как-то более свободно. У меня самого техники Apple никогда не было и вряд ли будет, только на работе если потребуется (приходилось как-то писать небольшое приложение под iPhone/iPad).

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

А если железо Линуксом не поддерживается полностью? Например у меня на планшете в Линуксе глючит сенсорный ввод и не работает камера. Планшетов где всё работает в Линуксе я не знаю.

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

Ну это не такой зашквар как венда

Зашквар это когда ты на аватуру ставишь аниме.

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

А зачем редактор C++ нужен?

Попробуйте вбить в гугл поисковый запрос А зачем редактор C++ нужен?.

Владимир

anonymous
()

Кто советовал vim + ctags, тот немного устарел, ибо для vim уже есть language servers. То есть, vim ходящий по LSP в clangd поддерживает любую навигацию чуть более, чем целиком.

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

Я 5.9 проверял, касательно 5.12 не знал, но всё же странно, что в оффлайн установщике такое есть.

AKonia ★★★
()

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

Акк требует при установке, если на компе есть доступ в инет. Выруби инет и ставь.

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

твой девиз по жизни - один раз не водолаз?

anonymous
()

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

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

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

типа такого? https://www.youtube.com/watch?v=8h0vU4k5mnc

alysnix ★★★
()

Если тебе ехать, а не шашечки, то регистрируйся на qt.io и ставь QtCreator. В репах, само собой, никакой регистрации нет.

anonymous-angler ★☆
()
Ответ на: комментарий от Im_not_a_robot

Neovim + tagbar.

А у вас нет такого же, но с перламутровыми пуговицами для емакса?

rupert ★★★★★
()

nedit пробовал? Он правда какой-то дохлый в последнее время, но мне подходит, может и тебе подойдет.

anonymous
()

О! Я пропустил, что речь про венду. Так поставь вижал студию и не парься. Чё бы кто не говорил, но она по тормознутости сопоставима с тем же QtCreator. На больших проектах оба два лагают, на маленьких и средних оба два летают и памяти жрут гораздо меньше жабоподелок.

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

Я пропустил, что речь про венду.

Нет. Надо кроссплатформенное решение.

Так поставь вижал студию и не парься.

Оно:

  1. Очень жирное. Установщик больше гигабайта. Потребляет много памяти.

  2. Засоряет систему всякой ерундой.

  3. Требует регистрацию.

Чё бы кто не говорил, но она по тормознутости сопоставима с тем же QtCreator.

QtCreator намного быстрее и легковеснее.

На больших проектах оба два лагают

Мне один файл открыть надо, а не проекты. Тем более мне не нужен vendor-lock с проектами студии.

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

А те, кто внешними индексарами пользуются с вимом, вы чем для плюсов таги генерите? Есть ли такое, что бы работало с дефолтными вим командами :tnext/:tlist/:tprevios/… , без всяких доп плагинов? Такая замена для сишного ctags. Rtags знаю, но они себя к emacs приписывают почему-то, надо будет как минимум какое-то плагиньё втыкать в вим.

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

вы чем для плюсов таги генерите?
Такая замена для сишного ctags.

Чисто для справки - ctags обрабатывает кресты. Не идеально, но простые случаи вполне успешно.

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

Это называется успешно )? Да он даже не определит разницу между S1::fn и S2::fn. Не, ctags очень годная и шустрая штука, но для Си, для плюсов же - пользоваться им нормально невозможно. Нужно брать полноценное АСТ от компилятора, генерить его самостоятельно - нужно быть очень отчаянным чтобы в такое ввязаться.

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

Тем более мне не нужен vendor-lock с проектами студии.

Visual Studio 2019 кроме msbuild проектов поддерживает полностью cmake проекты. Так что никакого «vendor-lock с проектами». Создав cmake проект в Visual Studio другой человек может открыть его в любой IDE поддерживающей cmake. Или даже в редакторе, а сборку cmake проекта осуществлять вручную в терминале.

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

Оно:

  1. Требует перезагрузки компьютера после установки/обновления.
gag ★★★★★
()
Ответ на: комментарий от pavlick

Да он даже не определит разницу между S1::fn и S2::fn.

Ваще-т, именно эту разницу он определяет. Прочти уже, наконец, документацию.

Он ломается в первую очередь на шаблонах.

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

Он ломается в первую очередь на шаблонах.

А их нельзя просто игнорировать при парсинге? Рассматривать <…> как что-то вроде комментария.

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

Сам msbuild - открытый проект

Ещё скажите, что им можно проекты на C/C++ для Линукса собирать. Ждём пакеты в репозиториях с системой сборки msbuild.

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

Ну, mono для запуска .NET программы msbuild есть. msbuild-проекты для C/C++ писать от руки тоже можно:

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

Видимо у нас какие-то разные, у меня этот стоит для сишных проектов https://ctags.io/

Делать что-то подобное для плюсов (парсить исходники без компилятора) - абсолютно бесперспективно (принимая во внимание сложность), когда это может делать как шланг, так ГЦЦ и давать наружу АСТ.

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

Делать что-то подобное для плюсов (парсить исходники без компилятора) - абсолютно бесперспективно

Для задачи составления дерева объявлений задача вполне решаемая. Для автодополнения уже сложнее.

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

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

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

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