Custom C++ code checker for Visual Studio 2017 - c++

Microsoft has now released the RC for Visual Studio 2017: https://www.visualstudio.com/vs/visual-studio-2017-rc/
This version of VS comes with some enhanced static code analysis, checking the code against the C++ core guidelines: https://blogs.msdn.microsoft.com/vcblog/2016/10/12/cppcorecheck/
Seems like these checks are implemented as some kind of extension to Visual Studio. Does anyone know if we are able to write our own code analyzers / implement checkers for our own guidelines with Visual Studio 2017? So far we had to use some external compiler (like clang) to generate the AST. I could only find documentation for VS2015, describing how to write custom checkers for managed languages like C#.

Related

Static Code Analysis Tools in Visual Studio 2017

Good day
Requesting can you please let me know available Static Code Analysis Tools in Visual Studio 2017 and possible best practices etc.
For C#, Visual Studio includes "FXCop". See Microsoft Docs: Overview of code analysis for .NET in Visual Studio.
For C++, Visual Studio includes /analyze as well as C++ Core Guidelines checkers. See Microsoft Docs: Code analysis for C/C++ overview.
For third party solutions, there a number of options you can find with a quick Internet search.

Does Visual Studio 2017 use the Language Server Protocol?

Language Server Protocol was created for VS-Code (not the Visual Studio IDE).
It is a rather sensible idea about providing language services like various linting and code-completion (intillisense).
It is by no means the first-time that idea has been had,
but it has seen rather rapid and wide-scale support from a large number of languages.
Is it used by Visual Studio 2017?
I can't seem to find the creating extensions docs for 2017.
eg the 2015 docs here.
If not, is there an official language server plugin that allows LSP resources to be used?
Update (Feb 2019): support for the Language Server Protocol is now built in to Visual Studio 2017.
This question was not able to answer, as only Microsoft holds the key. But luckily after half a year, Microsoft did announce the fact that Visual Studio would support LSP,
https://blogs.msdn.microsoft.com/visualstudio/2017/11/21/announcing-language-server-protocol-preview-release/
The extension only works for Visual Studio Preview builds right now, and also lacks many important features,
https://marketplace.visualstudio.com/items?itemName=vsext.LanguageServerClientPreview
We can see that there is still a long way to go.

Code Analysis Not Available in This Edition of the Compiler

I'm trying to run code analysis for the first time on my native C++ application. I'm developing using Visual Studio 2013 Ultimate and compiling using the Visual C++ Compiler Nov 2013 CTP (CTP_Nov2013), which is the latest (I believe) compiler from MS for C++11. When trying to run Code Analysis I receive the following warning:
warning D9040: ignoring option '/analyze'; Code Analysis warnings are not available in this edition of the compiler
So I'm wondering if it's because I'm using this new compiler that it's not able to run code analysis or what. But I couldn't find any answers by briefly Googling. The MSDN for Visual Studio says code analysis works for all version of VS except Express. Any help would be appreciated, and if it's a "No it doesn't work with that compiler" then that's fine. Just wondering. Thanks!
It seems to work only for x86 builds. If you're doing an x64 build, it won't be available.

Compiler used by Visual Studio for C++?

I have tried searching on the internet but could not find out the compiler used by Visual Studio for C++ applications.
I wanted to know whether it is freely available & whether it can be used for commercial applications.
Traditionally I have been using Turbo C++.
The problem with Visual Studio C++ Express is that it does not work with some applications.
For example, BRL-CAD which is an open source project works properly with the commercial version but gives some problems for the Express edition.
It seems that there is some problem with MinGW compiler as well.
I am told this by the people running that project.
Visual Studio uses the same compiler for all editions. So, the Express edition uses the same compiler as the Professional edition. There are also no restrictions on producing commercial applications, in either case. There are differences in the advanced features offered by the IDE, but the compilers are the same. So whatever your problems are in getting the project to work, it is nothing to do with the compiler.

Static-code analyzer: unmanaged C++ Visual Studio 2008

I develop commercial unmanaged C++ app on Visual Studio 2008, and I want to add a static-code analysis tool.
Any recommendations?
I think it would be real nice if the tool can be integrated into MSVC.
I'm thinking about PC-Lint + Visual Lint
However, I have been taking a hard look at Coverity, Understand, and Klockwork as well.
Price isnt really the issue. I want opinions from people who actually used the tool for unmanaged C++ on MSVC, and they just absolutely loved it.
Lastly, VSTS and Intel Parallel Studio now also offer static code analysis. Nice~
Note: related post suggest Coverity is the best (?) (see last 2 posts)
Beyond all those you mentioned, VS Team Developer edition comes bundled with a nice static analysis tool called prefast. Its (obviously..) well integrated into the IDE, and accessible via the menus.
Its in fact a public release of an MS internal tool - a thin version of a tool called Prefix they run on their builds. Personally, when I faced the same decision, prefast sufficed.
I work for RedLizard building Goanna, a C++ static analysis plugin for Visual Studio. Its focus is on desktop use by a programmer. You can run it on individual files, just as you do the compiler, and it can give you results quickly.
There is a trial available. Right-click a file, select Run Goanna, and the results appear in the Visual Studio warnings list.
You can try CppDepend, a pretty complete c and c++ static analyzer, well integrated with VS 2008, 2010, 2012, 2013 and 2015.
I just started using cppcheck which I like very much due to the low noise.
Although it does not integrate directly with Visual Studio 2008, VS can be customized and you should be able to integrate it directly into the IDE.
I use PVS-Studio static code analyzer.
This static code analyzer good integrated with Visual Studio 2005, 2008, 2010, 2012, 2013.
It has many additional features:
Verification of files which were recently modified several days ago;
Verification of files by their filenames from within the text file
list;
version control systems integration; ability to operate fro m command line
interface;
«False Alarms» marking; saving and loading of analysis
results;
utilizing all available cores and processors;
etc...