amaiorano added inline comments.

================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormat.vsct:76
+        <Strings>
+          <ButtonText>Clang Format Document</ButtonText>
+        </Strings>
----------------
klimek wrote:
> amaiorano wrote:
> > klimek wrote:
> > > hans wrote:
> > > > amaiorano wrote:
> > > > > hans wrote:
> > > > > > I think File would be better than Document when referring to source 
> > > > > > code.
> > > > > > 
> > > > > > But it seems a little annoying to need two menu alternatives. Could 
> > > > > > we make the regular "Clang Format" option just format the whole 
> > > > > > file if there is currently no selection, or would that be confusing?
> > > > > The reason I chose "Document" is that it mimics the existing 
> > > > > functionality in Visual Studio:
> > > > > {F2661117}
> > > > > 
> > > > > As you can see, "Ctrl+K, Ctrl+F" is bound to format selection by 
> > > > > default; which I assumed is the reason "Ctrl+R, Ctrl+F" was used for 
> > > > > Clang Format (Selection). So along the same lines, I bound "Ctrl + R, 
> > > > > Ctrl + D" to Clang Format Document.
> > > > > 
> > > > > I don't really have a problem with having multiple menu options, 
> > > > > although we could have both of them underneath a "Clang Format" top 
> > > > > menu, with "Format Selection" and "Format Document" as sub menu items.
> > > > > 
> > > > > As for annoyance in menus, I think most developers would reach for 
> > > > > keyboard shortcuts in this case anyway. Furthermore, the next feature 
> > > > > I want to add, building on top of this one, is allowing the user to 
> > > > > enable "Format on Save", which would make this even easier to use.
> > > > I see, I didn't realize they call it documents. And if they also have 
> > > > separate commands for formating selection and formating the whole file, 
> > > > maybe that makes sense for us too.
> > > > 
> > > > Right, I also imagine folks would use this from the keyboard, but there 
> > > > too it's annoying to have two shortcuts for the same thing. But again, 
> > > > if that's how it's generally done in VS...
> > > > 
> > > > I'd like to hear from Manuel on this patch too, though.
> > > Clang-format currently formats the current line / statement if there is 
> > > no selection, and that's how most people I know use it.
> > > Formatting the whole file by default is not what clang-format is 
> > > optimized for, and highly disruptive (eclipse does that, and it's 
> > > annoying).
> > > I'm more wondering why we need a setting for this at all - isn't 
> > > ctrl-a,ctrl-k,ctrl-f equivalent to formatting the whole file?
> > @klimek My own experience, which also seems to match those of others 
> > online, is that clang-format is a fantastic tool for making sure your 
> > code-base follows a strict formatting standard. What many people do is 
> > install Git pre-stage hooks, for instance, to run clang-format across 
> > entire source files, to ensure they're formatted properly. So even if it's 
> > not optimized for that, it works very well :)
> > 
> > Using clang-format to format only the current line doesn't guarantee that 
> > everything will be formatted accordingly. My own experience is that it 
> > sometimes formats the line differently than if you format the entire 
> > document. Or perhaps you end up writing a few lines of code, and formatting 
> > current line doesn't pick up all the lines you've modified. As for 
> > ctrl-a,ctrl-r-ctrl-f, the problem with it is that you lose your cursor 
> > position, as ctrl-a will place it at the end of the file.
> > 
> > You also mention that formatting the entire file is "highly disruptive" 
> > like in eclipse. I'm not sure how eclipse handles that, but so far VS seems 
> > to do a pretty good job. It manages to maintain breakpoint positions quite 
> > well, it manages to keep the cursor in the same place, and it manages to 
> > keep the relative location of the code where the cursor is at visible on 
> > screen. I suspect part of the reason it works well in VS is because 
> > Microsoft made sure it worked for their own format document feature 
> > (ctrl-k,ctrl-d).
> > 
> > As I mentioned earlier, this is a stepping stone towards adding a feature 
> > to "format on save", for which I'd like to offer the ability to choose 
> > "current line/selection" and "document". [[ 
> > https://github.com/Elders/VSE-FormatDocumentOnSave | Here's an example ]] 
> > of an extension that offers this feature, but for VS's built-in formatting.
> Note: with "highly disruptive" I meant only if the default behavior without 
> any selection is to format the whole file, as that basically kills the 
> workflow; that was what Hans suggested.
> 
> I'm not opposed to having an extra key binding if enough folks want it and 
> there is enough benefit - the argument to not move your cursor is a good 
> point.
Thanks! Now I just need to get my svn submit working. Chris Latner created my 
account, etc. but when I tried to submit another accepted change, it didn't 
work. Anyway, will figure it out. Thanks again :)


https://reviews.llvm.org/D27501



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to