clang  15.0.0git
Public Member Functions | Public Attributes | List of all members
clang::format::LineState Struct Reference

The current state when indenting a unwrapped line. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Format/ContinuationIndenter.h"

Collaboration diagram for clang::format::LineState:
Collaboration graph
[legend]

Public Member Functions

bool operator< (const LineState &Other) const
 Comparison operator to be able to used LineState in map. More...
 

Public Attributes

unsigned Column
 The number of used columns in the current line. More...
 
FormatTokenNextToken
 The token that needs to be next formatted. More...
 
bool NoContinuation
 true if NextToken should not continue this line. More...
 
unsigned StartOfLineLevel
 The NestingLevel at the start of this line. More...
 
unsigned LowestLevelOnLine
 The lowest NestingLevel on the current line. More...
 
unsigned StartOfStringLiteral
 The start column of the string literal, if we're in a string literal sequence, 0 otherwise. More...
 
std::vector< ParenStateStack
 A stack keeping track of properties applying to parenthesis levels. More...
 
bool IgnoreStackForComparison
 Ignore the stack of ParenStates for state comparison. More...
 
unsigned FirstIndent
 The indent of the first token. More...
 
const AnnotatedLineLine
 The line that is being formatted. More...
 

Detailed Description

The current state when indenting a unwrapped line.

As the indenting tries different combinations this is copied by value.

Definition at line 415 of file ContinuationIndenter.h.

Member Function Documentation

◆ operator<()

bool clang::format::LineState::operator< ( const LineState Other) const
inline

Comparison operator to be able to used LineState in map.

Definition at line 463 of file ContinuationIndenter.h.

References Column, IgnoreStackForComparison, LowestLevelOnLine, NextToken, NoContinuation, Stack, StartOfLineLevel, and StartOfStringLiteral.

Member Data Documentation

◆ Column

unsigned clang::format::LineState::Column

The number of used columns in the current line.

Definition at line 417 of file ContinuationIndenter.h.

Referenced by operator<().

◆ FirstIndent

unsigned clang::format::LineState::FirstIndent

The indent of the first token.

Definition at line 455 of file ContinuationIndenter.h.

◆ IgnoreStackForComparison

bool clang::format::LineState::IgnoreStackForComparison

Ignore the stack of ParenStates for state comparison.

In long and deeply nested unwrapped lines, the current algorithm can be insufficient for finding the best formatting with a reasonable amount of time and memory. Setting this flag will effectively lead to the algorithm not analyzing some combinations. However, these combinations rarely contain the optimal solution: In short, accepting a higher penalty early would need to lead to different values in the ParenState stack (in an otherwise identical state) and these different values would need to lead to a significant amount of avoided penalty later.

FIXME: Come up with a better algorithm instead.

Definition at line 452 of file ContinuationIndenter.h.

Referenced by operator<().

◆ Line

const AnnotatedLine* clang::format::LineState::Line

The line that is being formatted.

Does not need to be considered for memoization because it doesn't change.

Definition at line 460 of file ContinuationIndenter.h.

◆ LowestLevelOnLine

unsigned clang::format::LineState::LowestLevelOnLine

The lowest NestingLevel on the current line.

Definition at line 429 of file ContinuationIndenter.h.

Referenced by operator<().

◆ NextToken

FormatToken* clang::format::LineState::NextToken

The token that needs to be next formatted.

Definition at line 420 of file ContinuationIndenter.h.

Referenced by operator<().

◆ NoContinuation

bool clang::format::LineState::NoContinuation

true if NextToken should not continue this line.

Definition at line 423 of file ContinuationIndenter.h.

Referenced by operator<().

◆ Stack

std::vector<ParenState> clang::format::LineState::Stack

A stack keeping track of properties applying to parenthesis levels.

Definition at line 437 of file ContinuationIndenter.h.

Referenced by operator<().

◆ StartOfLineLevel

unsigned clang::format::LineState::StartOfLineLevel

The NestingLevel at the start of this line.

Definition at line 426 of file ContinuationIndenter.h.

Referenced by operator<().

◆ StartOfStringLiteral

unsigned clang::format::LineState::StartOfStringLiteral

The start column of the string literal, if we're in a string literal sequence, 0 otherwise.

Definition at line 433 of file ContinuationIndenter.h.

Referenced by operator<().


The documentation for this struct was generated from the following file: