[cfe-dev] Clang-format / clang-tidy VS plugin

Manuel Klimek via cfe-dev cfe-dev at lists.llvm.org
Tue Aug 16 20:47:43 PDT 2016

On Wed, Aug 17, 2016, 6:26 AM Michael Lewis <don.apoch at gmail.com> wrote:

> The Windows lifestyle, for what it's worth, would prefer to have a GUI for
> modifying the .clang-format settings but still serialize them as always.
> This way you get the accessibility without losing the strengths of having
> a versionable file on disk.
> Speaking as a virtually all-Windows dev, I would be exceedingly happy to
> get better clang-format support in VS. Writing a VS plugin isn't hard, for
> what it's worth, and can totally offer a fully dynamic editor for the
> settings stored on disk. I can definitely say that such a plugin would be
> very popular even among programmers who don't build (primarily) with clang.

So would the clang format plugin as it exists now (with style=file) and a
UI VS editor component give you that?

> - Mike
> On Aug 16, 2016 8:05 PM, "Manuel Klimek via cfe-dev" <
> cfe-dev at lists.llvm.org> wrote:
>> On Tue, Aug 16, 2016, 10:49 PM Zachary Turner via cfe-dev <
>> cfe-dev at lists.llvm.org> wrote:
>>> That is one idea that I considered, but from what I understand of how to
>>> implement options UI in Visual Studio (I have never actually done this, but
>>> looked at it for an hour or so once upon a time) the options and values
>>> need to be statically defined in order to create the UI property sheet.  ie
>>> you can't build one of these sheets dynamically, because the UI is
>>> generated when Visual Studio loads your extension by reading some XML.
>>> It's possible my understanding is wrong though.
>>> I agree that per-project and per-file settings would be nice.  I'll have
>>> to think about this some more though, as you would want a tight integration
>>> with what people normally expect with the project system, such as being
>>> able to override settings on a per file basis.  This also means figuring
>>> out how to make this interoperate (if at all) with existing .clang-format
>>> settings files on disk.
>> That's why we have the files on disk. Do you think people on Windows
>> would not want to just check in a .clang-format file and use style=file?
>>> On Tue, Aug 16, 2016 at 12:41 PM Yury Mikhaylov <
>>> yury.mikhaylov at gmail.com> wrote:
>>>> Can't we just ask clang-format to dump all options that its parser
>>>> understands and use that info to populate property sheet in MSVC? Something
>>>> similar to what -dump-config does now.
>>>> I have also noticed that your mock-up shows the prop sheet in the
>>>> system-wide settings. Won't it be better to keep them on per-project basis?
>>>> Maybe even parse/regenerate .clang-format file in the project folder to
>>>> allow versioning?
>>>> - Yury
>>>> On Fri, Aug 12, 2016 at 3:58 PM, Zachary Turner via cfe-dev <
>>>> cfe-dev at lists.llvm.org> wrote:
>>>>> I was thinking about some ways to improve clang-format, and possibly
>>>>> even add clang-tidy to the list of things our VS plugin supports.  Perhaps
>>>>> even merge them into a single plugin.  But you know, I'm a windows person,
>>>>> and I want a UI.  I don't want to just click a button and have it use some
>>>>> settings that are on disk that I edited by hand, I'd like to be able to
>>>>> edit the settings themselves through a nice UI, like everything in VS.
>>>>> This is kind of difficult if the plugin shells out to an external tool
>>>>> without linking against it, because it doesn't have any knowledge of what
>>>>> specific options and features the version it's calling might support in
>>>>> order to build the appropriate UI to set them.  On the other hand, if it
>>>>> links against the tool, this all becomes very easy, because the plugin can
>>>>> share types and data structures with the tool itself.  And it also means
>>>>> that someone could download the plugin without installing LLVM, as a
>>>>> standalone tool, greatly reducing the barrier to entry for people wanting
>>>>> to try out the tool.
>>>>> Here's a quick mockup of what my ideal UI would look like and what I
>>>>> have in mind: http://imgur.com/a/p3XBv
>>>>> But again, it's hard to maintain this kind of thing if the VS plugin
>>>>> has to rely on an external tool to do the formatting, since it would have
>>>>> to know about every possible set of options for every version as the
>>>>> software improves.  So in order to do this this way, we'd need to probably
>>>>> build clang-format and/or clang-tidy as a DLL and bundle them with the
>>>>> plugin, which could link against it.
>>>>> Not really asking anyone else to do the work so much as I am asking if
>>>>> people think this would be cool and/or something they'd like to see.
>>>>> Personally I think it would be a great way to get clang-format and
>>>>> clang-tidy onto more peoples' systems, particularly those people who are
>>>>> not currently using clang on Windows, since this would be standalone and
>>>>> work out of the box while providing a familiar user interface to what
>>>>> people are used to.
>>>>> Thoughts?
>>>>> _______________________________________________
>>>>> cfe-dev mailing list
>>>>> cfe-dev at lists.llvm.org
>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160817/0e4f818d/attachment.html>

More information about the cfe-dev mailing list