[lldb-dev] LLDB Coding Style

Daniel Jasper djasper at google.com
Tue Aug 19 11:38:55 PDT 2014


Use clang-format-diff.py checked into cfe/tools/clang-format.


On Tue, Aug 19, 2014 at 11:25 AM, Zachary Turner <zturner at google.com> wrote:

> +djasper
>
> Ok, just for the record, here's what I do (for context, this discussion is
> about how to reformat the contents of an existing CL, without touching
> lines that were not modified by the CL).
>
> 1) Checkout chrome  (wtf right?  I'm sure there's a better workflow, I
> just don't know what it is.  djasper might though, which is why I've added
> him)
> 2) set the CHROMIUM_BUILDTOOLS_PATH environment variable to point to
> d:\src\chromium\src\buildtools   (update this for your situation)
> 3) Update PATH environment variable to point to the version of git that is
> in chrome's depot_tools
> 4) Commit some changes to my local git repo, but don't dcommit them yet.
> 5) git cl format
>
> This will look through your commit log and collect all the changes that
> are not upstreamed yet, and reformat those changes, leaving the result in
> your working copy.  For me, this is usually just a single commit that
> hasn't been upstreamed yet, so I just git commit --amend to add the
> formatting to it.
>
> I'm not sure how to do this without chrome's "git cl format" command.
>  Daniel?
>
>
> On Tue, Aug 19, 2014 at 11:13 AM, Todd Fiala <tfiala at google.com> wrote:
>
>> Hey Zach,
>>
>> It'd be great if you posted the command line you run to do that.  I'm
>> sure there are others (myself included) that would love to see how that
>> works.
>>
>> Thanks!
>>
>> -Todd
>>
>>
>> On Tue, Aug 19, 2014 at 11:06 AM, Zachary Turner <zturner at google.com>
>> wrote:
>>
>>> Definitely agree with you on this.  I have no plans to go fixup old
>>> code, and I don't think others should either.  And if we see a change go
>>> through that does attempt to fix up old code, we should block it.
>>>
>>> That said, I'm working on a clang-format file that will automate this
>>> formatting for us (or at least, for me, should nobody else choose to use
>>> it), and I plan to run it against all my changelists before submitting
>>> them.  Note that this only reformats lines that have already been touched
>>> by the CL, so there's no risk of formatting-only changes making it in.
>>>
>>>
>>> On Tue, Aug 19, 2014 at 11:00 AM, Sean Callanan <scallanan at apple.com>
>>> wrote:
>>>
>>>> One point about this discussion, by the way.
>>>>
>>>> While I support adherence to a consistent style for new/changed code,
>>>> this should in no way be taken as support for going through and fixing
>>>> indentation/style on old code.
>>>> We have internal branches that become hell to merge when e.g. spacing
>>>> has been altered subtly, or brace depth is changed…
>>>> If we all do our part to clean the parts we’re touching, then I think
>>>> that will be enough to keep LLDB clean.
>>>>
>>>> Sean
>>>>
>>>> On Aug 19, 2014, at 10:16 AM, Zachary Turner <zturner at google.com>
>>>> wrote:
>>>>
>>>> I brought this up in a thread on lldb-commits, but since it is of more
>>>> general interest, I want to make a thread here as well.
>>>>
>>>> Can we have clear direction on LLDB coding style?  Ideally in the form
>>>> of an update to lldb.llvm.org, but as that might require a little more
>>>> effort, even some details in a response to this thread would be a help.
>>>>  Some things I've deduced from looking at the code, and other things I'm
>>>> not so sure about, because of inconsistencies in the code or just no clear
>>>> rule.
>>>>
>>>> Indentation width: 4
>>>> Column limit: 140  (does this apply to comments too?  Most
>>>> function-declaration comments seem to wrap at 80)
>>>> Brace style: Allman
>>>>     if (foo)
>>>>     {
>>>>         // code here
>>>>     }
>>>>
>>>> Break after function return type: Always, only on declarations, only on
>>>> definitions, only in headers, or never?
>>>>
>>>> Space before function parentheses: When?
>>>>
>>>> Indent case labels inside switch: A or B below?
>>>>     switch (foo)
>>>>     {
>>>>         case A:
>>>>     case B:
>>>>     }
>>>>
>>>> Indent braces inside of a case: A or B below?
>>>>     switch (foo)
>>>>     {
>>>>         case A:
>>>>         {
>>>>         }
>>>>         case B:
>>>>             {
>>>>             }
>>>>     }
>>>>
>>>> Any other rules I should be cognizant of?
>>>>  _______________________________________________
>>>> lldb-dev mailing list
>>>> lldb-dev at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> lldb-dev mailing list
>>> lldb-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>
>>>
>>
>>
>> --
>>  Todd Fiala | Software Engineer |  tfiala at google.com |  650-943-3180
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140819/661c681c/attachment.html>


More information about the lldb-dev mailing list