/**************************************************************************** ** ** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** ****************************************************************************/ // ********************************************************************** // NOTE: the sections are not ordered by their logical order to avoid // reshuffling the file each time the index order changes (i.e., often). // Run the fixnavi.pl script to adjust the links to the index order. // ********************************************************************** /*! \contentspage index.html \previouspage creator-editor-refactoring.html \page creator-beautifier.html \nextpage creator-editor-options.html \title Beautifying Source Code You can use the experimental Beautifier plugin to format your source code by using the following external tools: \list \li \l{http://astyle.sourceforge.net}{Artistic Style} \li \l{http://clang.llvm.org/docs/ClangFormat.html}{ClangFormat} \li \l{http://uncrustify.sourceforge.net}{Uncrustify} \endlist The Beautifier plugin parses the source code into component structures, such as assignment statements, if blocks, loops, and so on, and formats them as specified in the Beautifier options. You can use a predefined style or define your own style. To use the Beautifier plugin: \list 1 \li Download and install the tool to use for formatting source code: \list \li \l{http://sourceforge.net/projects/astyle/files/astyle} {Artistic Style} \li \l{http://llvm.org/releases/download.html}{ClangFormat} \li \l{http://sourceforge.net/projects/uncrustify/files/uncrustify} {Uncrustify} \endlist You might have to build the tools from sources for some platforms. \li Select \uicontrol Help > \uicontrol {About Plugins} > \uicontrol {C++} > \uicontrol Beautifier to enable the plugin. \li Select \uicontrol {Restart Now} to restart \QC and load the plugin. \li Select \uicontrol Tools > \uicontrol Options > \uicontrol Beautifier to specify settings for beautifying files. \li Select the \uicontrol {Enable auto format on file save} check box to automatically beautify files when you save them using the tool you select in the \uicontrol Tool field. \image qt-creator-beautifier-options-general.png \li In the \uicontrol {Restrict to MIME types} field, define the MIME types of the files to beautify, separated by semicolons. Leave the field empty to apply the tool on all files. This setting is applied only when automatically beautifying files on save. To restrict the MIME types when selecting the menu item to format the currently open file, specify this option in the tool-specific tab. \li Select the \uicontrol {Restrict to files contained in the current project} check box to only beautify files that belong to the current project. \li Select \uicontrol {Artistic Style}, \uicontrol {Clang Format}, or \uicontrol Uncrustify to specify settings for the tool you want to use. \image beautifier_options.png \li In the \uicontrol Configuration group, specify the path to the tool executable in the \uicontrol {Artistic Style command}, \uicontrol {Clang Format command}, or \uicontrol {Uncrustify command} field. \li In the \uicontrol {Restrict to MIME types} field, define the MIME types of the files to beautify. This setting is applied when you select the menu item to format the currently open file. \li In the \uicontrol Options group, select the configuration file that defines the style to use in the source files. If you select several options, they are applied from top down. The available options depend on the tool. \list \li Select the \uicontrol {Use file defined in project files} option to use the configuration file defined in the qmake DISTFILES variable as the configuration file for the selected tool. This option is available for Artistic Style and Uncrustify. \li Select the \uicontrol {Use specific config file} option to use the specified file as the configuration file for the selected tool. This option is available for Artistic Style and Uncrustify. \li Select the \uicontrol {Use file in $HOME} option to use the specified file in the user's home directory as the configuration file for the selected tool. This option is available for Artistic Style and Uncrustify. \li For Clang Format, you can use a predefined style, by selecting the \uicontrol {Use predefined style} radio button, and then selecting the style to use from the list of available styles. Select \uicontrol File to load the style configuration from the \c .clang-format or \c _clang-format file located in the same directory as the source file or in one of its parent directories. To specify a fallback style to use if the style configuration file is not available, use the \uicontrol {Fallback style} combo box. Select \uicontrol Default to use the default style. Select \uicontrol None to skip formatting. \li Select the \uicontrol {Use customized style} option, and then \uicontrol Add to define your own style. Define code formatting in the \uicontrol {Add Configuration} dialog. It provides syntax highlighting, auto-completion, and context-sensitive help. For these features, you must have the tool installed. \image beautifier_editor.png \endlist \li Select \uicontrol Tools > \uicontrol Options > \uicontrol Beautifier > \uicontrol {Artistic Style}, \uicontrol ClangFormat, or \uicontrol Uncrustify > \uicontrol {Format Current File} to format the currently open file. You can \l{Keyboard Shortcuts}{create keyboard shortcuts} for the functions. \endlist In addition to the \uicontrol {Format Current File} command, ClangFormat and Uncrustify provide additional commands. ClangFormat provides the \uicontrol {Format at Cursor} command. If you select it when no text is selected, the syntactic entity under the cursor is formatted. The \uicontrol {Disable Formatting for Selected Text} command wraps selected lines within \c {// clang-format off} and \c {// clang-format on}. Uncrustify provides the \uicontrol {Format Selected Text} command. If you select it when no text is selected, the whole file is formatted by default. To disable this behavior, deselect the \uicontrol {Format entire file if no text was selected} check box. */