#
3b345c36 |
| 21-Feb-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] New API guessLanguage()
Summary: For clients which don't have a filesystem, calling getStyle() doesn't make much sense (there's no .clang-format files to search for).
In this diff, I
[clang-format] New API guessLanguage()
Summary: For clients which don't have a filesystem, calling getStyle() doesn't make much sense (there's no .clang-format files to search for).
In this diff, I hoist out the language-guessing logic from getStyle() and move it into a new API guessLanguage().
I also added support for guessing the language of files which have no extension (they could be C++ or ObjC).
Test Plan: New tests added. Ran tests with: % make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: jolesiak, krasimir
Reviewed By: jolesiak, krasimir
Subscribers: klimek, cfe-commits, sammccall
Differential Revision: https://reviews.llvm.org/D43522
llvm-svn: 325691
show more ...
|
#
2fac8d94 |
| 16-Feb-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Enable google text proto formatting in R"proto('s
llvm-svn: 325336
|
#
ce4f0af3 |
| 15-Feb-2018 |
Jacek Olesiak <jolesiak@google.com> |
[clang-format] Improve ObjC headers detection
Summary: Detect ObjC characteristic types when they start a line and add additional keywords.
Reviewers: benhamilton
Reviewed By: benhamilton
Subscri
[clang-format] Improve ObjC headers detection
Summary: Detect ObjC characteristic types when they start a line and add additional keywords.
Reviewers: benhamilton
Reviewed By: benhamilton
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D43124
llvm-svn: 325221
show more ...
|
#
374e6de8 |
| 08-Feb-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Do not break before long string literals in protos
Summary: This patch is a follow-up to r323319 (which disables string literal breaking for text protos) and it disables breaking befo
[clang-format] Do not break before long string literals in protos
Summary: This patch is a follow-up to r323319 (which disables string literal breaking for text protos) and it disables breaking before long string literals.
For example this: ``` keyyyyy: "long string literal" ``` used to get broken into: ``` keyyyyy: "long string literal" ```
While at it, I also enabled it for LK_Proto and fixed a bug in the mustBreak code.
Reviewers: djasper, sammccall
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42957
llvm-svn: 324591
show more ...
|
#
3a47fddf |
| 08-Feb-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] Set ObjCBinPackProtocolList to Never for google style
Summary: This is split off from D42650, and sets ObjCBinPackProtocolList to Never for the google style.
Depends On D42650
Test
[clang-format] Set ObjCBinPackProtocolList to Never for google style
Summary: This is split off from D42650, and sets ObjCBinPackProtocolList to Never for the google style.
Depends On D42650
Test Plan: New tests added. make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: krasimir, jolesiak, stephanemoore
Reviewed By: krasimir, jolesiak, stephanemoore
Subscribers: klimek, cfe-commits, hokein, Wizard
Differential Revision: https://reviews.llvm.org/D42708
llvm-svn: 324553
show more ...
|
#
4dc658ca |
| 02-Feb-2018 |
Ben Hamilton <benhamilton@google.com> |
[clang-format] New format param ObjCBinPackProtocolList
Summary: This is an alternative approach to D42014 after some investigation by stephanemoore@ and myself.
Previously, the format parameter `B
[clang-format] New format param ObjCBinPackProtocolList
Summary: This is an alternative approach to D42014 after some investigation by stephanemoore@ and myself.
Previously, the format parameter `BinPackParameters` controlled both C function parameter list bin-packing and Objective-C protocol conformance list bin-packing.
We found in the Google style, some teams were changing `BinPackParameters` from its default (`true`) to `false` so they could lay out Objective-C protocol conformance list items one-per-line instead of bin-packing them into as few lines as possible.
To allow teams to use one-per-line Objective-C protocol lists without changing bin-packing for other areas like C function parameter lists, this diff introduces a new LibFormat parameter `ObjCBinPackProtocolList` to control the behavior just for ObjC protocol conformance lists.
The new parameter is an enum which defaults to `Auto` to keep the previous behavior (delegating to `BinPackParameters`).
Depends On D42649
Test Plan: New tests added. make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: jolesiak, stephanemoore, djasper
Reviewed By: stephanemoore
Subscribers: Wizard, hokein, cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D42650
llvm-svn: 324131
show more ...
|
#
c2091808 |
| 31-Jan-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Adds space around braces in text protos
Summary: This patch modifies the text proto Google style to add spaces around braces.
I investigated using something different than Cpp11Brace
[clang-format] Adds space around braces in text protos
Summary: This patch modifies the text proto Google style to add spaces around braces.
I investigated using something different than Cpp11BracedListStyle, but it turns out it's what we want and also the java and js styles also depend on that.
Reviewers: djasper
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42685
llvm-svn: 323860
show more ...
|
#
a83d3c57 |
| 29-Jan-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Disable some text proto delimiters and functions for google style
Summary: This disables some of the most commonly used text proto delimiters and functions for google style until we r
[clang-format] Disable some text proto delimiters and functions for google style
Summary: This disables some of the most commonly used text proto delimiters and functions for google style until we resolve several style options for that style. In particular, wheter there should be a space surrounding braces ``msg { sub { key : value } }`` and the extent of packing of submessages on a same line.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42651
llvm-svn: 323678
show more ...
|
#
eda222e7 |
| 24-Jan-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Disable string literal breaking for text protos
Summary: Commonly string literals in protos are already multiline, so breaking them further is undesirable.
Reviewers: djasper
Review
[clang-format] Disable string literal breaking for text protos
Summary: Commonly string literals in protos are already multiline, so breaking them further is undesirable.
Reviewers: djasper
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42373
llvm-svn: 323319
show more ...
|
#
412ed095 |
| 19-Jan-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Adds a canonical delimiter to raw string formatting
Summary: This patch adds canonical delimiter support to the raw string formatting. This allows matching delimiters to be updated to
[clang-format] Adds a canonical delimiter to raw string formatting
Summary: This patch adds canonical delimiter support to the raw string formatting. This allows matching delimiters to be updated to the canonical one.
Reviewers: bkramer
Reviewed By: bkramer
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42187
llvm-svn: 322956
show more ...
|
#
f84f118e |
| 18-Jan-2018 |
Ben Hamilton <benhamilton@google.com> |
[ClangFormat] ObjCSpaceBeforeProtocolList should be true in the google style
Summary: The Google style guide is neutral on whether there should be a space before the protocol list in an Objective-C
[ClangFormat] ObjCSpaceBeforeProtocolList should be true in the google style
Summary: The Google style guide is neutral on whether there should be a space before the protocol list in an Objective-C @interface or @implementation.
The majority of Objective-C code in both Apple's public header files and Google's open-source uses a space before the protocol list, so this changes the google style to default ObjCSpaceBeforeProtocolList to true.
Test Plan: make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: krasimir, djasper, klimek
Reviewed By: krasimir
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D41074
llvm-svn: 322873
show more ...
|
#
8e21678d |
| 17-Jan-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Replace unordered_set with an array
Summary: This replaces an unordered_set from r322690 with an array and binary search.
Reviewers: bkramer, benhamilton
Reviewed By: bkramer, benha
[clang-format] Replace unordered_set with an array
Summary: This replaces an unordered_set from r322690 with an array and binary search.
Reviewers: bkramer, benhamilton
Reviewed By: bkramer, benhamilton
Subscribers: jolesiak, benhamilton, klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42189
llvm-svn: 322749
show more ...
|
#
e2e3e67c |
| 17-Jan-2018 |
Ben Hamilton <benhamilton@google.com> |
[Format] Improve ObjC header guessing heuristic
Summary: This improves upon the previous Objective-C header guessing heuristic from rC320479.
Now, we run the lexer on C++ header files and look for
[Format] Improve ObjC header guessing heuristic
Summary: This improves upon the previous Objective-C header guessing heuristic from rC320479.
Now, we run the lexer on C++ header files and look for Objective-C keywords and syntax. We also look for Foundation types.
Test Plan: make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: jolesiak, krasimir
Reviewed By: jolesiak
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42135
llvm-svn: 322690
show more ...
|
#
2537e220 |
| 17-Jan-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] adds enclosing function detection to raw string formatting
Summary: This patch adds enclosing function detection to raw string formatting.
Reviewers: bkramer
Reviewed By: bkramer
S
[clang-format] adds enclosing function detection to raw string formatting
Summary: This patch adds enclosing function detection to raw string formatting.
Reviewers: bkramer
Reviewed By: bkramer
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42167
llvm-svn: 322678
show more ...
|
#
4527f13a |
| 17-Jan-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Reorganize RawStringFormat based on language
Summary: This patch changes the structure for raw string formatting options by making it language based (enumerate delimiters per language
[clang-format] Reorganize RawStringFormat based on language
Summary: This patch changes the structure for raw string formatting options by making it language based (enumerate delimiters per language) as opposed to delimiter-based (specify the language for a delimiter). The raw string formatting now uses an appropriate style from the .clang-format file, if exists.
Reviewers: bkramer
Reviewed By: bkramer
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D42098
llvm-svn: 322634
show more ...
|
#
54076fe1 |
| 15-Jan-2018 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Adds a FormatStyleSet
Summary: This patch adds a FormatStyleSet for storing per-language FormatStyles for the purposes of formatting code blocks inside the main code.
Reviewers: bkra
[clang-format] Adds a FormatStyleSet
Summary: This patch adds a FormatStyleSet for storing per-language FormatStyles for the purposes of formatting code blocks inside the main code.
Reviewers: bkramer
Reviewed By: bkramer
Subscribers: klimek, djasper, bkramer, cfe-commits
Differential Revision: https://reviews.llvm.org/D41487
llvm-svn: 322479
show more ...
|
#
5b0c3ad5 |
| 14-Dec-2017 |
Ben Hamilton <benhamilton@google.com> |
Revert "[ClangFormat] IndentWrappedFunctionNames should be true in the google ObjC style"
This reverts commit 37e69667f748e1458b46483b7c1b8f9ba33eec44.
We're going to discuss its ramifications furt
Revert "[ClangFormat] IndentWrappedFunctionNames should be true in the google ObjC style"
This reverts commit 37e69667f748e1458b46483b7c1b8f9ba33eec44.
We're going to discuss its ramifications further before making a conclusion.
llvm-svn: 320747
show more ...
|
#
687e5fa9 |
| 14-Dec-2017 |
Ben Hamilton <benhamilton@google.com> |
[ClangFormat] IndentWrappedFunctionNames should be true in the google ObjC style
Summary: If we write the following code, it goes over 100 columns, so we need to wrap it:
``` - (VeryLongReturnTypeN
[ClangFormat] IndentWrappedFunctionNames should be true in the google ObjC style
Summary: If we write the following code, it goes over 100 columns, so we need to wrap it:
``` - (VeryLongReturnTypeName)veryLongMethodParameter:(VeryLongParameterName)thisIsAVeryLongParameterName longMethodParameter:(LongParameterName)thisIsAlsoAnotherLongParameterName; ```
Currently, clang-format with the google style aligns the method parameter names on the first column:
``` - (VeryLongReturnTypeName) veryLongMethodParameter:(VeryLongParameterName)thisIsAVeryLongParameterName longMethodParameter:(LongParameterName)thisIsAlsoAnotherLongParameterName; ```
We'd like clang-format in the google style to align these to column 4 for Objective-C:
``` - (VeryLongReturnTypeName) veryLongMethodParameter:(VeryLongParameterName)thisIsAVeryLongParameterName longMethodParameter:(LongParameterName)thisIsAlsoAnotherLongParameterName; ```
Test Plan: make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests
Reviewers: krasimir, djasper, klimek
Reviewed By: djasper
Subscribers: cfe-commits, thakis
Differential Revision: https://reviews.llvm.org/D41195
llvm-svn: 320714
show more ...
|
#
c70f1d63 |
| 14-Dec-2017 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[c++20] P0515R3: Parsing support and basic AST construction for operator <=>.
Adding the new enumerator forced a bunch more changes into this patch than I would have liked. The -Wtautological-compar
[c++20] P0515R3: Parsing support and basic AST construction for operator <=>.
Adding the new enumerator forced a bunch more changes into this patch than I would have liked. The -Wtautological-compare warning was extended to properly check the new comparison operator, clang-format needed updating because it uses precedence levels as weights for determining where to break lines (and several operators increased their precedence levels with this change), thread-safety analysis needed changes to build its own IL properly for the new operator.
All "real" semantic checking for this operator has been deferred to a future patch. For now, we use the relational comparison rules and arbitrarily give the builtin form of the operator a return type of 'void'.
llvm-svn: 320707
show more ...
|
#
11ef531b |
| 12-Dec-2017 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Improve ObjC headers detection.
This patch improves detection of ObjC header files. Right now many ObjC headers, especially short ones, are categorized as C/C++.
Way of filtering sti
[clang-format] Improve ObjC headers detection.
This patch improves detection of ObjC header files. Right now many ObjC headers, especially short ones, are categorized as C/C++.
Way of filtering still isn't the best, as most likely it should be token-based.
Contributed by jolesiak!
llvm-svn: 320479
show more ...
|
#
c351fba6 |
| 04-Dec-2017 |
Aaron Ballman <aaron@aaronballman.com> |
Now that C++17 is official (https://www.iso.org/standard/68564.html), start changing the C++1z terminology over to C++17. NFC intended, these are all mechanical changes.
llvm-svn: 319688
|
#
4c2c9c36 |
| 27-Nov-2017 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Add option to group multiple #include blocks when sorting includes
Summary: This patch allows grouping multiple #include blocks together and sort all includes as one big block. Additi
[clang-format] Add option to group multiple #include blocks when sorting includes
Summary: This patch allows grouping multiple #include blocks together and sort all includes as one big block. Additionally, sorted includes can be regrouped after sorting based on configured categories.
Contributed by @KrzysztofKapusta!
Reviewers: krasimir
Reviewed By: krasimir
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D40288
llvm-svn: 319024
show more ...
|
#
6649665d |
| 17-Nov-2017 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Add text proto filename detection
Summary: Adds text proto filename detection.
Reviewers: klimek
Reviewed By: klimek
Subscribers: cfe-commits
Differential Revision: https://review
[clang-format] Add text proto filename detection
Summary: Adds text proto filename detection.
Reviewers: klimek
Reviewed By: klimek
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D40120
llvm-svn: 318525
show more ...
|
#
1696bb65 |
| 09-Nov-2017 |
Krasimir Georgiev <krasimir@google.com> |
[clang-format] Apply a clang-tidy suggestion, NFC
llvm-svn: 317793
|
#
057a942d |
| 01-Nov-2017 |
NAKAMURA Takumi <geek4civic@gmail.com> |
clang/lib/Format/Format.cpp: Fix warnings introduced in rL316903. [-Wpedantic]
llvm-svn: 317075
|