最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vscode安裝配置clang-format插件及使用小結(jié)

 更新時間:2023年10月03日 11:02:16   作者:halazi100  
clang-format是代碼格式化工具,本文主要介紹了vscode安裝配置clang-format,具有一定的參考價值,感興趣的可以了解一下

vscode安裝配置clang-format插件及使用

  • 首先安裝插件。在vscode擴展里搜索clang-format,安裝排名第一的xaver.clang-format。

  • 確認clang-format可執(zhí)行程序路徑

  • windows用eveything查找一下clang-format.exe,

最新的擴展 c/c++ 里集成了 clang-format。 如: C:\Users\jack\.vscode\extensions\ms-vscode.cpptools-1.13.9-win32-x64\LLVM\bin\clang-format.exe

  • Linux用命令which clang-format查詢clang-format的安裝路徑,如:/usr/bin/clang-format。

如果沒找到這個程序,走第3步。
如果已經(jīng)有這個程序,走第4步。

  • 安裝真正的格式化工具clang-format。
  • Linux系統(tǒng)安裝,使用命令sudo apt install clang-format;
  • windows系統(tǒng)安裝,這個工具集成在工具包 LLVM里,下載地址:https://github.com/llvm/llvm-project/releases如選擇LLVM-14.0.6-win64.exe, 下載完成后不進行安裝,解壓這個exe文件,會得到clang-format.exe。把這個可執(zhí)行文件復(fù)制到需要的地方就可以了。
  • 把可執(zhí)行程序的路徑添加到 settings.json 文件里。
    如果要所有工程都有效,要配置到vscode用戶目錄里,不是工作目錄里的,
  • windows目錄是: C:\Users\jack\AppData\Roaming\Code\User\settings.json
  • Linux目錄是 ~/.config/Code/User/settings.json
  • 在配置文件里添加配置如下:
{
    // clang-format 擴展的配置
    "clang-format.style" : "file",
    "clang-format.assumeFilename": "/home/user/.clang-format",
    "clang-format.executable": "/usr/bin/clang-format",
    "clang-format.fallbackStyle": "Google",
    "editor.defaultFormatter": "xaver.clang-format"
}

如果是windows系統(tǒng),修改可執(zhí)行文件路徑為實際路徑,
如:"clang-format.executable": "C:\Users\jack\.vscode\extensions\ms-vscode.cpptools-1.13.9-win32-x64\LLVM\bin\clang-format.exe",

注意修改clang-format風(fēng)格配置文件路徑,
如:"clang-format.assumeFilename": "./.clang-format",或:"clang-format.assumeFilename": "/home/user/.clang-format",或:"clang-format.assumeFilename": "C:\Users\jack\.vscode\.clang-format",

如果只配置當前工程,可以將配置添加到當前的code-workspace文件

    "settings": {
        // clang-format 擴展的配置,覆蓋用戶的 `settings.json`
        // "clang-format.style" : "file:./.clang-format", //從指定配置文件讀取格式化風(fēng)格。
        "clang-format.style" : "file",
        // 依次從當前目錄、工作目錄、path變量,加載默認風(fēng)格配置文件(.clang-format)。
        // 如果找不到則使用fallbackStyle, 沒有fallbackStyle則默認LLVM,C++。
        "clang-format.assumeFilename": "./.clang-format", //使用工作區(qū)獨立配置文件
        // "clang-format.assumeFilename": "/home/user/.clang-format", //絕對路徑,用于全局統(tǒng)一配置
        "clang-format.executable": "/usr/bin/clang-format",
        "clang-format.fallbackStyle": "Google",
        "editor.defaultFormatter": "xaver.clang-format",
        // C/C++ 擴展的配置
        // "C_Cpp.formatting": "Default",
    }

可以同時在全局的settings.json和當前工程配置格式化配置文件,當前工程配置將覆蓋全局配置。
因此可以在全局的settings.json中配置全局的.clang-format的絕對路徑,如:"clang-format.assumeFilename": "/home/user/.clang-format",然后在當前工程配置使用當前目錄下的.clang-format,如:"clang-format.assumeFilename": "./.clang-format",

  • 生成.clang-format 配置文件并修改自定義
clang-format --style=Google --dump-config > ./.clang-format

如下基于google的風(fēng)格進行的定制

---
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
BasedOnStyle:   LLVM
Language:        Cpp
# this style configuration is based on google style configuration.
# The following configuration is different from the basic configuration.
# 縮進寬度
IndentWidth:     4
# 訪問權(quán)限說明符(public/private等)的偏移
AccessModifierOffset: -4
# # 開括號(開圓括號、尖括號、方括號)后的對齊: Align, DontAlign, AlwaysBreak(總是在開括號后換行)
# AlignAfterOpenBracket: Align
# # 連續(xù)賦值時,對齊所有等號
# AlignConsecutiveAssignments: false
# # 連續(xù)聲明時,對齊所有聲明的變量名
# AlignConsecutiveDeclarations: false
# 反斜桿換行的對齊方式
# -- DontAlign - 不進行對齊
# -- Left - 反斜杠靠左對齊
# -- Right - 反斜杠靠右對齊
# AlignEscapedNewlines: Right
# 二元、三元表達式的對齊方式(當表達式需要占用多行時)
# -- DontAlign - 不進行對齊
# -- Align - 從操作符開始對齊
# -- AlignAfterOperator - 從操作數(shù)開始對齊
AlignOperands:   true
# # 是否對齊行尾注釋
# AlignTrailingComments: true
# # 函數(shù)聲明的所有參數(shù)在放在下一行
# AllowAllParametersOfDeclarationOnNextLine: false
# # 是否允許短的代碼塊放在同一行
# AllowShortBlocksOnASingleLine: false
# # 短的case標簽和語句放在同一行
# AllowShortCaseLabelsOnASingleLine: true
# # 短的函數(shù)放在同一行
# -- None - 不把短的函數(shù)放在同一行
# -- InlineOnly - 只把類內(nèi)的內(nèi)聯(lián)函數(shù)放在同一行,全局的空函數(shù)不放在同一行
# -- Empty - 只把空的函數(shù)放在同一行
# -- Inline - 把類內(nèi)的內(nèi)聯(lián)函數(shù)放在同一行,全局的空函數(shù)不放在同一行
# -- All - 都允許放在同一行
AllowShortFunctionsOnASingleLine: InlineOnly
# # 短的if語句保持在同一行
# AllowShortIfStatementsOnASingleLine: true
# # 短的循環(huán)保持在同一行
# AllowShortLoopsOnASingleLine: true
# # 總是在返回類型后換行: None, All, TopLevel(頂級函數(shù),不包括在類中的函數(shù)), 
# # AllDefinitions(所有的定義,不包括聲明), TopLevelDefinitions(所有的頂級函數(shù)的定義)
# AlwaysBreakAfterReturnType: None
# # 總是在多行string字面量前換行
# AlwaysBreakBeforeMultilineStrings: true
# # 總是在template聲明后換行
AlwaysBreakTemplateDeclarations: true
# # 函數(shù)調(diào)用時,參數(shù)的放置規(guī)則
# -- false - 參數(shù)要么放在同一行,要么每個參數(shù)占用一行
# -- true - 不做強制要求
# BinPackArguments: true
# 函數(shù)聲明、定義時,參數(shù)的放置規(guī)則
# -- false - 參數(shù)要么放在同一行,要么每個參數(shù)占用一行
# -- true - 不做強制要求
# BinPackParameters: true
# 大括號放置風(fēng)格
# -- Attach - 大括號緊隨前方內(nèi)容,放在同一行
# -- Linux - 與 Attach 類似,除了 函數(shù)、命名空間、類定義 的大括號放在下一行
# -- Mozilla - 與 Attach 類似,除了枚舉、函數(shù)、結(jié)構(gòu)(class\struct\union)的大括號放在下一行
# -- Stroustrup - 與 Attach 類似,但函數(shù)定義前、catch前方、else前方的"{}"放在單獨一行
# -- Allman - 總是換行
# -- Whitesmiths - 類似 Allman,但"{}"和內(nèi)部的語句對齊到同樣位置
# -- GNU - 總是換行,但在控制語句后的"{}"總是對齊到下一個位置
# -- WebKit - 與 Attach 類似,但在函數(shù)定義前換行 
# -- Custom - 依賴 BraceWrapping
#   注:這里認為語句塊也屬于函數(shù)
BreakBeforeBraces: Custom
# 大括號換行,只有當BreakBeforeBraces設(shè)置為Custom時才有效
BraceWrapping:
  # class定義后面
  AfterClass: true
  # 控制語句后面
  AfterControlStatement: false
  # enum定義后面
  AfterEnum: false
  # 函數(shù)定義后面
  AfterFunction: true
  # 命名空間定義后面
  AfterNamespace: true
  # ObjC定義后面
  AfterObjCDeclaration: false
  # struct定義后面
  AfterStruct: false
  # union定義后面
  AfterUnion: false
  # extern之后
  AfterExternBlock: true
  # catch之前
  BeforeCatch: false
  # else之前
  BeforeElse: false
  # 繼續(xù)縮進大括號
  IndentBraces: false
  # 分離空函數(shù)
  # # 當空白函數(shù)的"{}"和函數(shù)名稱不需要放在同一行時,是否拆分函數(shù)體
  SplitEmptyFunction: true
  # 分離空語句
  # # 當空白結(jié)構(gòu)(class\struct\union)的"{}"需要放在單獨的行時,是否拆分"{}"
  SplitEmptyRecord: true
  # 分離空命名空間
  # # 當空白的命名空間的"{}"需要放在單獨的行時,是否拆分"{}"
  SplitEmptyNamespace: true
# # 在二元運算符前換行: None(在操作符后換行), NonAssignment(在非賦值的操作符前換行), All(在操作符前換行)
BreakBeforeBinaryOperators: NonAssignment
# BreakBeforeInheritanceComma: false
# # 在三元運算符前換行
# 當三元表達式不能放在同一行時,是否在三元操作符前方換行
# -- true - 操作符位于新行的首部
# -- false - 操作符位于上一行的尾部
BreakBeforeTernaryOperators: true
# BreakConstructorInitializersBeforeComma: false
# # 構(gòu)造函數(shù)初始化列表分割方式
# -- BeforeColon - 在冒號 ':' 前方分割,冒號位于行首,逗號','位于行尾
# -- BeforeComma - 在冒號和逗號前方分割,冒號和逗號都位于行首,并且對齊 
# -- AfterColon - 在冒號和逗號后方分割,冒號和逗號位于行尾
BreakConstructorInitializers: BeforeColon
# # 是否在每個java注解后方換行
# BreakAfterJavaFieldAnnotations: false
# # 是否分割過長的字符串
# BreakStringLiterals: false
# # 每行字符長度的限制,0表示沒有限制
ColumnLimit:     100
# # 用于匹配注釋信息的正則表達式,被匹配的行不會做任何修改
# CommentPragmas:  '^ IWYU pragma:'
# 是否壓縮緊接的命名空間
# -- true - 將緊跟的命名空間放在同一行
# -- false - 每個命名空間位于新的一行
CompactNamespaces: false
# # 構(gòu)造函數(shù)的初始化列表要么都在同一行,要么都各自一行
# -- true - 如果可能,初始化列表放在同一行;如果不滿足長度選擇,則每個單獨放一行
# -- false - 初始化列表可以隨意放置
# ConstructorInitializerAllOnOneLineOrOnePerLine: false
# # 構(gòu)造函數(shù)的初始化列表和基類集成列表的對齊寬度
ConstructorInitializerIndentWidth: 4
# # 延續(xù)語句的對齊寬度
ContinuationIndentWidth: 4
# # 去除C++11的列表初始化的大括號{后和}前的空格
Cpp11BracedListStyle: true
# 是否自動分析指針的對齊方式
# -- true - 自動分析并使用指針的對齊方式,若無法分析,則使用 PointerAlignment
# -- false - 不自動分析
# DerivePointerAlignment: true
# 是否禁用格式化
DisableFormat:   false
# ExperimentalAutoDetectBinPacking: false
# 是否自動修正命名空間的結(jié)束注釋
# -- true - 在短的命名空間尾部,自動添加或修改錯誤的命名空間結(jié)束注釋
# -- false - 不自動修正
FixNamespaceComments: true
# foreach 循環(huán)
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
# 多個 include 塊(有空行分隔的include)排序時的分組規(guī)則
# -- Preserve - 保留原有的塊分隔,各自排序
# -- Merge - 將所有的塊視為同一個,然后進行排序
# -- Regroup - 將所有的塊視為同一個進行排序,然后按照 IncludeCategories 的規(guī)則進行分組
IncludeBlocks:   Preserve
# IncludeCategories: 
#   - Regex:           '^<ext/.*\.h>'
#     Priority:        2
#   - Regex:           '^<.*\.h>'
#     Priority:        1
#   - Regex:           '^<.*'
#     Priority:        2
#   - Regex:           '.*'
#     Priority:        3
# IncludeIsMainRegex: '([-_](test|unittest))?$'
# # 縮進case標簽
# -- true - case 不與 switch 對齊
# -- false - case 和 switch 對齊
IndentCaseLabels: true
# 預(yù)處理命令(#if\#ifdef\#endif等)的縮進規(guī)則
# -- None - 不進行縮進
# -- AfterHash - 在前導(dǎo)'#'后縮進,'#'放在最左側(cè),之后的語句參與縮進
# -- BeforeHash - 在前導(dǎo)'#'前進行縮進
IndentPPDirectives: AfterHash
# # 函數(shù)返回類型換行時,縮進函數(shù)聲明或函數(shù)定義的函數(shù)名
# IndentWrappedFunctionNames: false
# JavaScript 中的字符串引號規(guī)則
# -- Leave - 保持原樣
# -- Single - 全部使用單引號
# -- Double - 全部使用雙引號 
JavaScriptQuotes: Leave
# 是否在 JavaScript 的 import/export 語句后換行
# JavaScriptWrapImports: true
# # 保留在塊開始處的空行
# -- true - 保留塊起始的空行
# -- false - 刪除塊起始的空行
KeepEmptyLinesAtTheStartOfBlocks: true
# 用于識別宏定義型塊起始的正則表達式
# MacroBlockBegin: ''
# 用于識別宏定義型塊結(jié)束的正則表達式
# MacroBlockEnd:   ''
# # 連續(xù)空行的最大數(shù)量
MaxEmptyLinesToKeep: 1
# # 命名空間內(nèi)部的縮進規(guī)則
# -- None - 都不縮進
# -- Inner - 只縮進嵌套的命名空間內(nèi)容
# -- All - 縮進所有命名空間內(nèi)容
NamespaceIndentation: Inner
# Objective-C 相關(guān)配置
# ObjCBlockIndentWidth: 2
# ObjCSpaceAfterProperty: false
# ObjCSpaceBeforeProtocolList: false
# PenaltyBreakAssignment: 2
# PenaltyBreakBeforeFirstCallParameter: 1
# PenaltyBreakComment: 300
# PenaltyBreakFirstLessLess: 120
# PenaltyBreakString: 1000
# PenaltyExcessCharacter: 1000000
# PenaltyReturnTypeOnItsOwnLine: 200
# # 指針和引用(*和&)的對齊規(guī)則
# -- Left - * 靠近左側(cè)
# -- Right - * 靠近右側(cè)
# -- Middle - * 放在中間
# NOTE : 在 SpaceAroundPointerQualifiers 為 Default,
# 	 且 DerivePointerAlignment 失效后啟用
PointerAlignment: Right
# RawStringFormats: 
#   - Delimiter:       pb
#     Language:        TextProto
#     BasedOnStyle:    google
# # 重新排版注釋
ReflowComments:  false
# # 重新排序#include
# -- Never - 不進行排序
# -- CaseSensitive - 排序時大小寫敏感
# -- CaseInsensitive - 排序時大小寫不敏感
SortIncludes:    false
# java 中靜態(tài) import 的排序規(guī)則
# -- Before - 靜態(tài)放在非靜態(tài)前方
# -- After - 靜態(tài)放在非靜態(tài)后方
# SortJavaStaticImport: Before
# # 重新排序using聲明
SortUsingDeclarations: false
# # 在C風(fēng)格類型轉(zhuǎn)換后添加空格
SpaceAfterCStyleCast: false
# # 在Template關(guān)鍵字后面添加空格
SpaceAfterTemplateKeyword: true
# # 在賦值運算符之前添加空格
SpaceBeforeAssignmentOperators: true
# # 在 C++11 的初始化列表前加空格
# SpaceBeforeCpp11BracedList: true
# 在構(gòu)造函數(shù)的初始化冒號":"前加空格
# SpaceBeforeCtorInitializerColon: true
# 在構(gòu)造函數(shù)的繼承冒號":"前加空格
# SpaceBeforeInheritanceColon: true
# 小括號"()"前加空格的規(guī)則
# -- Never - 從不加空格
# -- ControlStatements - 只在控制語句(for/if/while...)時加空格
# -- ControlStatementsExceptForEachMacros - 類型 ControlStatements,只是不再 ForEach 后加空格
# -- Always - 總是添加空格
# -- NonEmptyParentheses - 類似 Always,只是不再空白括號前加空格  
SpaceBeforeParens: ControlStatements
# 在 for 循環(huán)的冒號":"前加空格
# SpaceBeforeRangeBasedForLoopColon: true
# # 在空白的小括號"()"中添加空格
SpaceInEmptyParentheses: false
# # 在行尾的注釋前添加的空格數(shù)(只適用于//)
SpacesBeforeTrailingComments: 1
# # 在尖括號的"<"后,和">"前添加空格
SpacesInAngles:  false
# # 在容器(ObjC和JavaScript的數(shù)組和字典等)字面量中添加空格
SpacesInContainerLiterals: true
# # 在C風(fēng)格類型轉(zhuǎn)換的括號中添加空格
SpacesInCStyleCastParentheses: false
# # 在圓括號的"("后,和")"前添加空格
SpacesInParentheses: false
# 在中括號中加空格
# 當中括號內(nèi)沒有數(shù)據(jù)時,不受本規(guī)則影響(如空白的lambda 捕獲表、不定長度的數(shù)組聲明)
SpacesInSquareBrackets: false
# 語言標準: Cpp03, Cpp11, Auto
Standard: Auto
# # tab寬度
TabWidth: 4
# # 使用tab字符: Never, ForIndentation, ForContinuationAndIndentation, Always
UseTab: Never
---

可以將.clang-format文件放置在當前工作目錄,或父目錄,僅供當前項目使用。
也可以將.clang-format文件放置在用戶宿主目錄,在配置文件中使用絕對路徑,供所有項目使用。

  • 格式化代碼
  • 在代碼頁面按<Ctrl-Shift-f>,選擇使用…格式化代碼(Format Document With...),選擇Clang-Format。
  • 全選代碼,鼠標右鍵,使用…格式化代碼(Format Document With...),選擇Clang-Format

 到此這篇關(guān)于vscode安裝配置clang-format插件及使用小結(jié)的文章就介紹到這了,更多相關(guān)vscode安裝配置clang-format內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Scratch3.0初始化加載七牛云上的sbs文件的方法

    Scratch3.0初始化加載七牛云上的sbs文件的方法

    今天通過本文給大家介紹Scratch3.0初始化加載七牛云上的sbs文件的實例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-08-08
  • git安裝及idea配置的詳細教程

    git安裝及idea配置的詳細教程

    這篇文章主要介紹了git安裝及idea配置的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 詳解IDEA Git Reset 選項說明

    詳解IDEA Git Reset 選項說明

    這篇文章主要介紹了詳解IDEA Git Reset 選項說明,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 級聯(lián)分類器算法原理解析

    級聯(lián)分類器算法原理解析

    這篇文章主要為大家介紹了級聯(lián)分類器算法的原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Git提交代碼詳細流程及問題總結(jié)

    Git提交代碼詳細流程及問題總結(jié)

    這篇文章主要介紹了Git的三大分區(qū),分別是工作區(qū)、暫存區(qū)和版本庫,并詳細描述了提交、推送、拉取代碼和合并分支的流程,文中通過代碼介紹的非常詳解,需要的朋友可以參考下
    2025-02-02
  • vsCode中配置setings.json的技巧

    vsCode中配置setings.json的技巧

    本文給大家分享的是一個在vsCode中配置好的setings.json的樣例,可以給大家一個參考,有需要的小伙伴可以來看下
    2020-01-01
  • IDEA升級后Git拉取和推送的標簽消失的解決方法

    IDEA升級后Git拉取和推送的標簽消失的解決方法

    本文主要介紹了IDEA升級后Git拉取和推送的標簽消失的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 編程人員閱讀代碼的一些小技巧分享

    編程人員閱讀代碼的一些小技巧分享

    閱讀別人的代碼作為研發(fā)人員是一件經(jīng)常要做的事情。一個是學(xué)習(xí)新的編程語言的時候通過閱讀別人的代碼是個最佳的學(xué)習(xí)方法,另外是積累編程經(jīng)驗。
    2011-01-01
  • 詳解Git合并分支的流程步驟

    詳解Git合并分支的流程步驟

    這篇文章主要介紹了詳解Git合并分支的流程步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 如何給MD5加上salt隨機鹽值

    如何給MD5加上salt隨機鹽值

    不知道大家知不知道,在開發(fā)的時候如果直接給密碼散列,黑客可以通過查散列值字典(例如MD5密碼破解網(wǎng)站),得到某用戶的密碼。但如果加上salt后就會難上很多,即便是你獲得了其中的salt和最終密文,破解也是相當麻煩的。下面跟著小編通過這篇文章來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11

最新評論

九江县| 兴城市| 新和县| 大英县| 丰镇市| 正镶白旗| 华池县| 临沂市| 鲁山县| 乃东县| 大城县| 哈尔滨市| 固始县| 菏泽市| 富阳市| 临武县| 砀山县| 缙云县| 金平| 定西市| 那曲县| 五家渠市| 富裕县| 大洼县| 柞水县| 宁阳县| 额尔古纳市| 榆林市| 涡阳县| 理塘县| 五台县| 桃源县| 靖州| 惠来县| 囊谦县| 石泉县| 山阴县| 舒兰市| 全椒县| 钦州市| 万盛区|