Russian Qt Forum
Апрель 18, 2024, 18:46
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt-инструментарий
>
Автоматическое форматирование кода
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Автоматическое форматирование кода (Прочитано 14921 раз)
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3258
Re: Автоматическое форматирование кода
«
Ответ #15 :
Сентябрь 28, 2020, 13:17 »
Цитата: juvf от Сентябрь 28, 2020, 12:27
который был хуже существующих (тех же эклипсок или kdevelop)?
Смешно, кроме Эклипса только Хром жрет больше памяти.
КДевелоп уже не тащит половину кедов за собой и работает под маком?
https://www.kdevelop.org/download
Код:
No official pre-built installers available currently
Код:
No official pre-built installers available yet
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4727
Re: Автоматическое форматирование кода
«
Ответ #16 :
Сентябрь 28, 2020, 13:24 »
Цитата: juvf от Сентябрь 28, 2020, 12:07
Цитата: kambala от Сентябрь 28, 2020, 11:47
чет не понял, Ctrl+I не работает что ли?
не работает и ни когда не работало. Ctrl+I вам расставит отступы/табы, а форматирование не сделает. Скобочки не расставит, новые строки и т.п. не расставит. Попробуйте мой код в первом посте по Ctrl+I. Получиться гэ.
понял, спасибо
Цитата: juvf от Сентябрь 28, 2020, 12:40
а шланг может (без креатора) все исходные файлы
проекта
в папке и в подпапаках одной командой переформатировать?
может, но список файлов ему надо скормить (например, через команду find):
Код:
❯ clang-format -h
OVERVIEW: A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf/C# code.
If no arguments are specified, it formats the code from standard input
and writes the result to the standard output.
If <file>s are given, it reformats the files. If -i is specified
together with <file>s, the files are edited in-place. Otherwise, the
result is written to the standard output.
USAGE: clang-format [options] [<file> ...]
также есть удобная штука git-clang-format, которая форматирует только файлы, добавленные в индекс гита (т.е. в состоянии staged).
Записан
Изучением 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
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Автоматическое форматирование кода
«
Ответ #17 :
Сентябрь 28, 2020, 13:36 »
ClangFormat plugin in Qt Creator 4.9
в коробке, вроде как. Я пользуюсь, вполне нормально.
Цитата: juvf от Сентябрь 28, 2020, 12:40
а шланг может (без креатора) все исходные файлы
проекта
в папке и в подпапаках одной командой переформатировать?
ClangFormat
, можно подать на вход несколько файлов. Список файлов в папке/подпапках можно получить другой утилитой, unix-way....
Записан
Пока сам не сделаешь...
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3258
Re: Автоматическое форматирование кода
«
Ответ #18 :
Сентябрь 28, 2020, 13:38 »
Цитата: ViTech от Сентябрь 28, 2020, 13:36
ClangFormat
, можно подать на вход несколько файлов. Список файлов в папке/подпапках можно получить другой утилитой, unix-way....
Есть же compilation database и jq. Выцепить файлы проекта задача тривиальная, нет?
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Автоматическое форматирование кода
«
Ответ #19 :
Сентябрь 28, 2020, 13:54 »
Цитата: Авварон от Сентябрь 28, 2020, 13:38
Есть же compilation database и jq. Выцепить файлы проекта задача тривиальная, нет?
Как один из вариантов получения списка файлов проекта, может быть и тривиальная. Но в compilation database разве не только *.cpp файлы перечислены? Можно её сгенерировать так, чтобы и *.h тоже там были?
Записан
Пока сам не сделаешь...
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3258
Re: Автоматическое форматирование кода
«
Ответ #20 :
Сентябрь 28, 2020, 13:58 »
да, о хедерах я не подумал=)
Записан
ViTech
Гипер активный житель
Offline
Сообщений: 858
Re: Автоматическое форматирование кода
«
Ответ #21 :
Сентябрь 28, 2020, 14:16 »
Цитата: Авварон от Сентябрь 28, 2020, 13:58
да, о хедерах я не подумал=)
Если проект собирается CMake'ом, то более подробную структуру проекта можно получить с помощью
cmake-file-api
, там и хидеры и исходники перечислены. Сгенерировать структуру проекта не сложно, но я бы не сказал, что просто и тривиально, одной командой не отделаешься. Проще будет каким-нибудь find'ом в папке проекта список файлов получить.
В самом креаторе явно есть средства, чтобы получить все файлы проекта и скопом их отформатировать. Но вот такую фичу для него, похоже, ещё никто не запилил.
Записан
Пока сам не сделаешь...
juvf
Программист
Offline
Сообщений: 564
Re: Автоматическое форматирование кода
«
Ответ #22 :
Сентябрь 30, 2020, 12:09 »
не едут лыжи.
вот фрагмент кода
Код:
void _put_pixel(tContext *pContext, int X, int Y, int sx, int sy, long Es,
uint8_t color)
{
if (color)
{
...
Что я хочу? Перед if один ТАБ, не пробелы, а ТАБ. На следующей строчке перед фигурной скобкой один ТАБ.
настроил шланг-формат, креатор, горячие клавиши. Убрал галку "автоформатирование при сохранении".
Нажимаю гор.клав. - получаю перед if два пробела, перед { один таб. Нажимаю "Сохранить" файл меняется и стновиться перед if 2 пробела, перед { четыре пробела. Wtf?
Кто разбирается в конфигурировании clang-format? Какую опцию и как настроить?
есть UseTab, указал
UseTab: ForIndentation получаю 2 пробела и 1 таб. а после сохраниния одни пробелы.
указал
UseTab: Always получаю 2 пробела и 1 таб. а после сохраниния одни пробелы.
1) как настроить clang-format на табы?
2) почему
говно
креатор при сохранении меняет табы на пробелы?
Записан
juvf
Программист
Offline
Сообщений: 564
Re: Автоматическое форматирование кода
«
Ответ #23 :
Сентябрь 30, 2020, 12:17 »
2-ой вопрос решил, в 2-х местах нужно править
Код:
Tools -> Options -> Text Editor -> Behaviour -> Tabs and Indentation & Tools -> Options -> C++ -> Code Styles -> Edit
«
Последнее редактирование: Октябрь 23, 2020, 13:13 от juvf
»
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Автоматическое форматирование кода
«
Ответ #24 :
Сентябрь 30, 2020, 12:56 »
Цитировать
В самом креаторе явно есть средства, чтобы получить все файлы проекта и скопом их отформатировать. Но вот такую фичу для него, похоже, ещё никто не запилил.
Эмм.. а clang-format?
ЗЫ: Ах, ты хочешь прям сразу весть проект... Хм.. Ну да, вроде нету такого.
Тут как-бы не все так просто: а какие файлы из проекта должен форматтер форматировать? Т.к. кроме *.h / *.cpp (и их производных), есть и другие, например, какие-нить шаблоны, файлы ассемблера и прочее. Поэтому, наверное и не запилили это.
«
Последнее редактирование: Сентябрь 30, 2020, 13:04 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
juvf
Программист
Offline
Сообщений: 564
Re: Автоматическое форматирование кода
«
Ответ #25 :
Сентябрь 30, 2020, 13:13 »
Цитата: kuzulis от Сентябрь 30, 2020, 12:56
а какие файлы из проекта должен форматтер форматировать? Т.к. кроме *.h / *.cpp
тут всё очень просто. мне нужно *.h, *.c, *.cpp.
1)
IndentWidth: 4
UseTab: Always
TabWidth: 4
если IndentWidth: 2, то перед if будет два пробела, если 4, то будет 1 таб.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Автоматическое форматирование кода
«
Ответ #26 :
Сентябрь 30, 2020, 13:15 »
Цитировать
мне нужно *.h, *.c, *.cpp.
а кому-то нужно еще что-то и он будет хныкать, что у него ничо не работает кроме *.h, *.c, *.cpp.
Записан
ArchLinux x86_64 / Win10 64 bit
juvf
Программист
Offline
Сообщений: 564
Re: Автоматическое форматирование кода
«
Ответ #27 :
Сентябрь 30, 2020, 13:19 »
мля.... я что, нельзя указать что форматировать? будет время, напишу утилиту, которая переберёт в папке все файлы и найдет те, которые хочет пользователь и каждый файл отформатирует шлангом.
возможно
всё уже украли
ужа такая утилита есть...
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Автоматическое форматирование кода
«
Ответ #28 :
Сентябрь 30, 2020, 15:48 »
Во, можешь в QtC это запилить (типа добавить фичу форматирования всего проекта)
Записан
ArchLinux x86_64 / Win10 64 bit
AkonResumed
Чайник
Offline
Сообщений: 81
Re: Автоматическое форматирование кода
«
Ответ #29 :
Октябрь 31, 2020, 10:11 »
А как для встроенного стиля (точнее, Qt-based и отредактированный с использованием табов, а не пробелов) добиться выравнивания не по открывающей скобке, а просто с регулярным отступом:
Код:
while (a ||
b)
нужно:
while (a ||
b)
Эта настройка находится на вкладке "Alignment" диалога редактирования стиля. Проблема в том, что при выставлении нужного отступа он не сохраняется.
QtCreator v4.12, но так было у меня всегда ... и в QtCreator v1.x.x.
«
Последнее редактирование: Октябрь 31, 2020, 17:47 от AkonResumed
»
Записан
Страниц:
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...