this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update hooks, encrypted files, and vscode exts

Use full version in vscode extension file (like a lockfile).
Remove symlinks from files.gpg and ignore them in the `encrypt` list.
Ensure yadm hooks are idempotent and share code between hooks + bootstrap.
Add trailing commads to VSCode settings for easier copy-pasting (JSONC).

+208 -237
+47 -50
.config/vscode/extensions.txt
··· 1 - 13xforever.language-x86-64-assembly 2 - asvetliakov.vscode-neovim 3 - BazelBuild.vscode-bazel 4 - bungcip.better-toml 5 - codezombiech.gitignore 6 - DavidAnson.vscode-markdownlint 7 - dcasella.monokai-plusplus 8 - dnicolson.binary-plist 9 - DotJoshJohnson.xml 10 - dunstontc.viml 11 - eamodio.gitlens 12 - fabiospampinato.vscode-statusbar-debugger 13 - ms-vscode.Go 14 - IBM.output-colorizer 15 - jeff-hykin.better-cpp-syntax 16 - korekontrol.saltstack 17 - kumar-harsh.graphql-for-vscode 18 - LaurentTreguier.rpm-spec 19 - mariusschulz.yarn-lock-syntax 20 - marko2276.yang 21 - matklad.rust-analyzer 22 - ms-azuretools.vscode-docker 23 - ms-dotnettools.csharp 24 - ms-python.python 25 - ms-vscode-remote.remote-ssh 26 - ms-vscode-remote.remote-ssh-edit 27 - ms-vscode.cmake-tools 28 - ms-vscode.cpptools 29 - ms-vscode.vscode-typescript-tslint-plugin 30 - ms-vsliveshare.vsliveshare 31 - ms-vsliveshare.vsliveshare-audio 32 - ms-vsliveshare.vsliveshare-pack 33 - redhat.vscode-xml 34 - redhat.vscode-yaml 35 - richie5um2.vscode-sort-json 36 - ritwickdey.LiveServer 37 - skyapps.fish-vscode 38 - sleistner.vscode-fileutils 39 - slevesque.shader 40 - timonwong.shellcheck 41 - TomiTurtiainen.rf-intellisense 42 - twxs.cmake 43 - Veracosta.mib 44 - vsciot-vscode.vscode-arduino 45 - vscode-org-mode.org-mode 46 - wayou.vscode-todo-highlight 47 - wholroyd.jinja 48 - xoronic.pestfile 49 - zhouronghui.propertylist 50 - zxh404.vscode-proto3 1 + 13xforever.language-x86-64-assembly@2.3.0 2 + asvetliakov.vscode-neovim@0.0.50 3 + BazelBuild.vscode-bazel@0.3.0 4 + bungcip.better-toml@0.3.2 5 + codezombiech.gitignore@0.6.0 6 + DavidAnson.vscode-markdownlint@0.36.0 7 + dcasella.monokai-plusplus@1.9.1 8 + dnicolson.binary-plist@0.4.0 9 + DotJoshJohnson.xml@2.5.0 10 + dunstontc.viml@0.1.7 11 + eamodio.gitlens@10.2.1 12 + fabiospampinato.vscode-statusbar-debugger@2.0.6 13 + IBM.output-colorizer@0.1.2 14 + jeff-hykin.better-cpp-syntax@1.14.31 15 + korekontrol.saltstack@0.0.8 16 + kumar-harsh.graphql-for-vscode@1.15.3 17 + LaurentTreguier.rpm-spec@0.2.3 18 + mariusschulz.yarn-lock-syntax@0.1.3 19 + marko2276.yang@0.1.3 20 + matklad.rust-analyzer@0.2.199 21 + ms-azuretools.vscode-docker@1.2.1 22 + ms-dotnettools.csharp@1.22.0 23 + ms-python.python@2020.5.80290 24 + ms-vscode-remote.remote-ssh@0.51.0 25 + ms-vscode-remote.remote-ssh-edit@0.51.0 26 + ms-vscode.cmake-tools@1.4.0 27 + ms-vscode.cpptools@0.28.2 28 + ms-vscode.Go@0.14.3 29 + ms-vscode.vscode-typescript-tslint-plugin@1.2.3 30 + ms-vsliveshare.vsliveshare@1.0.2274 31 + ms-vsliveshare.vsliveshare-pack@0.4.0 32 + redhat.vscode-xml@0.11.0 33 + redhat.vscode-yaml@0.8.0 34 + richie5um2.vscode-sort-json@1.18.0 35 + ritwickdey.LiveServer@5.6.1 36 + skyapps.fish-vscode@0.2.1 37 + sleistner.vscode-fileutils@3.0.1 38 + slevesque.shader@1.1.4 39 + timonwong.shellcheck@0.9.0 40 + TomiTurtiainen.rf-intellisense@2.8.0 41 + twxs.cmake@0.0.17 42 + Veracosta.mib@0.0.4 43 + vsciot-vscode.vscode-arduino@0.3.1 44 + vscode-org-mode.org-mode@1.0.0 45 + wholroyd.jinja@0.0.8 46 + xoronic.pestfile@0.0.2 47 + zxh404.vscode-proto3@0.4.2
+9 -71
.config/yadm/bootstrap
··· 4 4 set -o nounset 5 5 set -o pipefail 6 6 7 - # Global vars used in multiple functions 8 - OS_NAME=$(uname -s) 9 - VSCODE_EXTENSIONS=~/.config/vscode/extensions.txt 10 - 11 - function confirm() { 12 - read -r -n 1 -p "$1 [Y/n]: " 13 - 14 - # Default to yes for empty input 15 - if [[ "$REPLY" == "" ]]; then 16 - return 0 17 - else 18 - echo 19 - fi 20 - 21 - # Only 'y' input is valid if something was typed 22 - if [[ "$REPLY" =~ ^[Yy]$ ]]; then 23 - return 0 24 - fi 25 - 26 - # Abort, it's safe to assume we can't continue 27 - echo "Operation cancelled." 28 - exit 1 29 - } 30 - 31 - function check_vscode_exts() { 32 - # TODO: this should use `--show-versions` 33 - diff "$VSCODE_EXTENSIONS" \ 34 - <(code --list-extensions) \ 35 - --unchanged-line-format="" \ 36 - "$@" 37 - } 38 - 39 - function install_vscode_exts() { 40 - xargs printf -- "--install-extension %s " <"$VSCODE_EXTENSIONS" | xargs code 41 - echo 42 - 43 - # TODO: some kind of vscode extension "prune" command. Or just uninstall all every time? 44 - if ! check_vscode_exts &>/dev/null; then 45 - # This check may not be needed since `code` errors if it can't install 46 - local UNINSTALLED 47 - UNINSTALLED=$(check_vscode_exts \ 48 - --old-line-format=" %L" \ 49 - --new-line-format="" \ 50 - || : 51 - ) 52 - 53 - if [[ -n $UNINSTALLED ]]; then 54 - echo "ERROR: some VSCode extensions were not installed:" 55 - echo "$UNINSTALLED" 56 - echo 57 - return 1 58 - fi 7 + # shellcheck source=utils.sh 8 + source ~/.config/yadm/utils.sh 59 9 60 - local INSTALLED 61 - INSTALLED=$(check_vscode_exts \ 62 - --old-line-format="" \ 63 - --new-line-format=" %L" \ 64 - || : 65 - ) 66 - if [[ -n $INSTALLED ]]; then 67 - echo "WARNING: some installed VSCode extensions were not found in $VSCODE_EXTENSIONS:" 68 - echo "$INSTALLED" 69 - echo 70 - fi 71 - fi 72 - } 10 + OS_NAME=$(uname -s) 73 11 74 12 function setup_macos() { 75 13 # Install homebrew and use it to install basic packages/apps 76 14 if ! command -v brew &>/dev/null && \ 77 15 confirm "'brew' command not found. Install it? " 78 16 then 79 - bash -c '$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)' 17 + eval "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 80 18 echo 81 19 fi 82 20 ··· 107 45 function main() { 108 46 yadm submodule update --init 109 47 110 - GPG_TTY=$(tty) 111 - export GPG_TTY 112 - yadm decrypt 113 - 114 48 if [[ "$OS_NAME" == "Darwin" ]]; then 115 49 setup_macos 116 50 elif [[ "$OS_NAME" == "Linux" ]]; then 117 51 setup_linux 118 52 fi 53 + 54 + GPG_TTY=$(tty) 55 + export GPG_TTY 56 + yadm decrypt 119 57 } 120 58 121 - main 59 + main "$@"
+6
.config/yadm/encrypt
··· 1 1 .ssh/** 2 + 3 + # These are `yadm alt` symlinks to the real files 4 + !.ssh/config 5 + !.ssh/id_rsa 6 + !.ssh/id_rsa.pub 7 + !.ssh/known_hosts
.config/yadm/files.gpg

This is a binary file and will not be displayed.

+2
.config/yadm/hooks/post_pull
··· 5 5 6 6 if [[ $YADM_HOOK_EXIT == 0 ]]; then 7 7 yadm bootstrap 8 + else 9 + echo "'yadm pull' failed, not running bootstrap script" 8 10 fi
+27 -2
.config/yadm/hooks/pre_commit
··· 3 3 set -o errexit 4 4 set -o nounset 5 5 6 - YADM_DIR=~/.config/yadm 6 + # Start from the base yadm directory 7 + cd "$(dirname "$YADM_HOOK_REPO")" 8 + 9 + if [[ "$YADM_HOOK_FULL_COMMAND" =~ (^| )(--no-verify|-n)($| ) ]]; then 10 + # Same as `git commit --no-verify` 11 + exit 0 12 + fi 13 + 14 + # shellcheck source=utils.sh 15 + source utils.sh 16 + 17 + SHELLCHECK_SOURCES=( 18 + bootstrap 19 + utils.sh 20 + hooks/* 21 + ) 7 22 8 - shellcheck $YADM_DIR/bootstrap $YADM_DIR/hooks/* 23 + if ! shellcheck "${SHELLCHECK_SOURCES[@]}"; then 24 + echo "Some files failed the shellcheck linter!" 25 + exit 1 26 + fi 27 + 28 + if ! check_vscode_exts &>/dev/null; then 29 + list_vscode_exts >$VSCODE_EXTENSIONS 30 + echo "$VSCODE_EXTENSIONS was out-of-date." 31 + echo "It has been auto-updated, and should be committed." 32 + exit 1 33 + fi
+80 -80
Library/Application Support/Code/User/keybindings.json
··· 2 2 { 3 3 "command": "cursorWordPartStartLeft", 4 4 "key": "alt+left", 5 - "when": "textInputFocus && editorLangId != 'org'" 5 + "when": "textInputFocus && editorLangId != 'org'", 6 6 }, 7 7 { 8 8 "command": "cursorWordPartRight", 9 9 "key": "alt+right", 10 - "when": "textInputFocus && editorLangId != 'org'" 10 + "when": "textInputFocus && editorLangId != 'org'", 11 11 }, 12 12 { 13 13 "command": "cursorWordPartStartLeftSelect", 14 14 "key": "alt+shift+left", 15 - "when": "textInputFocus" 15 + "when": "textInputFocus", 16 16 }, 17 17 { 18 18 "command": "cursorWordPartRightSelect", 19 19 "key": "alt+shift+right", 20 - "when": "textInputFocus" 20 + "when": "textInputFocus", 21 21 }, 22 22 { 23 23 "command": "deleteWordPartLeft", 24 24 "key": "alt+backspace", 25 - "when": "textInputFocus" 25 + "when": "textInputFocus", 26 26 }, 27 27 { 28 28 "command": "deleteWordPartRight", 29 29 "key": "alt+delete", 30 - "when": "textInputFocus" 30 + "when": "textInputFocus", 31 31 }, 32 32 { 33 33 "command": "workbench.action.nextEditorInGroup", 34 - "key": "ctrl+tab" 34 + "key": "ctrl+tab", 35 35 }, 36 36 { 37 37 "command": "-workbench.action.openNextRecentlyUsedEditorInGroup", 38 - "key": "ctrl+tab" 38 + "key": "ctrl+tab", 39 39 }, 40 40 { 41 41 "command": "-workbench.action.openPreviousRecentlyUsedEditorInGroup", 42 - "key": "ctrl+shift+tab" 42 + "key": "ctrl+shift+tab", 43 43 }, 44 44 { 45 45 "command": "workbench.action.previousEditorInGroup", 46 - "key": "ctrl+shift+tab" 46 + "key": "ctrl+shift+tab", 47 47 }, 48 48 { 49 49 "command": "-workbench.action.focusNextGroup", 50 - "key": "cmd+k cmd+right" 50 + "key": "cmd+k cmd+right", 51 51 }, 52 52 { 53 53 "command": "workbench.action.focusNextGroup", 54 - "key": "alt+cmd+right" 54 + "key": "alt+cmd+right", 55 55 }, 56 56 { 57 57 "key": "alt+cmd+up", 58 58 "command": "-editor.action.insertCursorAbove", 59 - "when": "editorTextFocus" 59 + "when": "editorTextFocus", 60 60 }, 61 61 { 62 62 "key": "alt+cmd+up", 63 63 "command": "workbench.action.focusAboveGroup", 64 - "when": "editorFocus" 64 + "when": "editorFocus", 65 65 }, 66 66 { 67 67 "key": "alt+cmd+down", 68 68 "command": "-editor.action.insertCursorBelow", 69 - "when": "editorTextFocus" 69 + "when": "editorTextFocus", 70 70 }, 71 71 { 72 72 "key": "alt+cmd+down", 73 73 "command": "workbench.action.focusBelowGroup", 74 - "when": "editorFocus" 74 + "when": "editorFocus", 75 75 }, 76 76 { 77 77 "command": "-workbench.action.focusPreviousGroup", 78 - "key": "cmd+k cmd+left" 78 + "key": "cmd+k cmd+left", 79 79 }, 80 80 { 81 81 "command": "workbench.action.focusPreviousGroup", 82 - "key": "alt+cmd+left" 82 + "key": "alt+cmd+left", 83 83 }, 84 84 { 85 85 "command": "-workbench.action.previousEditor", 86 - "key": "shift+cmd+[" 86 + "key": "shift+cmd+[", 87 87 }, 88 88 { 89 89 "command": "-workbench.action.nextEditor", 90 - "key": "shift+cmd+]" 90 + "key": "shift+cmd+]", 91 91 }, 92 92 { 93 93 "command": "editor.action.triggerSuggest", 94 94 "key": "alt+space", 95 - "when": "editorHasCompletionItemProvider && editorTextFocus && !editorReadonly" 95 + "when": "editorHasCompletionItemProvider && editorTextFocus && !editorReadonly", 96 96 }, 97 97 { 98 98 "command": "-editor.action.triggerSuggest", 99 99 "key": "ctrl+space", 100 - "when": "editorHasCompletionItemProvider && editorTextFocus && !editorReadonly" 100 + "when": "editorHasCompletionItemProvider && editorTextFocus && !editorReadonly", 101 101 }, 102 102 { 103 103 "command": "-editor.action.outdentLines", 104 104 "key": "cmd+[", 105 - "when": "editorTextFocus && !editorReadonly" 105 + "when": "editorTextFocus && !editorReadonly", 106 106 }, 107 107 { 108 108 "command": "editor.fold", 109 109 "key": "cmd+[", 110 - "when": "editorTextFocus" 110 + "when": "editorTextFocus", 111 111 }, 112 112 { 113 113 "command": "-editor.fold", 114 114 "key": "alt+cmd+[", 115 - "when": "editorTextFocus" 115 + "when": "editorTextFocus", 116 116 }, 117 117 { 118 118 "command": "-editor.action.indentLines", 119 119 "key": "cmd+]", 120 - "when": "editorTextFocus && !editorReadonly" 120 + "when": "editorTextFocus && !editorReadonly", 121 121 }, 122 122 { 123 123 "command": "editor.unfold", 124 124 "key": "cmd+]", 125 - "when": "editorTextFocus" 125 + "when": "editorTextFocus", 126 126 }, 127 127 { 128 128 "command": "-editor.unfold", 129 129 "key": "alt+cmd+]", 130 - "when": "editorTextFocus" 130 + "when": "editorTextFocus", 131 131 }, 132 132 { 133 133 "command": "workbench.action.splitEditor", 134 - "key": "cmd+k cmd+\\" 134 + "key": "cmd+k cmd+\\", 135 135 }, 136 136 { 137 137 "command": "workbench.action.splitEditor", 138 - "key": "cmd+k \\" 138 + "key": "cmd+k \\", 139 139 }, 140 140 { 141 141 "command": "-workbench.action.splitEditor", 142 - "key": "cmd+\\" 142 + "key": "cmd+\\", 143 143 }, 144 144 { 145 145 "command": "workbench.action.moveEditorToNextGroup", ··· 149 149 { 150 150 "key": "shift+cmd+\\", 151 151 "command": "-editor.action.jumpToBracket", 152 - "when": "editorFocus" 152 + "when": "editorFocus", 153 153 }, 154 154 { 155 155 "key": "shift+cmd+\\", ··· 158 158 }, 159 159 { 160 160 "command": "-workbench.action.closeOtherEditors", 161 - "key": "alt+cmd+t" 161 + "key": "alt+cmd+t", 162 162 }, 163 163 { 164 164 "command": "workbench.action.tasks.test", 165 - "key": "alt+cmd+t" 165 + "key": "alt+cmd+t", 166 166 }, 167 167 { 168 168 "command": "workbench.action.terminal.focusNext", 169 169 "key": "ctrl+tab", 170 - "when": "terminalFocus" 170 + "when": "terminalFocus", 171 171 }, 172 172 { 173 173 "command": "workbench.action.terminal.kill", 174 174 "key": "cmd+w", 175 - "when": "terminalFocus" 175 + "when": "terminalFocus", 176 176 }, 177 177 { 178 178 "command": "workbench.action.terminal.focus", 179 179 "key": "ctrl+`", 180 - "when": "!terminalFocus" 180 + "when": "!terminalFocus", 181 181 }, 182 182 { 183 183 "command": "workbench.action.terminal.scrollToBottom", 184 184 "key": "end", 185 - "when": "terminalFocus" 185 + "when": "terminalFocus", 186 186 }, 187 187 { 188 188 "command": "-workbench.action.terminal.scrollToBottom", 189 189 "key": "cmd+end", 190 - "when": "terminalFocus" 190 + "when": "terminalFocus", 191 191 }, 192 192 { 193 193 "command": "workbench.action.terminal.scrollToTop", 194 194 "key": "home", 195 - "when": "terminalFocus" 195 + "when": "terminalFocus", 196 196 }, 197 197 { 198 198 "command": "-workbench.action.terminal.scrollToTop", 199 199 "key": "cmd+home", 200 - "when": "terminalFocus" 200 + "when": "terminalFocus", 201 201 }, 202 202 { 203 203 "command": "workbench.action.terminal.focusPrevious", 204 204 "key": "ctrl+shift+tab", 205 - "when": "terminalFocus" 205 + "when": "terminalFocus", 206 206 }, 207 207 { 208 208 "command": "-workbench.action.gotoSymbol", 209 - "key": "cmd+shift+o" 209 + "key": "cmd+shift+o", 210 210 }, 211 211 { 212 212 "command": "workbench.action.openWorkspaceInNewWindow", 213 - "key": "cmd+shift+o" 213 + "key": "cmd+shift+o", 214 214 }, 215 215 { 216 216 "command": "workbench.action.gotoSymbol", 217 - "key": "cmd+p" 217 + "key": "cmd+p", 218 218 }, 219 219 { 220 220 "command": "-workbench.action.showAllSymbols", 221 - "key": "cmd+t" 221 + "key": "cmd+t", 222 222 }, 223 223 { 224 224 "command": "workbench.action.quickOpenNavigateNextInFilePicker", 225 225 "key": "cmd+p", 226 - "when": "inFilesPicker && inQuickOpen" 226 + "when": "inFilesPicker && inQuickOpen", 227 227 }, 228 228 { 229 229 "command": "-workbench.action.quickOpenNavigateNextInFilePicker", 230 230 "key": "cmd+p", 231 - "when": "inFilesPicker && inQuickOpen" 231 + "when": "inFilesPicker && inQuickOpen", 232 232 }, 233 233 { 234 234 "command": "workbench.action.quickOpen", 235 - "key": "cmd+t" 235 + "key": "cmd+t", 236 236 }, 237 237 { 238 238 "command": "-workbench.action.quickOpen", 239 - "key": "cmd+p" 239 + "key": "cmd+p", 240 240 }, 241 241 { 242 242 "command": "workbench.action.closeMessages", 243 243 "key": "escape", 244 - "when": "globalMessageVisible" 244 + "when": "globalMessageVisible", 245 245 }, 246 246 // ========================================================================= 247 247 // Bindings for vscode-neovim ··· 249 249 { 250 250 "key": "escape", 251 251 "command": "closeFindWidget", 252 - "when": "neovim.mode != 'insert' && editorFocus && findWidgetVisible" 252 + "when": "neovim.mode != 'insert' && editorFocus && findWidgetVisible", 253 253 }, 254 254 { 255 255 "key": "escape", 256 256 "command": "workbench.action.closePanel", 257 - "when": "neovim.mode != 'insert' && !terminalFocus && activePanel" 257 + "when": "neovim.mode != 'insert' && !terminalFocus && activePanel", 258 258 }, 259 259 { 260 260 "key": "cmd+/", ··· 266 266 "key": "cmd+c", 267 267 "command": "vscode-neovim.send", 268 268 "when": "editorTextFocus && neovim.mode != 'insert'", 269 - "args": "\"+ygv" 269 + "args": "\"+ygv", 270 270 }, 271 271 // ========================================================================= 272 272 // End bindings for vscode-neovim 273 273 // ========================================================================= 274 274 { 275 275 "command": "editor.action.startFindReplaceAction", 276 - "key": "cmd+r" 276 + "key": "cmd+r", 277 277 }, 278 278 { 279 279 "command": "workbench.action.tasks.restartTask", 280 - "key": "alt+cmd+b" 280 + "key": "alt+cmd+b", 281 281 }, 282 282 { 283 283 "command": "workbench.action.editor.changeLanguageMode", 284 - "key": "cmd+l" 284 + "key": "cmd+l", 285 285 }, 286 286 { 287 287 "command": "editor.action.indentUsingSpaces", 288 - "key": "cmd+shift+l" 288 + "key": "cmd+shift+l", 289 289 }, 290 290 { 291 291 "command": "-workbench.action.editor.changeLanguageMode", 292 - "key": "cmd+k m" 292 + "key": "cmd+k m", 293 293 }, 294 294 { 295 295 "command": "-cursorWordPartRight", 296 296 "key": "ctrl+alt+right", 297 - "when": "textInputFocus" 297 + "when": "textInputFocus", 298 298 }, 299 299 { 300 300 "command": "-cursorWordPartRightSelect", 301 301 "key": "ctrl+shift+alt+right", 302 - "when": "textInputFocus" 302 + "when": "textInputFocus", 303 303 }, 304 304 { 305 305 "command": "-cursorWordPartStartLeft", 306 306 "key": "ctrl+alt+left", 307 - "when": "textInputFocus" 307 + "when": "textInputFocus", 308 308 }, 309 309 { 310 310 "command": "-cursorWordPartStartLeftSelect", 311 311 "key": "ctrl+shift+alt+left", 312 - "when": "textInputFocus" 312 + "when": "textInputFocus", 313 313 }, 314 314 { 315 315 "command": "-deleteWordPartLeft", 316 316 "key": "ctrl+alt+backspace", 317 - "when": "textInputFocus && !editorReadonly" 317 + "when": "textInputFocus && !editorReadonly", 318 318 }, 319 319 { 320 320 "command": "-deleteWordPartRight", 321 321 "key": "ctrl+alt+delete", 322 - "when": "textInputFocus && !editorReadonly" 322 + "when": "textInputFocus && !editorReadonly", 323 323 }, 324 324 { 325 325 "command": "-editor.action.startFindReplaceAction", 326 - "key": "alt+cmd+f" 326 + "key": "alt+cmd+f", 327 327 }, 328 328 { 329 329 "command": "-workbench.action.nextEditor", 330 - "key": "alt+cmd+right" 330 + "key": "alt+cmd+right", 331 331 }, 332 332 { 333 333 "command": "-workbench.action.previousEditor", 334 - "key": "alt+cmd+left" 334 + "key": "alt+cmd+left", 335 335 }, 336 336 { 337 337 "command": "-workbench.action.focusSideBar", 338 - "key": "cmd+0" 338 + "key": "cmd+0", 339 339 }, 340 340 { 341 341 "command": "workbench.action.zoomReset", 342 - "key": "cmd+0" 342 + "key": "cmd+0", 343 343 }, 344 344 { 345 345 "key": "shift+cmd+enter", 346 346 "command": "-editor.action.insertLineBefore", 347 - "when": "editorTextFocus && !editorReadonly" 347 + "when": "editorTextFocus && !editorReadonly", 348 348 }, 349 349 { 350 350 "key": "shift+cmd+enter", 351 351 "command": "workbench.action.maximizeEditor", 352 - "when": "editorFocus" 352 + "when": "editorFocus", 353 353 }, 354 354 { 355 355 // note the additional `ctrl` here since we don't have a context to know if the editor is maximized 356 356 "key": "ctrl+shift+cmd+enter", 357 357 "command": "workbench.action.evenEditorWidths", 358 - "when": "editorFocus" 358 + "when": "editorFocus", 359 359 }, 360 360 { 361 361 "key": "shift+cmd+enter", 362 362 "command": "workbench.action.toggleMaximizedPanel", 363 - "when": "panelFocus" 363 + "when": "panelFocus", 364 364 }, 365 365 { 366 366 "command": "-python.execSelectionInTerminal", ··· 369 369 { 370 370 "command": "-workbench.action.terminal.split", 371 371 "key": "cmd+\\", 372 - "when": "terminalFocus" 372 + "when": "terminalFocus", 373 373 }, 374 374 { 375 375 "command": "workbench.action.terminal.splitInActiveWorkspace", 376 376 "key": "cmd+\\", 377 - "when": "terminalFocus" 377 + "when": "terminalFocus", 378 378 }, 379 379 { 380 380 "command": "-search.action.openInEditor", 381 381 "key": "cmd+enter", 382 - "when": "hasSearchResult && searchViewletFocus" 382 + "when": "hasSearchResult && searchViewletFocus", 383 383 }, 384 384 { 385 385 "key": "cmd+enter", 386 386 "command": "search.action.replaceAll", 387 - "when": "replaceActive && searchViewletFocus && !findWidgetVisible" 387 + "when": "replaceActive && searchViewletFocus && !findWidgetVisible", 388 388 }, 389 389 { 390 390 "command": "-workbench.action.openGlobalKeybindings", 391 - "key": "cmd+k cmd+s" 391 + "key": "cmd+k cmd+s", 392 392 }, 393 393 { 394 394 "command": "workbench.action.openGlobalKeybindingsFile", 395 - "key": "cmd+k cmd+s" 395 + "key": "cmd+k cmd+s", 396 396 } 397 397 ]
+37 -34
Library/Application Support/Code/User/settings.json
··· 1 1 { 2 2 "[cpp]": { 3 - "editor.formatOnSave": true 3 + "editor.formatOnSave": true, 4 4 }, 5 5 "[dockerfile]": { 6 6 "editor.quickSuggestions": { 7 - "strings": true 7 + "strings": true, 8 8 }, 9 9 // This seems to highlight EVERYTHING in italics which sucks... 10 - "editor.semanticHighlighting.enabled": false 10 + "editor.semanticHighlighting.enabled": false, 11 11 }, 12 12 "[graphql]": { 13 - "editor.tabSize": 2 13 + "editor.tabSize": 2, 14 14 }, 15 15 "[javascript]": { 16 16 "editor.formatOnSave": true, 17 - "editor.tabSize": 2 17 + "editor.tabSize": 2, 18 18 }, 19 19 "[json]": { 20 20 "editor.formatOnSave": false, 21 21 "editor.wordWrap": "on", 22 - "editor.tabSize": 2 22 + "editor.tabSize": 2, 23 23 }, 24 24 "[jsonc]": { 25 25 "editor.formatOnSave": false, 26 26 "editor.wordWrap": "on", 27 - "editor.tabSize": 2 27 + "editor.tabSize": 2, 28 28 }, 29 29 "[markdown]": { 30 30 "editor.wordWrap": "on", 31 31 "editor.quickSuggestions": false, 32 - "editor.tabSize": 2 32 + "editor.tabSize": 2, 33 33 }, 34 34 "[org]": { 35 35 "editor.autoIndent": "advanced", 36 - "editor.tabSize": 1 36 + "editor.tabSize": 1, 37 37 }, 38 38 "[python]": { 39 39 "editor.codeActionsOnSave": { 40 - "source.organizeImports": true 40 + "source.organizeImports": true, 41 41 }, 42 42 "editor.formatOnSave": true, 43 43 "editor.parameterHints.enabled": false, 44 44 "editor.snippetSuggestions": "none", 45 - "editor.defaultFormatter": "ms-python.python" 45 + "editor.defaultFormatter": "ms-python.python", 46 46 }, 47 47 "[rust]": { 48 - "editor.formatOnSave": true 48 + "editor.formatOnSave": true, 49 49 }, 50 50 "[starlark]": { 51 - "editor.formatOnSave": true 51 + "editor.formatOnSave": true, 52 52 }, 53 53 "[typescript]": { 54 54 "editor.formatOnSave": true, 55 55 "editor.codeActionsOnSave": { 56 - "source.fixAll.tslint": true 56 + "source.fixAll.tslint": true, 57 57 }, 58 - "editor.tabSize": 2 58 + "editor.tabSize": 2, 59 59 }, 60 60 "[xml]": { 61 - "editor.defaultFormatter": "redhat.vscode-xml" 61 + "editor.defaultFormatter": "redhat.vscode-xml", 62 62 }, 63 63 64 64 // TODO: reorganize the remaining sections into extension-specific vs VSCode ··· 80 80 "cmake.configureOnOpen": false, 81 81 82 82 "debug.internalConsoleOptions": "openOnSessionStart", 83 - "diffEditor.ignoreTrimWhitespace": false, 83 + "diffEditor.ignoreTrimWhitespace": true, 84 84 "diffEditor.renderSideBySide": true, 85 85 86 86 "editor.accessibilitySupport": "off", ··· 92 92 "editor.renderControlCharacters": false, 93 93 "editor.renderWhitespace": "boundary", 94 94 "editor.rulers": [ 95 - 80 95 + 80, 96 96 ], 97 97 "editor.scrollBeyondLastLine": false, 98 98 "editor.showFoldingControls": "always", ··· 138 138 "gdbinit": "shellscript", 139 139 "minion": "log", 140 140 "vimrc": "viml", 141 - "yarn.lock": "yarnlock" 141 + "yadm/encrypt": "gitignore", 142 + "yarn.lock": "yarnlock", 142 143 }, 143 144 "files.exclude": { 144 145 "**/.DS_Store": true, ··· 147 148 "**/.svn": true, 148 149 "**/CVS": true, 149 150 "**/bazel-*": true, 150 - "__pycache__": true 151 + "__pycache__": true, 151 152 }, 152 153 "files.insertFinalNewline": true, 153 154 "files.trimTrailingWhitespace": true, ··· 168 169 "suppressResultsExplorerNotice": true, 169 170 "suppressShowKeyBindingsNotice": true, 170 171 "suppressUpdateNotice": true, 171 - "suppressWelcomeNotice": true 172 + "suppressWelcomeNotice": true, 172 173 }, 173 174 "gitlens.blame.avatars": false, 174 175 "gitlens.codeLens.enabled": false, ··· 183 184 "compare": true, 184 185 "details": true, 185 186 "history": true, 186 - "remote": true 187 + "remote": true, 187 188 }, 188 189 "editorGroup": { 189 190 "blame": true, 190 - "compare": true 191 + "compare": true, 191 192 }, 192 193 "editorTab": { 193 194 "clipboard": true, 194 195 "compare": true, 195 196 "history": true, 196 - "remote": true 197 + "remote": true, 197 198 }, 198 199 "explorer": { 199 200 "clipboard": true, 200 201 "compare": true, 201 202 "history": true, 202 - "remote": true 203 + "remote": true, 203 204 }, 204 205 "scmGroup": { 205 206 "compare": true, 206 207 "openClose": true, 207 208 "stash": true, 208 - "stashInline": true 209 + "stashInline": true, 209 210 }, 210 211 "scmItem": { 211 212 "clipboard": true, 212 213 "compare": true, 213 214 "history": true, 214 215 "remote": true, 215 - "stash": true 216 + "stash": true, 216 217 } 217 218 }, 218 219 "gitlens.mode.statusBar.enabled": false, ··· 234 235 "org.todoKeywords": [ 235 236 "TODO", 236 237 "PROG", 237 - "DONE" 238 + "DONE", 238 239 ], 239 240 240 241 "python.dataScience.enabled": false, ··· 254 255 "rust-analyzer.inlayHints.typeHints": false, 255 256 256 257 "shellcheck.run": "onSave", 258 + "shellcheck.useWorkspaceRootAsCwd": true, 259 + "shellcheck.customArgs": ["--external-sources"], 257 260 "shellcheck.enableQuickFix": true, 258 261 "shellcheck.ignorePatterns": { 259 262 "**/*.zsh": true, ··· 277 280 "Directory": "vim", 278 281 "IncSearch": { 279 282 "backgroundColor": "theme.editor.findMatchBackground", 280 - "borderColor": "theme.editor.findMatchBorder" 283 + "borderColor": "theme.editor.findMatchBorder", 281 284 }, 282 285 "Search": { 283 286 "backgroundColor": "theme.editor.findMatchHighlightBackground", 284 - "borderColor": "theme.editor.findMatchHighlightBorder" 287 + "borderColor": "theme.editor.findMatchHighlightBorder", 285 288 }, 286 289 "Substitute": "vim", 287 290 "Todo": { 288 291 "backgroundColor": "#ffeb3b", 289 292 "color": "#2196f3", 290 - "overviewRulerColor": "rgba(255,189,42,0.8)" 293 + "overviewRulerColor": "rgba(255,189,42,0.8)", 291 294 }, 292 295 "Visual": { 293 - "backgroundColor": "theme.editor.selectionBackground" 296 + "backgroundColor": "theme.editor.selectionBackground", 294 297 } 295 298 }, 296 299 "vscode-neovim.highlightGroups.ignoreHighlights": [ ··· 367 370 "SpecialComment", 368 371 "Debug", 369 372 "Folded", 370 - "FoldColumn" 373 + "FoldColumn", 371 374 ], 372 375 "vscode-neovim.neovimExecutablePaths.darwin": "/usr/local/bin/nvim", 373 376 "vscode-neovim.neovimInitPath": "~/.vimrc", ··· 379 382 380 383 "workbench.colorCustomizations": { 381 384 "editor.selectionBackground": "#9d550f", 382 - "editorCursor.foreground": "#9d550f" 385 + "editorCursor.foreground": "#9d550f", 383 386 }, 384 387 "workbench.colorTheme": "Monokai", 385 388 "workbench.editor.enablePreview": false,