Russian Qt Forum
Ноябрь 23, 2024, 12:33
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt-инструментарий
>
Автоматическое форматирование кода
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Автоматическое форматирование кода (Прочитано 18035 раз)
juvf
Программист
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
Сообщений: 5876
Жаждущий знаний
Re: Автоматическое форматирование кода
«
Ответ #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
Сообщений: 570
Re: Автоматическое форматирование кода
«
Ответ #2 :
Сентябрь 28, 2020, 10:54 »
одним отдельным плагином это не решается. Плагин может только вызвать внешний форматер. Ещё нужно установить сам форматтер. См
тут
Я выбрал форматтер ClangFormat. В ClangFormat есть несколько дефолтных стилей (есть CNU, но Qt не предлагает gnu). Новый свой стиль настроить - это адский текстовый конфиг. Сделаю свой стиль, закину в своё облако для креатора.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Автоматическое форматирование кода
«
Ответ #3 :
Сентябрь 28, 2020, 11:19 »
в репе Креатора есть конфигурации для клана формата. требует небольшого допила на мой вкус но хорошая отправная точка
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Автоматическое форматирование кода
«
Ответ #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
Сообщений: 5876
Жаждущий знаний
Re: Автоматическое форматирование кода
«
Ответ #5 :
Сентябрь 28, 2020, 11:48 »
А люди еще спорят, когда я говорю, что QtCreator отстойное IDE... Автоформатирование это какбэ базовая функциональность.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Автоматическое форматирование кода
«
Ответ #6 :
Сентябрь 28, 2020, 12:00 »
Пантер
Ты не путаешь автоформатирование с выравниванием отступов?
Креатор предлагает на выбор 2-3 внешних тулзы для форматирования. Зачем им писать 4ю которая будет хуже чем шланг-формат?
Записан
juvf
Программист
Offline
Сообщений: 570
Re: Автоматическое форматирование кода
«
Ответ #7 :
Сентябрь 28, 2020, 12:07 »
Цитата: kambala от Сентябрь 28, 2020, 11:47
чет не понял, 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
Сообщений: 5876
Жаждущий знаний
Re: Автоматическое форматирование кода
«
Ответ #8 :
Сентябрь 28, 2020, 12:18 »
Цитата: Авварон от Сентябрь 28, 2020, 12:00
Пантер
Ты не путаешь автоформатирование с выравниванием отступов?
Креатор предлагает на выбор 2-3 внешних тулзы для форматирования. Зачем им писать 4ю которая будет хуже чем шланг-формат?
Почему нет хоть одной тулзы в стандартной поставке? Выравнивание отступов это не то, нужно именно форматирование. Отступы есть и в виме
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Автоматическое форматирование кода
«
Ответ #9 :
Сентябрь 28, 2020, 12:21 »
Цитата: Пантер от Сентябрь 28, 2020, 12:18
Почему нет хоть одной тулзы в стандартной поставке? Выравнивание отступов это не то, нужно именно форматирование. Отступы есть и в виме
Так какую из 3х тащить?
Записан
juvf
Программист
Offline
Сообщений: 570
Re: Автоматическое форматирование кода
«
Ответ #10 :
Сентябрь 28, 2020, 12:27 »
Цитата: Авварон от Сентябрь 28, 2020, 12:00
Зачем им писать 4ю которая будет хуже чем шланг-формат?
Зачем они написали свой редактор, который был хуже существующих (тех же эклипсок или kdevelop)? Вот сейчас дебажу код... в брейкпоинте не показывает мне элемент QDomNode, только его адрес и тип. Через 5-10 шагов дебага креатор вылетает.
Я тоже считаю, что автоформатирование должно быть из коробки.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Автоматическое форматирование кода
«
Ответ #11 :
Сентябрь 28, 2020, 12:32 »
Цитата: Авварон от Сентябрь 28, 2020, 12:21
Цитата: Пантер от Сентябрь 28, 2020, 12:18
Почему нет хоть одной тулзы в стандартной поставке? Выравнивание отступов это не то, нужно именно форматирование. Отступы есть и в виме
Так какую из 3х тащить?
Допустим, самую распространенную.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
juvf
Программист
Offline
Сообщений: 570
Re: Автоматическое форматирование кода
«
Ответ #12 :
Сентябрь 28, 2020, 12:40 »
а шланг может (без креатора) все исходные файлы
проекта
в папке и в подпапаках одной командой переформатировать?
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Автоматическое форматирование кода
«
Ответ #13 :
Сентябрь 28, 2020, 12:58 »
Цитата: juvf от Сентябрь 28, 2020, 12:27
Зачем они написали свой редактор, который был хуже существующих (тех же эклипсок или kdevelop)?
Потому что посоны и МОГУТ.
Иначе как? Своя ИДЕ - как свой калькулятор.
Цитата: juvf от Сентябрь 28, 2020, 12:27
Я тоже считаю, что автоформатирование должно быть из коробки.
+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
Сообщений: 3260
Re: Автоматическое форматирование кода
«
Ответ #14 :
Сентябрь 28, 2020, 13:16 »
Цитата: Пантер от Сентябрь 28, 2020, 12:32
Допустим, самую распространенную.
Это какая?
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...