{// userhomeidr/.config/Code/User
"editor.fontSize": 18,
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active",
"todo-tree.tree.showScanModeButton": false,
"go.formatTool": "goimports",
"go.toolsManagement.autoUpdate": true,
"vim.easymotion": true,
"vim.sneak": true,
"vim.visualstar": true,
"vim.ignorecase": false,
"vim.useSystemClipboard": true,
"vim.useCtrlKeys": true,
"vim.hlsearch": true,
"vim.insertModeKeyBindings": [
{
"before": [ "k", "j" ],
"after": [ "Esc" ]
}
],
"vim.leader": ",",
"vim.visualModeKeyBindingsNonRecursive": [
{
"before": [ "v" ],
"commands": [ "editor.action.smartSelect.expand" ]
},
{
"before": [ "%" ],
"commands": [ "extension.matchitJumpItems" ]
},
{
"before": [
"<leader>", "x", "x" ],
"commands": [ "editor.action.smartSelect.expand" ]
},
{
"before": [ "<leader>", "z", "z" ],
"commands": [ "editor.action.smartSelect.shrink" ]
},
{
"before": [ "<leader>", "c", "i" ],
"commands": [ "editor.action.commentLine" ]
},
{
"before": [ "<leader>", "a", "a" ],
"commands": [ "editor.action.clipboardCopyAction" ]
},
{
"before": [ "<leader>", "q", "q" ],
"commands": [ "workbench.action.findInFiles" ]
},
{
"before": [ "<leader>", "s", "s" ],
"commands": [ "actions.find" ]
}
],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [ "<leader>", "r", "v" ],
"commands": [ "editor.action.rename" ]
},
{
"before": [ "<leader>", "q", "q" ],
"commands": [ "workbench.action.findInFiles" ]
},
{
"before": [ "<leader>", "f", "p" ],
"commands": [ "workbench.action.files.copyPathOfActiveFile" ]
},
{
"before": [ "<leader>", "f", "n" ],
"commands": [ "copyRelativeFilePath" ]
},
{
"before": [ "<leader>", "n", "f" ],
"commands": [ "workbench.action.files.newUntitledFile" ]
},
{
"before": [ "<leader>", "t", "p" ],
"commands": [ "workbench.action.togglePanel" ]
},
{
"before": [ "<leader>", "x", "m" ],
"commands": [ "workbench.action.showCommands" ]
},
{
"before": [ "<leader>", "c", "i" ],
"commands": [ "editor.action.commentLine" ]
},
{
"before": [ "<leader>", "x", "x" ],
"commands": [ "editor.action.smartSelect.expand" ]
},
{
"before": [ "<leader>", "z", "z" ],
"commands": [ "editor.action.smartSelect.shrink" ]
},
{
"before": [ "<leader>", "t", "a" ],
"commands": [ "workbench.action.toggleActivityBarVisibility" ]
},
{
"before": [ "<leader>", "t", "b" ],
"commands": [ "workbench.action.toggleSidebarVisibility" ]
},
{
"before": [ "<leader>", "x", "s" ],
"commands": [ "workbench.action.files.save" ]
},
{
"before": [ "<leader>", "s", "s" ],
"commands": [ "actions.find" ]
},
{
"before": [ "%" ],
"commands": [ "extension.matchitJumpItems" ]
},
{
"before": [ "<leader>", "s", "i" ],
"commands": [ "extension.matchitSelectItems" ]
},
{
"before": [ "<leader>", "d", "i" ],
"commands": [ "extension.matchitDeleteItems" ]
},
{
"before": [ "<leader>", "x", "f" ],
"commands": [ "workbench.action.files.openFile" ]
},
{
"before": [ "<leader>", "x", "k" ],
"commands": [ "workbench.action.closeActiveEditor" ]
},
{
"before": [ "<leader>", "r", "r" ],
"commands": [ "workbench.action.openRecent" ]
},
{
"before": [ "<leader>", "k", "k" ],
"commands": [ "workbench.action.quickOpen" ]
},
{
"before": [ "<leader>", "i", "i" ],
"commands": [ "workbench.action.gotoSymbol" ]
},
{
"before": [ "<leader>", "x", "1" ],
"commands": [ "workbench.action.editorLayoutSingle" ]
},
{
"before": [ "<leader>", "x", "3" ],
"commands": [ "workbench.action.splitEditorRight" ]
},
{
"before": [ "<leader>", "x", "2" ],
"commands": [ "workbench.action.splitEditorDown" ]
},
{
"before": [ "<leader>", "x", "4" ],
"commands": [ "workbench.action.editorLayoutTwoByTwoGrid" ]
},
{
"before": [ "<leader>", "x", "0" ],
"commands": [ "workbench.action.closeGroup" ]
},
{
"before": [ "<leader>", "t" ],
"commands": [ "workbench.action.terminal.focus" ]
},
{
"before": [ "<Ctrl>", "j" ],
"commands": [ "workbench.action.navigateBack" ]
},
{
"before": [ "<leader>", "f", "f" ],
"commands": [ "workbench.action.toggleZenMode" ]
},
{
"before": [ "<leader>", "w", "h" ],
"after": [ "<C-w>", "h" ]
},
{
"before": [ "<leader>", "w", "j" ],
"after": [ "<C-w>", "j" ]
},
{
"before": [ "<leader>", "w", "k" ],
"after": [ "<C-w>", "k" ]
},
{
"before": [ "<leader>", "w", "l" ],
"after": [ "<C-w>", "l" ]
},
{
"before": [ "<leader>", "w", "q" ],
"after": [ ":wq" ],
}
],
"vim.handleKeys": {
"<C-a>": false,
},
"zenMode.centerLayout": false,
"window.zoomLevel": 1,
"editor.minimap.enabled": false,
"search.exclude": {
"/.git": true,
"/*.bundle.js": true,
"/bin-packages": true,
"/frontend-dist": true,
"**/npm-packages-offline-cache": true
},
"search.useGlobalIgnoreFiles": true,
"files.autoSave": "afterDelay",
"workbench.colorTheme": "Solarized Dark",
"workbench.statusBar.visible": true,
"editor.renderWhitespace": "none",
"editor.renderControlCharacters": false,
"window.titleBarStyle": "native",
"editor.renderLineHighlight": "none",
"extensions.ignoreRecommendations": true,
"editor.occurrencesHighlight": false,
"[dart]": {
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.rulers": [
80
],
"editor.selectionHighlight": false,
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.suggestSelection": "first",
"editor.tabCompletion": "onlySnippets",
"editor.wordBasedSuggestions": false
},
"git.openRepositoryInParentFolders": "never",
// https://zhuanlan.zhihu.com/p/398790625?utm_id=0
// [[C/C++]]
//
// cpptools
"C_Cpp.intelliSenseEngine": "disabled", // 禁用微軟 Cpptools 插件的提示功能
"C_Cpp.codeAnalysis.runAutomatically": false,
"C_Cpp.formatting": "disabled",
// clangd
"clangd.path": "/home/huanghe/soft/clang/bin/clangd", // clangd 安裝路徑
// "clangd.path": "c:\\Users\\Sirius\\AppData\\Roaming\\Code\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\15.0.3\\clangd_15.0.3\\bin\\clangd.exe", // clangd 安裝路徑
// Clangd 運行參數(在終端/命令行輸入 clangd --help-list-hidden 可查看更多)
"clangd.arguments": [
"--all-scopes-completion", // 全局補全(補全建議會給出在當前作用域不可見的索引,插入後自動補充作用域標識符),例如在main()中直接寫cout,即使沒有`#include <iostream>`,也會給出`std::cout`的建議,配合"--header-insertion=iwyu",還可自動插入缺失的頭文件
"--background-index", // 後臺分析並保存索引文件
"--clang-tidy", // 啓用 Clang-Tidy 以提供「靜態檢查」,下面設置 clang tidy 規則
"--clang-tidy-checks=performance-*, bugprone-*, misc-*, google-*, modernize-*, readability-*, portability-*",
"--compile-commands-dir=${workspaceFolder}/.vscode", // 編譯數據庫(例如 compile_commands.json 文件)的目錄位置
"--completion-parse=auto", // 當 clangd 準備就緒時,用它來分析建議
"--completion-style=detailed", // 建議風格:打包(重載函數只會給出一個建議);還可以設置爲 detailed
// "--query-driver=/usr/bin/clang++", // MacOS 上需要設定 clang 編譯器的路徑,homebrew 安裝的clang 是 /usr/local/opt/llvm/bin/clang++
// 啓用配置文件(YAML格式)項目配置文件是在項目文件夾裏的“.clangd”,用戶配置文件是“clangd/config.yaml”,該文件來自:Windows: %USERPROFILE%\AppData\Local || MacOS: ~/Library/Preferences/ || Others: $XDG_CONFIG_HOME, usually ~/.config
"--enable-config",
"--fallback-style=Webkit", // 默認格式化風格: 在沒找到 .clang-format 文件時採用,可用的有 LLVM, Google, Chromium, Mozilla, Webkit, Microsoft, GNU
"--function-arg-placeholders=true", // 補全函數時,將會給參數提供佔位符,鍵入後按 Tab 可以切換到下一佔位符,乃至函數末
"--header-insertion-decorators", // 輸入建議中,已包含頭文件的項與還未包含頭文件的項會以圓點加以區分
"--header-insertion=iwyu", // 插入建議時自動引入頭文件 iwyu
"--include-cleaner-stdlib", // 爲標準庫頭文件啓用清理功能(不成熟!!!)
"--log=verbose", // 讓 Clangd 生成更詳細的日誌
"--pch-storage=memory", // pch 優化的位置(Memory 或 Disk,前者會增加內存開銷,但會提升性能)
"--pretty", // 輸出的 JSON 文件更美觀
"--ranking-model=decision_forest", // 建議的排序方案:hueristics (啓發式), decision_forest (決策樹)
"-j=12" // 同時開啓的任務數量
],
// Clangd 找不到編譯數據庫(例如 compile_flags.json 文件)時採用的設置,缺陷是不能直接索引同一項目的不同文件,只能分析系統頭文件、當前文件和include的文件
"clangd.fallbackFlags": [
"-pedantic",
"-Wall",
"-Wextra",
"-Wcast-align",
"-Wdouble-promotion",
"-Wformat=2",
"-Wimplicit-fallthrough",
"-Wmisleading-indentation",
"-Wnon-virtual-dtor",
"-Wnull-dereference",
"-Wold-style-cast",
"-Woverloaded-virtual",
"-Wpedantic",
"-Wshadow",
"-Wunused",
"-pthread",
"-fuse-ld=lld",
"-fsanitize=address",
"-fsanitize=undefined",
"-stdlib=libc++",
// "-std=c++2a"
"-std=c++20"
],
"clangd.checkUpdates": true, // 自動檢測 clangd 更新
"clangd.onConfigChanged": "restart", // 重啓 clangd 時重載配置,具體方法: F1 + Fn 打開命令面板,然後搜索“clangd: restart”
"clangd.serverCompletionRanking": true, // 藉助網上的信息排序建議
"clangd.detectExtensionConflicts": true, // 當其它拓展與 clangd 衝突時警告並建議禁用
"editor.suggest.snippetsPreventQuickSuggestions": false, // clangd的snippets有很多的跳轉點,不用這個就必須手動觸發Intellisense了
"[cpp]": {
"editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd"
},
//
// [[LLDB]]
//
"lldb.commandCompletions": true, // LLDB 指令自動補全
"lldb.dereferencePointers": true, // LLDB 指針顯示解引用內容
"lldb.evaluateForHovers": true, // LLDB 鼠標懸停在變量上時預覽變量值
"lldb.launch.expressions": "native", // LLDB 監視表達式的默認類型
"lldb.showDisassembly": "never", // LLDB 不顯示彙編代碼
"lldb.verboseLogging": true,
"xmake.debugConfigType": "codelldb",
"workbench.activityBar.visible": false,
"editor.fontFamily": "DroidSansMono Nerd Font", // LLDB 生成更詳細的日誌
"terminal.integrated.fontFamily": "Hack Nerd Font",
}
settings.json
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.