================
@@ -778,6 +778,12 @@ void ContinuationIndenter::addTokenOnCurrentLine(LineState
&State, bool DryRun,
unsigned Spaces = Current.SpacesRequiredBefore + ExtraSpaces;
+ if (Style.IndentPPDirectives == FormatStyle::PPDIS_Leave &&
+ State.Line->InPPDirective && Previous.is(tok::hash) &&
----------------
owenca wrote:
```suggestion
(State.Line->Type == LT_PreprocessorDirective ||
State.Line->Type == LT_ImportStatement) && Previous.is(tok::hash) &&
```
because `InPPDirective` doesn't include `LT_ImportStatement`?
Actually, you can combine this and `PPDIS_AfterHash` below into the following
(after some simplifications):
```c++
if (&Previous == State.Line->First && Previous.is(tok::hash) &&
(State.Line->Type == LT_PreprocessorDirective ||
State.Line->Type == LT_ImportStatement)) {
if (Style.IndentPPDirectives == FormatStyle::PPDIS_AfterHash) {
Spaces += State.FirstIndent;
// For preprocessor indent with tabs, State.Column will be 1 because of
// the hash. This causes second-level indents onward to have an extra
// space after the tabs. We avoid this misalignment by subtracting 1 from
// the column value passed to replaceWhitespace().
if (Style.UseTab != FormatStyle::UT_Never)
PPColumnCorrection = -1;
} else if (Style.IndentPPDirectives == FormatStyle::PPDIS_Leave) {
Spaces += Current.OriginalColumn - Previous.OriginalColumn - 1;
}
}
```
https://github.com/llvm/llvm-project/pull/139750
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits