Название: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 25, 2016, 15:59 Столкнулся с гениальной вещью. Стоит поставить препроцессорное условие, так сразу же в этом блоке перестаёт работать рефакторинг, автоподстановка, подсветка скобок и прочее.
Код: #ifndef QT_DEBUG Это такая фича, или тупая бага? PS остальные ide игнорируют это, превосходно подсвечивают скобочки и дают возможность автоподстановки функций. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 25, 2016, 16:21 А QT_DEBUG определена?
А вообще-то фича, всмысле так и было задумано... Хотя меня неработающий автокомплит в таких блоках дико раздражает (( Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 25, 2016, 16:29 Это автодефайн в дебажной сборке. Но бляхамуха, ладно ещё автокомплит не работает, так даже скобочки не подсвечиваются. Что за хрень блин :)
А ещё иногда при редактировании pro файла, креатор ахреневает и все кнопки сборки становятся неактивными. Помогает только пересохранение pro файла. Это тоже фича? :) Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 25, 2016, 16:39 Креатор при сохранении pro-файла выполняет обновление дерева проекта, процедура не моментальная (особенно на больших проектах), и на это время сборка/пересборка недоступны (что логично). Но по завершению обновления сборка/пересборка снова становятся доступны. У меня ни разу не возникало необходимости пересохранять файл проекта :-\
Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 25, 2016, 16:56 Нет я понимаю эту процедуру, но именно намертво ) И пишет невозможно разобрать файл проекта, без ссылки на какую либо ошибку :D А при пересохранении этого же файла (обновление даты файла), нормально его хавает) Вот такой гад :D
Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 25, 2016, 17:25 Це странно...
Версия креатора какая? pro-файл правится (в такие моменты) в креаторе? автосохранение в настройках включено? кодировка файла utf-8 без BOM? не открыт ли файл еще в каком-нибудь редакторе с включенной функцией автосохранения (да еще и неверной умолчательной кодировкой)? У меня такое случалось только если сохранить файл проекта, например, в notepad(++) в кодировке utf-8 с BOM. В этом случае приходилось пересохранять в креаторе, что исправляло кодировку понятную встроенному парсеру pro-файлов. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 25, 2016, 17:35 Всё стандартно в креаторе. Причём шальная эта вещь - бывает раз 5 на дню, а бывает неделю нормально :)
PS меня если честно бесят эти маленькие окошечки и пауза при переключении режима сборки. Неужто нельзя 1 раз прочитать, сразу все конфигурации и переключаться моментально :) Ан нет. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 25, 2016, 17:41 По поводу проблемы с правкой ничего сказать не могу - все что, по-моему, может быть причиной я уже высказал...
А что касается пауз при переключении конфигурации, в защиту креатора могу сказать что хранить все модели кода на каждую конфигурацию весьма и весьма накладно по памяти. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: sergek от Июнь 25, 2016, 18:54 А ещё иногда при редактировании pro файла, креатор ахреневает и все кнопки сборки становятся неактивными. Помогает только пересохранение pro файла. Это тоже фича? :) Тоже замечал. Помогает закрыть и заново открыть проект. Такая фигня длится уже давно, с полгода-год, и сегодня было. Встречается нечасто, поэтому отловить и не пытался.Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 25, 2016, 19:55 Та что там хранить то, ёмоё. Проектик в 200 строк он секунды 2 переключает. Пока продуплит, пока все эти три окошечка милипизерных пройдут. По сути ж ничего не меняется совершенно.
Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kambala от Июнь 25, 2016, 20:06 в Xcode есть точно такая же «фича».
по поводу бага после редактирования .pro — тоже видел его в недавней версии, в свежей пропал. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 25, 2016, 21:44 Та что там хранить то, ёмоё. Проектик в 200 строк он секунды 2 переключает. Пока продуплит, пока все эти три окошечка милипизерных пройдут. По сути ж ничего не меняется совершенно. Ну чтож вы все в кучу мешаете? Редактирование файла проекта это одно (и не спорю что есть некий баг, хотя лично с ним не сталкивался), а смена конфигурации (debug на release) это совсем другое... При смене конфигурации для проектиков в 200 строк действия (пере)сборки становятся доступны практически моментально, а милизиперные окошки показывают процесс формирования модели кода, которая даже для небольшого Qt-го проекта занимает под сотню мегабайт. Именно эту модель кода и накладно (и даже очень накладно для больших проектов) хранить по штуке на каждую конфигурацию. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 25, 2016, 22:14 Я извиняюсь. Я необразован и не понимаю, откуда модель кода в сотни мб появляется? :) Мб объясните?
Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 25, 2016, 22:35 Я извиняюсь. Я необразован и не понимаю, откуда модель кода в сотни мб появляется? :) Мб объясните? Не в сотню, а под сотню. Креатор парсит все по зависимостям и библиотечные хидера и собственные исходники проекта, в случае Qt проекта набирается солидно.Вот щас запустил креатор - без открытых проектов он отъел 70 Mb; создал новый Qt-Gui проект - отъедено 135 Mb. Цифры примерные, но для выводов достаточные... Если открыть исходники креатора в креаторе, отожрано будет порядка 600 Мб. Как-то так... Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 26, 2016, 01:03 Я понимаю модель кода. Но чем отличается модель кода дебага от модели кода релиза?
На мой взгляд ничем, кроме вставок дефайнов, модель кода не отличается. И исходники те же, и классы те же и всё то же. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 26, 2016, 10:49 Это на ваш взгляд ничем.
Чорт, да в общем случае, для дебага и релиза, может даже состав файлов в проекте разниться... со всеми вытекающими. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kambala от Июнь 26, 2016, 16:39 дефайны, как и дерево проекта, могут отключать одни части и включать другие
Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 26, 2016, 17:36 Я не спорю что могут быть случаи когда дефайнами полностью проект перекрывается, но это исключение из правил, а не вариант по умолчанию.
Да, включаются куски кода, да выключаются куски кода. Но неужели так сложно построить модель для release и debug один раз и не е**ть мозги при каждом переключении кнопочки? Вот этого я не понимаю. Ведь в разы проще построить один раз и потом вести, чем строить каждый раз при нажатии кнопочки. PS ни в одной ide я не видел задержки при переключении релиза/дебага. Там это просто флажок для режима сборки. Так всё таки это тоже фича, или баг такой? Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Old от Июнь 26, 2016, 18:05 Но неужели так сложно построить модель для release и debug один раз и не е**ть мозги при каждом переключении кнопочки? Это не сложно, это скорее не нужно. Не могу придумать ни одной причины быстро переключать типы сборки.Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 26, 2016, 19:00 Вы, линуксоиды, в этом плане прошли профессиональную деформацию.
У вас "медленно работает", "не работает", "неудобно работает", "плохо работает" - это нормально и не нуждается в исправлении. Вы тупо смирились и радуетесь этому. Типо "нас не волнуют мелкие проблемы", "ну и что, что посреди дороги лежит капкан - пусть лежит, он мне не мешает", "Обувь неудобная? ничего страшного, через месяц нога примет форму обуви" :) Этакий особый подвид понтов обыкновенных. Вы вот не видите проблемы в тормозах при переключении сборки. А я вот хочу нажать кнопочку "собрать релиз" и забыть. А не переключать режим сборки, ждать тормознутых 2 секунды с парой мелькающих окошек, а потом тыкать сборку. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Old от Июнь 26, 2016, 19:38 Вы вот не видите проблемы в тормозах при переключении сборки. А я вот хочу нажать кнопочку "собрать релиз" и забыть. А не переключать режим сборки, ждать тормознутых 2 секунды с парой мелькающих окошек, а потом тыкать сборку. Не вижу. У меня 100% времени собирается debug. Релиз я собираю, в лучшем случае, раз в месяц, руками (не из IDE), на машине, где эта программа будет работать.Я не вижу проблемы, потому что я не переключаю тип сборки в креаторе, а не потому что я линуксоид. :) Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 26, 2016, 19:40 Ну, тут как я и сказал - капкан перед дверью лежит, ну и пусть лежит. Всёравно раз в месяц хожу :D
Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Old от Июнь 26, 2016, 19:48 Ну, тут как я и сказал - капкан перед дверью лежит, ну и пусть лежит. Всёравно раз в месяц хожу :D Соберитесь! Еще раз! Я не собираю релизы из креатора, вообще. У меня на целевых машинах его нет вообще.Вот не трачу я 2 секунды на переключение... :) Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 26, 2016, 20:12 ???
Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 26, 2016, 20:15 Вы, линуксоиды, в этом плане прошли профессиональную деформацию. А все ждал когдаж Верес свой разгневанный взор на Linux обратит :)Кстати, qtcreator это отнюдь не Linux/Unix way... Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Old от Июнь 26, 2016, 20:34 ??? Не адекватность опять берет верх над Вересом... :)А где я писал, что ее не надо решать? Я написал, что по своему опыту, не вижу для чего вообще постоянно переключать тип сборки? Я так не делаю, поэтому, никогда не сталкивался с задержками из-за этого. Если вас эта проблема беспокоит, есть исходники креатора - исправляйте, посылайте патчи. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 26, 2016, 21:15 Цитировать Это не сложно, это скорее не нужно. По правилам русского языка и предыдущих сообщений следует вывод, что данная проблема не нуждается в решении - "не нужно". Более того вы не признаёте это проблемой, следовательно и решать её не надо.Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Old от Июнь 26, 2016, 21:18 Цитировать Это не сложно, это скорее не нужно. По правилам русского языка и предыдущих сообщений следует вывод, что данная проблема не нуждается в решении - "не нужно". Более того вы не признаёте это проблемой, следовательно и решать её не надо.Если вы видите в этом проблему - решайте. Хотя вы так и не смогли сформулировать, для чего же вам нужна возможность быстрого переключения типов сборки. Что вы пару секунд потерпеть не можете? Пока это напоминает претензию в автосервис: я постоянно включаю и выключаю зажигание своей машины. Почему она у меня так медленно ездит? :) Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 26, 2016, 22:25 Если б в машине при поворачивании ключа закрывались двери, выскакивало 3 мааааленьких окошечка с непонятными прогрессбарами, блокировался руль, педали и двери, потом тройку секунд думало...
Думаю, что эту машину сдавали бы обратно в салон. Ибо не понятно что оно делает, зачем закрывает двери, блокирует руль, педали. И даже если что-то случится ты никак повлиять не можешь. PS то же создание модели кода отдельным потоком - чем не решение... Ан нет. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Racheengel от Июнь 27, 2016, 00:02 я наоборот все стараюсь собирать в релизе на максимуме. Дебаг включаю, тока когда без отладчика никуда. Просто мне время дороже :)
Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Old от Июнь 27, 2016, 06:47 Если б в машине при поворачивании ключа закрывались двери, выскакивало 3 мааааленьких окошечка с непонятными прогрессбарами, блокировался руль, педали и двери, потом тройку секунд думало... Понятно.Думаю, что эту машину сдавали бы обратно в салон. Ибо не понятно что оно делает, зачем закрывает двери, блокирует руль, педали. И даже если что-то случится ты никак повлиять не можешь. PS то же создание модели кода отдельным потоком - чем не решение... Ан нет. Смысла мгновенного переключения типа сборки вы тоже не видите, просто нашли к чему придраться. :) Есть исходники креатора, сделайте в отдельном потоке. Но доступное для вас решение, просто не тыкать непрерывно мышкой во все места. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Old от Июнь 27, 2016, 07:19 я наоборот все стараюсь собирать в релизе на максимуме. Дебаг включаю, тока когда без отладчика никуда. Просто мне время дороже :) Т.е. асертами вы не пользуетесь? Или вы их и в релизе оставляете?У меня релиз и дебаг могут очень сильно отличаться: от дополнительного логирования и до отображения подробной телеметрии на экране, которых не будет в релизе. Просто мне время дороже. :) Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kamre от Июнь 27, 2016, 09:07 я наоборот все стараюсь собирать в релизе на максимуме. Дебаг включаю, тока когда без отладчика никуда. Просто мне время дороже :) Аналогично делаю, debug - только для залезания в код с отладчиком.Т.е. асертами вы не пользуетесь? Или вы их и в релизе оставляете? У нас обычно как минимум три типа сборки: Debug для отладки с отладчиком, Release для прогона тестов (все asserts и подробное логирование остается), External (для сборки распространяемых бинарников, asserts отключены, логирование минимально необходимое только). При таком подходе Debug/Release отличаются фактически только ключами оптимизации для компилятора, чтобы Debug-сборку можно было под отладчиком в IDE запускать.Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Bepec от Июнь 27, 2016, 12:45 Вы всё время повторяете - время дороже :)
Но не можете понять что при переключении режимов теряется как раз этот дорогой ресурс. Ну и дополнительно просто бесит :D Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Old от Июнь 27, 2016, 12:49 Вы всё время повторяете - время дороже :) Просто все, кроме переключения типов сборки, еще и код пишут. По сравнению с этим временем, время переключения ничтожно мало и может быть проигнорировано.Но не можете понять что при переключении режимов теряется как раз этот дорогой ресурс. Ну и дополнительно просто бесит :D Попробуйте заняться делом, вместо простого тыканья мышкой во все кнопочки. Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: Racheengel от Июнь 27, 2016, 13:44 С креатором я другую проблему вижу, более важную - отладчик дико тормознутый.
Да и чтобы запустить релиз из-под креатора, он всегда прогоняет заново все make файлы, хотя это имхо идиотизм - если приложение уже собрано, зачем на это время тратить ??? Название: Re: Qt creator, рефакторинг, автоподстановка. Отправлено: kai666_73 от Июнь 27, 2016, 14:21 С креатором я другую проблему вижу, более важную - отладчик дико тормознутый. Отладчик под венду - да, что мингвшный gdb, что cdb, а вот под Linux вполне себе...Да и чтобы запустить релиз из-под креатора, он всегда прогоняет заново все make файлы, хотя это имхо идиотизм - если приложение уже собрано, зачем на это время тратить ??? По поводу запуска - есть запуск без деплоя, ака Alt+Shift+R |