klimek accepted this revision.
klimek added a comment.
This revision is now accepted and ready to land.

LG. I also think it makes the code nicer by breaking out the right functions. 
Thanks!



================
Comment at: tools/clang-format-vs/ClangFormat/ClangFormat.vsct:76
+        <Strings>
+          <ButtonText>Clang Format Document</ButtonText>
+        </Strings>
----------------
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.


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