LINUX.ORG.RU

KDevelop 4.5

 ,


0

2

Мы рады сообщить о публичном доступе релиза KDevelop 4.5.0. Для тех, кто ещё не знает, KDevelop является IDE для всех тех разработчиков, которые хотят использовать инструменты, необходимые для разработки, удобно и просто одновременно. Мы делаем ставку на C++ и CMake, но вы можете найти наш продукт полезным при использовании других языков, таких как PHP и Python.

Разработчики KDevelop работали очень напряженно и продуктивно всё это время. Всего за одну неделю было сделано около 550 коммитов. Вот некоторые из изменений:

  • Улучшена поддержка Python, Ruby, QML/JS;
  • Значительно улучшена поддержка C++;
  • Прекращена поддержка Quanta в связи с нехваткой разработчиков;
  • «Отполирован» интерфейс, добавлены новые функции;
  • Изменены диалог настроек и конфигурационное меню;
  • Улучшения в «Pick Session»;
  • Изменено расположение кэша DUChain (`$XDG_CACHE_HOME/kdevduchain`)
  • Исправлено множество ошибок, например, в обзорщике файловой системы и т.н. generic manager;

Объявление на kdevelop.оrg

Что нового

Инструкция по установке

★★

Проверено: maxcom ()
Последнее исправление: GreenTea (всего исправлений: 6)

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

Это бывает такое что я функцию, скажем, или прототип ее в библиотеке поменял, а оно само все по всему проекту переделает? А переменную? А переход к месту объявления (первого упоминания :) ) переменной по имени? А подсвет в случае, если переменная используется впервые? Хочу-хочу-хочу-хочу! Кто что про такое знает?

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

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

Есть мнение, что разработка ненужного говна спонсируется конкурентами линукса

Есть дебиан :) да и вообще, гламурные дистры != линукс, линукс - он на то и линукс, что каждый волен себе собирать все что хочет. Даже если все залить эталонным говносовтом, старого и доброго это ни в какой степени не отменяет

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

Это бывает такое что я функцию, скажем, или прототип ее в библиотеке поменял, а оно само все по всему проекту переделает? А переменную?

KDevelop, AFAIK, согласованно меняет только название (переменной, члена класса, функции, метода...). Ну, естественно, когда не лажается :-) А, скажем, при добавлении удалении нового аргумента или изменении существующего в объявлении/определении функции или метода IDE предлагает сразу обновить и определение/объявление, а вот точки вызова этой функции приходится руками отсматривать.

В более навороченных (джавовских) средах можно и эту операцию проводить в автоматизированном режиме.

А переход к месту объявления (первого упоминания :) ) переменной по имени?

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

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

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

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

Впрочем, сейчас придёт tailgunner и расскажет, что краше Mercurial-а на свете не бывает ;)

Ты ощущаешь мой укоризненный взгляд даже без моего прихода в топик %)

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

Ох уж эти мне динамические языки :)

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

зачем это вообще? почему не сделать, как у людей, с объявлением? чтоб легче программировать было? да по факту не легче :) других разумных (то есть никаких разумных) объяснений существованию переменных, которые можно использовать без объявления я не вижу

по теме, пробую KDevelop, мож даже кеды поставлю, если понравится :)

зы а как у него с командной работой (работой не из одного места, если я буду переезжать дом/работа осилит синхронизацию?)?

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

А насчёт падучести… У меня не падает

Зайчатки интеллисенса в KDevelop часто не переваривают какой-нибудь заковыристый шаблон. И если они его не переваривают - помогает только отключение зайчатков... или вдумчивый рефакторинг шаблона («удолил!» (с)Ну ты понел) :) Иначе среда, запомнив этот файл открытым, упадет даже при следующем перезапуске.

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

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

Вам, имхо, давно пора, если сотня файлов и чувствуете что нужно. Осиливши бывает что начинаешь засовывать под DVCS чуть ли не напоминалки «купить молока» :)

Насчет mercurial не скажу, а с git основной неясный для начинающих момент — наличие некоего index, куда сначала нужно add, а потом уже commit. Ну и не упустить, что на удаленный сервер при этом ничего не уходит (в отличие от svn).

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

зачем это вообще? почему не сделать, как у людей, с объявлением? чтоб легче программировать было? да по факту не легче :) других разумных (то есть никаких разумных) объяснений существованию переменных, которые можно использовать без объявления я не вижу

ну, это чтобы различные деятели не задумывались о том, что есть всяческие void, int, long и иже с ними; почему float и double; могли спокойно писать $coolVariable[10+«Вася»]; никогда не видели ужасных слов Segmentation fault или NullPointerException итд. Плюс, накидать по-быстрому десяток-другой строк скрипта, если точно знаешь, что делаешь - без принудительного объявления обычно удобнее.

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

Ну, на уровне переезда репозиториев и настроек - всё нормально происходит. Но нужно помнить, что часть настроек сохраняется в сессионных файлах (н-р, в ~/.kde4/share/apps/kdevelop/sessions/<session-id>/sessionrc), поэтому имеет смысл заглянуть в эти файлы на предмет [абсолютных] путей.

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

У меня пережевывает даже мои Boost.{Spirit,Karma}-овые куски. Так что, ситуации «непереваривания» или достаточно редки, или Ваша фамилия - Александреску :)

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

Вообще на то есть выведение типа уже сто лет как. То есть

var a = 1
или
a := 1

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

Ну, в HG по умолчанию включено автодобавление, насколько я помню.

То есть, сработает такая последовательность:

alex@rhyme ~/tmp $ mkdir hg_repo; cd hg_repo
alex@rhyme ~/tmp/hg_repo $ hg init
alex@rhyme ~/tmp/hg_repo $ echo a > a
alex@rhyme ~/tmp/hg_repo $ hg add 
добавляется a
alex@rhyme ~/tmp/hg_repo $ hg ci -m "Initial commit"
alex@rhyme ~/tmp/hg_repo $ echo b >>a
alex@rhyme ~/tmp/hg_repo $ hg ci -m "The second commit"
alex@rhyme ~/tmp/hg_repo $ hg cat -r 1 a
a
b
alex@rhyme ~/tmp/hg_repo $ hg cat -r 0 a
a

сравните с git'овским

alex@rhyme ~/tmp $ git init git_repo; cd git_repo
Initialized empty Git repository in /home/alex/tmp/git_repo/.git/
alex@rhyme ~/tmp/git_repo $ echo a > a; echo b > b           
alex@rhyme ~/tmp/git_repo $ git add a b
alex@rhyme ~/tmp/git_repo $ git commit -m "Initial commit"   
[master (root-commit) 69e2e53] Initial commit
 2 files changed, 2 insertions(+)
 create mode 100644 a
 create mode 100644 b
alex@rhyme ~/tmp/git_repo $ echo a2 >> a; echo b2 >> b
alex@rhyme ~/tmp/git_repo $ git commit -m "The second commit"
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   a
#       modified:   b
#
no changes added to commit (use "git add" and/or "git commit -a")
alex@rhyme ~/tmp/git_repo $ git add a
alex@rhyme ~/tmp/git_repo $ git status 
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   a
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   b
#
alex@rhyme ~/tmp/git_repo $ git commit -m "The second commit"
[master c777ae4] The second commit
 1 file changed, 1 insertion(+)
alex@rhyme ~/tmp/git_repo $ git commit -a -m "The third commit"
[master 706c199] The third commit
 1 file changed, 1 insertion(+)
alex@rhyme ~/tmp/git_repo $

В принципе, способ Mercurial-а может показаться проще, но в действительности способ git'а для меня оказывается более привычен/приемлем, т.к. изменения в коммит всё равно добавляются не то, что пофайлово, а почанково и даже построчно: отсматриваем изменения и добавляем ровно то, что нужно закоммитить в этом коммите, а что не нужно - оставим до следующих.

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

Ну, в HG по умолчанию включено автодобавление, насколько я помню.

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

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

Это про git add [ -i | -p ]? Классная штука, и git rebase -i еще, но на них еще наткнуться надо.

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

Есть. Он везде есть. Собственно, svn status и hg status его и показывают. Разница только в поведении по умолчанию, в ситуации, когда на файлухе изменения есть, а в индекс вообще ничего не добавлено.

Ну и в устройстве этого самого индекса. AFAIK, аналог git add -i / git add -p в hg реализуется только расширениями.

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

Это даже не мои шаблоны :) Просто в либе есть экстенсивно нашаблоненный интерпретатор выражений для потокового протокола - он стабильно кдевелопу разрывал его зайчатки моска. (в OpenSuse 11.3 помнится на том же файле сборка еще подвисала - приходилось ionice подкручивать... без гарантий. На традиционный вопрос «WTF?» (gcc собирался на той системе за полчаса, сборка либы могла легко зависнуть на сутки на этом файле) разрабы отвечали «так это... 3 Гига RAM минимум» - а на всей машине было 2)

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

Disclaimer: но я не копенгаген в hg и предпочитаю пользоваться меркуриаловыми репозиториями через бриджи для git'а. Это вон tailgunner спрашивайте, как там сейчас чего…

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

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

Такой вот mq для бедных.

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

ну, по-моему, нынче девелопить что-то на <4 гигов — это сорт мазохизма. А мои джавные соратники вообще 8-12 гигов втыкают в свои машинки — нервы дороже глупых денег.

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

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

А рендерера на шаблонах у вас нет? %)

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

Ага. А седан — машина для тех, кому не досталось самосвала.

P.S. вообще, есть набор средств: add -p, rebase -i, stgit и далее, по обстоятельствам.

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

А что это вообще за говно - авахи?

Ты сначала поинтересуйся, а потом уже говном называй. Даже когда в какой-то ситуации он не нужен, Avahi висит себе и никому не мешает. Причем, в отличие от какого-то systemd, это демон для одной задачи, т.е. нормальный unix-way.

Зачем оно нужно?

Обнаружение сервисов. Принтеры и иже с ними, локальные чатики и т.д.

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

А куда оно принтеры обнаруженные сует?

Никуда. Это не комбайн, а демон, услугами которого пользуются те приложения, которые хотят. Тот же CUPS говорит «дай мне список сервисов типа принтер» и avahi дает. Всего-то.

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

Зайчатки интеллисенса в KDevelop часто не переваривают какой-нибудь заковыристый шаблон

Пруфца дай. Сабж как минимум оказывается умнее VS2010 (ты с ним его сравниваешь?).

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

А оно может мне на работе например в офисе все сетевые принтеры найти само? Или для этого на каждый принтер нужно вкарячить avahi? :DDD

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

Ну, в общем-то этот случай помог убедить руководятлов, шта 2 гига уже не мейнстрим, а 8 подойдет (параллельно с мастдайным проектиком, где для DB-шного АРМа, слегка обмазанного сверху дотнетом, аффтары-заказчеги невозбранно заюзали локально M$ $QL 2008 R2 (это для 1(одного) рабочего места... «Клиент-сервер? Не, не слышали») и на двух гигах было бы все совсем печально)... И монитор должен быть шырше, лучше два... Теперь некоторое время можно жить. Эклипс вот вроде перестал тормозить... Виртуалки приблизились к комфортному состоянию. Как-то так. Может и Кдевелоп больше не падает в странной задумчивости:)

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

Пробую в бекграунде.

Из того, что не понравилось: так это какой-то странный подход к настройке цветовой схемы, фиг с ними с разноцветными именами переменных /локальных и глобальных/, но почему, даже тогда, когда выключаешь эти настройки не получается настроить цвет для: имён функций и методов - ни одна настройка их не трогает, имён классов и структур - аналогично. Что крутить для их изменения - непонятно. Почти та же картина в самом Kate. Какой-то крайне неприятный осадок от такого отстаётся: потратил время, что бы сделать тему Inkpot для Kate/KDevelop, а оно работет только частично.

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

ну, это чтобы различные деятели не задумывались о том, что есть всяческие void, int, long и иже с ними; почему float и double; могли спокойно писать $coolVariable[10+«Вася»]; никогда не видели ужасных слов Segmentation fault или NullPointerException итд

то есть сознательно стимулируют быдлокод? ну не верю же )

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

ну дак PHP - это ж не язык для 20-тистрочных скриптов. Это серьезный промышленный инструмент. Как-то нелогично такой дурдом...

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

Я тут в шоке немного.. Установил этот ваш KDevelop, Version 4.0.1, debian stable.

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

Черт с ним, открываю файлик просто так, дак он ругается на что-то там про UTF8 и (внимание! - debain stable) вылетает! Повторил несколько раз - все равно вылетает. Открыл другой командой - открылось. Но русские буковки - какозябры (знаки вопроса в черном кружке) как так-то? это же UTF-8 ! текст был рожден и развивался gedit'ом и, возможно, notepad++'ом из-под оффтопика. проблем с кодировкой не было

и, как у него с багзиллой? ) дружат? )

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

ну, по-моему, нынче девелопить что-то на <4 гигов — это сорт мазохизма. А мои джавные соратники вообще 8-12 гигов втыкают в свои машинки — нервы дороже глупых денег.

создатели говносайтов на говноPHP злобно хихикают :)

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

и avahi дает. Всего-то.

А еще он (сколько я вообще видел дебианов/убунт) дает сообщение при загрузке, ругаясь на домен .local :) я по-первости пробовал победить, а потом забил. Что это такое? Объясни ламеру ситуацию, ты наверняка в курсе. По-любому, в каком-нибудь конфиге строчку раскомментить/закомментить и все пройдет?

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

Установил этот ваш KDevelop, Version ГовноМамонта, debian ГовноМамонта.

Сам понял причину своих неудач?

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

PHP - это ж не язык для 20-тистрочных скриптов. Это серьезный промышленный инструмент.

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

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

(шаблоны только для плюсов есть)

Наверняка, должен быть установлен дополнительный пакет для PHP. В альте он называется kdevelop-for-php.

Но вообще, 4.0.1... Debian Stable... «Ну, тыпонел, да?»

Ну, я вижу, все уже проехались... Ладно, не расстраивайтесь :) Мы, не со зла.

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

Сам понял причину своих неудач?

И что ты хочешь сказать что в 2010 году KDevelop не умел открывать UTF8 без ошибок?

pihter ★★★★★
()

«Отполирован» интерфейс

Как был вырвиглазом - так и остался.

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

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

Википедию с вордпрессом всяко школота пишет. И низкий порог совсем не означает ущербность языка. Самый простой и надежный скриптовый язык - перл + всякие ништяки для веба. Все что нужно, все есть. Кто лучше для веба? Java? Си может быть?

Может на каких-то задачах и есть смысл отказаться от скриптов в вебе, но ПЫХ-ПЫХ так популярен потому что он прост, надежен, функционален, понятен. Больше ничего не нужно.

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

Ну, вообще это едва ли не первая релизная версия после глобального переезда KDE3->KDE4. Слышали фразу «KDE4 ≠ KDE4.X» ?

Ну и, к тому же. KDevelop использует компоненту Kate в качестве редактора. Поэтому Вы для начала попробуйте открыть эти файлы Kate-ом, и потом, если получится, уже разбирайтесь что у Вас не так с KDevelop. Но, честно, иногда апгрейд - это меньшее из зол :)

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

Но вообще, 4.0.1... Debian Stable... «Ну, тыпонел, да?»

Ну, я вижу, все уже проехались... Ладно, не расстраивайтесь :) Мы, не со зла.

О! Да я привык уже. :) это ж ЛОР. Тут только скажи что ПХП не есть предмет лютой ненависти для тебя и все - ты уже не человек. А про дебиан стейбл... Я в упор не понимаю тех, кто юзает другое :) и, да, в игры десятилетней дваности я играю с удовольствием :)

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

Хорошо смеётся тот, кто смеётся в день зарплаты ;)

У меня маленькая говнофирмочка :)

А работаю я в министерстве обороны, мы тут вообще не смеемся, только плачем :)

function next(certifyingHash, hexSubstitution, signUUID, index, dataStr, isDataArchived) {
                var applet = document.applets[0];
                var ua = navigator.userAgent.toLowerCase();
                //в ff каким-то хитрым образом метод вызывается до того, как апплет полностью инициализируется
                //поэтому пришлось ставить задержку в 500 ms, этого времени вполне хватает
                if (ua.indexOf("gecko") != -1) {
	                // Для первого ставим задержку в 500, для остальных уже не надо, т.к. инициализация сделалась для первого
	                if (index == 0) {
                        setTimeout(function(){applet.next(certifyingHash, hexSubstitution, signUUID, index, dataStr, isDataArchived)},500);
	                } else {
		                applet.next(certifyingHash, hexSubstitution, signUUID, index, dataStr, isDataArchived);

вот Вам кусок кода, программы, которая ЭЦП ставит на документы для казначейства :) чтоб вы тоже поплакать могли.

Это не наш код, это у нас работает :) мы только плачем

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

Да не умел

дебиан стейбл на то и стейбл что в него неумеющее не кладут

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

Слышали фразу «KDE4 ≠ KDE4.X» ?

Слышал фразу «KDE4 != KDE» :D

Но, честно, иногда апгрейд - это меньшее из зол :)

Да дебианщик я :) привык набрать apt-get install kdevelop и увидеть готовый работающий продукт, мне вон тут говорят что он и не должен уметь UTF-8 потому что он такоооооооой старый что вообще работать не должен :) Вы там про TeX какой-нибудь или tar слыхали? ) Иногда чем старше, тем лучше, сказал дебианьщик :)

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

Поэтому Вы для начала попробуйте открыть эти файлы Kate-ом

эээ... попробовал открыть в kate и с удивлением обнаружил что он в системе не установлен (WTF?) ну, дело-то нехитрое apt-get install kate - ровно та же картина. Рукалицо этот ваш КДЕ :) (или этот мой дебиан :) )

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

Википедию с вордпрессом всяко школота пишет.

вот вордпресс - весьма вероятно) Там внутри такое бывает, или по крайней мере бывало, что ой.

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

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

Кто лучше для веба? Java? Си может быть?

а вот тут приходим к печальбеде - «лучше» в смысле «такого же, но с перламутровыми пуговицами» нету. Перл выглядит несколько более внятным, но для него звезды не сложились. Питон - НЕНАВИСТЬ!!!111, фиг знает, с чего бы на него так западают. Руби - было бы неплохо, работай оно пошустрее, да и вообще он довольно странный. Ява - весьма хорошо, но весь ее энтерпрайз в лице JEE и горы фреймворков - во множестве случаев адский оверкилл в сфере применения пхп, а мелкого и простого как-то не наблюдается.

ПЫХ-ПЫХ так популярен потому что он прост, надежен, функционален, понятен.

fxd

arkhnchul ★★
()
Последнее исправление: arkhnchul (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.