[contrib] Add clang-format-diff.py #7304

pull MarcoFalke wants to merge 2 commits into bitcoin:master from MarcoFalke:Mf1601-clang-format-diff changing 2 files +176 −0
  1. MarcoFalke commented at 3:54 PM on January 6, 2016: member

    This is pretty much just a copy of the widely used clang-format-diff.py from the official clang-format svn.

    The only adjustment necessary was to fail when no .clang-format file is found:

    -    if args.style:
    -      command.extend(['-style', args.style])
    +    command.extend(['-style=file', '-fallback-style=none'])
    

    You can use it by just piping a diff:

    git diff -U0 HEAD~1.. | ./contrib/devtools/clang-format-diff.py -p1 -i -v
    
  2. Add clang-format-diff.py from the LLVM svn
    ------------------------------------------------------------------------
    r249567 | djasper | 2015-10-07 19:00:20 +0200 (Wed, 07 Oct 2015) | 2 lines
    
    clang-format: Add include sorting capabilities to sublime, emacs and
    clang-format-diff.py.
    ------------------------------------------------------------------------
    r231926 | djasper | 2015-03-11 15:58:38 +0100 (Wed, 11 Mar 2015) | 3 lines
    
    clang-format: Recognize the .ts (TypeScript) extension as JavaScript.
    
    Patch by Martin Probst. Thank you.
    ------------------------------------------------------------------------
    r223685 | djasper | 2014-12-08 20:39:03 +0100 (Mon, 08 Dec 2014) | 1 line
    
    clang-format: Make clang-format-diff.py format java files.
    ------------------------------------------------------------------------
    r221990 | djasper | 2014-11-14 14:27:28 +0100 (Fri, 14 Nov 2014) | 4 lines
    
    clang-format: Give clang-format-diff.py a -v option.
    
    With it, it prints the file being formatted. Apparently people are
    formatting thousands of files and some progress indication is helpful.
    ------------------------------------------------------------------------
    r216945 | ed | 2014-09-02 22:59:13 +0200 (Tue, 02 Sep 2014) | 6 lines
    
    Use /usr/bin/env python instead of /usr/bin/python.
    
    On operating systems like the BSDs, it is typically the case that
    /usr/bin/python does not exist. We should therefore use /usr/bin/env
    instead. This is also done in various other scripts in tools/.
    
    ------------------------------------------------------------------------
    r208766 | djasper | 2014-05-14 11:36:11 +0200 (Wed, 14 May 2014) | 1 line
    
    clang-format: Add clang-format-diff usage examples for SVN.
    ------------------------------------------------------------------------
    r199750 | djasper | 2014-01-21 16:40:01 +0100 (Tue, 21 Jan 2014) | 3 lines
    
    clang-format: Enable formatting for .proto and .protodevel files.
    
    Support for protocol buffer files seems complete enough.
    ------------------------------------------------------------------------
    r197668 | djasper | 2013-12-19 11:21:37 +0100 (Thu, 19 Dec 2013) | 1 line
    
    Fix usage description of clang-format-diff.py.
    ------------------------------------------------------------------------
    r197608 | alp | 2013-12-18 22:34:07 +0100 (Wed, 18 Dec 2013) | 7 lines
    
    clang-format-diff.py: fix -regex/-iregex matching
    
    While debating the finer points of file extension matching, we somehow missed
    the bigger problem that the current code will match anything starting with the
    default or user-specified pattern (e.g. lit.site.cfg.in).
    
    Fix this by doing what find(1) does, implicitly wrapping the pattern with ^$.
    ------------------------------------------------------------------------
    r197542 | alp | 2013-12-18 01:58:58 +0100 (Wed, 18 Dec 2013) | 3 lines
    
    clang-format-diff.py: add the OpenCL file extension
    
    It's handled correctly as a C-family language.
    ------------------------------------------------------------------------
    r197378 | alexfh | 2013-12-16 11:57:30 +0100 (Mon, 16 Dec 2013) | 14 lines
    
    Added -iregex for case-insensitive regex to filter file names.
    
    Summary:
    -regex and -iregex both mimic options of the find utility.
    Made the default list of extensions case-insensitive, so that it's not only C
    and CPP extensions are accepted in upper case.
    
    Reviewers: djasper
    
    Reviewed By: djasper
    
    CC: cfe-commits
    
    Differential Revision: http://llvm-reviews.chandlerc.com/D2415
    ------------------------------------------------------------------------
    r196917 | alp | 2013-12-10 14:51:53 +0100 (Tue, 10 Dec 2013) | 10 lines
    
    clang-format-diff.py: Support -regex filter and more filename extensions
    
    Add support for more filename extensions based on the list in the clang
    plus JavaScript.
    
    Also adds a -regex option so users can override defaults if they have unusual
    file extensions or want to format everything in the diff.
    
    Keeping with tradition the flag is modelled on Unix conventions, this time
    matching the semantics of find(1).
    ------------------------------------------------------------------------
    r196484 | alp | 2013-12-05 09:14:54 +0100 (Thu, 05 Dec 2013) | 4 lines
    
    clang-format-diff.py: pass through errors to stderr, not stdout
    
    Also use write() for unified diff output to avoid further processing by the
    print function (e.g. trailing newline).
    ------------------------------------------------------------------------
    r196336 | alp | 2013-12-04 01:48:22 +0100 (Wed, 04 Dec 2013) | 3 lines
    
    clang-format-diff.py: Fix 'beintroduced' in help output
    
    Also update docs to reflect recently changed -i inplace edit behaviour.
    ------------------------------------------------------------------------
    r192505 | alexfh | 2013-10-11 23:32:01 +0200 (Fri, 11 Oct 2013) | 17 lines
    
    Changed clang-format-diff.py to output diff by default. Added -i option to apply changes to files instead.
    
    Summary:
    "svn diff|clang-format-diff.py" will just output the diff.
    Now it's possible to use:
      svn diff|clang-format-diff.py|patch -p0
    as an equivalent to:
      svn diff|clang-format-diff.py -i
    ;)
    
    Reviewers: djasper
    
    Reviewed By: djasper
    
    CC: cfe-commits
    
    Differential Revision: http://llvm-reviews.chandlerc.com/D1840
    ------------------------------------------------------------------------
    r192184 | djasper | 2013-10-08 17:54:36 +0200 (Tue, 08 Oct 2013) | 7 lines
    
    clang-format: Don't exit with failure on empty files.
    
    Also let clang-format-diff.py detect errors based on clang-format's
    return code. Otherwise messages like "Can't find usable .clang-format,
    falling back to LLVM style" can make it fail, which might be undesired.
    
    Patch by Alp Toker. Thank you!
    ------------------------------------------------------------------------
    r191820 | djasper | 2013-10-02 15:59:03 +0200 (Wed, 02 Oct 2013) | 18 lines
    
    clang-format: Fix clang-format-diff.py according to diff specification.
    
    Patch by Alp Toker. Many thanks!
    
    Original descriptions:
    clang-format-diff incorrectly modifies unchanged lines due to an error
    in diff parsing.
    
    The unified diff format has a default line change count of 1, and 0 may
    be specified to indicate that no lines have been added. This patch
    updates the parser to accurately reflect the diff specification.
    
    This also has the benefit of stabilising the operation so it will
    produce the same output when run multiple times on the same changeset,
    which was previously not the case.
    
    No tests added because this script is not currently tested (though we
    should look into that!)
    ------------------------------------------------------------------------
    r191137 | djasper | 2013-09-21 12:05:02 +0200 (Sat, 21 Sep 2013) | 3 lines
    
    Fix clang-format-diff.py to accept -style again.
    
    Copy and paste error in r190935..
    ------------------------------------------------------------------------
    r190935 | djasper | 2013-09-18 14:14:09 +0200 (Wed, 18 Sep 2013) | 3 lines
    
    Simplify clang-format-diff.py using new clang-format options.
    
    clang-format's -lines parameter makes this significantly easier.
    ------------------------------------------------------------------------
    r189765 | alexfh | 2013-09-02 18:39:23 +0200 (Mon, 02 Sep 2013) | 2 lines
    
    Added WebKit style to the BasedOnStyle handling and to the relevant help messages.
    
    ------------------------------------------------------------------------
    r182923 | djasper | 2013-05-30 13:50:20 +0200 (Thu, 30 May 2013) | 4 lines
    
    Fix default value of clang-format-diff's -p option.
    
    This way, it has the same default as 'patch' and also the example in the
    code makes more sense as it is explicitly setting -p 1.
    ------------------------------------------------------------------------
    r179676 | djasper | 2013-04-17 09:55:02 +0200 (Wed, 17 Apr 2013) | 2 lines
    
    Small improvements to clang-format documentation and integration
    scripts.
    ------------------------------------------------------------------------
    r179377 | djasper | 2013-04-12 15:42:36 +0200 (Fri, 12 Apr 2013) | 1 line
    
    Fix clang-format-diff.py script.
    ------------------------------------------------------------------------
    r179098 | djasper | 2013-04-09 17:23:04 +0200 (Tue, 09 Apr 2013) | 5 lines
    
    Improvements to clang-format integrations.
    
    This adds an emacs editor integration (thanks to Ami Fischman). Also
    pulls out the style into a variable for the vi integration and just
    uses clang-formats defaults style in clang-format-diff.py.
    ------------------------------------------------------------------------
    r177506 | djasper | 2013-03-20 10:53:23 +0100 (Wed, 20 Mar 2013) | 1 line
    
    Add clang-format binary to cfe.
    ------------------------------------------------------------------------
    
    s
    fa4f4b6974
  3. [contrib] Prepare clang-format-diff for usage fa074a6fd0
  4. jonasschnelli added the label Dev Scripts on Jan 6, 2016
  5. laanwj commented at 9:51 AM on January 16, 2016: member

    Concept ACK

  6. laanwj merged this on Jan 18, 2016
  7. laanwj closed this on Jan 18, 2016

  8. laanwj referenced this in commit b8f485c472 on Jan 18, 2016
  9. MarcoFalke deleted the branch on Jan 18, 2016
  10. codablock referenced this in commit 788e2181be on Sep 16, 2017
  11. codablock referenced this in commit 525aa77cd3 on Sep 19, 2017
  12. codablock referenced this in commit 26f29747a4 on Dec 9, 2017
  13. codablock referenced this in commit 25ba3aba16 on Dec 9, 2017
  14. MarcoFalke locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-17 06:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me