# Linux kernel style, matching src/bpf/main.bpf.c as written. # # Without this file clangd falls back to LLVM style (2-space indent, braces on # the same line) and editor.formatOnSave rewrites the whole file on first save. # Derived from the kernel tree's own .clang-format, trimmed to what this # single-file BPF source actually needs. --- Language: Cpp BasedOnStyle: LLVM # Indentation: hard tabs, 8 wide, as in the kernel. UseTab: Always TabWidth: 8 IndentWidth: 8 ContinuationIndentWidth: 8 ConstructorInitializerIndentWidth: 8 ColumnLimit: 0 # Kernel brace placement: functions get a brace on the next line, everything # else keeps it on the same line. BreakBeforeBraces: Custom BraceWrapping: AfterFunction: true AfterStruct: true AfterUnion: true AfterEnum: true AfterControlStatement: Never BeforeElse: false BeforeWhile: false AlignEscapedNewlines: Left AlignAfterOpenBracket: Align AllowShortFunctionsOnASingleLine: None AllowShortIfStatementsOnASingleLine: false AllowShortLoopsOnASingleLine: false AllowShortCaseLabelsOnASingleLine: false AlwaysBreakBeforeMultilineStrings: false BinPackArguments: true BinPackParameters: true BreakBeforeBinaryOperators: None BreakBeforeTernaryOperators: false Cpp11BracedListStyle: false IndentCaseLabels: false IndentGotoLabels: false IndentPPDirectives: None KeepEmptyLinesAtTheStartOfBlocks: false MaxEmptyLinesToKeep: 1 PointerAlignment: Right SpaceAfterCStyleCast: false SpaceBeforeAssignmentOperators: true SpaceBeforeParens: ControlStatements SpaceInEmptyParentheses: false SpacesInCStyleCastParentheses: false SpacesInParentheses: false SpacesInSquareBrackets: false SortIncludes: Never ReflowComments: false # BPF/kernel macros that take a block or act as control flow; without these # clang-format indents the bodies as if they were expressions. ForEachMacros: - bpf_for - bpf_for_each - bpf_repeat - list_for_each_entry - list_for_each_entry_safe AlignTrailingComments: true AlignConsecutiveMacros: false