Compare commits

...

5 Commits

2 changed files with 353 additions and 0 deletions

View File

@ -0,0 +1,250 @@
// Place your key bindings in this file to override the defaults
[
// Remove undesired defaults
{
"key": "ctrl+\\",
"command": "-workbench.action.splitEditor"
},
{
"key": "ctrl+k ctrl+\\",
"command": "-workbench.action.splitEditorOrthogonal"
},
{
"key": "ctrl+k ctrl+\\",
"command": "-workbench.action.splitEditorLeft"
},
{
"key": "ctrl+k ctrl+\\",
"command": "-workbench.action.splitEditorUp"
},
{
"key": "ctrl+k ctrl+\\",
"command": "-workbench.action.splitEditorDown"
},
{
"key": "ctrl+k ctrl+\\",
"command": "-workbench.action.splitEditorRight"
},
{
"key": "ctrl+k ctrl+left",
"command": "-workbench.action.focusLeftGroup"
},
{
"key": "ctrl+k ctrl+right",
"command": "-workbench.action.focusRightGroup"
},
{
"key": "ctrl+k ctrl+up",
"command": "-workbench.action.focusAboveGroup"
},
{
"key": "ctrl+k ctrl+down",
"command": "-workbench.action.focusBelowGroup"
},
{
"key": "ctrl+shift+`",
"command": "-workbench.action.terminal.new",
"when": "terminalProcessSupported || terminalWebExtensionContributedProfile"
},
{
"key": "ctrl+t",
"command": "-workbench.action.showAllSymbols"
},
{
"key": "ctrl+j",
"command": "-workbench.action.togglePanel"
},
{
"key": "ctrl+`",
"command": "-workbench.action.terminal.toggleTerminal",
"when": "terminal.active"
},
{
"key": "ctrl+p",
"command": "-extension.vim_ctrl+p",
"when": "editorTextFocus && vim.active && vim.use<C-p> && !inDebugRepl || vim.active && vim.use<C-p> && !inDebugRepl && vim.mode == 'CommandlineInProgress' || vim.active && vim.use<C-p> && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
},
{
"key": "ctrl+h",
"command": "-extension.vim_ctrl+h",
"when": "editorTextFocus && vim.active && vim.use<C-h> && !inDebugRepl"
},
{
"key": "ctrl+l",
"command": "-extension.vim_navigateCtrlL",
"when": "editorTextFocus && vim.active && vim.use<C-l> && !inDebugRepl"
},
// Editing
{
"key": "shift+k",
"command": "editor.action.showHover",
"when": "editorTextFocus"
},
// Editor pane navigation and management
{
"key": "ctrl+k",
"command": "workbench.action.focusAboveGroup",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "ctrl+j",
"command": "workbench.action.focusBelowGroup",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "ctrl+h",
"command": "workbench.action.focusLeftGroup",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "ctrl+l",
"command": "workbench.action.focusRightGroup",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "ctrl+b shift+5",
"command": "workbench.action.newGroupRight",
"when": "editorTextFocus"
},
{
"key": "ctrl+b shift+'",
"command": "workbench.action.newGroupBelow",
"when": "editorTextFocus"
},
{
"key": "ctrl+b z",
"command": "workbench.action.toggleEditorWidths",
"when": "editorTextFocus"
},
// Terminal Tmux pane navigation and management
{
"key": "ctrl+t",
"command": "workbench.action.terminal.toggleTerminal",
"when": "terminal.active"
},
{
"key": "ctrl+shift+`",
"command": "workbench.action.toggleMaximizedPanel"
},
// These escape codes allow sending keyboard shortcuts to tmux
// when normally vs-code would not send any chorded keyboard shortcuts.
// It also is setup so that these keyboard shortcuts work in both the editor
// and the terminal, but have different commands.
// Resources:
// - https://code.visualstudio.com/docs/terminal/advanced#_custom-sequence-keybindings
// - https://stackoverflow.com/questions/61742559/need-vscode-sendsequence-keybindings-for-previous-command-next-command-move-to
// - https://gist.github.com/riipandi/2f304a1cbf7615a8f912473b5f4a7cc3
// - `showkey -a`
{
"key": "ctrl+b p",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u0070"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b n",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u006e"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b d",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u0064"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b up",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u001b[A"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b down",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u001b[B"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b left",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u001b[D"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b right",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u001b[C"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b shift+5",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u0025"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b shift+'",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u0022"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b ,",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u002c"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b shift+;",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u003a"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b c",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u0063"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b [",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u005b"
},
"when": "terminalFocus"
},
{
"key": "ctrl+b z",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0002\u007a"
},
"when": "terminalFocus"
}
]

103
vs-code/user-settings.json Normal file
View File

@ -0,0 +1,103 @@
{
// Languages
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[templ]": {
"editor.defaultFormatter": "a-h.templ"
},
"[typescript]": {
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"emmet.includeLanguages": {
"templ": "html"
},
"go.buildTags": "unit",
"go.toolsManagement.autoUpdate": true,
"gopls": {
"build.buildFlags": [
"-tags=unit"
]
},
"javascript.updateImportsOnFileMove.enabled": "always",
"tailwindCSS.includeLanguages": {
"templ": "html"
},
"typescript.updateImportsOnFileMove.enabled": "always",
// Remote Settings
"dev.containers.dockerPath": "docker",
"dev.containers.executeInWSL": true,
"dotfiles.installCommand": "install.sh",
"dotfiles.repository": "https://github.com/tgrosinger/dotfiles.git",
"dotfiles.targetPath": "~/.dotfiles",
// Fonts and Appearance
"editor.fontFamily": "JetBrainsMono Nerd Font, JetBrains Mono, 'Courier New', monospace",
"editor.fontLigatures": true,
// Editor Behavior
"diffEditor.experimental.showMoves": true,
"editor.accessibilitySupport": "off",
"editor.formatOnSave": true,
"editor.guides.bracketPairs": "active",
"editor.lineNumbers": "relative",
"editor.linkedEditing": true,
"editor.minimap.enabled": false,
"editor.renderWhitespace": "trailing",
"editor.stickyScroll.enabled": true,
"editor.wordWrap": "off",
"files.associations": {
"*.gohtml": "html"
},
"git.ignoreMissingGitWarning": true,
"githubPullRequests.pullBranch": "never",
"githubPullRequests.terminalLinksHandler": "github",
// GitLens
"gitlens.advanced.telemetry.enabled": false,
"gitlens.hovers.currentLine.over": "line",
"gitlens.telemetry.enabled": false,
"remote.autoForwardPortsSource": "hybrid",
"remote.containers.dotfiles.installCommand": "install.sh",
"remote.containers.dotfiles.repository": "https://github.com/tgrosinger/dotfiles.git",
"remote.containers.dotfiles.targetPath": "~/.dotfiles",
"scm.workingSets.enabled": true,
"settingsSync.ignoredExtensions": [
"bradlc.vscode-tailwindcss"
],
// Telemetry
"telemetry.telemetryLevel": "off",
"workbench.enableExperiments": false,
"workbench.settings.enableNaturalLanguageSearch": false,
"extensions.ignoreRecommendations": true,
// Vim
"vim.leader": " ",
"vim.normalModeKeyBindings": [
{
"before": [
"leader",
"n"
],
"commands": [
"editor.action.rename"
]
}
],
// Window
"window.newWindowDimensions": "inherit",
"workbench.colorTheme": "Visual Studio Light",
"workbench.editor.empty.hint": "hidden",
"workbench.sideBar.location": "right"
}