Mercurial > hg > CbC > CbC_llvm
view clang-tools-extra/docs/clang-tidy/Integrations.rst @ 222:81f6424ef0e3 llvm-original
LLVM original branch
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 18 Jul 2021 22:10:01 +0900 |
parents | 79ff65ed7e25 |
children | 1f2b6ac9f198 |
line wrap: on
line source
================================== Clang-tidy IDE/Editor Integrations ================================== .. _clangd: http://clangd.llvm.org/ .. _is available: https://clangd.llvm.org/installation.html#editor-plugins .. _more: https://langserver.org/#implementations-client Apart from being a standalone tool, :program:`clang-tidy` is integrated into various IDEs, code analyzers, and editors. We recommend using clangd_ which integrates :program:`clang-tidy` and `is available`_ in most major editors through plugins (Vim, Emacs, Visual Studio Code, Sublime Text and more_). The following table shows the most well-known :program:`clang-tidy` integrations in detail. +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ | | Feature | +======================================+========================+=================================+==========================+=========================================+==========================+ | **Tool** | On-the-fly inspection | Check list configuration (GUI) | Options to checks (GUI) | Configuration via ``.clang-tidy`` files | Custom clang-tidy binary | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |A.L.E. for Vim | \+\ | \-\ | \-\ | \-\ | \+\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |Clang Power Tools for Visual Studio | \-\ | \+\ | \-\ | \+\ | \-\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |Clangd | \+\ | \-\ | \-\ | \+\ | \-\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |CLion IDE | \+\ | \+\ | \+\ | \+\ | \+\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |CodeChecker | \-\ | \-\ | \-\ | \-\ | \+\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |CPPCheck | \-\ | \-\ | \-\ | \-\ | \-\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |CPPDepend | \-\ | \-\ | \-\ | \-\ | \-\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |Flycheck for Emacs | \+\ | \-\ | \-\ | \+\ | \+\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |KDevelop IDE | \-\ | \+\ | \+\ | \+\ | \+\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |Qt Creator IDE | \+\ | \+\ | \-\ | \+\ | \+\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |ReSharper C++ for Visual Studio | \+\ | \+\ | \-\ | \+\ | \+\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |Syntastic for Vim | \+\ | \-\ | \-\ | \-\ | \+\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ |Visual Assist for Visual Studio | \+\ | \+\ | \-\ | \-\ | \-\ | +--------------------------------------+------------------------+---------------------------------+--------------------------+-----------------------------------------+--------------------------+ **IDEs** .. _CLion: https://www.jetbrains.com/clion/ .. _integrates clang-tidy: https://www.jetbrains.com/help/clion/clang-tidy-checks-support.html CLion_ 2017.2 and later `integrates clang-tidy`_ as an extension to the built-in code analyzer. Starting from 2018.2 EAP, CLion allows using :program:`clang-tidy` via Clangd. Inspections and applicable quick-fixes are performed on the fly, and checks can be configured in standard command line format. In this integration, you can switch to the :program:`clang-tidy` binary different from the bundled one, pass the configuration in ``.clang-tidy`` files instead of using the IDE settings, and configure options for particular checks. .. _KDevelop: https://www.kdevelop.org/ .. _kdev-clang-tidy: https://github.com/KDE/kdev-clang-tidy/ KDevelop_ with the kdev-clang-tidy_ plugin, starting from version 5.1, performs static analysis using :program:`clang-tidy`. The plugin launches the :program:`clang-tidy` binary from the specified location and parses its output to provide a list of issues. .. _QtCreator: https://www.qt.io/ .. _Clang Code Model: https://doc.qt.io/qtcreator/creator-clang-codemodel.html .. _Clang Tools: https://doc.qt.io/qtcreator/creator-clang-tools.html QtCreator_ 4.6 integrates :program:`clang-tidy` warnings into the editor diagnostics under the `Clang Code Model`_. To employ :program:`clang-tidy` inspection in QtCreator, you need to create a copy of one of the presets and choose the checks to be performed. Since QtCreator 4.7 project-wide analysis is possible with the `Clang Tools`_ analyzer. .. _MS Visual Studio: https://visualstudio.microsoft.com/ .. _ReSharper C++: https://www.jetbrains.com/help/resharper/Clang_Tidy_Integration.html .. _Visual Assist: https://docs.wholetomato.com/default.asp?W761 .. _Clang Power Tools: https://marketplace.visualstudio.com/items?itemName=caphyon.ClangPowerTools .. _clang-tidy-vs: https://github.com/llvm/llvm-project/tree/main/clang-tools-extra/clang-tidy-vs `MS Visual Studio`_ has a native clang-tidy-vs_ plugin and also can integrate :program:`clang-tidy` by means of three other tools. The `ReSharper C++`_ extension, version 2017.3 and later, provides seamless :program:`clang-tidy` integration: checks and quick-fixes run alongside native inspections. Apart from that, ReSharper C++ incorporates :program:`clang-tidy` as a separate step of its code clean-up process. `Visual Assist`_ build 2210 includes a subset of :program:`clang-tidy` checklist to inspect the code as you edit. Another way to bring :program:`clang-tidy` functionality to Visual Studio is the `Clang Power Tools`_ plugin, which includes most of the :program:`clang-tidy` checks and runs them during compilation or as a separate step of code analysis. **Editors** .. _Flycheck: https://github.com/ch1bo/flycheck-clang-tidy .. _Syntastic: https://github.com/vim-syntastic/syntastic .. _A.L.E.: https://github.com/w0rp/ale .. _Emacs24: https://www.gnu.org/s/emacs/ .. _Vim: https://www.vim.org/ Emacs24_, when expanded with the Flycheck_ plugin, incorporates the :program:`clang-tidy` inspection into the syntax analyzer. For Vim_, you can use Syntastic_, which includes :program:`clang-tidy`, or `A.L.E.`_, a lint engine that applies :program:`clang-tidy` along with other linters. **Analyzers** .. _CPPDepend: https://www.cppdepend.com/cppdependv2018 .. _CPPCheck: https://sourceforge.net/p/cppcheck/news/ .. _CodeChecker: https://github.com/Ericsson/codechecker .. _plugin: https://github.com/Ericsson/CodeCheckerEclipsePlugin :program:`clang-tidy` is integrated in CPPDepend_ starting from version 2018.1 and CPPCheck_ 1.82. CPPCheck integration lets you import Visual Studio solutions and run the :program:`clang-tidy` inspection on them. The CodeChecker_ application of version 5.3 or later, which also comes as a plugin_ for Eclipse, supports :program:`clang-tidy` as a static analysis instrument and allows to use a custom :program:`clang-tidy` binary.