Release Notes
Clang Power Tools in Numbers
27,614
Installs
233
Stars
Version 5.4
December 3, 2019
What's New
- Clang errors after compilation are highlighted using squiggle
- LLVM version is automatically set as active after installation
- Completely redesigned input data window
- Small UI improvements
Bug Fixes
- Clang-tidy flags are missing
- Alt+tab locks up Visual Studio while in the input data window
- LLVM version 8.0.1 is missing from the download list
Version 5.3
October 23, 2019
What's New
- Side-by-side LLVM installation and selection directly from Settings
- Pre-initialize configuration and platform properties
Bug Fixes
- Fix predefined checks initialization
- Clear button doesn't work for predefined checks search
- GetPathOfFileAbove didn't function properly in some cases
Version 5.2.1
September 18, 2019
Bug fixes
- Sign up not working from account window
Version 5.2
September 16, 2019
What's New
- 14-days free trial support
- Now you can ignore an entire project at clang compile time
- Ignore folder support for compile and format commands
- Possibility to convert incompatible clang encoding files to UTF-8
- Commands are now disabled for unrelated C++ projects
Bug Fixes
- Handle corrupt JSON config file
- Fix import for tidy predefined checks
- UI uniformization for predefined checks view
Version 5.1
September 5, 2019
What's New
- CMake support for open file
- Complete UI redesign
- Export/Import settings configuration
- Settings are now saved as JSON
- Support to export .clang-tidy config file
- Improve the email and password validation
- Offline support
Bug Fixes
- Crash on Visual Studio 2019 when running clang commands
- Crash on Visual Studio 2015 when running clang-tidy
- Crash when Tidy on save is active
- Calibrate focus between Error List and Output window
- Clang compile warnings detection
Version 5.0.1
July 11, 2019
Bug fixes
- Visual Studio 2015 crash after login
- Account validation is too slow
Version 5.0
July 4, 2019
What's New
- Export clang-tidy config file
- Commands shortcut
- Clang Power Tools account
- Support for the latest Windows 10 SDK project setting
Bug fixes
- Compile shortcut doesn't run the command on the proper file
Version 4.10.5
May 31, 2019
Bug fixes
- Format command doesn't work when used from the context menu
- Fix include order of project directories
Version 4.10.4
May 17, 2019
Bug fixes
- Stop command doesn't work properly on multiple files
- Error when running toolbar commands with no open file in the Visual Studio editor
- Output log messages are not displayed correctly
Version 4.10.3
April 22, 2019
Bug fixes
- Wrong default project runtime library (MT instead of MD)
- Not compiling any files when
-file-ignore
contains headers - MSBuild conditional elements not loaded correctly
Version 4.10.2
April 4, 2019
Bug fixes
- Fix crash when running Clang command from the toolbar with no active document
_AFXDLL
preprocessor macro not set for projects with _dynamic_ MFC usage
Version 4.10.1
March 28, 2019
Bug fixes
- Running a command from the toolbar is sometimes run on other files when
Track Active Item in Solution Explorer
is off
Version 4.10
March 21, 2019
Breaking changes
- The
-literal
PowerShell parameter has been removed. This means that the regex is no longer applied by default to PowerShell Clang Power Tools parameters. Regular expression matching can now be done using the[regex]
prefix. Example:[regex]company_.*\.vcxproj
,[regex]ui_components_.*\.cpp
What's New
- Support for partial file paths as project/files to compile or ignore, e.g. ignore or compile all files from a directory hierarchy
- Support for LLVM 8.0
Bug fixes
- Fix deprecated APIs for Visual Studio 2019 Preview
- Visual Studio crashes when Clang Tidy is executed
_AFXDLL
builds triggering error due to missing DLL preprocessor definitionMSBuild::GetPathOfFileAbove()
calls not working- CompileAs configuration for project items not working correctly
Version 4.9
March 7, 2019
What's New
- Powershell scripts now using strict-mode -latest for increased safety
Bug fixes
- Format on save does not apply the Fallback-Style option
- Clang Tidy settings are set back to default values when Visual Studio is open
- Item definition groups evaluation loaded incorrectly for some projects
- Expression expansion not working correctly for some expressions on machines with PS 3.0
HOME
environment variable triggering error when present on machineMSBuild::Utilities::ToolLocationHelper
was not accessible- Default user-specific property sheets (
microsoft.cpp.user.props
) not loaded automatically
Version 4.8.1
February 19, 2019
Bug fixes
- Fix location detection when multiple versions of Visual Studio are installed
Version 4.8
February 18, 2019
What's New
- Visual Studio 2019 Preview support
- Keyboard shortcut for Clang Compile
Bug fixes
- User settings are sometimes set back to default values when closing Visual Studio
- Compile or Tidy commands force saves the solution
- When running Clang after the MSVC compile, Visual Studio does not switch to the Clang Power Tools log window
Version 4.7
February 4, 2019
What's New
- Support for custom Clang Tidy executable path
Bug fixes
- The custom path for Clang Format cannot be changed after it was set
- Output window did not display the Clang output properly
- Unhandled exception in the status-bar caused errors
Version 4.6
January 17, 2019
What's New
- Select
files to ignore
at compile and format from the Context Menu
Bug fixes
- Wrong format applied when
clang-tidy
andclang-format
on save are checked - Access rights of the PowerShell script caused warning messages
- Clang Format didn’t properly handle selected source
- Crash when some options are missing from the config file
Version 4.5
December 12, 2018
What's New
- Status bar support for Clang Format
- Support for expanding Project Item Groups
Bug fixes
- Clang commands saving event caused changes on .sln level
- Clang Format formats
CMakeLists.txt
file System.IO.Directory::GetDirectories()
calls not working
Version 4.4
November 27, 2018
What's New
- Speed up the errors detection by sending refresh signals to the VS Error List
- Include the new
LLVM 7.0 clang tidy checks
Bug fixes
- The checks from
.clang-tidy
config file are ignored - Clang Tidy on save does not respond after a VS Solution is reopened
- Extension upgrade is not detected
Version 4.3.2
November 13, 2018
Bug fixes
- New extension dependencies caused crashes
Version 4.3.1
November 9, 2018
Bug fixes
- Fix bug triggering regex error when using absolute paths in command line args
Version 4.3
November 7, 2018
What's New
- Support for apply
Clang-Format
onVS Projects
- Support for apply
Clang-Format
onVS Solution
Bug fixes
- Asynchronous writing in the
Output Pane
caused crashes - Sometimes crash when clang commands are executed
Version 4.2.1
October 29, 2018
Bug fixes
- After closing and reopening a VS Solution the clang commands did not work as expected
- Clang-Format works just for files that are included in a VS project
- Format after tidy option is not responding
- VS Services are not registered in the right order
Version 4.2
October 15, 2018
What's New
- Support for PCH configuration at file-level
Bug fixes
- VS Extension is not completely registered immediately after the VS solution was loaded
- Wrong detection of VS 2015 when VS 2013 toolset is being used
- Parallel processing causing file corruption for Tidy Fix
Version 4.1
October 9, 2018
What's New
- Optimize the VS services access
- Improve clang commands loading
Bug fixes
- Double quotes incorrectly escaped in preprocessor definitions (v4.0 regression)
- …\ include directories not being correctly included (v4.0 regression)
- Preprocessor definition characters being mistaken for comparison operators (v4.0 regression)
- PCH detection not working when project force includes header directly at pch cpp level
- Crash when VS services are not available
- Clang commands registration does not always work
- Project field from Error List sometimes is empty
Version 4.0
September 20, 2018
What's New
- Support for
CPT configuration files
(see samplecpt.config
in github repository)
Bug fixes
- Changed files are permanently open in the editor after
clang-tidy
command - Crash when changing the
Show issues generated
option from Visual Studio - Preprocessor definitions for raw string literals containing escaped quotes not working
- Calls to
Exists()
using single quotes not resolved correctly
Version 3.9.2
August 29, 2018
Bug fixes
- Directory.Build.props global property sheet not loaded
- Unicode project character set detection not working for some projects
Output Window
does not display the entire output- Clang commands are not disabled when the VS build is running
- Selecting
system include directories
did not worked forTreat additional includes as
option
Version 3.9.1
August 16, 2018
Bug fixes
- Crash when showing output window notifications
Version 3.9
August 13, 2018
New features
Project / File to ignore
support for directory matching
Improvements
- Display names of ignored projects at beginning of log
Bug fixes
- MSBuild directory properties malfunctioning in some property sheets
- Project specific variables not cleared when compilation failed
- Newly created projects not detected by VS Extension
- Clang output sometimes formatted wrong in the VS Output Window
- Crash when switching Error List between
Build Only
,Build + IntelliSense
andIntelliSense Only
Version 3.8
July 27, 2018
Improvements
- Improved error detection
Bug fixes
- Projects with large number of include directories could not be compiled
- Closed files remained closed after the clang-tidy fix command caused changes
- Error List displayed duplicates errors
- Output Window did not displayed the entire content
- VS reload file mechanism for external changes remains disabled after the clang-tidy fix command
Version 3.7.1
July 4, 2018
Bug fixes
- Missing trailing slashes for
MakeRelative()
special cases
Version 3.7
July 3, 2018
New features
- Dedicated command for
Clang Tidy-Fix
action
Improvements
- Optimize loading speed of the VS Extension
- Optimize UI responsiveness when a command is executed
- (Powershell Script)
-file
script parameter now accepts header files (.H
), alongside source files This triggers compilation for all source files (.CPP
) that include them
Bug fixes
- vcpkg package include directories not being detected
MSBuild::MakeRelative()
property function not workingC99 was disabled in PCH file
error when compiling .C files- v140 projects not compiled using appropiate VS2017 toolset
Version 3.6
June 18, 2018
New features
- (Powershell Script) Automatically detect
Visual Studio SK
when not passed as script argument Quick search
support for thePredefined checks
option page
Bug fixes
- Error when compiling projects without preprocessor definitions
- Regex matching broken for
File Ignore
andProject Ignore
filters - The clang-format custom path property did not persisted
- Fix the check mechanism of the
Use custom executable file
checkbox
Version 3.5
June 5, 2018
New features
- Support for compiling
C files
Bug fixes
- The
File Ignore
andProject Ignore
filters didn’t worked Clang Compile
andClang Tidy
commands crashed when extra white spaces and extra delimitaters were added in UI text fields- Buttons have overlapped the text in the UI fields
Version 3.4.2
May 15, 2018
Bug fixes
- Selecting elements from the
Tidy
>Predefined Checks
page has caused crashes
Version 3.4.1
May 15, 2018
Bug fixes
- Auto clang-format on save did not work for upgraded installs
Version 3.4
May 14, 2018
New features
- Support to use different version of
clang-format.exe
from the one in the box
Improvements
- Updated
clang-format.exe
to the latest version 6.0.0 - Support to use different version of
clang-format.exe
from the one in the box - Redesigned settings panel
Bug fixes
- Errors in headers were shown multiple times if different folder delimiters were used
Version 3.3.1
April 24, 2018
Bug fixes
- Clang output text was separated into multiple lines
- Source files with
ExcludedFromBuild
child property set to true were compiled - Empty project files were not correctly handled
Version 3.3
March 29, 2018
New features
- Support for filter errors by
Project
field in the Error List - Cleanup errors when closing a project
- Use the whole file name of PCH cpp to detect PCH header directory
Improvements
- Improved responsiveness during lengthy operations
- Use the whole file name of PCH cpp to detect PCH header directory
Version 3.2.1
March 23, 2018
Bug fixes
- Clang compile fails when project has no Additional Include Directories
- Error line number from error list was displayed wrong
Version 3.2
March 22, 2018
New features
- Support for VS status bar
Improvements
- Clang-tidy checker for output window messages
Bug fixes
- Last error message couldn’t be detected
- Consecutive error messages couldn’t be detected
- Did not work on Visual Studio 2017 Update 2 because vswhere does not support the -prerelease switch
- Did not work when stdafx.cpp contained commented #include lines
- Couldn’t detect default Configuration Platform if comment nodes were present in the
<ItemGroup>
XML element - PCH header couldn’t be detected when in a different physical location than that of PCH cpp
- PCH header couldn’t be detected if not present in project
<ClInclude>
XML element - Compilation stopped on PCH-creation errors even if -continue switch was present
Version 3.1
March 12, 2018
New features
- Support for
MSBuild::GetDirectoryNameOfFileAbove
- Support for clang format selection
Bug fixes
- /MD and /MT project settings not propagated to clang
Version 3.0.1
March 2nd, 2018
Bug fixes
- Visual Studio loses focus on selected items
Version 3.0
March 1st, 2018
New features
- Built-in support for clang-format
Auto-format source file on save, configurable style options, file extension rules, etc.
Improvements
- Disable the clang commands when VS build is running
Bug fixes
- Automatic clang-tidy on save option was applying fixes even when Fix option was set to false
- Running a command with different elements of VS selected (eg. properties window, toolbox) sometimes caused errors
- Clang compile and tidy commands were not disabled for source files not loaded in a project context
- Properly trim whitespace from #include paths
- Whitespaces in VS project name were not supported
Version 2.8
February 20, 2018
New features
- Automatically run Clang-tidy when the current source file is saved
- Automatically run Clang compile on the current source file after successful MSVC compilation
Bug fixes
- A project was saved even if it was not dirty
- Stop Clang command crashed all Powershell processes
- A single error found in a header was displayed multiple times
- COM objects caused errors when a command was running
Version 2.7
February 8, 2018
New features
- Save all projects before running clang compile/tidy
Bug fixes
- The
Treat additional includes as
option was not loaded from the settings file - The toolbar was hidden on the first install
- Source files / headers not detected when specified in property sheets
Version 2.6
January 29, 2018
Until now, we’ve used the %INCLUDE%
environment variable for setting clang include directories. That was equivalent to using -isystem
for each directory.
Unfortunately, this caused headers included relative to those include directories to be ignored when running compiling/tidying because they were treated as system headers.
Having this brought to our attention, going forward we will use -I
and -isystem
to pass include directories to clang, with the following defaults:
- include directories passed using
-isystem
- additional include directories passed using
-I
Q: What does this mean?
A: You’ll most likely see new warnings when compiling or tidying your code-base.
Q: Will my build fail?
A: Only if you have specified -Werror
(treat warnings as errors).
Q: What should I do?
A: - Make sure to include third party library dependencies via the Include directories project option. Additional include directories should point only to code you can modernize. - Resolve remaining warnings related to your code.
Q: Can I use ClangPowerTools using the old behavior?
A: Yes. We’ve added, for compatibility reasons, a UI option that allows clang to treat additional includes as system headers. Keep in mind this means we will potentially miss some of your headers when calling clang.
You may want to use this option if using -Werror
(treating warnings as errors) until you’ve reorganized your includes, since any new warnings will break your build.
Q: What about the continuous integration script (clang-build.ps1)?
A: You can specify the -treat-sai
switch and it will have the old behavior.
Improvements
- Additional includes are now treated as regular includes using
-I
Bug fixes
- Crash when using preprocessor definitions containing double quotes
- Wild card project file includes were not recognized
- Tooling detection did not work on Visual Studio pre-release versions
Version 2.5.1
January 17, 2018
Bug fixes
- Fixed the unexpectedly Visual Studio session ending
Version 2.5
January 12, 2018
Improvements
- Automatically show toolbar on the first time install
Bug fixes
- Fixed errors detection
- Fixed commands execution when the project contains more files with the same name
- Crash when multiple SKUs of Visual Studio 2017 installed simultaneously
- Google.Test Nuget packages not working
Version 2.4.1
December 28, 2017
Bug fixes
- Regression in 2.4.0 preventing use of clang-tidy on header files
Version 2.4
December 21, 2017
New features
- Configurable header-filter for tidy-fix
- Option to run clang-tidy only on cpp-corresponding headers
Bug fixes
<Choose>
project elements were not loaded- Same-file appended project settings caused crash
- Wildcard-named property sheets were not loaded
Version 2.3
December 13, 2017
New features
- Tidy operation mode: ability to switch between explicitly specified tidy checks and .clang-tidy configuration files
Improvements
- Use PCH for clang-tidy workflow
Bug fixes
- Could not property detect C++17 standard from project
- Project parse issues for MsBuild string member function calls
- Files with extensions other than .cpp were not compiled from VS
HasTrailingSlash
MsBuild function was not recognized
Version 2.2
December 11, 2017
Bug fixes
- Fixed the saving for user configurations from option pages
- Increased the number of compilable file types. Now supporting: .c , .cpp , .cc , .cxx , .c++ , .cp
- Could not be used in VS 2015 (regression in v2.1)
- Could not create PCH when using forced includes and stdafx.cpp did not manually include stdafx.h
- Could not handle multiple MSVC versions found in the same VS installation
- Project load error when a project condition contained more than one call to MSBuild
Exists()
- Clang-tidy
-header-filter
flag was sometimes behaving incorrectly, ignored header files
Version 2.1
December 7, 2017
New features
- Possibility to abort clang compile and clang tidy commands
- Detect C++ standard automatically from project. Default to C++14 if not set
Improvements
- Eliminated delay caused by .sln and .vcxproj file scanning
- Create PCH only for more than 2 cpps
Bug fixes
- Environment variables were not used when evaluating MsBuild expressions
- MsBuild expressions didn’t work when starting with ! operator
- ForcedIncludes for clang compile were not working, regression in v2.0
- ForcedIncludes were not taken into account for clang-tidy
- Project > IncludePath was not taken into account for include directories
- Error occured when include directories contained empty values
- Fixed PCH crash when using Visual Studio 15.5 STL libraries (mscver 14.12.25827)
- Fixed the commands execution for default console application
Version 2.0
November 26, 2017
New features
- Fully evaluate MsBuild conditions for project and property sheet XML data
- XML nodes with conditions evaluated to false are ignored
- Project settings can now reference:
- User defined macros
- e.g. $(MY_MACRO_DIR)\bin$(MY_MACRO_FILE)
- Build-in macros:
- $(VisualStudioVersion), $(ProjectDir), $(SolutionDir), $(Platform), $(Configuration), $(MSBuildProjectName), $(MSBuildProjectFullPath), $(MSBuildProjectDirectory), $(MSBuildThisFile), $(MSBuildThisFileName), $(MSBuildThisFileFullPath), $(MSBuildThisFileDirectory), $(MSBuildProgramFiles32)
- .NET expressions
- e.g. $([System.DateTime::Now.ToString(“yyyy.MM.dd”))]
- User defined macros
- Detect property sheets included in Directory.Build.props
- Automatically detect the project solution file
Version 1.7.1
November 20, 2017
Bug fixes
- Fixed the support for
Track Active Item in Solution Explorer
set toOff
Version 1.7
November 16, 2017
New features
- Added support for
Track Active Item in Solution Explorer
option set toOff
Improvements
- Verbose-Mode now logs
clang-build.ps1
andclang++
invocation arguments
Bug fixes
- Fixed the
user settings saving
- Fixed the script execution for clang-tidy options
- Moved
Clang Power Tools
above theProperties
item inContext Menu
Version 1.6
November 9, 2017
Improvements
- Improved handling of project value separator
- Used the active project configuration
Bug fixes
- Fixed the commands launching from file tab
- Fixed the default tidy settings page
- Fixed the cleaning of all messages from Error tab when a command begins
Version 1.5.1
November 3rd, 2017
New features
- Dedicated option page for tidy checks
Improvements
- Provided better defaults for “Tidy Checks” dialog
Bug fixes
- Fixed script building for tidy checks
Version 1.5
November 1st, 2017
New features
- Detect auto property sheets (Directory.Build.props). Merging not supported
- Detect property sheets included indirectly, through other property sheets
- Automatically detect the first project configuration platform
Improvements
- Generalized property sheet usage for project data retrieval
Version 1.4
October 27, 2017
New features
- Verbose mode support
- Clang Power Tools toolbar
Improvements
- Created Clang Power Tools toolbar
Bug fixes
- Fixed logical core count detection on systems with more than one physical CPU
- Disabled the commands when another command is running
- Fixed MSCVER detection bug when VS is not installed in default location
- Added WinSDKVer defaults for when not mentioned in project
- Fixed error message when project does not include force include files
Version 1.3.1
October 23, 2017
Bug fixes
- Allow the path to include any non-whitespace character
- Added support for project-specific force include files
- Added support for Win 8/8.1 SDKs
- Fix typo preventing detection of VS2015 install location
- Fixed crash when project has no files to compile
Version 1.3
October 19, 2017
New features
- Support for ignoring specific files
- Support for treating warnings as errors
Improvements
- Detect Visual Studio 2015 / 2017 custom installation paths
- Enabled compilation for all files included in the Vcxproj
section
Bug fixes
- Fixed project detection when the project name from UI is different of the project name on the disk
- Prevents the Output window from stealing the focus
- Fixed the detection for modified files after clang tidy fix
- Fixed the “Project To Ignore” option
Version 1.2
October 13, 2017
Improvements
- Clang warnings and messages with line navigation in both output pane and error list
- Included clang notification(errors, warnings, messages) in Build Only category
- Formatted clang output
Bug fixes
- Fixed clang error detection algorithm
- Fixed clang errors line navigation from output pane
- Fixed the vsix installer detection for VS2017
Version 1.1
October 8, 2017
New features
- Support for Visual Studio 2015.
- Open the modified files after clang tidy format command
Improvements
- Suppress the reload popup shown by the Visual Studio
- Integrated -quiet in the same way as other clag flags
- Generalized PCH support for more than stdafx.h
Bug fixes
- Clean the output and errors before a new command and build action
- Fixed the include directories option
- Fixed error detection for error list
- Fixed LLVM detection mechanism from Visual Studio Extension
- Switched to -fix-errors when calling clang-tidy
- Removed restriction to CPP files when looking for ClCompile entries
- Fixed compilation when vcxproj has both 32 and 64 bit platform configrations
Version 1.0.1
September 30, 2017
New features
- Automatically detect clang installation folder
- Support for projects without PCH/stdafx
Bug fixes
- Fixed navigation to clang error in code editor
- Fixed clang error parse algorithm
- Fixed detection when lightweight solution load is enabled
Version 1.0
September 27, 2017
First official release.