llvm-project/clang/tools/clang-format-vs
Hans Wennborg 9d7df75c9c clang-format vs plugin support for Visual Studio 2017
With the release of Visual Studio 2017, we need to at the very least
claim support for it in the current manifest file. With the changes
introducted in this patch we can install the extension again, but a
warning message will be shown stating that it's not supported
(https://twitter.com/parsley72/status/846558416751411200).

To get the rid of the warning more work is necessary, as VS 2017 changed
some things about extensions, see more here:
https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-migrate-extensibility-projects-to-visual-studio-2017.
While working on those changes, it has been suggested in the
mail list that this first patch is integrated in the meantime.

Patch by Hugo Puhlmann!

Differential Revision: https://reviews.llvm.org/D31522

llvm-svn: 299210
2017-03-31 12:50:42 +00:00
..
ClangFormat clang-format-vsix: add command to format document 2016-12-16 01:51:43 +00:00
.gitignore clang-format-vsix: add command to format document 2016-12-16 01:51:43 +00:00
CMakeLists.txt clang-format-vsix: add a date stamp to the VSIX version number to ensure upgradability 2016-12-16 01:37:01 +00:00
ClangFormat.sln clang-format VS plugin: upgrade the project files to VS2015 2016-09-15 19:44:49 +00:00
README.txt clang-format-vsix: add command to format document 2016-12-16 01:51:43 +00:00
source.extension.vsixmanifest.in clang-format vs plugin support for Visual Studio 2017 2017-03-31 12:50:42 +00:00

README.txt

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This directory contains a VSPackage project to generate a Visual Studio extension
for clang-format.

Build prerequisites are:
- Visual Studio 2015
- Extensions SDK (you'll be prompted to install it if you open ClangFormat.sln)

The extension is built using CMake to generate the usual LLVM.sln by setting
the following CMake vars:

- BUILD_CLANG_FORMAT_VS_PLUGIN=ON

- NUGET_EXE_PATH=path/to/nuget_dir (unless nuget.exe is already available in PATH)

example:
  cd /d C:\code\llvm
  mkdir build & cd build
  cmake -DBUILD_CLANG_FORMAT_VS_PLUGIN=ON -DNUGET_EXE_PATH=C:\nuget ..

Once LLVM.sln is generated, build the clang_format_vsix target, which will build
ClangFormat.sln, the C# extension application.

The CMake build will copy clang-format.exe and LICENSE.TXT into the ClangFormat/
directory so they can be bundled with the plug-in, as well as creating
ClangFormat/source.extension.vsixmanifest. Once the plug-in has been built with
CMake once, it can be built manually from the ClangFormat.sln solution in Visual
Studio.

===========
 Debugging
===========

Once you've built the clang_format_vsix project from LLVM.sln at least once,
open ClangFormat.sln in Visual Studio, then:

- Make sure the "Debug" target is selected
- Open the ClangFormat project properties
- Select the Debug tab
- Set "Start external program:" to where your devenv.exe is installed. Typically
  it's "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe"
- Set "Command line arguments" to: /rootsuffix Exp
- You can now set breakpoints if you like
- Press F5 to build and run with debugger

If all goes well, a new instance of Visual Studio will be launched in a special
mode where it uses the experimental hive instead of the normal configuration hive.
By default, when you build a VSIX project in Visual Studio, it auto-registers the
extension in the experimental hive, allowing you to test it. In the new Visual Studio
instance, open or create a C++ solution, and you should now see the Clang Format
entries in the Tool menu. You can test it out, and any breakpoints you set will be
hit where you can debug as usual.