Состоялся (https://www.kdevelop.org/news/kdevelop-520-released) релиз интегрированной среды программирования KDevelop 5.2 (http://kdevelop.org), полностью поддерживающей процесс разработки для KDE 5, в том числе с использованием Clang в качестве компилятора. Код проекта распространяется под лицензией GPL и использует библиотеки KDE Frameworks 5 и Qt 5.Основные новшества:
- В появившееся в прошлом выпуске меню Analyzer, объединяющее плагины для анализа кода, добавлены средства для использования
Heaptrack (https://www.kdab.com/heaptrack-v1-0-0-release/), системы профилирования проблем с распределением памяти в куче для приложений на C/C++.По умолчанию обеспечен вызов статического анализатора cppcheck для C++ с возможностью отображения выявленных проблем непосредственно в редакторе кода;
- Проведена большая работа по стабилизации и улучшении парсера для языка C++ и плагина семантического анализа, основанных на использовании Clang. В том числе обеспечена передача анализатору флагов компилятора, используемых системой сборки, без информации о которых невозможно корректно разобрать некоторые заголовочные файлы Qt. Увеличена производительность автодополнения кода C++ в ряде ситуаций. Возвращены некоторые возможности автодополнения кода, не перенесённые из ветки 4.x, такие как автоматическая подстановка точки с запятой;- Представлены различные улучшения, связанные с поддержкой языка PHP.
Например, сокращено число ситуаций, приводящих в выводу предупреждений о проблемах с синтаксисом, в современном коде PHP. Добавлена поддержка новых возможностей языка и улучшено определение сведений о типах;- Проведена чистка кода плагина для языка Python. Устранены ложные предупреждения об именах, используемых в замыканиях, определённых позднее в том же файле. Налажена подсветка локальных переменных в лямбда-выражениях. Обеспечено корректное определение типов при слиянии кортежей с целыми константами и в выражениях "and" и "or";
- Обновлены версии компонентов, используемых в версии KDevelop для Windows. Просмотрщик документации переведён на QtWebEngine вместо QtWebKit.
URL: https://www.kdevelop.org/news/kdevelop-520-released
Новость: http://www.opennet.me/opennews/art.shtml?num=47569
10 лет программирую в этой IDE. В какой-то момент пробовал экспериментировать, искать аналоги, но под Linux их просто нет. Помню даже несколько месяцев кодил в QtCreator, но моим высоким требованиям эта IDE не отвечает, хотя для быстрых набросковисключительно C++/Qt-приложения очень даже неплохо. И вот, так я понял, что нормальных IDE под Linux уровня KDevelop вобще-то и нет.
Вы не пробовали CLion?
Лицензию можно получить с помощью http://codes.online например.
> Вы не пробовали CLion?
> Лицензию можно получить с помощью http://codes.online например.http://xidea.online конечно. Гугл зачем-то исправляет URL.
Если не ошибаюсь, все поделки джетбрейнс сделаны на яве, и дико тормозят на слабых машинках, в отличии от нативных поделок (вроде kdevelop).
Сейчас бы продукты джетбрэйнса, которые на голову выше конкурентов, поделками называть, ага.
Нда, продукты JetBrains назвать поделками...это за гранью
Ну или https://gist.github.com/denis111/c3e08bd7c60febc1de8219930a9... ;)
CLion хорош. Но! Пару-тройку минорных апдейтов назад он просто впадал в кому на нашем проекте при анадизе для "intellisense". QTCreator - без проблем.
Значит можно сделать вывод, что Eclipse пробовали. Сможете подсказать, в KDevelop есть ли такие же функции как в Eclipse:
1) интеграция с git (просмотр истории изменений по отдельным файлам, например);
2) возможность импорта готового проекта на CMake;
3) корректная индексация всего проекта и возможность перехода как по лексемам проекта, так и по внешним заголовочным файлам;
4) поиск и замена по всем файлам проекта, в том числе и по регуляркам;
5) поддержка внешних утилит автоматического форматирования теста, в частности, clang-format;
6) подсветка Си как Си, а не как С++;
7) мелочи в духе подсветки выделенной переменной, функции, подсказки по формату при наведении, автоматическое дополнение полей структур (в том числе и системных) и т. п.Спасибо.
Про 4 пункт не уверен, что есть, но внутри файла переменную или функцию переименовать без проблем.
Про 5 не знаю, а остальное все есть.
Сам проверил, и то, и то есть. Правда пришлось попотеть, чтобы заставить автоформатирование работать. Ошибок оно не показывает, а в команде успел запутаться. Может кому пригодится:clang-format-3.8 -assume-filename=$FILE -style=file
Должна быть именно в таком виде.
Не знаю как в KDevelop, но в Qt-Creator все это есть.
Уже неважно, сам попробовал эту IDE, огромное спасибо человеку за подсказку про неё! Она на порядок быстрее и удобнее Eclipse при тех же и даже больших возможностях.
>так я понял, что нормальных IDE под Linux уровня KDevelop вобще-то и нетБыла хорошая IDE KDevelop, пока её Шлангом не испохабили.
Ещё никто под неё не сделал альтернативный C/C++ плагин, независящий от Шланга?
Да ладно тебе, clang хорошая штука же, ну.
Нет, спасибо, пока попользуюсь QtCreator'ом
QtCreator тоже пользуется шлангом :))
Как шланг её испортил?
Я наверно странный, но пишу там на js, где многого не хватает. Пробовал всякие поделки на электроне - так не смог в них нормально (как редакторы они ужасны, несмотря на все интеграции и плагины), всякие халтурки на яве типа webstorm - так там "умное" автодополнение мешает и путает больше чем подсказки по совпадениям в документе в kdevelop
А для Си он подходит? Что бы всякие namespace не подчеркивал как ключевые слова, и не ругался на другую Си-семантику.И второе, есть ли поддержка проектов на makefile, и\или сопутствующая поддержка Compilation Database (https://sarcasm.github.io/notes/dev/compilation-database.html)?
Вообще, это плохо — использовать в сишных проектах в качестве имен переменных ключевые слова из Си++ (как минимум, в связи с тем, что портировать на плюсы будет куда сложнее)
И замечательно.
Не в этом дело. Приходится иметь дело со сторонними проектами - а там может быть что угодно, что проглатывает компилятор.А проблема хедеров? Можно назначить отдельные хедеры как С++ а другие как C ? По феншую, конечно, для плюсов надо именовать .hpp, но это далеко не везде сделано.
Подходит не хуже всего остального, но и не лучше. Рефакторинга никакого нет (как и для плюсов, впрочем), макросы разбирает довольно хорошо.Что в нём адски раздражает кроме отсутствия рефакторинга - это разные наборы файлов для в дебаге и вне его. Какой укурок и зачем это сделал не представляю. Ну и проблемы с индексацией/поиском - на большом проекте он периодически теряет индекс (и вообще как-то не полностью индексирует проект) - то есть поиск по функциям работает совсем слабо, иногда даже в одном файле часть функций подхватит, часть - нет. На определение enum умеет перейти только если из файла, в котором этот enum используется и который распарсил, из глобального поиска не может...
А, ещё неумение изменить дефолтный (и очень маленький) размер окошек просмотра значения переменной, которые появляются, когда наводишь курсор.Но в целом штука вполне рабочая.
Мы пробуем эту IDE с момента публикации этой новости, проект большой, никаких поломок индекса пока не замечал. Версия стоит 4.х.
А вот с размером окошек - это да, проблема.
И инициализаторы с приведением типа литералов в стиле C99 не распознаёт.
Особенно раздражает, что переменные с названием template распознаёт как ошибки синтаксиса.
Ну и не умеет подсказывать содержимое структур при наведении на них, этот момент очень неудобен по сравнению с Eclipse.Но в 5-й версии появилось разделение между Си и C++, пока не проверял, может и уйдёт часть проблем.
Проверил, - в 5-й инициализаторы определяются правильно. Прекрасно работает.
Подскажите, как установить .AppImage образ? Запустить я его могу, desktop файл я написал (нет ли способа его сгенерировать?), но не понимаю, как назначить icon. Есть файл kdevelop.png ... куда его положить, и есть ли способ это сделать автоматизированно и универсально для любого взятого .AppImage?
Appimage по определению никуда не устанавливается. А иконку ему назначить можно либо через редактор главного меню, либо через свойства файла в файловом менеджере.> Есть файл kdevelop.png ... куда его положить
Без разницы, куда хотите, просто укажите полный путь до неё в desktop-файле.
Спасибо. Действительно, что-то глаза разбежались.Еще маленький вопрос. В .AppImage образах (тот же kdevelop) часто лежат .desktop файлы. Я их оттуда вытаскиваю и правлю и кладу в ~/.local/share/applications. Это нормально, это так надо делать? Не сильно много информации по appimage я нашел даже на английском
Можно, но не обязательно.Хорошая интеграция appimage-софта в систему мне ещё не попадалась.
Mentor graphics, maple, slickedit, matlab? Собственно, все проприетарное ставится куда угодно.
Блин, что только люди не придумают, лишь бы только Emacs'ом не пользоваться :).
Подозреваю, что разрабы KDevelop'a пишут его из-под emacs или vim.
пф, расскажите ка, о рефакторинге кода в vim о вменяемоей отладке и т.д.
>о рефакторинге кода в vimvim умеет такие необычные вещи делать с текстом, что проще сделать что-то руками чем вспоминать соответствующее "заклинание".
>вменяемоей отладкеVimеры (по их собственным словам) не нуждаются в отладчике поскольку не дураки и прекрасно понимают что и как делает их программа.
Проблема в том, что в IDE ты работаешь не с текстом. И обычно нужно не "необычные вещи делать с текстом", а очень простые - но с синтаксическим деревом кода. А то, что это дерево в виде текста сериализовано - это так, деталь рализации.
Так рефакторинга и в KDevelop нет? Хотя в принципе я согласен - все эти попытки сделать из редактора IDE обычно происходят от крайне низких требований к IDE. Не, там всё можно сделать, но мороки уж больно много, и красоты не будет.
> Так рефакторинга и в KDevelop нет? Хотя в принципе я согласен -
> все эти попытки сделать из редактора IDE обычно происходят от крайне
> низких требований к IDE. Не, там всё можно сделать, но мороки
> уж больно много, и красоты не будет.Сегодня смотрел, - есть. Умеет переименовывать переменные по файлам с предпросмотром изменений. Дальше не успел поковырять.
чем gdb не угодил? Ни разу ещё не понадобилось чего то странного, чтое сть в IDE
А в IDE и не бывает ничего такого, чего нет в gdb. Они ж его как бкекенд и используют (ну или другие платформоспецифичные).
Зачем это зaдротство? Типа пoнты в среде гикo? Смотрите пaцаны, я осилил 100500 извpaщенских комбинаций в виме, а еще я сeнсей консоли 9000 лвла, да?
Ты не поверишь, но Вим очень удобный если научиться им пользоваться.Ты тем более не поверишь, но удобен он не всегда!
меньше мышевозни, да и тупо удобней.
А еще вот это вошло в строй КДЕ https://zoltanp.github.io/2017/11/ktechlab-0-40-0.html
> its latest release, 0.40.0, does not depend on KDE3 and Qt3, but on KDE4 and Qt4.Кажется у них календарь отстаёт.
С Qt3 перелезть сразу на 5 почти что нереально.
Офигенно! Ждём ебилдов и порта на Qt 5.