Files
dotfiles/cursor/settings.json

400 lines
11 KiB
JSON

{
//
// ===========================================================================
// Theme
// ===========================================================================
//
"workbench.colorTheme": "One Dark Pro",
"workbench.iconTheme": "material-icon-theme",
//
// ===========================================================================
// Editor
// ===========================================================================
//
"editor.fontFamily": "'Menlo Nerd Font Mono', 'Menlo Nerd Font', Menlo, Monaco, 'Courier New', monospace",
"editor.fontLigatures": false,
"editor.fontWeight": "normal",
"editor.fontSize": 12,
"editor.renderWhitespace": "boundary",
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.rulers": [
80,
100,
120
],
"editor.semanticHighlighting.enabled": true,
"editor.accessibilitySupport": "off",
"editor.minimap.enabled": true,
//
// ===========================================================================
// Git
// ===========================================================================
//
"git.blame.editorDecoration.enabled": true,
//
// ===========================================================================
// Files
// ===========================================================================
//
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
//
// ===========================================================================
// Cursor
// ===========================================================================
//
"cursor.aipreview.enabled": true,
"cursor.cpp.enablePartialAccepts": true,
"cursor.diffs.useCharacterLevelDiffs": true,
"cursor.terminal.usePreviewBox": true,
"cursor.general.enableShadowWorkspace": true,
//
// ===========================================================================
// Window
// ===========================================================================
//
"window.nativeFullScreen": false,
"window.commandCenter": true,
//
// ===========================================================================
// Testing
// ===========================================================================
//
"testing.automaticallyOpenTestResults": "neverOpen",
//
// ===========================================================================
// Terminal
// ===========================================================================
//
"terminal.integrated.persistentSessionScrollback": 1000,
"terminal.integrated.scrollback": 10000,
//
// ===========================================================================
// Awesome Emacs Keybindings
// ===========================================================================
// Extension URL:
// - https://marketplace.visualstudio.com/items?itemName=tuttieee.emacs-mcx
//
"emacs-mcx.emacsLikeTab": true,
"emacs-mcx.killRingMax": 120,
"emacs-mcx.markRingMax": 32,
//
// ===========================================================================
// File Browser
// ===========================================================================
// Extension URL:
// - https://marketplace.visualstudio.com/items?itemName=bodil.file-browser
//
"file-browser.hideDotfiles": false,
"file-browser.labelIgnoredFiles": true,
//
// ===========================================================================
// Project Manager
// ===========================================================================
// Extension URL:
// - https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager
//
"projectManager.git.baseFolders": [
"~/Projects",
"~/.dotfiles",
"~/.config"
],
"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"
],
//
// ===========================================================================
// Go
// ===========================================================================
// Extensions:
// - https://marketplace.visualstudio.com/items?itemName=golang.go
// - https://marketplace.visualstudio.com/items?itemName=gofenix.go-lines
//
"go-lines.lineLength": 120,
"go.coverOnSingleTest": true,
"go.coverShowCounts": true,
"go.formatTool": "gofumpt",
"go.inlayHints.constantValues": true,
"go.lintOnSave": "workspace",
"go.lintTool": "golangci-lint",
"go.testExplorer.packageDisplayMode": "nested",
"go.testExplorer.showDynamicSubtestsInEditor": true,
"go.testFlags": [
"-count=1"
],
"go.useLanguageServer": true,
"gopls": {
"ui.diagnostic.analyses": {
"shadow": true
},
"ui.diagnostic.staticcheck": true
},
//
// ===========================================================================
// JSON
// ===========================================================================
//
"[json]": {
"editor.insertSpaces": true,
"editor.tabSize": 2
},
//
// ===========================================================================
// 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,
//
// ===========================================================================
// Ruby
// ===========================================================================
// - https://marketplace.visualstudio.com/items?itemName=Shopify.ruby-extensions-pack
// - https://marketplace.visualstudio.com/items?itemName=connorshea.vscode-ruby-test-adapter
//
"[ruby]": {
"editor.defaultFormatter": "Shopify.ruby-lsp",
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.insertSpaces": true,
"editor.tabSize": 2
},
//
// ===========================================================================
// Shellscript
// ===========================================================================
//
"[shellscript]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
},
"[sh]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
},
"[zsh]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
},
// ===========================================================================
// YAML
// ===========================================================================
// Extensions:
// - https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml
// - https://marketplace.visualstudio.com/items?itemName=arahata.linter-actionlint
//
"redhat.telemetry.enabled": false,
//
// ===========================================================================
// Makefile
// ===========================================================================
//
"makefile.configureOnOpen": false,
//
// ===========================================================================
// vscode-color-picker
// ===========================================================================
// Extension URL:
// - https://marketplace.visualstudio.com/items?itemName=AntiAntiSepticeye.vscode-color-picker
//
"vscode-color-picker.languages": [
"css",
"go",
"javascript",
"less",
"postcss",
"python",
"ruby",
"sass",
"scss",
"sss",
"stylus",
"svg",
"typescript",
"xml"
],
//
// ===========================================================================
// Macros
// ===========================================================================
// Extension URL:
// - https://marketplace.visualstudio.com/items?itemName=ctf0.macros
//
"macros.list": {
//
// 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"
]
}
}