mirror of
https://github.com/jimeh/.vscode.d.git
synced 2026-02-19 11:26:39 +00:00
965 lines
30 KiB
JSON
965 lines
30 KiB
JSON
{
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Appearance
|
||
// ===========================================================================
|
||
//
|
||
// Dark/Light mode detection
|
||
"window.autoDetectColorScheme": true,
|
||
"window.systemColorTheme": "auto",
|
||
//
|
||
// Theme
|
||
"workbench.colorTheme": "One Dark Pro",
|
||
"workbench.iconTheme": "material-icon-theme",
|
||
"workbench.preferredDarkColorTheme": "One Dark Pro",
|
||
"workbench.preferredLightColorTheme": "Solarized Light",
|
||
//
|
||
// One Dark Pro theme settings
|
||
"oneDarkPro.vivid": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Window
|
||
// ===========================================================================
|
||
//
|
||
"window.commandCenter": true,
|
||
"window.customTitleBarVisibility": "auto",
|
||
"window.nativeFullScreen": false, // Does not work with nativeTabs enabled.
|
||
"window.nativeTabs": true,
|
||
"window.title": "${rootName}${separator}${profileName}",
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Cursor (Text Editor)
|
||
// ===========================================================================
|
||
//
|
||
"cursor.aipreview.enabled": true,
|
||
"cursor.composer.usageSummaryDisplay": "always",
|
||
"cursor.cpp.enablePartialAccepts": true,
|
||
"cursor.diffs.useCharacterLevelDiffs": true,
|
||
"cursor.enable_agent_window_setting": true,
|
||
"cursor.general.enableShadowWorkspace": true,
|
||
"cursor.terminal.usePreviewBox": true,
|
||
"update.releaseTrack": "prerelease",
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Windsurf (Text Editor)
|
||
// ===========================================================================
|
||
//
|
||
"windsurf.autocompleteSpeed": "fast",
|
||
//
|
||
// ===========================================================================
|
||
// MARK: GitHub Copilot
|
||
// ===========================================================================
|
||
//
|
||
"github.copilot.chat.agent.thinkingTool": true,
|
||
"github.copilot.nextEditSuggestions.enabled": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Editor
|
||
// ===========================================================================
|
||
//
|
||
// Font
|
||
"editor.fontFamily": "'Menlo Nerd Font Mono', 'Menlo Nerd Font', Menlo, Monaco, 'Courier New', monospace",
|
||
"editor.fontLigatures": false,
|
||
"editor.fontWeight": "normal",
|
||
"editor.fontSize": 12,
|
||
//
|
||
// Cursor
|
||
"editor.cursorSurroundingLines": 5,
|
||
//
|
||
// Whitespace
|
||
"editor.renderWhitespace": "boundary",
|
||
//
|
||
// Formatting
|
||
"editor.formatOnSave": true,
|
||
"editor.formatOnPaste": true,
|
||
"editor.formatOnSaveMode": "file",
|
||
//
|
||
// Rulers
|
||
"editor.rulers": [
|
||
80,
|
||
100,
|
||
120
|
||
],
|
||
//
|
||
// Indentation
|
||
"editor.tabSize": 4,
|
||
"editor.indentSize": 2,
|
||
"editor.detectIndentation": true,
|
||
//
|
||
// Semantic Highlighting
|
||
"editor.semanticHighlighting.enabled": true,
|
||
//
|
||
// Minimap
|
||
"editor.minimap.enabled": true,
|
||
"editor.minimap.showSlider": "always",
|
||
//
|
||
// Modified Tabs
|
||
"workbench.editor.highlightModifiedTabs": true,
|
||
//
|
||
// Accessibility
|
||
"editor.accessibilitySupport": "off",
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Workbench
|
||
// ===========================================================================
|
||
//
|
||
// Activity Bar
|
||
"workbench.activityBar.location": "default",
|
||
"workbench.activityBar.orientation": "horizontal",
|
||
//
|
||
// Command Palette
|
||
"workbench.commandPalette.history": 250,
|
||
"workbench.commandPalette.preserveInput": true,
|
||
//
|
||
// Hover
|
||
"workbench.hover.delay": 200,
|
||
//
|
||
// Local History
|
||
"workbench.localHistory.maxFileEntries": 250,
|
||
"workbench.localHistory.maxFileSize": 512,
|
||
//
|
||
// Tree
|
||
"workbench.tree.indent": 18,
|
||
"workbench.tree.renderIndentGuides": "always",
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Explorer
|
||
// ===========================================================================
|
||
//
|
||
// I like the idea of file nesting, but in practice I find myself hating it :(
|
||
"explorer.fileNesting.enabled": false,
|
||
"explorer.fileNesting.patterns": {
|
||
"*.go": "${capture}_test.go, ${capture}_example_test.go, ${capture}_integration_test.go, ${capture}_internal_test.go",
|
||
"Brewfile": "Brewfile.lock.json",
|
||
"Gemfile": "Gemfile.lock",
|
||
"go.mod": "go.sum"
|
||
},
|
||
"explorer.sortOrder": "mixed",
|
||
"explorer.sortOrderLexicographicOptions": "unicode",
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Files
|
||
// ===========================================================================
|
||
//
|
||
// Associations
|
||
"files.associations": {
|
||
".env": "properties",
|
||
".env.*": "properties",
|
||
"gitconfig": "gitconfig",
|
||
"gitignore": "gitignore"
|
||
},
|
||
//
|
||
// Encoding
|
||
"files.autoGuessEncoding": true,
|
||
//
|
||
// Formatting
|
||
"files.insertFinalNewline": true,
|
||
"files.trimFinalNewlines": true,
|
||
"files.trimTrailingWhitespace": true,
|
||
//
|
||
// Read-only
|
||
"files.readonlyFromPermissions": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Git
|
||
// ===========================================================================
|
||
//
|
||
"git.blame.editorDecoration.enabled": true,
|
||
"scm.defaultViewMode": "tree",
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Diffs
|
||
// ===========================================================================
|
||
//
|
||
"diffEditor.ignoreTrimWhitespace": false,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Terminal
|
||
// ===========================================================================
|
||
//
|
||
"terminal.integrated.allowChords": false,
|
||
"terminal.integrated.macOptionIsMeta": true,
|
||
"terminal.integrated.persistentSessionScrollback": 1000,
|
||
"terminal.integrated.scrollback": 50000,
|
||
"terminal.integrated.sendKeybindingsToShell": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Awesome Emacs Keybindings
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=tuttieee.emacs-mcx
|
||
//
|
||
"emacs-mcx.emacsLikeTab": false, // Done via custom keybinding instead.
|
||
"emacs-mcx.killRingMax": 120,
|
||
"emacs-mcx.markRingMax": 32,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: File Browser
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=bodil.file-browser
|
||
//
|
||
"file-browser.hideDotfiles": false,
|
||
"file-browser.labelIgnoredFiles": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Spell Check
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker
|
||
//
|
||
"cSpell.checkVSCodeSystemFiles": true,
|
||
"cSpell.customDictionaries": {
|
||
// Run the `./siren <editor> config` command to symlink
|
||
// `cspell/vscode-user-dictionary.txt` into the `~/.cspell` directory.
|
||
"custom-user-dictionary": {
|
||
"name": "vscode-user-dictionary",
|
||
"path": "~/.cspell/vscode-user-dictionary.txt",
|
||
"addWords": true,
|
||
"scope": "user"
|
||
}
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Project Manager
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager
|
||
//
|
||
"projectManager.git.baseFolders": [
|
||
"~/.config",
|
||
"~/.dotfiles",
|
||
"~/Documents/Obsidian Vaults",
|
||
"~/Projects",
|
||
"~/src"
|
||
],
|
||
"projectManager.git.ignoredFolders": [
|
||
"node_modules",
|
||
"out",
|
||
"typings",
|
||
"test",
|
||
".haxelib",
|
||
"tmp",
|
||
"vendor",
|
||
"straight",
|
||
"elpaca"
|
||
],
|
||
"projectManager.any.ignoredFolders": [
|
||
"node_modules",
|
||
"out",
|
||
"typings",
|
||
"test",
|
||
"tmp",
|
||
"vendor",
|
||
"straight",
|
||
"elpaca"
|
||
],
|
||
"projectManager.hg.ignoredFolders": [
|
||
"node_modules",
|
||
"out",
|
||
"typings",
|
||
"test",
|
||
".haxelib",
|
||
"straight",
|
||
"elpaca"
|
||
],
|
||
"projectManager.svn.ignoredFolders": [
|
||
"node_modules",
|
||
"out",
|
||
"typings",
|
||
"test",
|
||
"straight",
|
||
"elpaca"
|
||
],
|
||
"projectManager.vscode.ignoredFolders": [
|
||
"node_modules",
|
||
"out",
|
||
"typings",
|
||
"test",
|
||
"straight",
|
||
"elpaca"
|
||
],
|
||
//
|
||
// ===========================================================================
|
||
// MARK: GitHub
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github
|
||
// - https://marketplace.visualstudio.com/items?itemName=GitHub.remotehub
|
||
//
|
||
"githubRepositories.autoFetch.enabled": false,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Mise (https://mise.jdx.dev/)
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=hverlin.mise-vscode
|
||
//
|
||
"mise.autoDetectMiseBinPath": false,
|
||
"mise.checkForNewMiseVersion": false,
|
||
"mise.configureExtensionsAutomatically": false,
|
||
"mise.updateOpenTerminalsEnvAutomatically": true,
|
||
// When updateEnvAutomatically is enabled, open terminals in VSCode get
|
||
// completely reset when mise installs new tools or updates. This wipes
|
||
// previous command output, and even kills any running processes you have in
|
||
// terminals.
|
||
"mise.updateEnvAutomatically": false,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Hex editor
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=ms-vscode.hexeditor
|
||
//
|
||
"workbench.editor.defaultBinaryEditor": "hexEditor.hexedit",
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Rewrap Revived
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=dnut.rewrap-revived
|
||
//
|
||
// Enable auto-wrap by default. In programming languages it only applies to
|
||
// comments.
|
||
"rewrap.autoWrap.enabled": true,
|
||
// Only wrap the current paragraph when triggering rewrap with alt+q within a
|
||
// comment.
|
||
"rewrap.wholeComment": false,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Periscope
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=joshmu.periscope
|
||
//
|
||
"periscope.rgGlobExcludes": [
|
||
"**/.bundle/**",
|
||
"**/.git/**",
|
||
"**/.log/**",
|
||
"**/.log/**",
|
||
"**/.yarn/**",
|
||
"**/.yarn/**",
|
||
"**/dist/**",
|
||
"**/node_modules/**",
|
||
"**/straight/**",
|
||
"**/vendor/**",
|
||
"*.cjs",
|
||
"*.cts",
|
||
"*.log",
|
||
"*.min-latest.css",
|
||
"*.min-latest.js",
|
||
"*.min.css",
|
||
"*.min.js",
|
||
"*.sql",
|
||
"*.test"
|
||
],
|
||
"periscope.rgMenuActions": [
|
||
{
|
||
"label": "Go",
|
||
"value": "--type-add 'go:go.{mod,work}' -t go"
|
||
},
|
||
{
|
||
"label": "JSON",
|
||
"value": "-t json"
|
||
},
|
||
{
|
||
"label": "JS/TS",
|
||
"value": "--type-add 'jsts:*.{js,ts,tsx,jsx}' -t jsts"
|
||
},
|
||
{
|
||
"label": "Ruby",
|
||
"value": "-t ruby"
|
||
},
|
||
{
|
||
"label": "Rust",
|
||
"value": "-t rust"
|
||
},
|
||
{
|
||
"label": "TOML",
|
||
"value": "-t toml"
|
||
},
|
||
{
|
||
"label": "YAML",
|
||
"value": "-t yaml"
|
||
}
|
||
],
|
||
"periscope.rgOptions": [
|
||
"--smart-case",
|
||
"--sortr path",
|
||
"--hidden"
|
||
],
|
||
"periscope.showWorkspaceFolderInFilePath": false,
|
||
"periscope.rgQueryParams": [
|
||
{
|
||
// filter the results to a folder
|
||
// Query: "redis -m module1"
|
||
// After: "rg 'redis' --iglob '**/*module1*/**'"
|
||
"regex": "^(.+) -m ([\\w-_\/]+)$",
|
||
"param": "--iglob '**/*$1*/**'"
|
||
},
|
||
{
|
||
// filter the results to a folder and filetype
|
||
// Query: "redis -m module1 yaml"
|
||
// After: "rg 'redis' --iglob '**/*module1*/**/*.yaml'"
|
||
"regex": "^(.+) -m ([\\w-_\/]+) ([\\w]+)$",
|
||
"param": "--iglob '**/*$1*/**/*.$2'"
|
||
},
|
||
{
|
||
// filter the results that match a glob
|
||
// Query: "redis -g *module"
|
||
// After: "rg 'redis' -g '*module'"
|
||
"regex": "^(.+) -g (.+)$",
|
||
"param": "-g '$1'"
|
||
},
|
||
{
|
||
// filter the results that match a glob
|
||
// Query: "redis -ig *module"
|
||
// After: "rg 'redis' -iglob '*module'"
|
||
"regex": "^(.+) -ig (.+)$",
|
||
"param": "--iglob '$1'"
|
||
},
|
||
{
|
||
// filter the results to rg filetypes
|
||
// Query: "redis -t yaml"
|
||
// After: "rg 'redis' -t yaml"
|
||
"regex": "^(.+) -t ?(\\w+)$",
|
||
"param": "-t $1"
|
||
},
|
||
{
|
||
// filter the results that match a file extension through a glob
|
||
// Query: redis *.rs => rg 'redis' -iglob '*.rs'
|
||
"regex": "^(.+) \\*\\.(\\w+)$",
|
||
"param": "--iglob '*.$1'"
|
||
}
|
||
],
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Prettier
|
||
// ===========================================================================
|
||
//
|
||
"prettier.resolveGlobalModules": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: CSS
|
||
// ===========================================================================
|
||
//
|
||
"[css]": {
|
||
"editor.insertSpaces": true,
|
||
"editor.tabSize": 2,
|
||
"editor.defaultFormatter": "vscode.css-language-features"
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: Dockerfile
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker
|
||
//
|
||
"[dockerfile]": {
|
||
"editor.defaultFormatter": "ms-azuretools.vscode-containers"
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: Go
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=golang.go
|
||
// - https://marketplace.visualstudio.com/items?itemName=gofenix.go-lines
|
||
//
|
||
"[go]": {
|
||
"editor.tabSize": 4
|
||
},
|
||
"go-lines.lineLength": 120,
|
||
"go.coverageDecorator": {
|
||
"type": "gutter",
|
||
"coveredGutterStyle": "verticalblue",
|
||
"uncoveredGutterStyle": "verticalyellow"
|
||
},
|
||
"go.diagnostic.vulncheck": "Imports",
|
||
"go.disableConcurrentTests": true,
|
||
"go.editorContextMenuCommands": {
|
||
"testFile": true,
|
||
"testPackage": true,
|
||
"fillStruct": true
|
||
},
|
||
"go.formatTool": "gofumpt",
|
||
"go.inlayHints.constantValues": true,
|
||
"go.lintOnSave": "workspace",
|
||
"go.lintTool": "golangci-lint-v2",
|
||
"go.testExplorer.packageDisplayMode": "nested",
|
||
"go.testExplorer.showDynamicSubtestsInEditor": true,
|
||
"go.testFlags": [
|
||
"-count=1"
|
||
],
|
||
"go.testTimeout": "90s",
|
||
"go.toolsManagement.autoUpdate": false,
|
||
"go.useLanguageServer": true,
|
||
"gopls": {
|
||
"formatting.gofumpt": true,
|
||
"ui.diagnostic.analyses": {
|
||
"shadow": true
|
||
},
|
||
"ui.diagnostic.staticcheck": true
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: Helm Template
|
||
// ===========================================================================
|
||
//
|
||
"[helm]": {
|
||
"editor.tabSize": 2
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: HTML
|
||
// ===========================================================================
|
||
//
|
||
"[html]": {
|
||
"editor.insertSpaces": true,
|
||
"editor.tabSize": 2
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: JSON
|
||
// ===========================================================================
|
||
//
|
||
"[json][jsonc]": {
|
||
"editor.insertSpaces": true,
|
||
"editor.tabSize": 2
|
||
},
|
||
"[json]": {
|
||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||
},
|
||
"[jsonc]": {
|
||
"editor.defaultFormatter": "vscode.json-language-features"
|
||
},
|
||
"json.schemas": [
|
||
{ // Release Please config
|
||
"fileMatch": [
|
||
"/**/release-please-config.json"
|
||
],
|
||
"url": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
|
||
},
|
||
{ // Release Please manifest
|
||
"fileMatch": [
|
||
"/**/.release-please-manifest.json",
|
||
"/**/release-please-manifest.json"
|
||
],
|
||
"url": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/manifest.json"
|
||
}
|
||
],
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: JavaScript
|
||
// ===========================================================================
|
||
//
|
||
"[javascript]": {
|
||
"editor.insertSpaces": true,
|
||
"editor.tabSize": 2
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: TypeScript
|
||
// ===========================================================================
|
||
//
|
||
"[typescript]": {
|
||
"editor.defaultFormatter": "vscode.typescript-language-features",
|
||
"editor.insertSpaces": true,
|
||
"editor.tabSize": 2
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: Lua
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=sumneko.lua
|
||
//
|
||
"Lua.codeLens.enable": true,
|
||
"Lua.diagnostics.globals": [
|
||
// Hammerspoon
|
||
"hs",
|
||
"spoon"
|
||
],
|
||
"Lua.diagnostics.workspaceEvent": "OnChange",
|
||
"Lua.hint.enable": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: Makefile
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=carlos-algms.make-task-provider
|
||
//
|
||
"[makefile]": {
|
||
"editor.tabSize": 4,
|
||
"editor.insertSpaces": true
|
||
},
|
||
"makefile.configureOnOpen": false,
|
||
"make-task-provider.telemetry": false,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: Markdown
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint
|
||
//
|
||
"[markdown]": {
|
||
"editor.tabSize": 4,
|
||
"editor.indentSize": 2,
|
||
"editor.detectIndentation": false,
|
||
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
|
||
},
|
||
"markdownlint.configFile": "~/.markdownlint.yaml",
|
||
"markdownlint.config": {
|
||
"no-hard-tabs": { // MD010
|
||
"ignore_code_languages": [
|
||
"caddyfile",
|
||
"go",
|
||
"makefile"
|
||
]
|
||
},
|
||
"blanks-around-fences": { // MD031
|
||
"list_items": false
|
||
}
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: Ruby
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=Shopify.ruby-extensions-pack
|
||
// - https://marketplace.visualstudio.com/items?itemName=connorshea.vscode-ruby-test-adapter
|
||
// - https://marketplace.visualstudio.com/items?itemName=dewski.simplecov
|
||
//
|
||
"[ruby][erb]": {
|
||
"editor.defaultFormatter": "Shopify.ruby-lsp",
|
||
"editor.tabSize": 2,
|
||
"editor.insertSpaces": true
|
||
},
|
||
"[ruby]": {
|
||
"editor.formatOnSave": true,
|
||
"editor.formatOnType": true
|
||
},
|
||
// Ruby LSP
|
||
"rubyLsp.featureFlags": {
|
||
"fullTestDiscovery": false
|
||
},
|
||
"rubyLsp.rubyVersionManager": {
|
||
"identifier": "auto"
|
||
},
|
||
// Ruby Test Explorer
|
||
"rubyTestExplorer.logpanel": false,
|
||
// Use mise to execute ruby test explorer bundler commands to ensure correct
|
||
// version of Ruby is used.
|
||
"rubyTestExplorer.minitestCommand": "mise x -- bundle exec rake",
|
||
"rubyTestExplorer.rspecCommand": "mise x -- bundle exec rspec",
|
||
"simplecov-vscode.enabled": false,
|
||
"simplecov.coverageDecorator": {
|
||
"type": "gutter",
|
||
"coveredGutterStyle": "verticalblue",
|
||
"uncoveredGutterStyle": "verticalyellow",
|
||
"uncoveredBranchGutterStyle": "verticalyellow"
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: Shellscript
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=mads-hartmann.bash-ide-vscode
|
||
//
|
||
"[shellscript][sh][zsh]": {
|
||
"editor.tabSize": 2,
|
||
"editor.insertSpaces": true
|
||
},
|
||
"bashIde.enableSourceErrorDiagnostics": true,
|
||
"bashIde.shfmt.caseIndent": true,
|
||
"bashIde.shfmt.spaceRedirects": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Lang: YAML
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml
|
||
// - https://marketplace.visualstudio.com/items?itemName=arahata.linter-actionlint
|
||
//
|
||
"redhat.telemetry.enabled": false,
|
||
"[yaml][github-actions-workflow]": {
|
||
"editor.defaultFormatter": "redhat.vscode-yaml",
|
||
"editor.tabSize": 2,
|
||
"editor.insertSpaces": true
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Sort Lines
|
||
// ===========================================================================
|
||
// Extensions:
|
||
// - https://marketplace.visualstudio.com/items?itemName=Tyriar.sort-lines
|
||
//
|
||
"sortLines.filterBlankLines": true,
|
||
"sortLines.ignoreUnselectedLastLine": true,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Text Tables
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=RomanPeshkov.vscode-text-tables
|
||
//
|
||
"text-tables.showStatus": false,
|
||
//
|
||
// ===========================================================================
|
||
// MARK: vscode-color-picker
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=AntiAntiSepticeye.vscode-color-picker
|
||
//
|
||
"vscode-color-picker.languages": [
|
||
"go",
|
||
"javascript",
|
||
"less",
|
||
"postcss",
|
||
"python",
|
||
"ruby",
|
||
"sss",
|
||
"stylus",
|
||
"svg",
|
||
"typescript",
|
||
"xml"
|
||
],
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Run on Save callbacks
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=emeraldwalk.RunOnSave
|
||
//
|
||
"emeraldwalk.runonsave": {
|
||
"commands": [
|
||
{ // Automatically chmod +x script files (first two bytes are `#!`).
|
||
"match": ".*",
|
||
"cmd": "if [ ! -x \"${file}\" ] && head -n 1 \"${file}\" | grep -q '^#!'; then echo \"Marking ${relativeFile} as executable...\" && chmod +x \"${file}\"; fi"
|
||
}
|
||
]
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Settings Cycle
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=hoovercj.vscode-settings-cycler
|
||
//
|
||
"settings.cycle": [
|
||
{
|
||
"id": "commandCenter",
|
||
"overrideWorkspaceSettings": false,
|
||
"values": [
|
||
{
|
||
"window.customTitleBarVisibility": "auto"
|
||
},
|
||
{
|
||
"window.customTitleBarVisibility": "never"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Excalidraw
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor
|
||
//
|
||
"excalidraw.theme": "auto",
|
||
"excalidraw.image": {
|
||
"exportScale": 2,
|
||
"exportWithBackground": true,
|
||
"exportWithDarkMode": true
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Command aliases
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=ArturoDent.command-alias
|
||
//
|
||
"command aliases": {
|
||
"git.branchFrom": "gcb (Git: Create Branch from...)",
|
||
"git.checkout": "gco (Git: Checkout to...)",
|
||
"git.cloneRecursive": "gcl (Git: Clone Recursive)",
|
||
"git.fetch": "gf (Git: Fetch)",
|
||
"git.fetchPrune": "gfp (Git: Fetch Prune)",
|
||
"git.pullRebase": "gp (Git: Pull Rebase)",
|
||
"git.push": "gpu (Git: Push)",
|
||
"git.renameBranch": "grb (Git: Rename Branch)",
|
||
"git.stash": "gs (Git: Stash)",
|
||
"git.stashApply": "gas (Git: Apply Stash...)",
|
||
"git.stashIncludeUntracked": "gsu (Git: Stash Include Untracked)",
|
||
"git.stashPop": "gps (Git: Pop Stash...)",
|
||
"git.stashStaged": "gss (Git: Stash Staged)",
|
||
"git.stashView": "gvs (Git: View Stash...)",
|
||
"macros.insertEmDash": "Insert Em Dash (—)",
|
||
"macros.insertEnDash": "Insert En Dash (–)",
|
||
"settings.cycle.commandCenter": "Toggle Command Center",
|
||
"sortLines.sortLines": "sl (Sort lines: ascending, case sensitive)", // Sort Lines - https://marketplace.visualstudio.com/items?itemName=Tyriar.sort-lines
|
||
"workbench.action.reloadWindow": "rw (Reload Window)"
|
||
},
|
||
//
|
||
// ===========================================================================
|
||
// MARK: Macros
|
||
// ===========================================================================
|
||
// Extension:
|
||
// - https://marketplace.visualstudio.com/items?itemName=ctf0.macros
|
||
//
|
||
"macros.list": {
|
||
"insertEmDash": [
|
||
{
|
||
"command": "type",
|
||
"args": {
|
||
"text": "—"
|
||
}
|
||
}
|
||
],
|
||
"insertEnDash": [
|
||
{
|
||
"command": "type",
|
||
"args": {
|
||
"text": "–"
|
||
}
|
||
}
|
||
],
|
||
//
|
||
// cycleSpacing is a basic emulation Emacs' built-in cycle-spacing command.
|
||
// It doesn't actually cycle spacing, but it performs the first step which
|
||
// is to replace all spacing surrounding the cursor with a single space.
|
||
//
|
||
"cycleSpacing": [
|
||
"emacs-mcx.deleteHorizontalSpace",
|
||
{
|
||
"command": "type",
|
||
"args": {
|
||
"text": " "
|
||
}
|
||
}
|
||
],
|
||
//
|
||
// Run test macros which re-focus back into the editor after being
|
||
// triggered. The test commands changes focus to the Test Results panel, and
|
||
// no settings I found avoids this. Hence these macros trigger relevant test
|
||
// running commands and then switches focus back to the editor.
|
||
//
|
||
// The 1 ms delay between the running tests and switch focus back allows for
|
||
// the Test Results panel to appear and steal focus before we try and focus
|
||
// back into the editor. Without the delay the focus commands runs before
|
||
// Test Results appear and steal focus.
|
||
//
|
||
"runTestCurrentFile": [
|
||
"testing.runCurrentFile",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestCoverageCurrentFile": [
|
||
"testing.coverageCurrentFile",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestAtCursor": [
|
||
"testing.runAtCursor",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestCoverageAtCursor": [
|
||
"testing.coverageAtCursor",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestAll": [
|
||
"testing.runAll",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestCoverageAll": [
|
||
"testing.coverageAll",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestReRunLastRun": [
|
||
"testing.reRunLastRun",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestCoverageLastRun": [
|
||
"testing.coverageLastRun",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestReRunFailTests": [
|
||
"testing.reRunFailTests",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestDebugFailTests": [
|
||
"testing.debugFailTests",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
],
|
||
"runTestDebugLastRun": [
|
||
"testing.debugLastRun",
|
||
{
|
||
"command": "$delay",
|
||
"args": {
|
||
"delay": 1
|
||
}
|
||
},
|
||
"workbench.action.focusActiveEditorGroup"
|
||
]
|
||
}
|
||
}
|