Russian Qt Forum
Ноябрь 21, 2024, 16:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Автоматическое форматирование кода  (Прочитано 18008 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« : Сентябрь 28, 2020, 07:15 »

Есть ли Автоматическое форматирование кода в QtCreator?

Например в Eclipse открываешь такой код
Код:
void f(){

if(a){s=0;}
                 else
{s=1;}}


Настраиваешь свой стиль (я свой стиль храню в облаке/нафлешке в xml и просто подцепляю его на новом рабочем месте), нажимаешь Ctrl+Shift+F, и подобный код превращается в такой

Код:
void f()
{

    if(a)
    {
         s=0;
    }
    else
    {
        s=1;
    }
}

Нашел в QtCreator-e настройку стиля, но как его применить к написанному коду?



ps Хорошо, если QtCreator это ещё не подрос и этого не умеет, то может кто-нибудь знает какую-нибудь утилиту, в которой можно выбрать папку, и "сказать - Переформатируй все файлы *.c, *.cpp, *.h, ... в формат вот такой" и одним махом у всех исходников поменять стиль? Можно каждый файл открыть в Eclipse и переформатировать, но проект большой и это будет долго и муторно...
« Последнее редактирование: Сентябрь 28, 2020, 08:01 от juvf » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Сентябрь 28, 2020, 08:06 »

Судя по stackoverflow https://stackoverflow.com/questions/37597117/what-is-the-shortcut-to-format-code-in-qt-creator#40174996 это решается отдельным плагином. facepalm... Изкоробки есть автоформатирование qml кода.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #2 : Сентябрь 28, 2020, 10:54 »

одним отдельным плагином это не решается. Плагин может только вызвать внешний форматер. Ещё нужно установить сам форматтер. См тут 
Я выбрал форматтер ClangFormat. В ClangFormat есть несколько дефолтных стилей (есть CNU, но Qt не предлагает gnu). Новый свой стиль настроить - это адский текстовый конфиг. Сделаю свой стиль, закину в своё облако для креатора.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Сентябрь 28, 2020, 11:19 »

в репе Креатора есть конфигурации для клана формата. требует небольшого допила на мой вкус но хорошая отправная точка
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Сентябрь 28, 2020, 11:47 »

чет не понял, Ctrl+I не работает что ли?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Сентябрь 28, 2020, 11:48 »

А люди еще спорят, когда я говорю, что QtCreator отстойное IDE... Автоформатирование это какбэ базовая функциональность.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #6 : Сентябрь 28, 2020, 12:00 »

Пантер
Ты не путаешь автоформатирование с выравниванием отступов?
Креатор предлагает на выбор 2-3 внешних тулзы для форматирования. Зачем им писать 4ю которая будет хуже чем шланг-формат?
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #7 : Сентябрь 28, 2020, 12:07 »

чет не понял, Ctrl+I не работает что ли?
не работает и ни когда не работало. Ctrl+I вам расставит отступы/табы, а форматирование не сделает. Скобочки не расставит, новые строки и т.п. не расставит. Попробуйте мой код в первом посте по Ctrl+I. Получиться гэ. 

Цитировать
когда я говорю, что QtCreator отстойное IDE...
Да конечно отстойное.... во времена тролтеча был годный Qt плуг для эклипса. Сейчас плуга нет, приходиться пользоваться тем, что есть.

ps в ClangFormat  нашел
Цитировать
This will align the assignment operators of consecutive lines. This will result in formattings like

int aaaa           = 12;
int b                = 23;
int ccаааааааc  = 23;

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #8 : Сентябрь 28, 2020, 12:18 »

Пантер
Ты не путаешь автоформатирование с выравниванием отступов?
Креатор предлагает на выбор 2-3 внешних тулзы для форматирования. Зачем им писать 4ю которая будет хуже чем шланг-формат?
Почему нет хоть одной тулзы в стандартной поставке? Выравнивание отступов это не то, нужно именно форматирование. Отступы есть и в виме Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #9 : Сентябрь 28, 2020, 12:21 »

Почему нет хоть одной тулзы в стандартной поставке? Выравнивание отступов это не то, нужно именно форматирование. Отступы есть и в виме Улыбающийся

Так какую из 3х тащить?
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #10 : Сентябрь 28, 2020, 12:27 »

Зачем им писать 4ю которая будет хуже чем шланг-формат?
Зачем они написали свой редактор, который был хуже существующих (тех же эклипсок или kdevelop)? Вот сейчас дебажу код...  в брейкпоинте не показывает мне элемент QDomNode, только его адрес и тип. Через 5-10 шагов дебага креатор вылетает.

Я тоже считаю, что автоформатирование должно быть из коробки.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #11 : Сентябрь 28, 2020, 12:32 »

Почему нет хоть одной тулзы в стандартной поставке? Выравнивание отступов это не то, нужно именно форматирование. Отступы есть и в виме Улыбающийся

Так какую из 3х тащить?

Допустим, самую распространенную.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #12 : Сентябрь 28, 2020, 12:40 »

а шланг может (без креатора) все исходные файлы проекта в папке и в подпапаках одной командой переформатировать?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #13 : Сентябрь 28, 2020, 12:58 »

Зачем они написали свой редактор, который был хуже существующих (тех же эклипсок или kdevelop)?
Потому что посоны и МОГУТ. Улыбающийся Иначе как? Своя ИДЕ - как свой калькулятор.

Я тоже считаю, что автоформатирование должно быть из коробки.
+1
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #14 : Сентябрь 28, 2020, 13:16 »

Допустим, самую распространенную.

Это какая?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.