Skip to content

Commit

Permalink
clang-format: Improve documentation of DerivePointerBinding.
Browse files Browse the repository at this point in the history
For reference: llvm.org/PR18690.

Also updated generated help page and page creation script.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201323 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
djasper-gh committed Feb 13, 2014
1 parent cfb4533 commit 00dff34
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 6 deletions.
26 changes: 23 additions & 3 deletions docs/ClangFormatStyleOptions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,10 @@ the configuration (without a prefix: ``Auto``).
Like ``Attach``, but break before function definitions.
* ``BS_Allman`` (in configuration: ``Allman``)
Always break before braces.
* ``BS_GNU`` (in configuration: ``GNU``)
Always break before braces and add an extra level of indentation to
braces of control statements, not to those of class, function
or other definitions.


**BreakBeforeTernaryOperators** (``bool``)
Expand All @@ -162,6 +166,10 @@ the configuration (without a prefix: ``Auto``).
clang-format will respect the input's line breaking decisions within
statements unless they contradict other rules.

**CommentPragmas** (``std::string``)
A regular expression that describes comments with special meaning,
which should not be split into lines or otherwise changed.

**ConstructorInitializerAllOnOneLineOrOnePerLine** (``bool``)
If the constructor initializers don't fit on a line, put each
initializer on its own line.
Expand Down Expand Up @@ -189,7 +197,8 @@ the configuration (without a prefix: ``Auto``).
a zero-length name is assumed.

**DerivePointerBinding** (``bool``)
If ``true``, analyze the formatted file for the most common binding.
If ``true``, analyze the formatted file for the most common binding
and use ``PointerBindsToType`` only as fallback.

**ExperimentalAutoDetectBinPacking** (``bool``)
If ``true``, clang-format detects whether function calls and
Expand Down Expand Up @@ -227,6 +236,9 @@ the configuration (without a prefix: ``Auto``).
Should be used for C, C++, ObjectiveC, ObjectiveC++.
* ``LK_JavaScript`` (in configuration: ``JavaScript``)
Should be used for JavaScript.
* ``LK_Proto`` (in configuration: ``Proto``)
Should be used for Protocol Buffers
(https://developers.google.com/protocol-buffers/).


**MaxEmptyLinesToKeep** (``unsigned``)
Expand All @@ -245,6 +257,10 @@ the configuration (without a prefix: ``Auto``).
Indent in all namespaces.


**ObjCSpaceAfterProperty** (``bool``)
Add a space after ``@property`` in Objective-C, i.e. use
``@property (readonly)`` instead of ``@property(readonly)``.

**ObjCSpaceBeforeProtocolList** (``bool``)
Add a space in front of an Objective-C protocol list, i.e. use
``Foo <Protocol>`` instead of ``Foo<Protocol>``.
Expand Down Expand Up @@ -292,7 +308,7 @@ the configuration (without a prefix: ``Auto``).


**SpaceInEmptyParentheses** (``bool``)
If ``false``, spaces may be inserted into '()'.
If ``true``, spaces may be inserted into '()'.

**SpacesBeforeTrailingComments** (``unsigned``)
The number of spaces to before trailing line comments.
Expand All @@ -302,7 +318,11 @@ the configuration (without a prefix: ``Auto``).
template argument lists

**SpacesInCStyleCastParentheses** (``bool``)
If ``false``, spaces may be inserted into C style casts.
If ``true``, spaces may be inserted into C style casts.

**SpacesInContainerLiterals** (``bool``)
If ``true``, spaces are inserted inside container literals (e.g.
ObjC and Javascript array and dict literals).

**SpacesInParentheses** (``bool``)
If ``true``, spaces will be inserted after '(' and before ')'.
Expand Down
4 changes: 2 additions & 2 deletions docs/tools/dump_format_style.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class State:
enum = Enum(name, comment)
elif line.endswith(';'):
state = State.InStruct
field_type, field_name = re.match(r'(\w+)\s+(\w+);', line).groups()
field_type, field_name = re.match(r'([:\w]+)\s+(\w+);', line).groups()
option = Option(str(field_name), str(field_type), comment)
options.append(option)
else:
Expand All @@ -122,7 +122,7 @@ class State:
raise Exception('Not finished by the end of file')

for option in options:
if not option.type in ['bool', 'unsigned', 'int']:
if not option.type in ['bool', 'unsigned', 'int', 'std::string']:
if enums.has_key(option.type):
option.enum = enums[option.type]
else:
Expand Down
3 changes: 2 additions & 1 deletion include/clang/Format/Format.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ struct FormatStyle {
/// \brief Set whether & and * bind to the type as opposed to the variable.
bool PointerBindsToType;

/// \brief If \c true, analyze the formatted file for the most common binding.
/// \brief If \c true, analyze the formatted file for the most common binding
/// and use \c PointerBindsToType only as fallback.
bool DerivePointerBinding;

/// \brief The extra indent or outdent of access modifiers, e.g. \c public:.
Expand Down

0 comments on commit 00dff34

Please sign in to comment.