From 0c251971a13393502405eb5d3edb8fe156d0983f Mon Sep 17 00:00:00 2001 From: Paul Aumann Date: Fri, 23 Feb 2024 11:49:48 +0100 Subject: [PATCH] vscode --- .nanorc => nano/.nanorc | 0 .tmux.conf => tmux/.tmux.conf | 0 vscode/keybindings.json | 130 ++++++++++++++++++++++++++ vscode/settings.json | 99 ++++++++++++++++++++ vscode/snippets/gbs.code-snippets | 68 ++++++++++++++ vscode/snippets/markdown.json | 15 +++ vscode/snippets/py-main.code-snippets | 49 ++++++++++ vscode/snippets/tsx.code-snippets | 40 ++++++++ 8 files changed, 401 insertions(+) rename .nanorc => nano/.nanorc (100%) rename .tmux.conf => tmux/.tmux.conf (100%) create mode 100644 vscode/keybindings.json create mode 100644 vscode/settings.json create mode 100644 vscode/snippets/gbs.code-snippets create mode 100644 vscode/snippets/markdown.json create mode 100644 vscode/snippets/py-main.code-snippets create mode 100644 vscode/snippets/tsx.code-snippets diff --git a/.nanorc b/nano/.nanorc similarity index 100% rename from .nanorc rename to nano/.nanorc diff --git a/.tmux.conf b/tmux/.tmux.conf similarity index 100% rename from .tmux.conf rename to tmux/.tmux.conf diff --git a/vscode/keybindings.json b/vscode/keybindings.json new file mode 100644 index 0000000..0842559 --- /dev/null +++ b/vscode/keybindings.json @@ -0,0 +1,130 @@ +// Place your key bindings in this file to override the defaultsauto[] +[ + { + "key": "cmd+d", + "command": "-editor.action.addSelectionToNextFindMatch", + "when": "editorFocus" + }, + { + "key": "cmd+d", + "command": "editor.action.copyLinesDownAction", + "when": "editorTextFocus && !editorReadonly" + }, + { + "key": "shift+alt+down", + "command": "-editor.action.copyLinesDownAction", + "when": "editorTextFocus && !editorReadonly" + }, + { + "key": "ctrl+a shift+7", + "command": "workbench.action.splitEditorRight" + }, + { + "key": "ctrl+a -", + "command": "workbench.action.splitEditorDown" + }, + { + "key": "ctrl+a left", + "command": "workbench.action.focusLeftGroup" + }, + { + "key": "ctrl+a up", + "command": "workbench.action.focusAboveGroup" + }, + { + "key": "ctrl+a down", + "command": "workbench.action.focusBelowGroup" + }, + { + "key": "ctrl+a right", + "command": "workbench.action.focusRightGroup" + }, + { + "key": "cmd+t", + "command": "-workbench.action.showAllSymbols" + }, + { + "key": "cmd+t", + "command": "workbench.action.createTerminalEditor" + }, + { + "key": "cmd+u", + "command": "-cursorUndo", + "when": "textInputFocus" + }, + { + "key": "cmd+u", + "command": "workbench.action.showAllSymbols" + }, + { + "key": "ctrl+a shift+down", + "command": "workbench.action.moveActiveEditorGroupDown" + }, + { + "key": "cmd+k down", + "command": "-workbench.action.moveActiveEditorGroupDown" + }, + { + "key": "ctrl+a shift+left", + "command": "workbench.action.moveActiveEditorGroupLeft" + }, + { + "key": "cmd+k left", + "command": "-workbench.action.moveActiveEditorGroupLeft" + }, + { + "key": "ctrl+a shift+right", + "command": "workbench.action.moveActiveEditorGroupRight" + }, + { + "key": "cmd+k right", + "command": "-workbench.action.moveActiveEditorGroupRight" + }, + { + "key": "ctrl+a shift+up", + "command": "workbench.action.moveActiveEditorGroupUp" + }, + { + "key": "cmd+k up", + "command": "-workbench.action.moveActiveEditorGroupUp" + }, + { + "key": "alt+enter", + "command": "-notebook.cell.executeAndInsertBelow", + "when": "notebookCellListFocused && notebookCellType == 'markup' || notebookCellListFocused && notebookMissingKernelExtension && !notebookCellExecuting && notebookCellType == 'code' || notebookCellListFocused && !notebookCellExecuting && notebookCellType == 'code' && notebookKernelCount > 0 || notebookCellListFocused && !notebookCellExecuting && notebookCellType == 'code' && notebookKernelSourceCount > 0" + }, + { + "key": "alt+enter", + "command": "-debug.openBreakpointToSide", + "when": "breakpointsFocused" + }, + { + "key": "ctrl+a f", + "command": "workbench.files.action.focusFilesExplorer" + }, + { + "key": "cmd+n", + "command": "explorer.newFile", + "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus" + }, + { + "key": "cmd+d", + "command": "explorer.newFolder", + "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus" + }, + { + "key": "shift+cmd+r", + "command": "editor.action.rename", + "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly" + }, + { + "key": "f2", + "command": "-editor.action.rename", + "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly" + }, + { + "key": "shift+cmd+r", + "command": "-rerunSearchEditorSearch", + "when": "inSearchEditor" + } +] \ No newline at end of file diff --git a/vscode/settings.json b/vscode/settings.json new file mode 100644 index 0000000..9fcacdf --- /dev/null +++ b/vscode/settings.json @@ -0,0 +1,99 @@ +{ + // + // Appearance + "workbench.colorTheme": "Monokai Pro (Filter Octagon)", + "workbench.iconTheme": "Monokai Pro (Filter Octagon) Icons", + "editor.fontFamily": "Fira Code, Menlo, Monaco, 'Courier New', monospace", + "editor.fontSize": 18, + "editor.fontWeight": "normal", + "editor.fontLigatures": true, + "editor.stickyScroll.enabled": true, + "editor.minimap.renderCharacters": false, + "editor.suggestSelection": "first", + "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", + // + // Excluded files and directories + "files.exclude": { + "**/.classpath": true, + "**/.project": true, + "**/.settings": true, + "**/.factorypath": true + }, + "files.watcherExclude": { + "**/.bloop": true, + "**/.metals": true, + "**/.ammonite": true + }, + // + // Settings Sync + "settingsSync.ignoredSettings": [ + "sshfs.configs", + "editor.fontFamily" + ], + // + // Various settings + "explorer.confirmDragAndDrop": false, + "workbench.startupEditor": "none", + "security.workspace.trust.untrustedFiles": "open", + "emmet.showExpandedAbbreviation": "never", + // + // Remote SSH + "remote.SSH.remotePlatform": { + "lab-pc07": "linux", + "lab-pc28": "linux", + "lab-pc01": "linux", + "wasteside": "linux", + "sralab": "linux" + }, + "remote.SSH.serverInstallPath": { + "sralab": "/srv/scratch/paul.aumann", + "lab-pc00": "/srv/scratch/paul.aumann", + "lab-pc44": "/srv/scratch/paul.aumann", + }, + // + // Python + "python.languageServer": "Default", + "[python]": { + "editor.formatOnSave": true, + "editor.rulers": [ + 120 + ], + "editor.defaultFormatter": "ms-python.black-formatter", + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit" + } + }, + "black-formatter.args": [ + "--line-length", + "120" + ], + // + // Jupyter Notebooks + "notebook.cellToolbarLocation": { + "default": "right", + "jupyter-notebook": "left" + }, + "workbench.editorAssociations": { + "*.ipynb": "jupyter-notebook" + }, + // + // R + "r.lsp.diagnostics": false, + // + // JSON + "[json][jsonc]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "prettier.singleQuote": true, + // + // Webdev + "[typescript][typescriptreact][javascript][html]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true, + "editor.indentSize": "tabSize", + "editor.tabSize": 2, + "emmet.showAbbreviationSuggestions": false, + "editor.linkedEditing": true, + }, + "workbench.editor.showTabs": "none", +} \ No newline at end of file diff --git a/vscode/snippets/gbs.code-snippets b/vscode/snippets/gbs.code-snippets new file mode 100644 index 0000000..7653fe6 --- /dev/null +++ b/vscode/snippets/gbs.code-snippets @@ -0,0 +1,68 @@ +{ + /* + Die Snippets ermöglichen es euch, anstelle von den Kommentaren einfach die Abkürzungen zu verwenden. + Wenn ihr also zum Beispiel im C-Code die Punkte anmerken wollt, navigiert an die entsprechende Stelle und + tippt dort das Kürzel "pkt" ein. Die VSCode-Autovervollständigung schlägt dann das entsprechende Snippet vor. + + Mit TAB kann man dann durch die Eingabefelder ($1, $2) navigieren. + */ + "PUNKTE C" : { + "scope" : "c", + "prefix" : "pkt", + "body": ["// PUNKTE: $1"] + }, + "PUNKTE" : { + "scope" : "plaintext,markdown", + "prefix" : "pkt", + "body" : ["PUNKTE: $1"] + }, + "ANMERKUNG C" : { + "scope": "c", + "prefix": "anm", + "body" : ["// ANMERKUNG: $1"] + }, + "multiline ANMERKUNG C" : { + "scope" : "c", + "prefix": "manm", + "body" : ["/* ANMERKUNG:", "\t$1", "*/"] + }, + "ANMERKUNG" : { + "scope": "plaintext,markdown", + "prefix": "anm", + "body" : ["ANMERKUNG: $1"] + }, + "KORREKTUR C" : { + "scope" : "c", + "prefix": "krk", + "body" : ["// KORREKTUR: $1 (-$2P)"] + }, + "multiline KORREKTUR C" : { + "scope" : "c", + "prefix": "mkrk", + "body" : ["/* KORREKTUR:", "\t$1 (-$2P)", "*/"] + }, + "KORREKTUR" : { + "scope" : "plaintext,markdown", + "prefix": "krk", + "body" : ["KORREKTUR: $1 (-$2P)"] + }, + "change to multiline KORREKTUR c" : { + "scope" : "c", + "prefix" : "cmkrk", + "body" : [ + "\n/* KORREKTUR:", + "\t${TM_CURRENT_LINE/.+KORREKTUR: (.*) \\(-P\\) .*/$1/}", + "\t(-$2P)", + "*/" + ] + }, + "change to multiline ANMERKUNG c" : { + "scope" : "c", + "prefix" : "cmanm", + "body" : [ + "\n/* ANMERKUNG:", + "\t${TM_CURRENT_LINE/.+ANMERKUNG: (.*) c.*/$1/}", + "*/" + ] + } +} \ No newline at end of file diff --git a/vscode/snippets/markdown.json b/vscode/snippets/markdown.json new file mode 100644 index 0000000..875ca79 --- /dev/null +++ b/vscode/snippets/markdown.json @@ -0,0 +1,15 @@ +{ + // Place your snippets for markdown here. Each snippet is defined under a snippet name and has a prefix, body and + // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the + // same ids are connected. + // Example: + // "Print to console": { + // "prefix": "log", + // "body": [ + // "console.log('$1');", + // "$2" + // ], + // "description": "Log output to console" + // } +} \ No newline at end of file diff --git a/vscode/snippets/py-main.code-snippets b/vscode/snippets/py-main.code-snippets new file mode 100644 index 0000000..4222c05 --- /dev/null +++ b/vscode/snippets/py-main.code-snippets @@ -0,0 +1,49 @@ +{ + // Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and + // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope + // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is + // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. + // Placeholders with the same ids are connected. + // Example: + // "Print to console": { + // "scope": "javascript,typescript", + // "prefix": "log", + // "body": [ + // "console.log('$1');", + // "$2" + // ], + // "description": "Log output to console" + // } + "python main method" : { + "scope": "python", + "prefix": "pymain", + "body": [ + "if __name__ == \"__main__\":", + "\t" + ], + "description": "Add a main method." + }, + "python argparse" : { + "scope": "python", + "prefix": "ap", + "body": [ + "import argparse", + "", + "if __name__ == \"__main__\":", + "\t", + "\tparser = argparse.ArgumentParser()", + "\targs = parser.parse_args()" + ] + }, + "python argparse add argument" : { + "scope": "python", + "prefix": "apadd", + "body": "parser.add_argument(\"${1:-o}\", dest=\"${2:o}\", type=${3:str}, help=\"${4:option}\")" + }, + "python shebang" : { + "scope": "python", + "prefix": "sb", + "body": "#!/usr/bin/python3" + } +} \ No newline at end of file diff --git a/vscode/snippets/tsx.code-snippets b/vscode/snippets/tsx.code-snippets new file mode 100644 index 0000000..f63a0b5 --- /dev/null +++ b/vscode/snippets/tsx.code-snippets @@ -0,0 +1,40 @@ +{ + // Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and + // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope + // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is + // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. + // Placeholders with the same ids are connected. + // Example: + // "Print to console": { + // "scope": "javascript,typescript", + // "prefix": "log", + // "body": [ + // "console.log('$1');", + // "$2" + // ], + // "description": "Log output to console" + // } + "boilerplate" : { + "scope" : "typescriptreact", + "prefix" : "bp", + "body" : [ + "import { Typography } from \"@mui/material\";", + "" + "type Props = {};", + "", + "export default function $1({}: Props){", + "\treturn TODO;" + "}" + ] + }, + "grid-item" : { + "scope" : "typescriptreact", + "prefix" : "gi", + "body" : [ + "", + "\t$2", + "" + ] + } +} \ No newline at end of file