Skip to content

Instantly share code, notes, and snippets.

@ShayanTheNerd
Last active September 8, 2025 20:02
Show Gist options
  • Save ShayanTheNerd/ccdef0870ffbf72534a9f668ed56443d to your computer and use it in GitHub Desktop.
Save ShayanTheNerd/ccdef0870ffbf72534a9f668ed56443d to your computer and use it in GitHub Desktop.
VS Code settings, keyboard shortcuts, snippets, and extensions
root = true
[*]
charset = utf-8
indent_size = 2
end_of_line = lf
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
{
"recommendations": [
"astro-build.astro-vscode",
"naumovs.color-highlight",
"vunguyentuan.vscode-css-variables",
"pucelle.vscode-css-navigation",
"rexebin.dracula",
"usernamehw.errorlens",
"dbaeumer.vscode-eslint",
"github.copilot",
"gitHub.copilot-chat",
"SanjulaGanepola.github-local-actions",
"eamodio.gitlens",
"antfu.iconify",
"ritwickdey.liveserver",
"nuxtr.nuxtr-vscode",
"oxc.oxc-vscode",
"ms-playwright.playwright",
"csstools.postcss",
"esbenp.prettier-vscode",
"MylesMurphy.prettify-ts",
"YoavBls.pretty-ts-errors",
"bradlc.vscode-tailwindcss",
"rangav.vscode-thunder-client",
"jgclark.vscode-todo-highlight",
"chakrounanas.turbo-console-log",
"vitest.explorer",
"vscode-icons-team.vscode-icons",
"vue.volar",
"wakatime.vscode-wakatime"
]
}
[
/*** Open Settings & Keybindings (JSON) ***/
{
"key": "cmd+,",
"command": "workbench.action.openSettingsJson"
},
{
"key": "ctrl+,",
"command": "workbench.action.openGlobalKeybindingsFile"
},
/*** GitHub Copilot's Chat Panel ***/
{
"key": "cmd+shift+i",
"command": "workbench.action.chat.openAsk",
"when": "config.chat.agent.enabled && !chatSetupDisabled && !chatSetupHidden && !chat.agent.visible"
},
{
"key": "cmd+shift+i",
"command": "workbench.action.toggleAuxiliaryBar",
"when": "auxiliaryBarVisible"
},
{
"key": "cmd+shift+i",
"command": "workbench.action.focusAuxiliaryBar",
"when": "auxiliaryBarVisible && !chatInputHasFocus"
},
{
"key": "ctrl+f",
"command": "workbench.action.toggleMaximizedAuxiliaryBar",
"when": "auxiliaryBarFocus"
},
{
"key": "cmd+n",
"command": "workbench.action.chat.newChat",
"when": "chatEditingParticipantRegistered && chatIsEnabled && inChat"
},
/*** Create New File & Folder ***/
{
"key": "cmd+n",
"command": "explorer.newFile",
"when": "filesExplorerFocus"
},
{
"key": "cmd+shift+n",
"command": "explorer.newFolder",
"when": "filesExplorerFocus"
},
/*** Format The Document ***/
{
"key": "ctrl+shift+f",
"command": "editor.action.formatDocument",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+f",
"command": "prettier.forceFormatDocument",
"when": "editorTextFocus && !editorReadonly &&"
},
/*** Tailwind: Sort Selection ***/
{
"key": "ctrl+shift+s",
"command": "tailwindCSS.sortSelection",
"when": "editorHasSelection && tailwindCSS.activeTextEditorSupportsClassSorting"
},
/*** Reset Zoom ***/
{
"key": "ctrl+escape",
"command": "workbench.action.zoomReset"
},
/*** Terminal Panel ***/
{
"key": "cmd+t",
"command": "workbench.action.togglePanel"
},
{
"key": "cmd+n",
"command": "workbench.action.terminal.new",
"when": "terminal.visible && !filesExplorerFocus && !inChat"
},
{
"key": "cmd+shift+w",
"command": "workbench.action.terminal.killAll",
"when": "terminal.visible && !filesExplorerFocus && !editorFocus"
},
{
"key": "ctrl+f",
"command": "runCommands",
"args": {
"commands": ["workbench.action.toggleMaximizedPanel", "terminal.focus"]
},
"when": "terminal.visible && !filesExplorerFocus"
},
{
"key": "cmd+shift+k",
"command": "workbench.action.terminal.kill",
"when": "terminal.visible && !filesExplorerFocus"
},
{
"key": "cmd+k",
"command": "runCommands",
"args": {
"commands": ["workbench.action.terminal.clear", "terminal.focus"]
},
"when": "terminal.visible && !filesExplorerFocus"
},
/*** Redo Previous Action ***/
{
"key": "cmd+r",
"command": "redo",
"when": "editorTextFocus && !editorReadonly"
},
/*** Search ***/
{
"key": "cmd+f",
"command": "actions.find",
"when": "editorFocus"
},
{
"key": "cmd+f",
"command": "list.find",
"when": "filesExplorerFocus"
},
/*** Toggle Comment ***/
{
"key": "cmd+/",
"command": "editor.action.commentLine",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "cmd+shift+/",
"command": "editor.action.blockComment",
"when": "editorTextFocus && !editorReadonly"
},
/*** Duplicate & Delete Current Line ***/
{
"key": "cmd+d",
"command": "editor.action.copyLinesUpAction",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "cmd+backspace",
"command": "editor.action.deleteLines",
"when": "textInputFocus && !editorReadonly"
},
/*** Insert Single Backtick ***/
{
"key": "`",
"args": { "snippet": "`" },
"command": "editor.action.insertSnippet",
"when": "editorTextFocus && !editorReadonly && !editorHasSelection"
},
/*** Add Selection To Next/Previous Match ***/
{
"key": "ctrl+shift+n",
"command": "editor.action.addSelectionToNextFindMatch",
"when": "editorTextFocus && !editorReadonly && editorHasSelection"
},
{
"key": "ctrl+shift+p",
"command": "editor.action.addSelectionToPreviousFindMatch",
"when": "editorTextFocus && !editorReadonly && editorHasSelection"
},
/*** Go to Definition ***/
{
"key": "ctrl+enter",
"command": "editor.action.revealDefinition",
"when": "editorHasDefinitionProvider && editorTextFocus"
},
/*** `console.log()` ***/
{
"key": "cmd+shift+l",
"command": "turboConsoleLog.displayLogMessage",
"when": "editorTextFocus && !editorReadonly"
},
/*** Disable Default Shortcuts ***/
{
"key": "ctrl+shift+d",
"command": "-workbench.view.debug"
},
{
"key": "ctrl+shift+.",
"command": "-breadcrumbs.toggleToOn"
},
{
"key": "ctrl+shift+.",
"command": "-breadcrumbs.focusAndSelect"
},
{
"key": "cmd+shift+n",
"command": "-workbench.action.newWindow"
},
{
"key": "ctrl+shift+l",
"command": "-editor.action.selectHighlights"
},
{
"key": "ctrl+shift+l",
"command": "-selectAllSearchEditorMatches"
},
{
"key": "ctrl+shift+l",
"command": "-addCursorsAtSearchResults"
},
{
"key": "ctrl+shift+m",
"command": "-workbench.actions.view.problems"
},
{
"key": "cmd+n",
"command": "-workbench.action.files.newUntitledFile"
},
{
"key": "ctrl+r",
"command": "-workbench.action.quickOpenNavigateNextInRecentFilesPicker"
},
{
"key": "shift+alt+up",
"command": "-editor.action.copyLinesUpAction",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "shift+alt+down",
"command": "-editor.action.copyLinesDownAction",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "cmd+escape",
"command": "-workbench.action.chat.cancel"
},
{
"key": "cmd+numpad0",
"command": "-workbench.action.zoomReset"
},
{
"key": "ctrl+cmd+f",
"command": "-workbench.action.toggleFullScreen",
"when": "!isIOS"
},
{
"key": "ctrl+k",
"command": "-deleteAllRight",
"when": "textInputFocus && !editorReadonly"
},
{
"key": "shift+cmd+i",
"command": "-workbench.action.chat.openAgent",
"when": "config.chat.agent.enabled && !chatSetupDisabled && !chatSetupHidden"
},
{
"key": "cmd+n",
"command": "-chatEditor.action.undoHunk",
"when": "chatEdits.hasEditorModifications && editorFocus && !chatEdits.isRequestInProgress || chatEdits.hasEditorModifications && notebookCellListFocused && !chatEdits.isRequestInProgress"
},
{
"key": "ctrl+l",
"command": "-workbench.action.chat.newChat",
"when": "chatEditingParticipantRegistered && chatIsEnabled && inChat"
},
{
"key": "ctrl+t",
"command": "-editor.action.transposeLetters",
"when": "textInputFocus && !editorReadonly"
},
{
"key": "ctrl+`",
"command": "-workbench.action.terminal.toggleTerminal",
"when": "terminal.active"
},
{
"key": "cmd+j",
"command": "-workbench.action.togglePanel"
},
{
"key": "ctrl+shift+`",
"command": "-workbench.action.terminal.new",
"when": "terminalProcessSupported || terminalWebExtensionContributedProfile"
},
{
"key": "cmd+t",
"command": "-workbench.action.showAllSymbols"
},
{
"key": "cmd+k",
"command": "-workbench.debug.panel.action.clearReplAction",
"when": "focusedView == 'workbench.panel.repl.view'"
},
{
"key": "shift+cmd+k",
"command": "-editor.action.deleteLines",
"when": "textInputFocus && !editorReadonly"
},
{
"key": "cmd+k cmd+t",
"command": "-workbench.action.selectTheme"
},
{
"key": "shift+cmd+.",
"command": "-breadcrumbs.focusAndSelect",
"when": "breadcrumbsPossible && breadcrumbsVisible"
},
{
"key": "shift+cmd+.",
"command": "-breadcrumbs.toggleToOn",
"when": "!config.breadcrumbs.enabled"
},
{
"key": "cmd+\\",
"command": "-workbench.action.terminal.split",
"when": "terminalFocus && terminalProcessSupported || terminalFocus && terminalWebExtensionContributedProfile"
},
{
"key": "cmd+\\",
"command": "-workbench.action.splitEditor"
},
{
"key": "cmd+\\",
"command": "-workbench.action.terminal.splitActiveTab",
"when": "terminalProcessSupported && terminalTabsFocus"
},
{
"key": "cmd+k cmd+k",
"command": "-editor.action.defineKeybinding",
"when": "resource == 'vscode-userdata:/Users/shayan/Library/Application%20Support/Code/User/profiles/773034d9/keybindings.json'"
},
{
"key": "cmd+2",
"command": "-workbench.action.focusSecondEditorGroup"
},
{
"key": "shift+alt+p",
"command": "-turboConsoleLog.activateTurboProBundle",
"when": "editorTextFocus"
},
{
"key": "f5",
"command": "-workbench.action.debug.continue",
"when": "debugState == 'stopped'"
},
{
"key": "f5",
"command": "-debug.openView",
"when": "!debuggersAvailable"
},
{
"key": "f5",
"command": "-workbench.action.debug.start",
"when": "debuggersAvailable && debugState == 'inactive'"
}
]
{
/*** WINDOW ***/
"window.zoomLevel": 1,
/*** EXPLORER ***/
"explorer.autoReveal": true,
"explorer.compactFolders": false,
"explorer.confirmDragAndDrop": false,
/*** WORKBENCH ***/
"workbench.sideBar.location": "right",
"workbench.iconTheme": "vscode-icons",
"workbench.list.smoothScrolling": true,
"workbench.navigationControl.enabled": false,
"workbench.settings.showAISearchToggle": true,
"workbench.editor.untitled.labelFormat": "name",
"workbench.colorTheme": "Darcula - WebStorm Edition",
"workbench.editorAssociations": {
"*.svg": "default"
},
"workbench.colorCustomizations": {
"editor.foreground": "#d1d1d1",
"editor.selectionBackground": "#1e3f60",
"editor.findMatchBackground": "#264F78"
},
/*** FILES ***/
"files.eol": "\n",
"files.autoSaveDelay": 500,
"files.simpleDialog.enable": true,
"files.trimTrailingWhitespace": true,
"files.associations": {
"*.mdx": "markdown",
"*.{svg,xml}": "html",
".gitmessage": "git-commit",
"*.code-snippets": "snippets",
"{.editorconfig,.gitattributes}": "properties"
},
/*** EDITOR ***/
/* Typography */
"editor.fontSize": 14,
"editor.lineHeight": 30,
"editor.letterSpacing": 0.25,
"editor.scrollOnMiddleClick": true,
"editor.renderFinalNewline": "dimmed",
"editor.emptySelectionClipboard": false,
"editor.maxTokenizationLineLength": 2000,
"editor.unicodeHighlight.ambiguousCharacters": false,
"editor.wordSeparators": "`~!@#$%^&*()[]{}-–—=+\\|;:'\",.<>/?“”«»",
"editor.bracketPairColorization.independentColorPoolPerBracketType": true,
"editor.fontLigatures": "'calt', 'ss01', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss10', 'ss11'",
"editor.fontFamily": "Maple Mono NF, SeriousShanns Nerd Font, Comic Mono, Comic Shanns Mono, Dubai",
/* Indentation */
"editor.tabSize": 2,
"editor.glyphMargin": false,
"editor.insertSpaces": false,
"editor.wordWrapColumn": 120,
"editor.wrappingIndent": "indent",
"editor.detectIndentation": false,
"editor.lineDecorationsWidth": 10,
"editor.wordWrap": "wordWrapColumn",
"editor.renderWhitespace": "trailing",
"editor.showFoldingControls": "always",
/* Smart Suggestion */
"editor.quickSuggestionsDelay": 0,
"editor.suggest.localityBonus": true,
"editor.snippetSuggestions": "inline",
"editor.tabCompletion": "onlySnippets",
"editor.acceptSuggestionOnEnter": "smart",
"editor.suggestSelection": "recentlyUsedByPrefix",
"emmet.syntaxProfiles": {
"postcss": "css",
"tailwindcss": "css"
},
"emmet.excludeLanguages": [],
"emmet.includeLanguages": {
"md": "html",
"markdown": "html"
},
"editor.quickSuggestions": {
"other": true,
"strings": true,
"comments": true
},
/* Formatting */
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.sort.json": "never",
"source.sortImports": "never",
"source.organizeImports": "never",
"source.fixAll.oxc": "explicit",
"source.fixAll.eslint": "explicit"
},
// Diff Editor
"diffEditor.maxFileSize": 0,
"diffEditor.ignoreTrimWhitespace": true,
/* Miscellaneous */
"breadcrumbs.enabled": false,
"editor.linkedEditing": true,
"editor.minimap.enabled": false,
"editor.cursorBlinking": "expand",
"editor.accessibilitySupport": "off",
"editor.stickyScroll.enabled": false,
"search.searchView.keywordSuggestions": true,
"search.searchView.semanticSearchBehavior": "auto",
"editor.smartSelect.selectLeadingAndTrailingWhitespace": false,
"editor.pasteAs.preferences": ["text.updateImports.jsts", "html"],
/*** TERMINAL ***/
"terminal.integrated.fontSize": 13,
"terminal.integrated.lineHeight": 1.5,
"terminal.integrated.letterSpacing": 2,
"terminal.integrated.cursorStyle": "line",
"terminal.integrated.suggest.enabled": true,
"terminal.integrated.smoothScrolling": true,
"terminal.integrated.stickyScroll.enabled": true,
"terminal.integrated.fontLigatures.enabled": true,
"terminal.integrated.enableMultiLinePasteWarning": "never",
"terminal.integrated.fontFamily": "Maple Mono NF, SeriousShanns Nerd Font",
"terminal.integrated.fontLigatures.featureSettings": "'calt', 'ss01', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss10', 'ss11'",
"terminal.integrated.suggest.quickSuggestions": {
"unknown": "on",
"commands": "on",
"arguments": "on"
},
/*** TOOLS & LANGUAGES ***/
/* JavaScript & TypeScript */
"js/ts.implicitProjectConfig.target": "ESNext",
"javascript.preferences.quoteStyle": "single",
"typescript.preferences.quoteStyle": "single",
"javascript.referencesCodeLens.enabled": true,
"typescript.referencesCodeLens.enabled": true,
"javascript.suggest.completeFunctionCalls": true,
"typescript.suggest.completeFunctionCalls": true,
"typescript.implementationsCodeLens.enabled": true,
"javascript.updateImportsOnFileMove.enabled": "always",
"typescript.updateImportsOnFileMove.enabled": "always",
"javascript.referencesCodeLens.showOnAllFunctions": true,
"typescript.referencesCodeLens.showOnAllFunctions": true,
"typescript.preferences.preferTypeOnlyAutoImports": true,
"javascript.preferences.importModuleSpecifierEnding": "js",
"typescript.preferences.importModuleSpecifierEnding": "js",
"javascript.inlayHints.functionLikeReturnTypes.enabled": true,
"typescript.inlayHints.functionLikeReturnTypes.enabled": true,
"javascript.preferences.importModuleSpecifier": "non-relative",
/* Git */
"git.autofetch": true,
"git.mergeEditor": true,
"git.confirmSync": false,
"git.rebaseWhenSync": true,
"git.enableSmartCommit": true,
"git.enableCommitSigning": true,
"git.openRepositoryInParentFolders": "always",
"[git-commit]": {
"editor.rulers": [50, 72]
},
/* Markdown */
"markdown.validate.enabled": true,
"markdown.occurrencesHighlight.enabled": true,
/* CSS */
"css.lint.unknownAtRules": "ignore",
"css.lint.fontFaceProperties": "error",
"css.format.spaceAroundSelectorSeparator": true,
/*** EXTENSIONS ***/
"extensions.experimental.deferredStartupFinishedActivation": true,
/* Color Highlight */
"color-highlight.matchWords": true,
/* CSS Navigation */
"CSSNavigation.searchAcrossWorkspaceFolders": true,
"CSSNavigation.activeHTMLFileExtensions": ["html", "jsx", "tsx", "mdx", "astro", "vue", "php", "py"],
/* Error Lens */
"errorLens.ignoreUntitled": true,
"errorLens.enableOnDiffView": true,
"errorLens.gutterIconsEnabled": true,
"errorLens.statusBarIconsUseBackground": false,
"errorLens.respectUpstreamEnabled": { "statusBar": true },
"errorLens.gutterEmoji": {
"hint": "🟩",
"info": "🟦",
"error": "🟥",
"warning": "🟨"
},
"errorLens.editorHoverPartsEnabled": {
"buttonsEnabled": true,
"messageEnabled": true,
"sourceCodeEnabled": true
},
/* ESLint */
"eslint.run": "onSave",
"eslint.format.enable": true,
"eslint.ignoreUntitled": true,
"eslint.lintTask.enable": true,
/* GitHub Copilot */
"chat.math.enabled": true,
"inlineChat.enableV2": true,
"inlineChat.hideOnRequest": true,
"chat.todoListTool.enabled": true,
"github.copilot.chat.scopeSelection": true,
"github.copilot.chat.codesearch.enabled": true,
"github.copilot.chat.agent.thinkingTool": true,
"github.copilot.nextEditSuggestions.fixes": true,
"github.copilot.chat.generateTests.codeLens": true,
"github.copilot.nextEditSuggestions.enabled": false,
"github.copilot.chat.edits.temporalContext.enabled": true,
"github.copilot.chat.editor.temporalContext.enabled": true,
"github.copilot.chat.enableRetryAfterFilteredResponse": true,
"github.copilot.chat.languageContext.typescript.enabled": true,
"github.copilot.chat.languageContext.fix.typescript.enabled": true,
"github.copilot.chat.languageContext.inline.typescript.enabled": true,
"github.copilot.advanced": {
"useLanguageServer": true
},
"github.copilot.enable": {
"*": true,
"yaml": true,
"scminput": true,
"markdown": true,
"plaintext": true
},
/* GitHub Local Actions */
"githubLocalActions.dockerDesktopPath": "/Applications/Docker.app",
/* GitLens */
"gitlens.graph.minimap.enabled": false,
"gitlens.codeLens.authors.enabled": false,
"gitlens.codeLens.recentChange.enabled": false,
"gitlens.graph.minimap.additionalTypes": ["localBranches", "stashes", "remoteBranches", "pullRequests", "tags"],
/* Iconify IntelliSense */
"iconify.inplace": false,
/* Live Server */
"liveServer.settings.wait": 0,
"liveServer.settings.port": 5000,
"liveServer.settings.donotVerifyTags": true,
"liveServer.settings.donotShowInfoMsg": true,
/* Nuxtr */
"nuxtr.vueFiles.firstTag": "script",
"nuxtr.openItemsAfterCreation": true,
"nuxtr.vueFiles.style.addStyleTag": false,
"nuxtr.vueFiles.style.alwaysScoped": true,
"nuxtr.piniaFiles.defaultTemplate": "setup",
/* Oxc */
"oxc.lint.run": "onSave",
/* Prettier */
"prettier.useTabs": true,
"prettier.printWidth": 120,
"prettier.singleQuote": true,
"prettier.trailingComma": "all",
"prettier.jsxSingleQuote": true,
"prettier.quoteProps": "consistent",
/* Prettify TypeScript: Better Type Previews */
"prettify-ts.maxDepth": 1,
"prettify-ts.typeIndentation": 2,
"prettify-ts.maxProperties": 30,
"prettify-ts.maxUnionMembers": 30,
"prettify-ts.maxSubProperties": 30,
/* Tailwind CSS IntelliSense */
"tailwindCSS.emmetCompletions": true,
/* Todo Highlight */
"todohighlight.include": [
"**/*.txt",
"**/*.md",
"**/*.json",
"**/*.jsonc",
"**/*.yml",
"**/*.yaml",
"**/*.toml",
"**/*.svg",
"**/*.html",
"**/*.css",
"**/*.scss",
"**/*.js",
"**/*.ts",
"**/*.cjs",
"**/*.cts",
"**/*.mjs",
"**/*.mts",
"**/*.jsx",
"**/*.tsx",
"**/*.vue",
"**/*.astro",
"**/*.gql",
"**/*.graphql",
"**/*.java",
"**/.zshrc",
"**/.gitmessage",
"**/Dockerfile",
"**/.dockerignore",
"**/.oxlintrc.json",
"**/*.code-snippets"
],
"todohighlight.exclude": [
"**/*.map",
"**/*.min.*",
"**/dist/**",
"**/build/**",
"**/.nuxt/**",
"**/.next/**",
"**/.github/**",
"**/.output/**",
"**/_output/**",
"**/.vscode-test/**",
"**/node_modules/**",
"**/bower_components/**"
],
"todohighlight.defaultStyle": {
"color": "#dadada",
"borderRadius": "4px",
"backgroundColor": "#1e1e1e",
"overviewRulerColor": "transparent"
},
"todohighlight.isCaseSensitive": false,
"todohighlight.keywords": [
{
// Highlight the whole line if it contains `### ... ###`, `<!--- ... -->`, or `/*** ... ***/`.
"text": "(#{3}.*?#{3})|(\\/\\*{3}[^\\*]*\\*{3}\\/)|(<\\!-{3}[^<]*-{3}>)",
"regex": {
"pattern": "(#{3}.*?#{3})|(\\/\\*{3}[^\\*]*\\*{3}\\/)|(<\\!-{3}[^<]*-{3}>)"
},
"color": "#e6e6e6",
"isWholeLine": true,
"borderRadius": "0px",
"backgroundColor": "#3c3c3c"
},
{
// Highlight text between backticks within single-line comments (`# ...` or `// ...`).
"text": "(?<=(?:#|//).*?)`[^`\n]*`",
"regex": { "pattern": "(?<=(?:#|//).*?)`[^`\n]*`" }
},
{
// Highlight text between backticks within multi-line comments (`<!-- ... -->` or `/* ... */`).
/* It's an issue when the comment's starting signature (`<!--` or `/*`) is repeated whitin itself. */
"text": "(?<=\\/(?:\\*|\\*\\*)[^*]*?|<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^*]*?\\*\\/|[^<]*?-->)",
"regex": {
"pattern": "(?<=\\/(?:\\*|\\*\\*)[^*]*?|<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^*]*?\\*\\/|[^<]*?-->)"
}
}
],
/* Turbo Console Log */
"turboConsoleLog.quote": "`",
"turboConsoleLog.logMessageSuffix": "",
"turboConsoleLog.logMessagePrefix": "",
"turboConsoleLog.includeLineNum": true,
"turboConsoleLog.addSemicolonInTheEnd": true,
"turboConsoleLog.delimiterInsideMessage": ">",
"turboConsoleLog.insertEnclosingFunction": false,
/* VS Code Icons */
"vsicons.dontShowNewVersionMessage": true,
"vsicons.associations.files": [
{
"extensions": ["vitest.nuxt.config.ts"],
"icon": "vitest",
"filename": true
}
],
"vsicons.associations.folders": [
{ "extensions": ["content"], "icon": "docs" },
{ "extensions": ["dto", "dtos"], "icon": "model" },
{ "extensions": ["(view)", "(views)"], "icon": "view" },
{ "extensions": ["_types", "_@types"], "icon": "typings" },
{ "extensions": ["_helper", "_helpers"], "icon": "helper" },
{ "extensions": ["_util", "_utils", "_utilities"], "icon": "tools" },
{ "extensions": ["_component", "_components"], "icon": "component" },
{ "extensions": ["layout", "layouts", "_layout", "_layouts"], "icon": "mjml" }
],
/* Vue (Official) */
"vue.autoInsert.dotValue": true,
"vue.inlayHints.missingProps": true,
"vue.inlayHints.destructuredProps": true,
"vue.format.wrapAttributes": "preserve-aligned",
"vue.suggest.propNameCasing": "alwaysCamelCase",
"vue.suggest.componentNameCasing": "alwaysPascalCase"
}
{
/*** .editorconfig ***/
"Editor Configurations": {
"scope": "editorconfig,properties",
"prefix": "editorconfig",
"body": [
"root = true",
"",
"[*]",
"\tcharset = utf-8",
"\tindent_size = 2",
"\tend_of_line = lf",
"\tindent_style = tab",
"\tinsert_final_newline = true",
"\ttrim_trailing_whitespace = true",
""
]
},
/*** .gitattributes ***/
"Git Attributes": {
"scope": "gitattributes,properties",
"prefix": "gitattributes",
"body": [
"* text=auto eol=lf",
"",
]
},
/*** .gitmessage ***/
"Git Commit Message Template": {
"scope": "gitmessage,git-commit",
"prefix": "gitmessage",
"body": [
"# ====================================== Template =======================================",
"# <type>[(scope)][!]: <summary> (maximum 50 characters)",
"",
"# [body]: Explain WHY you are making this change, not HOW. (wrap lines at 72 characters)",
"",
"# [footer]",
"# Signed-off-by: <name> (<email address>)",
"# Reviewed-by: <name> (@<GitHub username>)",
"# References/Fixes: #<GitHub issue number>",
"# =======================================================================================",
"",
"",
"# =================================== Commit Message ====================================",
"",
"# =======================================================================================",
"",
"",
"# ==================================== Specification ====================================",
"# https://conventionalcommits.org - <required field> - [optional field]",
"",
"# Remember to:",
"# - not capitalize the subject line, nor end it with a period;",
"# - separate subject, body, footer, and paragraphs with a blank line;",
"# - start multi-line bullet points with 2 whitespaces followed by \"-\";",
"# - use the imperative, present tense (e.g., \"fix\" not \"fixed\" nor \"fixes\").",
"",
"# | Type | Description |",
"# | ----------- | --------------------------------------------------------------------- |",
"# | fix | Correction of bugs or issues |",
"# | feat | Introduction of a new feature |",
"# | revert | Reversion to a previous commit |",
"# | docs | Changes or additions to the documentation |",
"# | ci | Changes to CI configuration files or scripts |",
"# | style | Code style changes that don't affect functionality |",
"# | chore | Minor maintenance activities — no production code change |",
"# | refactor | Code revisions and improvements — no production code change |",
"# | test | Addition or refactoring of tests — no production code change |",
"# | build | Changes that affect the build system or external dependencies |",
"# | perf | Optimizations that improve the performance of production code |",
"# =======================================================================================",
"",
]
},
/*** tsconfig.json ***/
"TypeScript Configuration": {
"scope": "json,jsonc",
"prefix": "tsconfig",
"body": [
"{",
"\t\"compilerOptions\": {",
"\t\t\"noEmit\": true,",
"\t\t\"target\": \"esnext\",",
"\t\t\"declaration\": true,",
"\t\t\"emitDeclarationOnly\": true,",
"\t\t\"incremental\": true,",
"\t\t\"tsBuildInfoFile\": \"node_modules/.cache/.tsbuildinfo\",",
"\t\t\"module\": \"nodenext\",",
"\t\t\"moduleDetection\": \"force\",",
"\t\t\"esModuleInterop\": true,",
"\t\t\"resolveJsonModule\": true,",
"\t\t\"verbatimModuleSyntax\": true,",
"\t\t\"allowArbitraryExtensions\": true,",
"\t\t\"allowImportingTsExtensions\": true,",
"\t\t\"noUncheckedSideEffectImports\": true,",
"\t\t\"strict\": true,",
"\t\t\"checkJs\": true,",
"\t\t\"skipLibCheck\": true,",
"\t\t\"noUnusedLocals\": true,",
"\t\t\"noImplicitReturns\": true,",
"\t\t\"noImplicitOverride\": true,",
"\t\t\"erasableSyntaxOnly\": true,",
"\t\t\"noUnusedParameters\": true,",
"\t\t\"allowUnreachableCode\": false,",
"\t\t\"noUncheckedIndexedAccess\": true,",
"\t\t\"noFallthroughCasesInSwitch\": true",
"\t}",
"}"
]
},
/*** HTML ***/
"HTML Boilerplate": {
"scope": "html",
"prefix": "html-boilerplate",
"body": [
"<!DOCTYPE html>",
"<html lang=\"en\" dir=\"ltr\">",
"\t<head>",
"\t\t<meta charset=\"UTF-8\" />",
"\t\t<title>${1:Document}</title>",
"\t\t<meta name=\"color-scheme\" content=\"dark\" />",
"\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"\t</head>",
"",
"\t<body></body>",
"</html>",
"",
]
},
/*** CSS ***/
"Basic Reset": {
"scope": "css,scss,tailwindcss,vue,astro",
"prefix": "reset",
"body": [
":where(*, *::before, *::after) {",
"\tmargin: 0;",
"\tpadding: 0;",
"\tbox-sizing: border-box;",
"\tfont-family: inherit;",
"\t-webkit-font-smoothing: antialiased;",
"}",
"html {",
"\t/* By default, “1rem == 16px” and “1rem == 10px” is preferred => “10px / 16px === 0.625 === 62.5%” */",
"\t/* font-size: 62.5%; */",
"\t/* font-size: calc(1.0625rem + 0.2604vw); reference: https://jameshfisher.com/2024/03/12/a-formula-for-responsive-font-size/ */",
"\tfont-size: calc(15px + 0.390625vw); /* reference: https://matthewjamestaylor.com/responsive-font-size */",
"}",
"body {",
"\tfont-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif;",
"\tpadding: calc(8px + 1.5625vw); /* reference: https://matthewjamestaylor.com/responsive-padding */",
"\tmin-height: 100vh;",
"\tdisplay: grid;",
"\tplace-content: center;",
"\t/* color: #353535; */",
"\t/* background-color: #f5f5f5; */",
"}",
""
]
},
"Media query": {
"scope": "css,scss,tailwindcss,vue,astro",
"prefix": "media query min",
"body": ["@media screen and (min-width: $1em) {", " $0", "}"]
},
/*** JavaScript & TypeScript ***/
"Get Element By ID": {
"scope": "javascript,typescript",
"prefix": "getId",
"body": "document.getElementById('$1')$0"
},
"Get The First Element By CSS Selector": {
"scope": "javascript,typescript",
"prefix": "query",
"body": "document.querySelector('$1')$0"
},
"Get All Elements By CSS Selector": {
"scope": "javascript,typescript",
"prefix": "queryAll",
"body": "document.querySelectorAll('$1')$0"
},
"Add Class": {
"scope": "javascript,typescript",
"prefix": ".addClass",
"body": [".classList.add('$0')"]
},
"Remove Class": {
"scope": "javascript,typescript",
"prefix": ".removeClass",
"body": [".classList.remove('$0')"]
},
"Arrow Function": {
"scope": "javascript,typescript",
"prefix": "arrowFunc",
"body": "(${1:event}) => {$0}"
},
"Anonymous Function": {
"scope": "javascript,typescript",
"prefix": "anonymousFunc",
"body": ["(${1:event}) => {", " $0", "}"]
},
"IIFE (Immediately-Invoked Function Expression)": {
"scope": "javascript,typescript",
"prefix": "iife",
"body": ["(function ${1:name}(${2:event}) {", " $0", "})()"]
},
"Promise": {
"scope": "javascript,typescript",
"prefix": "promise",
"body": ["new Promise((resolve, reject) => {", " $0", "})"]
},
"Then": {
"scope": "javascript,typescript",
"prefix": ".then",
"body": [".then(response => {$0}).catch(error => {})"]
},
"Pinia Options Store Boilerplate": {
"scope": "javascript,typescript",
"prefix": "pinia-options",
"body": [
"import { defineStore, acceptHMRUpdate } from 'pinia'",
"",
"export const use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store = defineStore('$TM_FILENAME_BASE', {",
"\tstate: () => ({",
"\t\t$0",
"\t}),",
"\tgetters: {},",
"\tactions: {},",
"})",
"",
"const HMR = import.meta.hot",
"if (HMR) {",
"\tHMR.accept(acceptHMRUpdate(use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store, HMR))",
"}"
]
},
"Pinia Setup Store Boilerplate": {
"scope": "javascript,typescript",
"prefix": "pinia-setup",
"body": [
"import { defineStore, acceptHMRUpdate } from 'pinia'",
"",
"export const use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store = defineStore('$TM_FILENAME_BASE', () => {",
"\t$0",
"\treturn {}",
"})",
"",
"const HMR = import.meta.hot",
"if (HMR) {",
"\tHMR.accept(acceptHMRUpdate(use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store, HMR))",
"}"
]
},
/*** Vue ***/
"Vue SFC Boilerplate": {
"scope": "vue",
"prefix": "sfc",
"body": [
"<script setup lang=\"ts\">",
"",
"</script>",
"",
"<template>",
"\t$0",
"</template>",
"",
"<style scoped></style>"
]
},
"Vue SFC <script>": {
"scope": "vue",
"prefix": "script",
"body": [
"<script setup lang=\"ts\">",
"$0",
"</script>",
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment