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

Hans Wennborg via cfe-dev cfe-dev at lists.llvm.org
Tue Aug 16 12:42:17 PDT 2016


fwiw, the clang-format executable is bundled with the vs plugin
already, so the same could be done with clang-tidy. The interesting
thing (and the one that would require work) is exposing this stuff in
the ui in a good way.

On Mon, Aug 15, 2016 at 6:52 PM, Zachary Turner via cfe-dev
<cfe-dev at lists.llvm.org> wrote:
> Yea, integrating options probably isn't necessary for llvm developers, but i
> think it would be *huge* for driving adoption externally. Same with bundling
> the tool with the plugin so that it could be distributed standalone, perhaps
> even from the vs extensions gallery
>
> On Sun, Aug 14, 2016 at 3:14 PM Aaron Ballman <aaron at aaronballman.com>
> wrote:
>>
>> On Fri, Aug 12, 2016 at 6: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?
>>
>> I would *love* to see clang-tidy exposed as a plugin within Visual
>> Studio. The existing clang-format integration we already have is
>> basically the only reason I use clang-format -- I don't want to drop
>> into a command line from my editor unless I absolutely have to, so
>> integrating clang-tidy makes it far more likely to check code early
>> and often. The tight integration of the options with the editor would
>> be really nice, but not critical for my particular usage (the defaults
>> for both tools are fine for my needs).
>>
>> ~Aaron
>>
>> >
>> > _______________________________________________
>> > 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
>


More information about the cfe-dev mailing list