動機

工作的code的風格與自己平常打的code的風格差很多!! 如果有可以自動調的會很方便。

同時vscode的c/c++外掛,有ctags與cscope的功能,不用另外裝, 所以變成研究如何在vscode上自動調整format

作法

vscode自動調整format

把 setting 中的

  • Editor: Format On Paste
  • Editor: Format On Save
  • Editor: Format On Type

勾起來

如果覺得不好找,可以在setting上方的搜尋欄打上 format 去找

tab與空白混用

  1. Editor: Detect IndentationEditor: Insert Spaces 關掉
  2. 設定 clang-format-fallback

設定clang-format-fallback

{
  BasedOnStyle: WebKit,
  IndentWidth: 4,
  TabWidth: 8,
  ColumnLimit: 80,
  AlignAfterOpenBracket: Align,
  AlignConsecutiveMacros: true,
  AlignTrailingComments: true,
  UseTab: ForContinuationAndIndentation,
  BraceWrapping: {
	AfterFunction: false
  },
  SpaceBeforeParens: ControlStatements
}

貼到C_Cpp: Clang_format_fallback Style去,用成一行

一些詭異的地方

  1. TabSize & TabWidth 顯示tab時會依照TabSize的大小,所以如果要顯示得不會刺痛眼睛 要去改Editor:TabSize成8

  2. auto indent 還有一個奇怪的點是auto indent的部分, 在花括號的第一行會多空4個空格

int main {
    if(1) {
      "wow"
    }
}

但是打完分號後會vscode會自己調回去

int main {
    if(1) {
  "wow";
    }
}

之後再看要怎麼解多出來的空格的部分吧

Ref

clang_format official document 必看