[cfe-dev] Clang-format / clang-tidy VS plugin
Michael Lewis via cfe-dev
cfe-dev at lists.llvm.org
Tue Aug 16 20:26:47 PDT 2016
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.
On Aug 16, 2016 8:05 PM, "Manuel Klimek via cfe-dev" <cfe-dev at lists.llvm.org>
> 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>
>>> 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.
>>>> cfe-dev mailing list
>>>> cfe-dev at lists.llvm.org
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev