parent
98d86f6cfa
commit
8e8956128f
@ -0,0 +1,56 @@ |
||||
#!/usr/bin/env bash |
||||
set -e |
||||
|
||||
### |
||||
### Install a base of vscode extensions I expect to have in all installations and install settings |
||||
### and keybindings config files. |
||||
### |
||||
|
||||
# determine OS / vscode path & executable |
||||
case "$OSTYPE" in |
||||
linux-gnu*) |
||||
VSCODE_CONFIG_PATH="$HOME/.var/app/com.visualstudio.code/config/Code/User" |
||||
VSCODE_BINARY=(flatpak run com.visualstudio.code) |
||||
;; |
||||
darwin*) |
||||
VSCODE_CONFIG_PATH="$HOME/Library/Application Support/Code/User" |
||||
VSCODE_BINARY=('/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code') |
||||
;; |
||||
cygwin|msys|win32) |
||||
# TODO: implement this later |
||||
# windows |
||||
;; |
||||
*) |
||||
# unknown |
||||
echo 'Unknown OS, skipping vscode setup' |
||||
return |
||||
;; |
||||
esac |
||||
|
||||
if [[ ! -d "$VSCODE_CONFIG_PATH" ]]; then |
||||
echo "Could not locate vscode config path (expected at '$VSCODE_CONFIG_PATH')" |
||||
return 1 |
||||
elif ! type "${VSCODE_BINARY[0]}" >/dev/null 2>/dev/null; then |
||||
echo "Could not identify vscode binary (expected '${VSCODE_BINARY[*]}')" |
||||
return 2 |
||||
fi |
||||
|
||||
# install extensions |
||||
while read -r line; do |
||||
"${VSCODE_BINARY[@]}" --install-extension "$line" |
||||
done < vscode/extensions |
||||
|
||||
# backup settings/keybinds files, then create symlinks |
||||
# TODO: do the same for snippets dir files |
||||
for file in settings.json keybindings.json; do |
||||
source="$( dirname "$(readlink -f "${BASH_SOURCE[0]}")" )/vscode/$file" |
||||
target="$VSCODE_CONFIG_PATH/$file" |
||||
if [[ -h "$target" ]] && [[ "$source" == "$(readlink -f "$target")" ]]; then |
||||
echo "Skipping '$source' -> '$target' link as it is already linked" |
||||
elif [[ -f "$target" ]]; then |
||||
mv "$target" "$target.bak" |
||||
echo "Backed up existing $file to $target.bak" |
||||
else |
||||
ln -sv "$source" "$target" |
||||
fi |
||||
done |
@ -0,0 +1,2 @@ |
||||
EditorConfig.EditorConfig |
||||
timonwong.shellcheck |
@ -0,0 +1,47 @@ |
||||
// Place your key bindings in this file to override the defaults |
||||
[ |
||||
{ |
||||
"key": "ctrl+shift+tab", |
||||
"command": "-workbench.action.quickOpenLeastRecentlyUsedEditorInGroup", |
||||
"when": "!activeEditorGroupEmpty", |
||||
}, |
||||
{ |
||||
"key": "ctrl+shift+tab", |
||||
"command": "-workbench.action.quickOpenNavigatePreviousInEditorPicker", |
||||
"when": "inEditorsPicker && inQuickOpen", |
||||
}, |
||||
{ |
||||
"key": "ctrl+shift+tab", |
||||
"command": "workbench.action.previousEditor", |
||||
}, |
||||
{ |
||||
"key": "ctrl+tab", |
||||
"command": "-workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup", |
||||
"when": "!activeEditorGroupEmpty", |
||||
}, |
||||
{ |
||||
"key": "ctrl+tab", |
||||
"command": "-workbench.action.quickOpenNavigateNextInEditorPicker", |
||||
"when": "inEditorsPicker && inQuickOpen", |
||||
}, |
||||
{ |
||||
"key": "ctrl+tab", |
||||
"command": "workbench.action.nextEditor", |
||||
}, |
||||
{ |
||||
"key": "ctrl+shift+alt+,", |
||||
"command": "workbench.action.openSettingsJson", |
||||
}, |
||||
{ |
||||
"key": "ctrl+shift+cmd+,", |
||||
"command": "workbench.action.openSettingsJson", |
||||
}, |
||||
{ |
||||
"key": "ctrl+shift+alt+.", |
||||
"command": "workbench.action.openGlobalKeybindingsFile", |
||||
}, |
||||
{ |
||||
"key": "ctrl+shift+cmd+.", |
||||
"command": "workbench.action.openGlobalKeybindingsFile", |
||||
}, |
||||
] |
@ -0,0 +1,34 @@ |
||||
{ |
||||
// custom settings |
||||
"terminal.integrated.defaultProfile.linux": "bash", |
||||
"terminal.integrated.profiles.linux": { |
||||
"bash": { |
||||
"path": "/usr/bin/flatpak-spawn", |
||||
"args": ["--host", "--env=TERM=xterm-256color", "/bin/bash"] |
||||
}, |
||||
}, |
||||
|
||||
// settings managed by VS Code UI changes, etc. |
||||
"diffEditor.ignoreTrimWhitespace": false, |
||||
"editor.fontFamily": "'Fira Code', 'Droid Sans Mono', 'Courier New', Menlo, Monaco, Consolas, monospace, 'Droid Sans Fallback'", |
||||
"editor.fontLigatures": true, |
||||
"editor.insertSpaces": false, |
||||
"editor.minimap.maxColumn": 100, |
||||
"editor.renderWhitespace": "all", |
||||
"editor.tabSize": 4, |
||||
"explorer.autoReveal": false, |
||||
"explorer.confirmDragAndDrop": false, |
||||
"files.autoSave": "afterDelay", |
||||
"files.enableTrash": false, |
||||
"html.autoCreateQuotes": false, |
||||
"python.analysis.typeCheckingMode": "strict", |
||||
"workbench.startupEditor": "none", |
||||
"[markdown]": { |
||||
"editor.rulers": [120], |
||||
"editor.wordWrap": "off", |
||||
}, |
||||
"[shellscript]": { |
||||
"editor.tabSize": 2, |
||||
"files.eol": "\n", |
||||
}, |
||||
} |
Loading…
Reference in new issue