Skip to content

Instantly share code, notes, and snippets.

@ShayanTheNerd
Last active September 12, 2025 14:17
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.

Revisions

  1. ShayanTheNerd revised this gist Sep 12, 2025. 2 changed files with 68 additions and 20 deletions.
    31 changes: 22 additions & 9 deletions keybindings.json
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,10 @@
    [
    /*** Reload Window ***/
    {
    "key": "F5",
    "command": "workbench.action.reloadWindow"
    },

    /*** Open Settings & Keybindings (JSON) ***/
    {
    "key": "cmd+,",
    @@ -9,12 +15,21 @@
    "command": "workbench.action.openGlobalKeybindingsFile"
    },

    /*** GitHub Copilot's Chat Panel ***/
    /*** Activity Bar Panels ***/
    {
    "key": "cmd+shift+i",
    "command": "workbench.action.chat.openAsk",
    "when": "config.chat.agent.enabled && !chatSetupDisabled && !chatSetupHidden && !chat.agent.visible"
    "key": "ctrl+shift+e",
    "command": "workbench.view.explorer"
    },
    {
    "key": "ctrl+shift+s",
    "command": "workbench.view.search.focus"
    },
    {
    "key": "ctrl+shift+x",
    "command": "workbench.view.extensions"
    },

    /*** GitHub Copilot's Chat Panel ***/
    {
    "key": "cmd+shift+i",
    "command": "workbench.action.toggleAuxiliaryBar",
    @@ -39,13 +54,11 @@
    /*** Create New File & Folder ***/
    {
    "key": "cmd+n",
    "command": "explorer.newFile",
    "when": "filesExplorerFocus"
    "command": "explorer.newFile"
    },
    {
    "key": "cmd+shift+n",
    "command": "explorer.newFolder",
    "when": "filesExplorerFocus"
    "command": "explorer.newFolder"
    },

    /*** Format The Document ***/
    @@ -81,7 +94,7 @@
    {
    "key": "cmd+n",
    "command": "workbench.action.terminal.new",
    "when": "terminal.visible && !filesExplorerFocus && !inChat"
    "when": "view.terminal.visible && !filesExplorerFocus && !editorFocus"
    },
    {
    "key": "cmd+shift+w",
    57 changes: 46 additions & 11 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -1,17 +1,25 @@
    {
    /*** WINDOW ***/
    "window.zoomLevel": 1,
    "window.commandCenter": false,

    /*** EXPLORER ***/
    "explorer.autoReveal": true,
    "explorer.compactFolders": false,
    "explorer.confirmDragAndDrop": false,
    "explorer.decorations.badges": false,
    "explorer.incrementalNaming": "smart",

    /*** WORKBENCH ***/
    "workbench.tree.indent": 14.5,
    "workbench.tips.enabled": false,
    "workbench.sideBar.location": "right",
    "workbench.iconTheme": "vscode-icons",
    "workbench.list.smoothScrolling": true,
    "workbench.activityBar.location": "top",
    "workbench.layoutControl.enabled": false,
    "workbench.navigationControl.enabled": false,
    "workbench.tree.renderIndentGuides": "always",
    "workbench.settings.showAISearchToggle": true,
    "workbench.editor.untitled.labelFormat": "name",
    "workbench.colorTheme": "Darcula - WebStorm Edition",
    @@ -24,6 +32,24 @@
    "editor.findMatchBackground": "#264F78"
    },

    /*** Zen Mode ***/
    "zenMode.fullScreen": false,
    "zenMode.centerLayout": false,
    "zenMode.hideLineNumbers": false,
    "zenMode.silentNotifications": false,

    /*** Search ***/
    "search.quickOpen.includeHistory": false,
    "search.searchView.keywordSuggestions": true,
    "search.searchView.semanticSearchBehavior": "auto",
    "search.exclude": {
    "**/dist": true,
    "**/*.lock": true,
    "**/node_modules": true,
    "**/*.code-search": true,
    "**/*-lock.{yaml,json}": true
    },

    /*** FILES ***/
    "files.eol": "\n",
    "files.autoSaveDelay": 500,
    @@ -41,13 +67,11 @@
    /* Typography */
    "editor.fontSize": 14,
    "editor.lineHeight": 30,
    "editor.suggestFontSize": 13,
    "editor.letterSpacing": 0.25,
    "editor.scrollOnMiddleClick": true,
    "editor.renderFinalNewline": "dimmed",
    "editor.emptySelectionClipboard": false,
    "editor.renderLineHighlight": "all",
    "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",
    @@ -59,11 +83,18 @@
    "editor.wordWrapColumn": 120,
    "editor.wrappingIndent": "indent",
    "editor.detectIndentation": false,
    "editor.inlayHints.padding": true,
    "editor.lineDecorationsWidth": 10,
    "editor.wordWrap": "wordWrapColumn",
    "editor.renderFinalNewline": "dimmed",
    "editor.renderWhitespace": "trailing",
    "editor.showFoldingControls": "always",

    /* Selection */
    "editor.emptySelectionClipboard": false,
    "editor.smartSelect.selectLeadingAndTrailingWhitespace": false,
    "editor.wordSeparators": "`~!@#$%^&*()[]{}-–—=+\\|;:'\",.<>/?“”«»",

    /* Smart Suggestion */
    "editor.quickSuggestionsDelay": 0,
    "editor.suggest.localityBonus": true,
    @@ -101,16 +132,19 @@
    "diffEditor.maxFileSize": 0,
    "diffEditor.ignoreTrimWhitespace": true,

    /* Animations */
    "editor.smoothScrolling": true,
    "editor.cursorBlinking": "expand",
    "editor.cursorSmoothCaretAnimation": "on",

    /* Miscellaneous */
    "breadcrumbs.enabled": false,
    "editor.linkedEditing": true,
    "editor.minimap.enabled": false,
    "editor.cursorBlinking": "expand",
    "editor.accessibilitySupport": "off",
    "editor.scrollOnMiddleClick": true,
    "editor.stickyScroll.enabled": false,
    "search.searchView.keywordSuggestions": true,
    "search.searchView.semanticSearchBehavior": "auto",
    "editor.smartSelect.selectLeadingAndTrailingWhitespace": false,
    "editor.accessibilitySupport": "off",
    "references.preferredLocation": "view",
    "editor.pasteAs.preferences": ["text.updateImports.jsts", "html"],

    /*** TERMINAL ***/
    @@ -133,6 +167,7 @@

    /*** TOOLS & LANGUAGES ***/
    /* JavaScript & TypeScript */
    "typescript.tsserver.maxTsServerMemory": 4096, // 4GB
    "js/ts.implicitProjectConfig.target": "ESNext",
    "javascript.preferences.quoteStyle": "single",
    "typescript.preferences.quoteStyle": "single",
    @@ -151,6 +186,7 @@
    "javascript.inlayHints.functionLikeReturnTypes.enabled": true,
    "typescript.inlayHints.functionLikeReturnTypes.enabled": true,
    "javascript.preferences.importModuleSpecifier": "non-relative",
    "typescript.preferences.autoImportSpecifierExcludeRegexes": ["^(node:)?console$"],

    /* Git */
    "git.autofetch": true,
    @@ -208,10 +244,10 @@
    "eslint.lintTask.enable": true,

    /* GitHub Copilot */
    "chat.math.enabled": true,
    "inlineChat.enableV2": true,
    "inlineChat.hideOnRequest": true,
    "chat.todoListTool.enabled": true,
    "chat.commandCenter.enabled": false,
    "github.copilot.chat.scopeSelection": true,
    "github.copilot.chat.codesearch.enabled": true,
    "github.copilot.chat.agent.thinkingTool": true,
    @@ -220,7 +256,6 @@
    "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,
  2. ShayanTheNerd revised this gist Sep 8, 2025. 4 changed files with 121 additions and 47 deletions.
    12 changes: 6 additions & 6 deletions .editorconfig
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,9 @@
    root = true

    [*]
    charset = utf-8
    indent_size = 2
    end_of_line = lf
    indent_style = tab
    insert_final_newline = true
    trim_trailing_whitespace = true
    charset = utf-8
    indent_size = 2
    end_of_line = lf
    indent_style = tab
    insert_final_newline = true
    trim_trailing_whitespace = true
    43 changes: 24 additions & 19 deletions Snippets for Shayan.code-snippets
    Original file line number Diff line number Diff line change
    @@ -45,7 +45,7 @@
    "",
    "",
    "# =================================== Commit Message ====================================",
    "$0",
    "",
    "# =======================================================================================",
    "",
    "",
    @@ -60,23 +60,19 @@
    "",
    "# | 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",
    "# | test | addition or refactoring tests — no production code change",
    "# | router | updates related to routing, navigation, or URL management",
    "# | refactor | code revisions and improvements — no production code change",
    "# | build | changes that affect the build system or external dependencies",
    "# | perf | optimizations that improve the performance of production code",
    "# | upgrade | modifications related to version upgrades or dependency updates",
    "# | http | modifications related to HTTP requests, API calls, or data fetching",
    "# | core | fundamental changes or updates that affect the core functionalities",
    "# | i18n | modifications to translations or updating translation functionalities",
    "# ======================================================================================="
    "# | 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 |",
    "# =======================================================================================",
    "",
    ]
    },

    @@ -267,7 +263,7 @@
    "scope": "vue",
    "prefix": "sfc",
    "body": [
    "<script lang=\"ts\" setup>",
    "<script setup lang=\"ts\">",
    "",
    "</script>",
    "",
    @@ -277,5 +273,14 @@
    "",
    "<style scoped></style>"
    ]
    },
    "Vue SFC <script>": {
    "scope": "vue",
    "prefix": "script",
    "body": [
    "<script setup lang=\"ts\">",
    "$0",
    "</script>",
    ]
    }
    }
    87 changes: 75 additions & 12 deletions keybindings.json
    Original file line number Diff line number Diff line change
    @@ -79,27 +79,35 @@
    "command": "workbench.action.togglePanel"
    },
    {
    "key": "ctrl+f",
    "command": "workbench.action.toggleMaximizedPanel",
    "when": "terminalFocus"
    "key": "cmd+n",
    "command": "workbench.action.terminal.new",
    "when": "terminal.visible && !filesExplorerFocus && !inChat"
    },
    {
    "key": "cmd+k",
    "key": "cmd+shift+w",
    "command": "workbench.action.terminal.killAll",
    "when": "terminal.visible && !filesExplorerFocus && !editorFocus"
    },
    {
    "key": "ctrl+f",
    "command": "runCommands",
    "args": {
    "commands": ["workbench.action.terminal.focus", "workbench.action.terminal.clear"]
    "commands": ["workbench.action.toggleMaximizedPanel", "terminal.focus"]
    },
    "when": "view.terminal.visible"
    "when": "terminal.visible && !filesExplorerFocus"
    },
    {
    "key": "cmd+shift+k",
    "command": "workbench.action.terminal.kill",
    "when": "view.terminal.visible"
    "when": "terminal.visible && !filesExplorerFocus"
    },
    {
    "key": "cmd+n",
    "command": "workbench.action.terminal.new",
    "when": "terminalFocus"
    "key": "cmd+k",
    "command": "runCommands",
    "args": {
    "commands": ["workbench.action.terminal.clear", "terminal.focus"]
    },
    "when": "terminal.visible && !filesExplorerFocus"
    },

    /*** Redo Previous Action ***/
    @@ -109,6 +117,18 @@
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Search ***/
    {
    "key": "cmd+f",
    "command": "actions.find",
    "when": "editorFocus"
    },
    {
    "key": "cmd+f",
    "command": "list.find",
    "when": "filesExplorerFocus"
    },

    /*** Toggle Comment ***/
    {
    "key": "cmd+/",
    @@ -143,12 +163,12 @@

    /*** Add Selection To Next/Previous Match ***/
    {
    "key": "cmd+shift+n",
    "key": "ctrl+shift+n",
    "command": "editor.action.addSelectionToNextFindMatch",
    "when": "editorTextFocus && !editorReadonly && editorHasSelection"
    },
    {
    "key": "cmd+shift+p",
    "key": "ctrl+shift+p",
    "command": "editor.action.addSelectionToPreviousFindMatch",
    "when": "editorTextFocus && !editorReadonly && editorHasSelection"
    },
    @@ -297,5 +317,48 @@
    "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'"
    }
    ]
    26 changes: 16 additions & 10 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,7 @@
    "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",
    @@ -40,25 +41,25 @@
    /* Typography */
    "editor.fontSize": 14,
    "editor.lineHeight": 30,
    "editor.letterSpacing": 1,
    "editor.fontLigatures": true,
    "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.fontFamily": "SeriousShanns Nerd Font, Comic Mono, Comic Shanns Mono, Dubai",
    "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.wordWrapColumn": 120,
    "editor.insertSpaces": false,
    "editor.lineDecorationsWidth": 10,
    "editor.wordWrapColumn": 120,
    "editor.wrappingIndent": "indent",
    "editor.detectIndentation": false,
    "editor.lineDecorationsWidth": 10,
    "editor.wordWrap": "wordWrapColumn",
    "editor.renderWhitespace": "trailing",
    "editor.showFoldingControls": "always",
    @@ -93,8 +94,7 @@
    "source.sortImports": "never",
    "source.organizeImports": "never",
    "source.fixAll.oxc": "explicit",
    "source.fixAll.eslint": "explicit",
    "source.removeUnusedImports": "explicit"
    "source.fixAll.eslint": "explicit"
    },

    // Diff Editor
    @@ -116,14 +116,15 @@
    /*** TERMINAL ***/
    "terminal.integrated.fontSize": 13,
    "terminal.integrated.lineHeight": 1.5,
    "terminal.integrated.letterSpacing": 3,
    "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": "SeriousShanns Nerd Font",

    "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",
    @@ -207,8 +208,10 @@
    "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,
    @@ -217,7 +220,10 @@
    "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
    },
  3. ShayanTheNerd revised this gist Jul 25, 2025. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Snippets for Shayan.code-snippets
    Original file line number Diff line number Diff line change
    @@ -55,7 +55,7 @@
    "# 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 3 whitespaces followed by \"-\";",
    "# - start multi-line bullet points with 2 whitespaces followed by \"-\";",
    "# - use the imperative, present tense (e.g., \"fix\" not \"fixed\" nor \"fixes\").",
    "",
    "# | Type | Description |",
  4. ShayanTheNerd revised this gist Jul 25, 2025. 6 changed files with 386 additions and 176 deletions.
    12 changes: 6 additions & 6 deletions .editorconfig
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,9 @@
    root = true

    [*]
    charset = utf-8
    indent_size = 2
    end_of_line = lf
    indent_style = tab
    insert_final_newline = true
    trim_trailing_whitespace = true
    charset = utf-8
    indent_size = 2
    end_of_line = lf
    indent_style = tab
    insert_final_newline = true
    trim_trailing_whitespace = true
    235 changes: 169 additions & 66 deletions Snippets for Shayan.code-snippets
    Original file line number Diff line number Diff line change
    @@ -1,62 +1,178 @@
    {
    /*** .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 ====================================",
    "$0",
    "# =======================================================================================",
    "",
    "",
    "# ==================================== 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 3 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",
    "# | test | addition or refactoring tests — no production code change",
    "# | router | updates related to routing, navigation, or URL management",
    "# | refactor | code revisions and improvements — no production code change",
    "# | build | changes that affect the build system or external dependencies",
    "# | perf | optimizations that improve the performance of production code",
    "# | upgrade | modifications related to version upgrades or dependency updates",
    "# | http | modifications related to HTTP requests, API calls, or data fetching",
    "# | core | fundamental changes or updates that affect the core functionalities",
    "# | i18n | modifications to translations or updating translation functionalities",
    "# ======================================================================================="
    ]
    },

    /*** 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\">",
    "<head>",
    "<meta charset=\"UTF-8\" />",
    "<title>${1:Document}</title>",
    "<meta name=\"color-scheme\" content=\"dark\" />",
    "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
    "</head>",
    "",
    "<body></body>",
    "</html>"
    "\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) {",
    "margin: 0;",
    "padding: 0;",
    "box-sizing: border-box;",
    "font-family: inherit;",
    "-webkit-font-smoothing: antialiased;",
    "\tmargin: 0;",
    "\tpadding: 0;",
    "\tbox-sizing: border-box;",
    "\tfont-family: inherit;",
    "\t-webkit-font-smoothing: antialiased;",
    "}",
    "html {",
    "/* By default, “1rem == 16px” and “1rem == 10px” is preferred => “10px / 16px === 0.625 === 62.5%” */",
    "/* font-size: 62.5%; */",
    "/* font-size: calc(15px + 0.390625vw); reference: https://matthewjamestaylor.com/responsive-font-size",
    "} */",
    "font-size: calc(1.0625rem + 0.2604vw); /* reference: https://jameshfisher.com/2024/03/12/a-formula-for-responsive-font-size/ */",
    "\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 {",
    "font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif;",
    "padding: calc(8px + 1.5625vw); /* reference: https://matthewjamestaylor.com/responsive-padding */",
    "min-height: 100vh;",
    "display: grid;",
    "place-content: center;",
    "/* color: #353535; */",
    "/* background-color: #f5f5f5; */",
    "\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",
    "}"
    ]
    "body": ["@media screen and (min-width: $1em) {", " $0", "}"]
    },

    /*** JavaScript & TypeScript ***/
    "Get Element By ID": {
    "scope": "javascript,typescript",
    @@ -76,16 +192,12 @@
    "Add Class": {
    "scope": "javascript,typescript",
    "prefix": ".addClass",
    "body": [
    ".classList.add('$0')"
    ]
    "body": [".classList.add('$0')"]
    },
    "Remove Class": {
    "scope": "javascript,typescript",
    "prefix": ".removeClass",
    "body": [
    ".classList.remove('$0')"
    ]
    "body": [".classList.remove('$0')"]
    },
    "Arrow Function": {
    "scope": "javascript,typescript",
    @@ -95,36 +207,22 @@
    "Anonymous Function": {
    "scope": "javascript,typescript",
    "prefix": "anonymousFunc",
    "body": [
    "(${1:event}) => {",
    " $0",
    "}"
    ]
    "body": ["(${1:event}) => {", " $0", "}"]
    },
    "IIFE (Immediately-Invoked Function Expression)": {
    "scope": "javascript,typescript",
    "prefix": "iife",
    "body": [
    "(function ${1:name}(${2:event}) {",
    " $0",
    "})()"
    ]
    "body": ["(function ${1:name}(${2:event}) {", " $0", "})()"]
    },
    "Promise": {
    "scope": "javascript,typescript",
    "prefix": "promise",
    "body": [
    "new Promise((resolve, reject) => {",
    " $0",
    "})"
    ]
    "body": ["new Promise((resolve, reject) => {", " $0", "})"]
    },
    "Then": {
    "scope": "javascript,typescript",
    "prefix": ".then",
    "body": [
    ".then(response => {$0}).catch(error => {})"
    ]
    "body": [".then(response => {$0}).catch(error => {})"]
    },
    "Pinia Options Store Boilerplate": {
    "scope": "javascript,typescript",
    @@ -133,15 +231,17 @@
    "import { defineStore, acceptHMRUpdate } from 'pinia'",
    "",
    "export const use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store = defineStore('$TM_FILENAME_BASE', {",
    " state: () => ({",
    " $0",
    " }),",
    " getters: {},",
    " actions: {},",
    "\tstate: () => ({",
    "\t\t$0",
    "\t}),",
    "\tgetters: {},",
    "\tactions: {},",
    "})",
    "",
    "const HMR = import.meta.hot",
    "if (HMR) HMR.accept(acceptHMRUpdate(use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store, HMR))"
    "if (HMR) {",
    "\tHMR.accept(acceptHMRUpdate(use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store, HMR))",
    "}"
    ]
    },
    "Pinia Setup Store Boilerplate": {
    @@ -151,25 +251,28 @@
    "import { defineStore, acceptHMRUpdate } from 'pinia'",
    "",
    "export const use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store = defineStore('$TM_FILENAME_BASE', () => {",
    " $0",
    " return {}",
    "\t$0",
    "\treturn {}",
    "})",
    "",
    "const HMR = import.meta.hot",
    "if (HMR) HMR.accept(acceptHMRUpdate(use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store, HMR))"
    "if (HMR) {",
    "\tHMR.accept(acceptHMRUpdate(use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store, HMR))",
    "}"
    ]
    },

    /*** Vue ***/
    "Vue SFC Boilerplate": {
    "scope": "vue",
    "prefix": "vue-sfc",
    "prefix": "sfc",
    "body": [
    "<script lang=\"ts\" setup>",
    "",
    "</script>",
    "",
    "<template>",
    "$0",
    "\t$0",
    "</template>",
    "",
    "<style scoped></style>"
    56 changes: 29 additions & 27 deletions extensions.json
    Original file line number Diff line number Diff line change
    @@ -1,30 +1,32 @@
    {
    "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",
    "eamodio.gitlens",
    "antfu.iconify",
    "ritwickdey.liveserver",
    "nuxtr.nuxtr-vscode",
    "oxc.oxc-vscode",
    "ms-playwright.playwright",
    "csstools.postcss",
    "esbenp.prettier-vscode",
    "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"
    "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"
    ]
    }
    145 changes: 133 additions & 12 deletions keybindings.json
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    [
    /*** Open Settings (JSON) ***/
    /*** Open Settings & Keybindings (JSON) ***/
    {
    "key": "cmd+,",
    "command": "workbench.action.openSettingsJson"
    @@ -9,6 +9,45 @@
    "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",
    @@ -30,15 +69,37 @@

    /*** Reset Zoom ***/
    {
    "key": "cmd+escape",
    "key": "ctrl+escape",
    "command": "workbench.action.zoomReset"
    },

    /*** Kill Terminal ***/
    /*** Terminal Panel ***/
    {
    "key": "cmd+t",
    "command": "workbench.action.togglePanel"
    },
    {
    "key": "ctrl+f",
    "command": "workbench.action.toggleMaximizedPanel",
    "when": "terminalFocus"
    },
    {
    "key": "cmd+k",
    "command": "runCommands",
    "args": {
    "commands": ["workbench.action.terminal.focus", "workbench.action.terminal.clear"]
    },
    "when": "view.terminal.visible"
    },
    {
    "key": "cmd+shift+k",
    "command": "workbench.action.terminal.kill",
    "when": "terminal.visible"
    "when": "view.terminal.visible"
    },
    {
    "key": "cmd+n",
    "command": "workbench.action.terminal.new",
    "when": "terminalFocus"
    },

    /*** Redo Previous Action ***/
    @@ -60,19 +121,17 @@
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Delete Current Line ***/
    {
    "key": "cmd+backspace",
    "command": "editor.action.deleteLines",
    "when": "textInputFocus && !editorReadonly"
    },

    /*** Duplicate Current Line ***/
    /*** 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 ***/
    {
    @@ -176,5 +235,67 @@
    "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"
    }
    ]
    85 changes: 49 additions & 36 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -3,6 +3,7 @@
    "window.zoomLevel": 1,

    /*** EXPLORER ***/
    "explorer.autoReveal": true,
    "explorer.compactFolders": false,
    "explorer.confirmDragAndDrop": false,

    @@ -28,9 +29,11 @@
    "files.simpleDialog.enable": true,
    "files.trimTrailingWhitespace": true,
    "files.associations": {
    "*.svg": "html",
    "*.xml": "html",
    "*.mdx": "markdown"
    "*.mdx": "markdown",
    "*.{svg,xml}": "html",
    ".gitmessage": "git-commit",
    "*.code-snippets": "snippets",
    "{.editorconfig,.gitattributes}": "properties"
    },

    /*** EDITOR ***/
    @@ -39,23 +42,26 @@
    "editor.lineHeight": 30,
    "editor.letterSpacing": 1,
    "editor.fontLigatures": true,
    "editor.scrollOnMiddleClick": true,
    "editor.renderFinalNewline": "dimmed",
    "editor.emptySelectionClipboard": false,
    "editor.maxTokenizationLineLength": 2000,
    "editor.unicodeHighlight.ambiguousCharacters": false,
    "editor.wordSeparators": "`~!@#$%^&*()[]{}-=+\\|;:'\",.<>/?“”«»",
    "editor.wordSeparators": "`~!@#$%^&*()[]{}-–—=+\\|;:'\",.<>/?“”«»",
    "editor.bracketPairColorization.independentColorPoolPerBracketType": true,
    "editor.fontFamily": "SeriousShanns Nerd Font, Comic Mono, Comic Shanns Mono, Dubai",

    /* Indentation */
    "editor.tabSize": 2,
    "editor.wordWrapColumn": 90,
    "editor.wordWrap": "bounded",
    "editor.glyphMargin": false,
    "editor.wordWrapColumn": 120,
    "editor.insertSpaces": false,
    "editor.lineDecorationsWidth": 10,
    "editor.wrappingIndent": "indent",
    "editor.detectIndentation": false,
    "editor.wordWrap": "wordWrapColumn",
    "editor.renderWhitespace": "trailing",
    "[json][jsonc][yaml][yml][toml]": {
    "editor.wordWrapColumn": 125
    },
    "editor.showFoldingControls": "always",

    /* Smart Suggestion */
    "editor.quickSuggestionsDelay": 0,
    @@ -81,8 +87,15 @@

    /* Formatting */
    "editor.formatOnSave": true,
    "editor.showFoldingControls": "always",
    "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",
    "source.removeUnusedImports": "explicit"
    },

    // Diff Editor
    "diffEditor.maxFileSize": 0,
    @@ -110,6 +123,7 @@
    "terminal.integrated.stickyScroll.enabled": true,
    "terminal.integrated.enableMultiLinePasteWarning": "never",
    "terminal.integrated.fontFamily": "SeriousShanns Nerd Font",

    "terminal.integrated.suggest.quickSuggestions": {
    "unknown": "on",
    "commands": "on",
    @@ -166,16 +180,7 @@

    /* CSS Navigation */
    "CSSNavigation.searchAcrossWorkspaceFolders": true,
    "CSSNavigation.activeHTMLFileExtensions": [
    "html",
    "jsx",
    "tsx",
    "mdx",
    "astro",
    "vue",
    "php",
    "py"
    ],
    "CSSNavigation.activeHTMLFileExtensions": ["html", "jsx", "tsx", "mdx", "astro", "vue", "php", "py"],

    /* Error Lens */
    "errorLens.ignoreUntitled": true,
    @@ -224,17 +229,14 @@
    "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"
    ],
    "gitlens.graph.minimap.additionalTypes": ["localBranches", "stashes", "remoteBranches", "pullRequests", "tags"],

    /* Iconify IntelliSense */
    "iconify.inplace": false,
    @@ -257,12 +259,19 @@

    /* Prettier */
    "prettier.useTabs": true,
    "prettier.printWidth": 90,
    "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,

    @@ -349,6 +358,7 @@

    /* Turbo Console Log */
    "turboConsoleLog.quote": "`",
    "turboConsoleLog.logMessageSuffix": "",
    "turboConsoleLog.logMessagePrefix": "",
    "turboConsoleLog.includeLineNum": true,
    "turboConsoleLog.addSemicolonInTheEnd": true,
    @@ -358,7 +368,11 @@
    /* VS Code Icons */
    "vsicons.dontShowNewVersionMessage": true,
    "vsicons.associations.files": [
    { "extensions": ["vitest.nuxt.config.ts"], "icon": "vitest", "filename": true }
    {
    "extensions": ["vitest.nuxt.config.ts"],
    "icon": "vitest",
    "filename": true
    }
    ],
    "vsicons.associations.folders": [
    { "extensions": ["content"], "icon": "docs" },
    @@ -371,12 +385,11 @@
    { "extensions": ["layout", "layouts", "_layout", "_layouts"], "icon": "mjml" }
    ],

    /* Vue - Official */
    "vue.splitEditors.icon": true,
    /* Vue (Official) */
    "vue.autoInsert.dotValue": true,
    "vue.format.style.initialIndent": true,
    "vue.complete.casing.props": "autoCamel",
    "vue.updateImportsOnFileMove.enabled": true,
    "vue.splitEditors.layout.right": ["styles", "customBlocks"],
    "vue.splitEditors.layout.left": ["scriptSetup", "script", "template"]
    "vue.inlayHints.missingProps": true,
    "vue.inlayHints.destructuredProps": true,
    "vue.format.wrapAttributes": "preserve-aligned",
    "vue.suggest.propNameCasing": "alwaysCamelCase",
    "vue.suggest.componentNameCasing": "alwaysPascalCase"
    }
    29 changes: 0 additions & 29 deletions tsconfig.app.json
    Original file line number Diff line number Diff line change
    @@ -1,29 +0,0 @@
    {
    "compilerOptions": {
    "noEmit": true,
    "incremental": true,
    "tsBuildInfoFile": "node_modules/.tsbuildinfo",
    "moduleDetection": "force",
    "moduleResolution": "nodenext",
    "esModuleInterop": true,
    "resolveJsonModule": true,
    "verbatimModuleSyntax": true,
    "allowArbitraryExtensions": true,
    "allowImportingTsExtensions": true,
    "noUncheckedSideEffectImports": true,
    "strict": true,
    "checkJs": true,
    "skipLibCheck": true,
    "noUnusedLocals": true,
    "removeComments": true,
    "resolveJsonModule": true,
    "noImplicitReturns": true,
    "noImplicitOverride": true,
    "erasableSyntaxOnly": true,
    "noUnusedParameters": true,
    "allowUnreachableCode": false,
    "noUncheckedIndexedAccess": true,
    "noFallthroughCasesInSwitch": true,
    "exactOptionalPropertyTypes": true,
    }
    }
  5. ShayanTheNerd revised this gist Jun 26, 2025. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions tsconfig.app.json
    Original file line number Diff line number Diff line change
    @@ -3,6 +3,7 @@
    "noEmit": true,
    "incremental": true,
    "tsBuildInfoFile": "node_modules/.tsbuildinfo",
    "moduleDetection": "force",
    "moduleResolution": "nodenext",
    "esModuleInterop": true,
    "resolveJsonModule": true,
  6. ShayanTheNerd renamed this gist Jun 26, 2025. 1 changed file with 11 additions and 10 deletions.
    21 changes: 11 additions & 10 deletions tsconfig.json → tsconfig.app.json
    Original file line number Diff line number Diff line change
    @@ -1,27 +1,28 @@
    {
    "compilerOptions": {
    "strict": true,
    "noEmit": true,
    "checkJs": true,
    "target": "ESNext",
    "incremental": true,
    "module": "NodeNext",
    "noEmitOnError": true,
    "tsBuildInfoFile": "node_modules/.tsbuildinfo",
    "moduleResolution": "nodenext",
    "esModuleInterop": true,
    "resolveJsonModule": true,
    "verbatimModuleSyntax": true,
    "allowArbitraryExtensions": true,
    "allowImportingTsExtensions": true,
    "noUncheckedSideEffectImports": true,
    "strict": true,
    "checkJs": true,
    "skipLibCheck": true,
    "noUnusedLocals": true,
    "removeComments": true,
    "moduleDetection: "force",
    "resolveJsonModule": true,
    "noImplicitReturns": true,
    "noImplicitOverride": true,
    "erasableSyntaxOnly": true,
    "noUnusedParameters": true,
    "verbatimModuleSyntax": true,
    "allowUnreachableCode": false,
    "allowArbitraryExtensions": true,
    "noUncheckedIndexedAccess": true,
    "allowImportingTsExtensions": true,
    "noFallthroughCasesInSwitch": true,
    "exactOptionalPropertyTypes": true,
    "noUncheckedSideEffectImports": true
    }
    }
  7. ShayanTheNerd revised this gist Jun 15, 2025. 2 changed files with 30 additions and 11 deletions.
    15 changes: 15 additions & 0 deletions keybindings.json
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,14 @@
    [
    /*** Open Settings (JSON) ***/
    {
    "key": "cmd+,",
    "command": "workbench.action.openSettingsJson"
    },
    {
    "key": "ctrl+,",
    "command": "workbench.action.openGlobalKeybindingsFile"
    },

    /*** Format The Document ***/
    {
    "key": "ctrl+shift+f",
    @@ -161,5 +171,10 @@
    "key": "ctrl+cmd+f",
    "command": "-workbench.action.toggleFullScreen",
    "when": "!isIOS"
    },
    {
    "key": "ctrl+k",
    "command": "-deleteAllRight",
    "when": "textInputFocus && !editorReadonly"
    }
    ]
    26 changes: 15 additions & 11 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,6 @@
    {
    /*** WINDOW ***/
    "window.zoomLevel": 1,
    "breadcrumbs.enabled": false,

    /*** EXPLORER ***/
    "explorer.compactFolders": false,
    @@ -11,6 +10,7 @@
    "workbench.sideBar.location": "right",
    "workbench.iconTheme": "vscode-icons",
    "workbench.list.smoothScrolling": true,
    "workbench.settings.showAISearchToggle": true,
    "workbench.editor.untitled.labelFormat": "name",
    "workbench.colorTheme": "Darcula - WebStorm Edition",
    "workbench.editorAssociations": {
    @@ -37,14 +37,13 @@
    /* Typography */
    "editor.fontSize": 14,
    "editor.lineHeight": 30,
    "editor.fontWeight": "bold",
    "editor.letterSpacing": 0.75,
    "editor.letterSpacing": 1,
    "editor.fontLigatures": true,
    "editor.maxTokenizationLineLength": 2000,
    "editor.unicodeHighlight.ambiguousCharacters": false,
    "editor.fontFamily": "Comic Mono, Comic Code, Comic Sans MS",
    "editor.wordSeparators": "`~!@#$%^&*()[]{}-=+\\|;:'\",.<>/?“”«»",
    "editor.bracketPairColorization.independentColorPoolPerBracketType": true,
    "editor.fontFamily": "SeriousShanns Nerd Font, Comic Mono, Comic Shanns Mono, Dubai",

    /* Indentation */
    "editor.tabSize": 2,
    @@ -90,22 +89,27 @@
    "diffEditor.ignoreTrimWhitespace": true,

    /* Miscellaneous */
    "breadcrumbs.enabled": false,
    "editor.linkedEditing": true,
    "editor.minimap.enabled": false,
    "editor.cursorBlinking": "expand",
    "editor.accessibilitySupport": "off",
    "editor.stickyScroll.enabled": false,
    "editor.pasteAs.preferences": ["text.updateImports.jsts"],
    "search.searchView.keywordSuggestions": true,
    "search.searchView.semanticSearchBehavior": "auto",
    "editor.smartSelect.selectLeadingAndTrailingWhitespace": false,
    "editor.pasteAs.preferences": ["text.updateImports.jsts", "html"],

    /*** TERMINAL ***/
    "terminal.integrated.lineHeight": 1.4,
    "terminal.integrated.fontSize": 13,
    "terminal.integrated.lineHeight": 1.5,
    "terminal.integrated.letterSpacing": 3,
    "terminal.integrated.cursorStyle": "line",
    "terminal.integrated.suggest.enabled": true,
    "terminal.integrated.smoothScrolling": true,
    "terminal.integrated.stickyScroll.enabled": true,
    "terminal.integrated.enableMultiLinePasteWarning": "never",
    "terminal.integrated.fontFamily": "Comic Mono, Comic Code, Comic Sans MS",
    "terminal.integrated.fontFamily": "SeriousShanns Nerd Font",
    "terminal.integrated.suggest.quickSuggestions": {
    "unknown": "on",
    "commands": "on",
    @@ -139,6 +143,7 @@
    "git.confirmSync": false,
    "git.rebaseWhenSync": true,
    "git.enableSmartCommit": true,
    "git.enableCommitSigning": true,
    "git.openRepositoryInParentFolders": "always",
    "[git-commit]": {
    "editor.rulers": [50, 72]
    @@ -199,15 +204,12 @@
    /* GitHub Copilot */
    "inlineChat.enableV2": true,
    "inlineChat.hideOnRequest": true,
    "github.copilot.chat.followUps": "always",
    "github.copilot.chat.scopeSelection": true,
    "github.copilot.chat.codesearch.enabled": true,
    "github.copilot.chat.agent.thinkingTool": true,
    "github.copilot.nextEditSuggestions.fixes": true,
    "github.copilot.nextEditSuggestions.enabled": false,
    "github.copilot.chat.generateTests.codeLens": true,
    "github.copilot.chat.search.keywordSuggestions": true,
    "github.copilot.chat.search.semanticTextResults": true,
    "github.copilot.nextEditSuggestions.enabled": false,
    "github.copilot.chat.edits.temporalContext.enabled": true,
    "github.copilot.chat.editor.temporalContext.enabled": true,
    "github.copilot.chat.languageContext.typescript.enabled": true,
    @@ -289,10 +291,12 @@
    "**/*.astro",
    "**/*.gql",
    "**/*.graphql",
    "**/*.java",
    "**/.zshrc",
    "**/.gitmessage",
    "**/Dockerfile",
    "**/.dockerignore",
    "**/.oxlintrc.json",
    "**/*.code-snippets"
    ],
    "todohighlight.exclude": [
  8. ShayanTheNerd revised this gist Jun 6, 2025. 6 changed files with 322 additions and 192 deletions.
    4 changes: 2 additions & 2 deletions .editorconfig
    Original file line number Diff line number Diff line change
    @@ -2,8 +2,8 @@ root = true

    [*]
    charset = utf-8
    indent_size = 3
    indent_style = tab
    indent_size = 2
    end_of_line = lf
    indent_style = tab
    insert_final_newline = true
    trim_trailing_whitespace = true
    111 changes: 57 additions & 54 deletions snippets.json → Snippets for Shayan.code-snippets
    Original file line number Diff line number Diff line change
    @@ -1,42 +1,32 @@
    {
    /*** HTML ***/
    /*** HTML ***/
    "HTML Boilerplate": {
    "scope": "html",
    "scope": "html",
    "prefix": "html-boilerplate",
    "body": [
    "<!DOCTYPE html>",
    "<html lang=\"en\" dir=\"ltr\">",
    "<head>",
    "<meta charset=\"UTF-8\" />",
    "<title>${1:Document}</title>",
    "<meta name=\"color-scheme\" content=\"dark light\" />",
    "<meta name=\"color-scheme\" content=\"dark\" />",
    "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
    "</head>",
    "",
    "<body></body>",
    "</html>"
    ]
    },
    "Class Attribute": {
    "scope": "html",
    "prefix": "class",
    "body": "class=\"$0\""
    },
    "Id Attribute": {
    "scope": "html",
    "prefix": "id",
    "body": "id=\"$0\""
    },

    /*** CSS ***/
    "Basic Reset": {
    "scope": "css,scss",
    "prefix": "basic-reset",
    /*** CSS ***/
    "Basic Reset": {
    "scope": "css,scss,tailwindcss,vue,astro",
    "prefix": "reset",
    "body": [
    ":where(*, *::before, *::after) {",
    "margin: 0;",
    "padding: 0;",
    "box-sizing: border-box;",
    "font-family: inherit;",
    "-webkit-font-smoothing: antialiased;",
    "}",
    "html {",
    @@ -50,80 +40,94 @@
    "font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif;",
    "padding: calc(8px + 1.5625vw); /* reference: https://matthewjamestaylor.com/responsive-padding */",
    "min-height: 100vh;",
    "display: flex;",
    "align-items: center;",
    "justify-content: center;",
    "display: grid;",
    "place-content: center;",
    "/* color: #353535; */",
    "/* background-color: #f5f5f5; */",
    "}",
    "img { vertical-align: middle; }",
    ""
    ]
    },
    "Media query": {
    "scope": "css,scss,vue",
    "scope": "css,scss,tailwindcss,vue,astro",
    "prefix": "media query min",
    "body": ["@media screen and (min-width: $1em) {", " $0", "}"]
    },
    "Variable": {
    "scope": "css,scss,vue",
    "prefix": "var",
    "body": "var(--$0)"
    "body": [
    "@media screen and (min-width: $1em) {",
    " $0",
    "}"
    ]
    },

    /*** JavaScript & TypeScript ***/
    /*** JavaScript & TypeScript ***/
    "Get Element By ID": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "getId",
    "body": "document.getElementById('$1')$0"
    },
    "Get The First Element By CSS Selector": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "query",
    "body": "document.querySelector('$1')$0"
    },
    "Get All Elements By CSS Selector": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "queryAll",
    "body": "document.querySelectorAll('$1')$0"
    },
    "Add Class": {
    "scope": "javascript,typescript",
    "Add Class": {
    "scope": "javascript,typescript",
    "prefix": ".addClass",
    "body": [".classList.add('$0')"]
    "body": [
    ".classList.add('$0')"
    ]
    },
    "Remove Class": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": ".removeClass",
    "body": [".classList.remove('$0')"]
    "body": [
    ".classList.remove('$0')"
    ]
    },
    "Arrow Function": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "arrowFunc",
    "body": "(${1:event}) => {$0}"
    },
    "Anonymous Function": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "anonymousFunc",
    "body": ["(${1:event}) => {", " $0", "}"]
    "body": [
    "(${1:event}) => {",
    " $0",
    "}"
    ]
    },
    "IIFE (Immediately-Invoked Function Expression)": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "iife",
    "body": ["(function ${1:name}(${2:event}) {", " $0", "})()"]
    "body": [
    "(function ${1:name}(${2:event}) {",
    " $0",
    "})()"
    ]
    },
    "Promise": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "promise",
    "body": ["new Promise((resolve, reject) => {", " $0", "})"]
    "body": [
    "new Promise((resolve, reject) => {",
    " $0",
    "})"
    ]
    },
    "Then": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": ".then",
    "body": [".then(response => {$0}).catch(error => {})"]
    "body": [
    ".then(response => {$0}).catch(error => {})"
    ]
    },
    "Pinia Options Store Boilerplate": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "pinia-options",
    "body": [
    "import { defineStore, acceptHMRUpdate } from 'pinia'",
    @@ -141,7 +145,7 @@
    ]
    },
    "Pinia Setup Store Boilerplate": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "pinia-setup",
    "body": [
    "import { defineStore, acceptHMRUpdate } from 'pinia'",
    @@ -155,10 +159,9 @@
    "if (HMR) HMR.accept(acceptHMRUpdate(use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store, HMR))"
    ]
    },

    /*** Vue ***/
    "Vue SFC Boilerplate": {
    "scope": "vue",
    /*** Vue ***/
    "Vue SFC Boilerplate": {
    "scope": "vue",
    "prefix": "vue-sfc",
    "body": [
    "<script lang=\"ts\" setup>",
    4 changes: 4 additions & 0 deletions extensions.json
    Original file line number Diff line number Diff line change
    @@ -2,18 +2,22 @@
    "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",
    "eamodio.gitlens",
    "antfu.iconify",
    "ritwickdey.liveserver",
    "nuxtr.nuxtr-vscode",
    "oxc.oxc-vscode",
    "ms-playwright.playwright",
    "csstools.postcss",
    "esbenp.prettier-vscode",
    "YoavBls.pretty-ts-errors",
    "bradlc.vscode-tailwindcss",
    "rangav.vscode-thunder-client",
    "jgclark.vscode-todo-highlight",
    120 changes: 69 additions & 51 deletions keybindings.json
    Original file line number Diff line number Diff line change
    @@ -1,56 +1,69 @@
    [
    /*** Format The Document ***/
    {
    "key": "shift+capslock",
    "key": "ctrl+shift+f",
    "command": "editor.action.formatDocument",
    "when": "editorTextFocus && !editorReadonly"
    },
    {
    "key": "shift+capslock",
    "command": "editor.action.formatDocument.none",
    "when": "editorTextFocus && !editorReadonly && !editorHasDocumentFormattingProvider"
    "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": "cmd+escape",
    "command": "workbench.action.zoomReset"
    },

    /*** Kill Terminal ***/
    {
    "key": "cmd+shift+k",
    "command": "workbench.action.terminal.kill",
    "when": "terminal.visible"
    },

    /*** Redo Previous Action ***/
    {
    "key": "cmd+r",
    "command": "redo",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Toggle Comment ***/
    {
    "key": "ctrl+shift+/",
    "key": "cmd+/",
    "command": "editor.action.commentLine",
    "when": "editorTextFocus && !editorReadonly"
    },
    {
    "key": "ctrl+/",
    "key": "cmd+shift+/",
    "command": "editor.action.blockComment",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Delete Current Line ***/
    {
    "key": "ctrl+delete",
    "key": "cmd+backspace",
    "command": "editor.action.deleteLines",
    "when": "textInputFocus && !editorReadonly"
    },

    /*** Duplicate Current Line ***/
    {
    "key": "ctrl+d",
    "key": "cmd+d",
    "command": "editor.action.copyLinesUpAction",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Redo Previous Action ***/
    {
    "key": "ctrl+r",
    "command": "redo",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** `console.log()` Shortcut ***/
    {
    "key": "ctrl+shift+l",
    "command": "turboConsoleLog.displayLogMessage",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Insert Single Backtick ***/
    {
    "key": "`",
    @@ -61,41 +74,35 @@

    /*** Add Selection To Next/Previous Match ***/
    {
    "key": "ctrl+shift+n",
    "key": "cmd+shift+n",
    "command": "editor.action.addSelectionToNextFindMatch",
    "when": "editorTextFocus && !editorReadonly && editorHasSelection"
    },
    {
    "key": "ctrl+shift+p",
    "key": "cmd+shift+p",
    "command": "editor.action.addSelectionToPreviousFindMatch",
    "when": "editorTextFocus && !editorReadonly && editorHasSelection"
    },

    /*** Toggle Quick Access To Files ***/
    /*** Go to Definition ***/
    {
    "key": "ctrl+shift+f",
    "command": "workbench.action.quickOpen",
    "when": "!inQuickOpen"
    "key": "ctrl+enter",
    "command": "editor.action.revealDefinition",
    "when": "editorHasDefinitionProvider && editorTextFocus"
    },

    /*** `console.log()` ***/
    {
    "key": "ctrl+shift+f",
    "command": "workbench.action.closeQuickOpen",
    "when": "inQuickOpen"
    "key": "cmd+shift+l",
    "command": "turboConsoleLog.displayLogMessage",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Disable Default Shortcuts ***/
    {
    "key": "ctrl+shift+d",
    "command": "-workbench.view.debug"
    },
    {
    "key": "ctrl+e",
    "command": "-workbench.action.quickOpen"
    },
    {
    "key": "ctrl+p",
    "command": "-workbench.action.quickOpen"
    },
    {
    "key": "ctrl+shift+.",
    "command": "-breadcrumbs.toggleToOn"
    @@ -105,7 +112,7 @@
    "command": "-breadcrumbs.focusAndSelect"
    },
    {
    "key": "ctrl+shift+n",
    "key": "cmd+shift+n",
    "command": "-workbench.action.newWindow"
    },
    {
    @@ -120,28 +127,39 @@
    "key": "ctrl+shift+l",
    "command": "-addCursorsAtSearchResults"
    },
    {
    "key": "ctrl+,",
    "command": "-workbench.action.openSettings"
    },
    {
    "key": "ctrl+shift+m",
    "command": "-workbench.actions.view.problems"
    },
    {
    "key": "ctrl+n",
    "key": "cmd+n",
    "command": "-workbench.action.files.newUntitledFile"
    },
    {
    "key": "ctrl+shift+c",
    "command": "-workbench.action.terminal.openNativeConsole"
    "key": "ctrl+r",
    "command": "-workbench.action.quickOpenNavigateNextInRecentFilesPicker"
    },
    {
    "key": "ctrl+r",
    "command": "-workbench.action.openRecent"
    "key": "shift+alt+up",
    "command": "-editor.action.copyLinesUpAction",
    "when": "editorTextFocus && !editorReadonly"
    },
    {
    "key": "ctrl+r",
    "command": "-workbench.action.quickOpenNavigateNextInRecentFilesPicker"
    "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"
    }
    ]
    248 changes: 163 additions & 85 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -1,27 +1,74 @@
    {
    /*** WINDOW ***/
    "window.zoomLevel": 1,
    "breadcrumbs.enabled": false,

    /*** EXPLORER ***/
    "explorer.compactFolders": false,
    "explorer.confirmDragAndDrop": false,

    /*** WORKBENCH ***/
    "workbench.sideBar.location": "right",
    "workbench.iconTheme": "vscode-icons",
    "workbench.list.smoothScrolling": 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": {
    "*.svg": "html",
    "*.xml": "html",
    "*.mdx": "markdown"
    },

    /*** EDITOR ***/
    /* Typography */
    "editor.tabSize": 3,
    "editor.fontSize": 15,
    "editor.lineHeight": 27,
    "editor.letterSpacing": 1,
    "editor.fontSize": 14,
    "editor.lineHeight": 30,
    "editor.fontWeight": "bold",
    "editor.letterSpacing": 0.75,
    "editor.fontLigatures": true,
    "editor.maxTokenizationLineLength": 2000,
    "editor.unicodeHighlight.ambiguousCharacters": false,
    "editor.fontFamily": "Comic Mono, Comic Code, Comic Sans MS",
    "editor.wordSeparators": "`~!@#$%^&*()[]{}-=+\\|;:'\",.<>/?“”«»",
    "editor.bracketPairColorization.independentColorPoolPerBracketType": true,

    /* Indentation */
    "editor.tabSize": 2,
    "editor.wordWrapColumn": 90,
    "editor.wordWrap": "bounded",
    "editor.wordWrapColumn": 120,
    "editor.insertSpaces": false,
    "editor.wrappingIndent": "indent",
    "editor.detectIndentation": false,
    "editor.renderWhitespace": "none",
    "editor.wrappingStrategy": "advanced",
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.unicodeHighlight.ambiguousCharacters": false,
    "editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?“”«»",
    "editor.fontFamily": "Comic Sans MS, Consolas, 'Courier New', monospace",
    "editor.renderWhitespace": "trailing",
    "[json][jsonc][yaml][yml][toml]": {
    "editor.wordWrapColumn": 125
    },

    /* 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",
    @@ -35,64 +82,70 @@

    /* Formatting */
    "editor.formatOnSave": true,
    "editor.showFoldingControls": "always",
    "editor.defaultFormatter": "esbenp.prettier-vscode",

    // Diff Editor
    "diffEditor.maxFileSize": 0,
    "diffEditor.ignoreTrimWhitespace": true,

    /* Miscellaneous */
    "editor.linkedEditing": true,
    "diffEditor.maxFileSize": 0,
    "breadcrumbs.enabled": false,
    "editor.minimap.enabled": false,
    "editor.cursorBlinking": "expand",
    "explorer.compactFolders": false,
    "editor.accessibilitySupport": "off",
    "editor.stickyScroll.enabled": false,
    "explorer.confirmDragAndDrop": false,
    "diffEditor.ignoreTrimWhitespace": true,
    "editor.pasteAs.preferences": ["text.updateImports.jsts"],
    "editor.smartSelect.selectLeadingAndTrailingWhitespace": false,

    /*** FILES ***/
    "files.autoSaveDelay": 500,
    "files.associations": {
    "*.svg": "html",
    "*.xml": "html"
    },

    /*** WORKBENCH ***/
    "workbench.sideBar.location": "right",
    "workbench.list.smoothScrolling": true,
    "workbench.iconTheme": "vscode-icons",
    "workbench.tree.enableStickyScroll": false,
    "workbench.editor.untitled.labelFormat": "name",
    "workbench.colorTheme": "Darcula - WebStorm Edition",
    "workbench.colorCustomizations": {
    "editor.foreground": "#d1d1d1",
    "editor.selectionBackground": "#1e3f60", // Default: #264F78.
    "editor.findMatchBackground": "#264F78" // Default: #515C6A.
    },

    /*** TERMINAL ***/
    "terminal.integrated.lineHeight": 1.4,
    "terminal.integrated.cursorStyle": "line",
    "terminal.integrated.suggest.enabled": true,
    "terminal.integrated.smoothScrolling": true,
    "terminal.integrated.fontFamily": "Consolas, monospace",
    "terminal.integrated.stickyScroll.enabled": true,
    "terminal.integrated.enableMultiLinePasteWarning": "never",
    "terminal.integrated.fontFamily": "Comic Mono, Comic Code, Comic Sans MS",
    "terminal.integrated.suggest.quickSuggestions": {
    "unknown": "on",
    "commands": "on",
    "arguments": "on"
    },

    /*** TOOLS & LANGUAGES ***/
    /* JavaScript & TypeScript */
    "js/ts.implicitProjectConfig.target": "ESNext",
    "javascript.experimental.updateImportsOnPaste": true,
    "typescript.experimental.updateImportsOnPaste": true,
    "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.openRepositoryInParentFolders": "always",
    "[git-commit]": {
    "editor.rulers": [50, 72]
    },

    /* Markdown */
    "markdown.validate.enabled": true,
    "markdown.occurrencesHighlight.enabled": true,

    /* CSS */
    @@ -101,19 +154,23 @@
    "css.format.spaceAroundSelectorSeparator": true,

    /*** EXTENSIONS ***/
    /* Codeium */
    "codeium.enableSearch": true,
    "codeium.enableCodeLens": false,
    "codeium.enableConfig": { "*": true },
    "codeium.aggressiveShutdown": true,
    "extensions.experimental.deferredStartupFinishedActivation": true,

    /* Color Highlight */
    "color-highlight.matchWords": true,

    /* CSS Navigation */
    "CSSNavigation.ignoreCustomElement": false,
    "CSSNavigation.searchAcrossWorkspaceFolders": true,
    "CSSNavigation.activeHTMLFileExtensions": ["html", "vue", "astro", "js", "ts", "jsx", "tsx", "php"],
    "CSSNavigation.activeHTMLFileExtensions": [
    "html",
    "jsx",
    "tsx",
    "mdx",
    "astro",
    "vue",
    "php",
    "py"
    ],

    /* Error Lens */
    "errorLens.ignoreUntitled": true,
    @@ -134,44 +191,48 @@
    },

    /* ESLint */
    "eslint.validate": [
    "html",
    "vue",
    "astro",
    "css",
    "scss",
    "javascript",
    "typescript",
    "javascriptreact",
    "typescriptreact"
    ],
    "eslint.run": "onSave",
    "eslint.format.enable": true,
    "eslint.ignoreUntitled": true,
    "eslint.lintTask.enable": true,

    /* GitHub Copilot */
    "github.copilot.enable": {
    "plaintext": true,
    "markdown": true,
    "scminput": true
    },
    "github.copilot.advanced": {
    "useLanguageServer": true
    },
    "inlineChat.enableV2": true,
    "inlineChat.hideOnRequest": true,
    "github.copilot.chat.followUps": "always",
    "github.copilot.chat.scopeSelection": true,
    "github.copilot.chat.inlineChatHint.enabled": true,
    "github.copilot.chat.codesearch.enabled": true,
    "github.copilot.chat.agent.thinkingTool": true,
    "github.copilot.nextEditSuggestions.fixes": true,
    "github.copilot.nextEditSuggestions.enabled": false,
    "github.copilot.chat.generateTests.codeLens": true,
    "github.copilot.chat.temporalContext.enabled": true,
    "github.copilot.chat.search.keywordSuggestions": true,
    "github.copilot.chat.search.semanticTextResults": true,
    "github.copilot.chat.inlineChatCompletionTrigger.enabled": true,
    "github.copilot.chat.edits.temporalContext.enabled": true,
    "github.copilot.chat.editor.temporalContext.enabled": true,
    "github.copilot.chat.languageContext.typescript.enabled": true,
    "github.copilot.advanced": {
    "useLanguageServer": true
    },
    "github.copilot.enable": {
    "*": true,
    "yaml": true,
    "scminput": true,
    "markdown": true,
    "plaintext": true
    },

    /* 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"],
    "gitlens.graph.minimap.additionalTypes": [
    "localBranches",
    "stashes",
    "remoteBranches",
    "pullRequests",
    "tags"
    ],

    /* Iconify IntelliSense */
    "iconify.inplace": false,
    @@ -185,19 +246,20 @@
    /* 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.tabWidth": 3,
    "prettier.useTabs": true,
    "prettier.printWidth": 120,
    "prettier.printWidth": 90,
    "prettier.singleQuote": true,
    "prettier.trailingComma": "all",
    "prettier.jsxSingleQuote": true,
    "prettier.quoteProps": "consistent",
    "prettier.vueIndentScriptAndStyle": true,
    "prettier.documentSelectors": ["**/*.astro"],

    /* Tailwind CSS IntelliSense */
    "tailwindCSS.emmetCompletions": true,
    @@ -227,8 +289,11 @@
    "**/*.astro",
    "**/*.gql",
    "**/*.graphql",
    "**/.gitignore",
    "**/.gitmessage"
    "**/.zshrc",
    "**/.gitmessage",
    "**/Dockerfile",
    "**/.dockerignore",
    "**/*.code-snippets"
    ],
    "todohighlight.exclude": [
    "**/*.map",
    @@ -253,11 +318,13 @@
    "todohighlight.isCaseSensitive": false,
    "todohighlight.keywords": [
    {
    // Highlight the whole line if it contains `<!--- ... -->` or `/*** ... ***/`.
    "text": "(\\/\\*{3}[^\\*]*\\*{3}\\/)|(<\\!-{3}[^<]*-{3}>)",
    "regex": { "pattern": "(\\/\\*{3}[^\\*]*\\*{3}\\/)|(<\\!-{3}[^<]*-{3}>)" },
    "isWholeLine": true,
    // 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"
    },
    @@ -270,30 +337,41 @@
    // 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": "(?<=\\/(?:\\*|\\*\\*)[^*]*?|<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^*]*?\\*\\/|[^<]*?-->)" }
    "regex": {
    "pattern": "(?<=\\/(?:\\*|\\*\\*)[^*]*?|<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^*]*?\\*\\/|[^<]*?-->)"
    }
    }
    ],

    /* Turbo Console Log */
    "turboConsoleLog.quote": "`",
    "turboConsoleLog.logMessagePrefix": "",
    "turboConsoleLog.delimiterInsideMessage": ">",
    "turboConsoleLog.includeLineNum": true,
    "turboConsoleLog.addSemicolonInTheEnd": true,
    "turboConsoleLog.delimiterInsideMessage": ">",
    "turboConsoleLog.insertEnclosingFunction": false,
    "turboConsoleLog.includeFileNameAndLineNum": false,

    /* VS Code Icons */
    "vsicons.dontShowNewVersionMessage": true,
    "vsicons.associations.files": [{ "extensions": ["css"], "icon": "css" }], // Supress PostCSS Language Support extension.
    "vsicons.associations.files": [
    { "extensions": ["vitest.nuxt.config.ts"], "icon": "vitest", "filename": true }
    ],
    "vsicons.associations.folders": [
    { "extensions": ["content"], "icon": "log" },
    { "extensions": ["(views)"], "icon": "view" }
    { "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.splitEditors.icon": true,
    "vue.autoInsert.dotValue": true,
    "vue.format.style.initialIndent": true,
    "vue.complete.casing.props": "autoCamel",
    "vue.updateImportsOnFileMove.enabled": true,
    "vue.splitEditors.layout.right": ["styles", "customBlocks"],
    "vue.splitEditors.layout.left": ["scriptSetup", "script", "template"]
    27 changes: 27 additions & 0 deletions tsconfig.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    {
    "compilerOptions": {
    "strict": true,
    "noEmit": true,
    "checkJs": true,
    "target": "ESNext",
    "incremental": true,
    "module": "NodeNext",
    "noEmitOnError": true,
    "noUnusedLocals": true,
    "removeComments": true,
    "moduleDetection: "force",
    "resolveJsonModule": true,
    "noImplicitReturns": true,
    "noImplicitOverride": true,
    "erasableSyntaxOnly": true,
    "noUnusedParameters": true,
    "verbatimModuleSyntax": true,
    "allowUnreachableCode": false,
    "allowArbitraryExtensions": true,
    "noUncheckedIndexedAccess": true,
    "allowImportingTsExtensions": true,
    "noFallthroughCasesInSwitch": true,
    "exactOptionalPropertyTypes": true,
    "noUncheckedSideEffectImports": true
    }
    }
  9. ShayanTheNerd revised this gist Nov 20, 2024. 4 changed files with 73 additions and 56 deletions.
    28 changes: 14 additions & 14 deletions extensions.json
    Original file line number Diff line number Diff line change
    @@ -1,26 +1,26 @@
    {
    "recommendations": [
    "vue.volar",
    "vitest.explorer",
    "eamodio.gitlens",
    "astro-build.astro-vscode",
    "naumovs.color-highlight",
    "pucelle.vscode-css-navigation",
    "rexebin.dracula",
    "oven.bun-vscode",
    "csstools.postcss",
    "codeium.codeium",
    "nuxtr.nuxtr-vscode",
    "ritwickdey.liveserver",
    "usernamehw.errorlens",
    "esbenp.prettier-vscode",
    "naumovs.color-highlight",
    "dbaeumer.vscode-eslint",
    "astro-build.astro-vscode",
    "github.copilot",
    "gitHub.copilot-chat",
    "eamodio.gitlens",
    "ritwickdey.liveserver",
    "nuxtr.nuxtr-vscode",
    "ms-playwright.playwright",
    "csstools.postcss",
    "esbenp.prettier-vscode",
    "bradlc.vscode-tailwindcss",
    "wakatime.vscode-wakatime",
    "rangav.vscode-thunder-client",
    "pucelle.vscode-css-navigation",
    "jgclark.vscode-todo-highlight",
    "chakrounanas.turbo-console-log",
    "vscode-icons-team.vscode-icons"
    "vitest.explorer",
    "vscode-icons-team.vscode-icons",
    "vue.volar",
    "wakatime.vscode-wakatime"
    ]
    }
    26 changes: 6 additions & 20 deletions keybindings.json
    Original file line number Diff line number Diff line change
    @@ -82,27 +82,13 @@
    "command": "workbench.action.closeQuickOpen",
    "when": "inQuickOpen"
    },

    /*** Insert Qoutes ***/
    // {
    // "key": "ctrl+shift+,",
    // "command": "editor.action.insertSnippet",
    // "args": { "snippet": "“${0}”" },
    // "when": "editorTextFocus && !editorReadonly"
    // },
    // {
    // "key": "ctrl+shift+,",
    // "command": "editor.action.insertSnippet",
    // "args": { "snippet": "“${TM_SELECTED_TEXT}”" },
    // "when": "editorTextFocus && !editorReadonly && editorHasSelection"
    // },

    /*** Disable Default Shortcuts ***/
    {
    {
    "key": "ctrl+shift+d",
    "command": "-workbench.view.debug"
    },
    {
    {
    "key": "ctrl+e",
    "command": "-workbench.action.quickOpen"
    },
    @@ -114,10 +100,10 @@
    "key": "ctrl+shift+.",
    "command": "-breadcrumbs.toggleToOn"
    },
    {
    "key": "ctrl+shift+.",
    "command": "-breadcrumbs.focusAndSelect"
    },
    {
    "key": "ctrl+shift+.",
    "command": "-breadcrumbs.focusAndSelect"
    },
    {
    "key": "ctrl+shift+n",
    "command": "-workbench.action.newWindow"
    35 changes: 33 additions & 2 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -4,10 +4,11 @@
    "editor.tabSize": 3,
    "editor.fontSize": 15,
    "editor.lineHeight": 27,
    "editor.wordWrap": "on",
    "editor.letterSpacing": 1,
    "editor.fontLigatures": true,
    "editor.wordWrap": "bounded",
    "editor.wordWrapColumn": 120,
    "editor.wrappingIndent": "indent",
    "editor.detectIndentation": false,
    "editor.renderWhitespace": "none",
    "editor.wrappingStrategy": "advanced",
    @@ -21,6 +22,11 @@
    "editor.snippetSuggestions": "inline",
    "editor.tabCompletion": "onlySnippets",
    "editor.acceptSuggestionOnEnter": "smart",
    "emmet.excludeLanguages": [],
    "emmet.includeLanguages": {
    "md": "html",
    "markdown": "html"
    },
    "editor.quickSuggestions": {
    "other": true,
    "strings": true,
    @@ -70,6 +76,9 @@

    /*** TOOLS & LANGUAGES ***/
    /* JavaScript & TypeScript */
    "js/ts.implicitProjectConfig.target": "ESNext",
    "javascript.experimental.updateImportsOnPaste": true,
    "typescript.experimental.updateImportsOnPaste": true,
    "javascript.updateImportsOnFileMove.enabled": "always",
    "typescript.updateImportsOnFileMove.enabled": "always",
    "javascript.preferences.importModuleSpecifierEnding": "js",
    @@ -141,9 +150,28 @@
    "eslint.ignoreUntitled": true,
    "eslint.lintTask.enable": true,

    /* GitHub Copilot */
    "github.copilot.enable": {
    "plaintext": true,
    "markdown": true,
    "scminput": true
    },
    "github.copilot.advanced": {
    "useLanguageServer": true
    },
    "github.copilot.chat.followUps": "always",
    "github.copilot.chat.scopeSelection": true,
    "github.copilot.chat.inlineChatHint.enabled": true,
    "github.copilot.chat.generateTests.codeLens": true,
    "github.copilot.chat.temporalContext.enabled": true,
    "github.copilot.chat.search.semanticTextResults": true,
    "github.copilot.chat.inlineChatCompletionTrigger.enabled": true,

    /* 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,
    @@ -256,8 +284,11 @@

    /* VS Code Icons */
    "vsicons.dontShowNewVersionMessage": true,
    "vsicons.associations.folders": [{ "extensions": ["(views)"], "icon": "view" }],
    "vsicons.associations.files": [{ "extensions": ["css"], "icon": "css" }], // Supress PostCSS Language Support extension.
    "vsicons.associations.folders": [
    { "extensions": ["content"], "icon": "log" },
    { "extensions": ["(views)"], "icon": "view" }
    ],

    /* Vue - Official */
    "vue.splitEditors.icon": true,
    40 changes: 20 additions & 20 deletions snippets.json
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    {
    /*** HTML ***/
    "HTML Boilerplate": {
    "scope": "html",
    "scope": "html",
    "prefix": "html-boilerplate",
    "body": [
    "<!DOCTYPE html>",
    @@ -18,19 +18,19 @@
    ]
    },
    "Class Attribute": {
    "scope": "html",
    "scope": "html",
    "prefix": "class",
    "body": "class=\"$0\""
    },
    "Id Attribute": {
    "scope": "html",
    "scope": "html",
    "prefix": "id",
    "body": "id=\"$0\""
    },

    /*** CSS ***/
    "Basic Reset": {
    "scope": "css,scss",
    "scope": "css,scss",
    "prefix": "basic-reset",
    "body": [
    ":where(*, *::before, *::after) {",
    @@ -61,69 +61,69 @@
    ]
    },
    "Media query": {
    "scope": "css,scss,vue",
    "scope": "css,scss,vue",
    "prefix": "media query min",
    "body": ["@media screen and (min-width: $1em) {", " $0", "}"]
    },
    "Variable": {
    "scope": "css,scss,vue",
    "scope": "css,scss,vue",
    "prefix": "var",
    "body": "var(--$0)"
    },

    /*** JavaScript & TypeScript ***/
    "Get Element By ID": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "getId",
    "body": "document.getElementById('$1')$0"
    },
    "Get The First Element By CSS Selector": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "query",
    "body": "document.querySelector('$1')$0"
    },
    "Get All Elements By CSS Selector": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "queryAll",
    "body": "document.querySelectorAll('$1')$0"
    },
    "Add Class": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": ".addClass",
    "body": [".classList.add('$0')"]
    },
    "Remove Class": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": ".removeClass",
    "body": [".classList.remove('$0')"]
    },
    "Arrow Function": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "arrowFunc",
    "body": "(${1:event}) => {$0}"
    },
    "Anonymous Function": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "anonymousFunc",
    "body": ["(${1:event}) => {", " $0", "}"]
    },
    "IIFE (Immediately-Invoked Function Expression)": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "iife",
    "body": ["(function ${1:name}(${2:event}) {", " $0", "})()"]
    },
    "Promise": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "promise",
    "body": ["new Promise((resolve, reject) => {", " $0", "})"]
    },
    "Then": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": ".then",
    "body": [".then(response => {$0}).catch(error => {})"]
    },
    "Pinia Options Store Boilerplate": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "pinia-options",
    "body": [
    "import { defineStore, acceptHMRUpdate } from 'pinia'",
    @@ -141,7 +141,7 @@
    ]
    },
    "Pinia Setup Store Boilerplate": {
    "scope": "javascript,typescript",
    "scope": "javascript,typescript",
    "prefix": "pinia-setup",
    "body": [
    "import { defineStore, acceptHMRUpdate } from 'pinia'",
    @@ -159,8 +159,8 @@
    /*** Vue ***/
    "Vue SFC Boilerplate": {
    "scope": "vue",
    "prefix": "vue-sfc",
    "body": [
    "prefix": "vue-sfc",
    "body": [
    "<script lang=\"ts\" setup>",
    "",
    "</script>",
  10. ShayanTheNerd revised this gist Oct 15, 2024. 1 changed file with 9 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions .editorconfig
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,9 @@
    root = true

    [*]
    charset = utf-8
    indent_size = 3
    indent_style = tab
    end_of_line = lf
    insert_final_newline = true
    trim_trailing_whitespace = true
  11. ShayanTheNerd revised this gist Oct 15, 2024. 2 changed files with 43 additions and 28 deletions.
    46 changes: 23 additions & 23 deletions extensions.json
    Original file line number Diff line number Diff line change
    @@ -1,26 +1,26 @@
    {
    "recommendations": [
    "vue.volar",
    "antfu.unocss",
    "vitest.explorer",
    "eamodio.gitlens",
    "rexebin.dracula",
    "oven.bun-vscode",
    "csstools.postcss",
    "codeium.codeium",
    "nuxtr.nuxtr-vscode",
    "ritwickdey.liveserver",
    "usernamehw.errorlens",
    "esbenp.prettier-vscode",
    "naumovs.color-highlight",
    "dbaeumer.vscode-eslint",
    "astro-build.astro-vscode",
    "bradlc.vscode-tailwindcss",
    "wakatime.vscode-wakatime",
    "rangav.vscode-thunder-client",
    "pucelle.vscode-css-navigation",
    "jgclark.vscode-todo-highlight",
    "chakrounanas.turbo-console-log",
    "vscode-icons-team.vscode-icons"
    "recommendations": [
    "vue.volar",
    "vitest.explorer",
    "eamodio.gitlens",
    "rexebin.dracula",
    "oven.bun-vscode",
    "csstools.postcss",
    "codeium.codeium",
    "nuxtr.nuxtr-vscode",
    "ritwickdey.liveserver",
    "usernamehw.errorlens",
    "esbenp.prettier-vscode",
    "naumovs.color-highlight",
    "dbaeumer.vscode-eslint",
    "astro-build.astro-vscode",
    "ms-playwright.playwright",
    "bradlc.vscode-tailwindcss",
    "wakatime.vscode-wakatime",
    "rangav.vscode-thunder-client",
    "pucelle.vscode-css-navigation",
    "jgclark.vscode-todo-highlight",
    "chakrounanas.turbo-console-log",
    "vscode-icons-team.vscode-icons"
    ]
    }
    25 changes: 20 additions & 5 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,7 @@
    /* Typography */
    "editor.tabSize": 3,
    "editor.fontSize": 15,
    "editor.lineHeight": 25,
    "editor.lineHeight": 27,
    "editor.wordWrap": "on",
    "editor.letterSpacing": 1,
    "editor.fontLigatures": true,
    @@ -104,7 +104,7 @@
    /* CSS Navigation */
    "CSSNavigation.ignoreCustomElement": false,
    "CSSNavigation.searchAcrossWorkspaceFolders": true,
    "CSSNavigation.activeHTMLFileExtensions": ["html", "vue", "astro", "svelte", "js", "ts", "jsx", "tsx", "php"],
    "CSSNavigation.activeHTMLFileExtensions": ["html", "vue", "astro", "js", "ts", "jsx", "tsx", "php"],

    /* Error Lens */
    "errorLens.ignoreUntitled": true,
    @@ -173,7 +173,6 @@

    /* Tailwind CSS IntelliSense */
    "tailwindCSS.emmetCompletions": true,
    "tailwindCSS.classAttributes": ["class", "class:list", "className"],

    /* Todo Highlight */
    "todohighlight.include": [
    @@ -203,6 +202,20 @@
    "**/.gitignore",
    "**/.gitmessage"
    ],
    "todohighlight.exclude": [
    "**/*.map",
    "**/*.min.*",
    "**/dist/**",
    "**/build/**",
    "**/.nuxt/**",
    "**/.next/**",
    "**/.github/**",
    "**/.output/**",
    "**/_output/**",
    "**/.vscode-test/**",
    "**/node_modules/**",
    "**/bower_components/**"
    ],
    "todohighlight.defaultStyle": {
    "color": "#dadada",
    "borderRadius": "4px",
    @@ -228,8 +241,8 @@
    {
    // 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": "(?<=\\/\\*[^*]*?|<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^*]*?\\*\\/|[^<]*?-->)" }
    "text": "(?<=\\/(?:\\*|\\*\\*)[^*]*?|<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^*]*?\\*\\/|[^<]*?-->)",
    "regex": { "pattern": "(?<=\\/(?:\\*|\\*\\*)[^*]*?|<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^*]*?\\*\\/|[^<]*?-->)" }
    }
    ],

    @@ -243,6 +256,8 @@

    /* VS Code Icons */
    "vsicons.dontShowNewVersionMessage": true,
    "vsicons.associations.folders": [{ "extensions": ["(views)"], "icon": "view" }],
    "vsicons.associations.files": [{ "extensions": ["css"], "icon": "css" }], // Supress PostCSS Language Support extension.

    /* Vue - Official */
    "vue.splitEditors.icon": true,
  12. ShayanTheNerd revised this gist Sep 28, 2024. 1 changed file with 38 additions and 113 deletions.
    151 changes: 38 additions & 113 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -38,25 +38,18 @@
    "editor.cursorBlinking": "expand",
    "explorer.compactFolders": false,
    "editor.stickyScroll.enabled": false,
    "window.newWindowProfile": "Default",
    "explorer.confirmDragAndDrop": false,
    "security.promptForLocalFileProtocolHandling": false,
    "diffEditor.ignoreTrimWhitespace": true,
    "editor.smartSelect.selectLeadingAndTrailingWhitespace": false,

    /*** FILES ***/
    "files.autoSaveDelay": 0,
    "files.autoSaveDelay": 500,
    "files.associations": {
    "*.svg": "html",
    "*.xml": "html"
    },

    /*** WORKBENCH ***/
    "workbench.editorAssociations": {
    "*.tpl": "default",
    "*.svg": "default",
    "*.docx": "default",
    "*.mp4": "vscode.videoPreview"
    },
    "workbench.sideBar.location": "right",
    "workbench.list.smoothScrolling": true,
    "workbench.iconTheme": "vscode-icons",
    @@ -109,37 +102,16 @@
    "color-highlight.matchWords": true,

    /* CSS Navigation */
    "CSSNavigation.excludeGlobPatterns": [
    "**/dist/**",
    "**/vendor/**",
    "**/coverage/**",
    "**/node_modules/**",
    "**/bower_components/**"
    ],
    "CSSNavigation.ignoreCustomElement": false,
    "CSSNavigation.activeHTMLFileExtensions": [
    "html",
    "astro",
    "js",
    "mjs",
    "jsx",
    "ts",
    "mts",
    "tsx",
    "vue",
    "php",
    "svelte"
    ],
    "CSSNavigation.searchAcrossWorkspaceFolders": true,
    "CSSNavigation.activeHTMLFileExtensions": ["html", "vue", "astro", "svelte", "js", "ts", "jsx", "tsx", "php"],

    /* Error Lens */
    "errorLens.ignoreUntitled": true,
    "errorLens.delayMode": "debounce",
    "errorLens.enableOnDiffView": true,
    "errorLens.gutterIconsEnabled": true,
    "errorLens.statusBarIconsUseBackground": false,
    "errorLens.respectUpstreamEnabled": { "statusBar": true },
    "errorLens.enabledDiagnosticLevels": ["error", "warning", "info"],
    "errorLens.gutterEmoji": {
    "hint": "🟩",
    "info": "🟦",
    @@ -153,32 +125,18 @@
    },

    /* ESLint */
    "eslint.probe": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "eslint.validate": [
    "html",
    "vue",
    "markdown",
    "css",
    "astro",
    "scss"
    ],
    "eslint.validate": [
    "css",
    "scss",
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "html",
    "vue",
    "markdown",
    "css",
    "astro",
    "scss"
    "javascriptreact",
    "typescriptreact"
    ],
    "eslint.run": "onSave",
    "eslint.useFlatConfig": true,
    "eslint.format.enable": true,
    "eslint.ignoreUntitled": true,
    "eslint.lintTask.enable": true,
    @@ -190,18 +148,18 @@
    /* Iconify IntelliSense */
    "iconify.inplace": false,

    /* Nuxtr */
    "nuxtr.vueFiles.firstTag": "script",
    "nuxtr.openItemsAfterCreation": true,
    "nuxtr.vueFiles.style.alwaysScoped": true,
    "nuxtr.piniaFiles.defaultTemplate": "setup",

    /* 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.alwaysScoped": true,
    "nuxtr.piniaFiles.defaultTemplate": "setup",

    /* Prettier */
    "prettier.tabWidth": 3,
    "prettier.useTabs": true,
    @@ -223,6 +181,9 @@
    "**/*.md",
    "**/*.json",
    "**/*.jsonc",
    "**/*.yml",
    "**/*.yaml",
    "**/*.toml",
    "**/*.svg",
    "**/*.html",
    "**/*.css",
    @@ -239,73 +200,38 @@
    "**/*.astro",
    "**/*.gql",
    "**/*.graphql",
    "**/.gitignore"
    ],
    "todohighlight.exclude": [
    "**/*.map",
    "**/*.min.*",
    "**/dist/**",
    "**/build/**",
    "**/.next/**",
    "**/.github/**",
    "**/_output/**",
    "**/settings.json",
    "**/.vscode-test/**",
    "**/node_modules/**",
    "**/bower_components/**"
    "**/.gitignore",
    "**/.gitmessage"
    ],
    "todohighlight.defaultStyle": {
    "color": "#dadada",
    "borderRadius": "4px",
    "backgroundColor": "#1e1e1e",
    "overviewRulerColor": "transparent"
    },
    "todohighlight.isCaseSensitive": false,
    "todohighlight.keywords": [
    {
    "text": "<!--- ... --->",
    // Highlight the whole line if it contains `<!--- ... -->` or `/*** ... ***/`.
    "text": "(\\/\\*{3}[^\\*]*\\*{3}\\/)|(<\\!-{3}[^<]*-{3}>)",
    "regex": { "pattern": "(\\/\\*{3}[^\\*]*\\*{3}\\/)|(<\\!-{3}[^<]*-{3}>)" },
    "isWholeLine": true,
    "color": "#e6e6e6",
    "borderRadius": "3px",
    "border": "1px solid #3c3c3c",
    "backgroundColor": "#3c3c3c",
    "overviewRulerColor": "#3c3c3c",
    "isWholeLine": true
    },
    {
    "text": "<!-- `...` -->",
    "regex": { "pattern": "(?<=<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^<]*?-->)" },
    "color": "#c2c2c2",
    "borderRadius": "3px",
    "border": "1px solid #252526",
    "backgroundColor": "#252526"
    "borderRadius": "0px",
    "backgroundColor": "#3c3c3c"
    },
    {
    "text": "/* `...` */",
    "regex": { "pattern": "(?<=\\/\\*(?:[\\s\\S]*?)?)`([^`]+?)`(?=[\\s\\S]*?\\*\\/)" },
    "color": "#c2c2c2",
    "borderRadius": "3px",
    "border": "1px solid #252526",
    "backgroundColor": "#252526"
    // Highlight text between backticks within single-line comments (`# ...` or `// ...`).
    "text": "(?<=(?:#|//).*?)`[^`\n]*`",
    "regex": { "pattern": "(?<=(?:#|//).*?)`[^`\n]*`" }
    },
    {
    "text": "// `...`",
    "regex": { "pattern": "(?<=//.*?)`[^`\n]+`" },
    "color": "#c2c2c2",
    "borderRadius": "3px",
    "border": "1px solid #252526",
    "backgroundColor": "#252526"
    },
    {
    "text": "# `...`",
    "regex": { "pattern": "(?<=#.*?)`[^`\n]+`" },
    "color": "#c2c2c2",
    "borderRadius": "3px",
    "border": "1px solid #252526",
    "backgroundColor": "#252526"
    // 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": "(?<=\\/\\*[^*]*?|<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^*]*?\\*\\/|[^<]*?-->)" }
    }
    ],
    "todohighlight.defaultStyle": {
    "color": "#ffffff",
    "borderRadius": "3px",
    "border": "1px solid #000000",
    "backgroundColor": "#000000",
    "include": ["**/settings.json"]
    },
    "todohighlight.isCaseSensitive": false,

    /* Turbo Console Log */
    "turboConsoleLog.quote": "`",
    @@ -317,7 +243,6 @@

    /* VS Code Icons */
    "vsicons.dontShowNewVersionMessage": true,
    "vsicons.associations.files": [{ "icon": "css", "extensions": ["css"], "format": "svg" }],

    /* Vue - Official */
    "vue.splitEditors.icon": true,
  13. ShayanTheNerd revised this gist Sep 24, 2024. 1 changed file with 23 additions and 23 deletions.
    46 changes: 23 additions & 23 deletions extensions.json
    Original file line number Diff line number Diff line change
    @@ -1,26 +1,26 @@
    {
    "recommendations": [
    "vue.volar",
    "antfu.unocss",
    "vitest.explorer",
    "eamodio.gitlens",
    "rexebin.dracula",
    "oven.bun-vscode",
    "csstools.postcss",
    "codeium.codeium",
    "nuxtr.nuxtr-vscode",
    "ritwickdey.liveserver",
    "usernamehw.errorlens",
    "esbenp.prettier-vscode",
    "naumovs.color-highlight",
    "dbaeumer.vscode-eslint",
    "astro-build.astro-vscode",
    "bradlc.vscode-tailwindcss",
    "wakatime.vscode-wakatime",
    "rangav.vscode-thunder-client",
    "pucelle.vscode-css-navigation",
    "jgclark.vscode-todo-highlight",
    "chakrounanas.turbo-console-log",
    "vscode-icons-team.vscode-icons"
    "recommendations": [
    "vue.volar",
    "antfu.unocss",
    "vitest.explorer",
    "eamodio.gitlens",
    "rexebin.dracula",
    "oven.bun-vscode",
    "csstools.postcss",
    "codeium.codeium",
    "nuxtr.nuxtr-vscode",
    "ritwickdey.liveserver",
    "usernamehw.errorlens",
    "esbenp.prettier-vscode",
    "naumovs.color-highlight",
    "dbaeumer.vscode-eslint",
    "astro-build.astro-vscode",
    "bradlc.vscode-tailwindcss",
    "wakatime.vscode-wakatime",
    "rangav.vscode-thunder-client",
    "pucelle.vscode-css-navigation",
    "jgclark.vscode-todo-highlight",
    "chakrounanas.turbo-console-log",
    "vscode-icons-team.vscode-icons"
    ]
    }
  14. ShayanTheNerd created this gist Sep 24, 2024.
    26 changes: 26 additions & 0 deletions extensions.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    {
    "recommendations": [
    "vue.volar",
    "antfu.unocss",
    "vitest.explorer",
    "eamodio.gitlens",
    "rexebin.dracula",
    "oven.bun-vscode",
    "csstools.postcss",
    "codeium.codeium",
    "nuxtr.nuxtr-vscode",
    "ritwickdey.liveserver",
    "usernamehw.errorlens",
    "esbenp.prettier-vscode",
    "naumovs.color-highlight",
    "dbaeumer.vscode-eslint",
    "astro-build.astro-vscode",
    "bradlc.vscode-tailwindcss",
    "wakatime.vscode-wakatime",
    "rangav.vscode-thunder-client",
    "pucelle.vscode-css-navigation",
    "jgclark.vscode-todo-highlight",
    "chakrounanas.turbo-console-log",
    "vscode-icons-team.vscode-icons"
    ]
    }
    161 changes: 161 additions & 0 deletions keybindings.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,161 @@
    [
    /*** Format The Document ***/
    {
    "key": "shift+capslock",
    "command": "editor.action.formatDocument",
    "when": "editorTextFocus && !editorReadonly"
    },
    {
    "key": "shift+capslock",
    "command": "editor.action.formatDocument.none",
    "when": "editorTextFocus && !editorReadonly && !editorHasDocumentFormattingProvider"
    },

    /*** Toggle Comment ***/
    {
    "key": "ctrl+shift+/",
    "command": "editor.action.commentLine",
    "when": "editorTextFocus && !editorReadonly"
    },
    {
    "key": "ctrl+/",
    "command": "editor.action.blockComment",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Delete Current Line ***/
    {
    "key": "ctrl+delete",
    "command": "editor.action.deleteLines",
    "when": "textInputFocus && !editorReadonly"
    },

    /*** Duplicate Current Line ***/
    {
    "key": "ctrl+d",
    "command": "editor.action.copyLinesUpAction",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** Redo Previous Action ***/
    {
    "key": "ctrl+r",
    "command": "redo",
    "when": "editorTextFocus && !editorReadonly"
    },

    /*** `console.log()` Shortcut ***/
    {
    "key": "ctrl+shift+l",
    "command": "turboConsoleLog.displayLogMessage",
    "when": "editorTextFocus && !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"
    },

    /*** Toggle Quick Access To Files ***/
    {
    "key": "ctrl+shift+f",
    "command": "workbench.action.quickOpen",
    "when": "!inQuickOpen"
    },
    {
    "key": "ctrl+shift+f",
    "command": "workbench.action.closeQuickOpen",
    "when": "inQuickOpen"
    },

    /*** Insert Qoutes ***/
    // {
    // "key": "ctrl+shift+,",
    // "command": "editor.action.insertSnippet",
    // "args": { "snippet": "“${0}”" },
    // "when": "editorTextFocus && !editorReadonly"
    // },
    // {
    // "key": "ctrl+shift+,",
    // "command": "editor.action.insertSnippet",
    // "args": { "snippet": "“${TM_SELECTED_TEXT}”" },
    // "when": "editorTextFocus && !editorReadonly && editorHasSelection"
    // },

    /*** Disable Default Shortcuts ***/
    {
    "key": "ctrl+shift+d",
    "command": "-workbench.view.debug"
    },
    {
    "key": "ctrl+e",
    "command": "-workbench.action.quickOpen"
    },
    {
    "key": "ctrl+p",
    "command": "-workbench.action.quickOpen"
    },
    {
    "key": "ctrl+shift+.",
    "command": "-breadcrumbs.toggleToOn"
    },
    {
    "key": "ctrl+shift+.",
    "command": "-breadcrumbs.focusAndSelect"
    },
    {
    "key": "ctrl+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+,",
    "command": "-workbench.action.openSettings"
    },
    {
    "key": "ctrl+shift+m",
    "command": "-workbench.actions.view.problems"
    },
    {
    "key": "ctrl+n",
    "command": "-workbench.action.files.newUntitledFile"
    },
    {
    "key": "ctrl+shift+c",
    "command": "-workbench.action.terminal.openNativeConsole"
    },
    {
    "key": "ctrl+r",
    "command": "-workbench.action.openRecent"
    },
    {
    "key": "ctrl+r",
    "command": "-workbench.action.quickOpenNavigateNextInRecentFilesPicker"
    }
    ]
    329 changes: 329 additions & 0 deletions settings.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,329 @@
    {
    /*** EDITOR ***/
    /* Typography */
    "editor.tabSize": 3,
    "editor.fontSize": 15,
    "editor.lineHeight": 25,
    "editor.wordWrap": "on",
    "editor.letterSpacing": 1,
    "editor.fontLigatures": true,
    "editor.wordWrapColumn": 120,
    "editor.detectIndentation": false,
    "editor.renderWhitespace": "none",
    "editor.wrappingStrategy": "advanced",
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.unicodeHighlight.ambiguousCharacters": false,
    "editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?“”«»",
    "editor.fontFamily": "Comic Sans MS, Consolas, 'Courier New', monospace",

    /* Smart Suggestion */
    "editor.quickSuggestionsDelay": 0,
    "editor.snippetSuggestions": "inline",
    "editor.tabCompletion": "onlySnippets",
    "editor.acceptSuggestionOnEnter": "smart",
    "editor.quickSuggestions": {
    "other": true,
    "strings": true,
    "comments": true
    },

    /* Formatting */
    "editor.formatOnSave": true,

    /* Miscellaneous */
    "editor.linkedEditing": true,
    "diffEditor.maxFileSize": 0,
    "breadcrumbs.enabled": false,
    "editor.minimap.enabled": false,
    "editor.cursorBlinking": "expand",
    "explorer.compactFolders": false,
    "editor.stickyScroll.enabled": false,
    "window.newWindowProfile": "Default",
    "explorer.confirmDragAndDrop": false,
    "security.promptForLocalFileProtocolHandling": false,
    "editor.smartSelect.selectLeadingAndTrailingWhitespace": false,

    /*** FILES ***/
    "files.autoSaveDelay": 0,
    "files.associations": {
    "*.svg": "html",
    "*.xml": "html"
    },

    /*** WORKBENCH ***/
    "workbench.editorAssociations": {
    "*.tpl": "default",
    "*.svg": "default",
    "*.docx": "default",
    "*.mp4": "vscode.videoPreview"
    },
    "workbench.sideBar.location": "right",
    "workbench.list.smoothScrolling": true,
    "workbench.iconTheme": "vscode-icons",
    "workbench.tree.enableStickyScroll": false,
    "workbench.editor.untitled.labelFormat": "name",
    "workbench.colorTheme": "Darcula - WebStorm Edition",
    "workbench.colorCustomizations": {
    "editor.foreground": "#d1d1d1",
    "editor.selectionBackground": "#1e3f60", // Default: #264F78.
    "editor.findMatchBackground": "#264F78" // Default: #515C6A.
    },

    /*** TERMINAL ***/
    "terminal.integrated.lineHeight": 1.4,
    "terminal.integrated.smoothScrolling": true,
    "terminal.integrated.fontFamily": "Consolas, monospace",
    "terminal.integrated.enableMultiLinePasteWarning": "never",

    /*** TOOLS & LANGUAGES ***/
    /* JavaScript & TypeScript */
    "javascript.updateImportsOnFileMove.enabled": "always",
    "typescript.updateImportsOnFileMove.enabled": "always",
    "javascript.preferences.importModuleSpecifierEnding": "js",
    "typescript.preferences.importModuleSpecifierEnding": "js",

    /* Git */
    "git.autofetch": true,
    "git.confirmSync": false,
    "git.enableSmartCommit": true,
    "[git-commit]": {
    "editor.rulers": [50, 72]
    },

    /* Markdown */
    "markdown.occurrencesHighlight.enabled": true,

    /* CSS */
    "css.lint.unknownAtRules": "ignore",
    "css.lint.fontFaceProperties": "error",
    "css.format.spaceAroundSelectorSeparator": true,

    /*** EXTENSIONS ***/
    /* Codeium */
    "codeium.enableSearch": true,
    "codeium.enableCodeLens": false,
    "codeium.enableConfig": { "*": true },
    "codeium.aggressiveShutdown": true,

    /* Color Highlight */
    "color-highlight.matchWords": true,

    /* CSS Navigation */
    "CSSNavigation.excludeGlobPatterns": [
    "**/dist/**",
    "**/vendor/**",
    "**/coverage/**",
    "**/node_modules/**",
    "**/bower_components/**"
    ],
    "CSSNavigation.ignoreCustomElement": false,
    "CSSNavigation.activeHTMLFileExtensions": [
    "html",
    "astro",
    "js",
    "mjs",
    "jsx",
    "ts",
    "mts",
    "tsx",
    "vue",
    "php",
    "svelte"
    ],
    "CSSNavigation.searchAcrossWorkspaceFolders": true,

    /* Error Lens */
    "errorLens.ignoreUntitled": true,
    "errorLens.delayMode": "debounce",
    "errorLens.enableOnDiffView": true,
    "errorLens.gutterIconsEnabled": true,
    "errorLens.statusBarIconsUseBackground": false,
    "errorLens.respectUpstreamEnabled": { "statusBar": true },
    "errorLens.enabledDiagnosticLevels": ["error", "warning", "info"],
    "errorLens.gutterEmoji": {
    "hint": "🟩",
    "info": "🟦",
    "error": "🟥",
    "warning": "🟨"
    },
    "errorLens.editorHoverPartsEnabled": {
    "buttonsEnabled": true,
    "messageEnabled": true,
    "sourceCodeEnabled": true
    },

    /* ESLint */
    "eslint.probe": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "html",
    "vue",
    "markdown",
    "css",
    "astro",
    "scss"
    ],
    "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "html",
    "vue",
    "markdown",
    "css",
    "astro",
    "scss"
    ],
    "eslint.run": "onSave",
    "eslint.useFlatConfig": true,
    "eslint.format.enable": true,
    "eslint.ignoreUntitled": true,
    "eslint.lintTask.enable": true,

    /* GitLens */
    "gitlens.codeLens.authors.enabled": false,
    "gitlens.codeLens.recentChange.enabled": false,

    /* Iconify IntelliSense */
    "iconify.inplace": false,

    /* Nuxtr */
    "nuxtr.vueFiles.firstTag": "script",
    "nuxtr.openItemsAfterCreation": true,
    "nuxtr.vueFiles.style.alwaysScoped": true,
    "nuxtr.piniaFiles.defaultTemplate": "setup",

    /* Live Server */
    "liveServer.settings.wait": 0,
    "liveServer.settings.port": 5000,
    "liveServer.settings.donotVerifyTags": true,
    "liveServer.settings.donotShowInfoMsg": true,

    /* Prettier */
    "prettier.tabWidth": 3,
    "prettier.useTabs": true,
    "prettier.printWidth": 120,
    "prettier.singleQuote": true,
    "prettier.trailingComma": "all",
    "prettier.jsxSingleQuote": true,
    "prettier.quoteProps": "consistent",
    "prettier.vueIndentScriptAndStyle": true,
    "prettier.documentSelectors": ["**/*.astro"],

    /* Tailwind CSS IntelliSense */
    "tailwindCSS.emmetCompletions": true,
    "tailwindCSS.classAttributes": ["class", "class:list", "className"],

    /* Todo Highlight */
    "todohighlight.include": [
    "**/*.txt",
    "**/*.md",
    "**/*.json",
    "**/*.jsonc",
    "**/*.svg",
    "**/*.html",
    "**/*.css",
    "**/*.scss",
    "**/*.js",
    "**/*.ts",
    "**/*.cjs",
    "**/*.cts",
    "**/*.mjs",
    "**/*.mts",
    "**/*.jsx",
    "**/*.tsx",
    "**/*.vue",
    "**/*.astro",
    "**/*.gql",
    "**/*.graphql",
    "**/.gitignore"
    ],
    "todohighlight.exclude": [
    "**/*.map",
    "**/*.min.*",
    "**/dist/**",
    "**/build/**",
    "**/.next/**",
    "**/.github/**",
    "**/_output/**",
    "**/settings.json",
    "**/.vscode-test/**",
    "**/node_modules/**",
    "**/bower_components/**"
    ],
    "todohighlight.keywords": [
    {
    "text": "<!--- ... --->",
    "regex": { "pattern": "(\\/\\*{3}[^\\*]*\\*{3}\\/)|(<\\!-{3}[^<]*-{3}>)" },
    "color": "#e6e6e6",
    "borderRadius": "3px",
    "border": "1px solid #3c3c3c",
    "backgroundColor": "#3c3c3c",
    "overviewRulerColor": "#3c3c3c",
    "isWholeLine": true
    },
    {
    "text": "<!-- `...` -->",
    "regex": { "pattern": "(?<=<!--[^>]*?)(?<!`)(`[^`]*?`)(?=[^<]*?-->)" },
    "color": "#c2c2c2",
    "borderRadius": "3px",
    "border": "1px solid #252526",
    "backgroundColor": "#252526"
    },
    {
    "text": "/* `...` */",
    "regex": { "pattern": "(?<=\\/\\*(?:[\\s\\S]*?)?)`([^`]+?)`(?=[\\s\\S]*?\\*\\/)" },
    "color": "#c2c2c2",
    "borderRadius": "3px",
    "border": "1px solid #252526",
    "backgroundColor": "#252526"
    },
    {
    "text": "// `...`",
    "regex": { "pattern": "(?<=//.*?)`[^`\n]+`" },
    "color": "#c2c2c2",
    "borderRadius": "3px",
    "border": "1px solid #252526",
    "backgroundColor": "#252526"
    },
    {
    "text": "# `...`",
    "regex": { "pattern": "(?<=#.*?)`[^`\n]+`" },
    "color": "#c2c2c2",
    "borderRadius": "3px",
    "border": "1px solid #252526",
    "backgroundColor": "#252526"
    }
    ],
    "todohighlight.defaultStyle": {
    "color": "#ffffff",
    "borderRadius": "3px",
    "border": "1px solid #000000",
    "backgroundColor": "#000000",
    "include": ["**/settings.json"]
    },
    "todohighlight.isCaseSensitive": false,

    /* Turbo Console Log */
    "turboConsoleLog.quote": "`",
    "turboConsoleLog.logMessagePrefix": "",
    "turboConsoleLog.delimiterInsideMessage": ">",
    "turboConsoleLog.addSemicolonInTheEnd": true,
    "turboConsoleLog.insertEnclosingFunction": false,
    "turboConsoleLog.includeFileNameAndLineNum": false,

    /* VS Code Icons */
    "vsicons.dontShowNewVersionMessage": true,
    "vsicons.associations.files": [{ "icon": "css", "extensions": ["css"], "format": "svg" }],

    /* Vue - Official */
    "vue.splitEditors.icon": true,
    "vue.autoInsert.dotValue": true,
    "vue.format.style.initialIndent": true,
    "vue.updateImportsOnFileMove.enabled": true,
    "vue.splitEditors.layout.right": ["styles", "customBlocks"],
    "vue.splitEditors.layout.left": ["scriptSetup", "script", "template"]
    }
    175 changes: 175 additions & 0 deletions snippets.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,175 @@
    {
    /*** HTML ***/
    "HTML Boilerplate": {
    "scope": "html",
    "prefix": "html-boilerplate",
    "body": [
    "<!DOCTYPE html>",
    "<html lang=\"en\" dir=\"ltr\">",
    "<head>",
    "<meta charset=\"UTF-8\" />",
    "<title>${1:Document}</title>",
    "<meta name=\"color-scheme\" content=\"dark light\" />",
    "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
    "</head>",
    "",
    "<body></body>",
    "</html>"
    ]
    },
    "Class Attribute": {
    "scope": "html",
    "prefix": "class",
    "body": "class=\"$0\""
    },
    "Id Attribute": {
    "scope": "html",
    "prefix": "id",
    "body": "id=\"$0\""
    },

    /*** CSS ***/
    "Basic Reset": {
    "scope": "css,scss",
    "prefix": "basic-reset",
    "body": [
    ":where(*, *::before, *::after) {",
    "margin: 0;",
    "padding: 0;",
    "box-sizing: border-box;",
    "-webkit-font-smoothing: antialiased;",
    "}",
    "html {",
    "/* By default, “1rem == 16px” and “1rem == 10px” is preferred => “10px / 16px === 0.625 === 62.5%” */",
    "/* font-size: 62.5%; */",
    "/* font-size: calc(15px + 0.390625vw); reference: https://matthewjamestaylor.com/responsive-font-size",
    "} */",
    "font-size: calc(1.0625rem + 0.2604vw); /* reference: https://jameshfisher.com/2024/03/12/a-formula-for-responsive-font-size/ */",
    "}",
    "body {",
    "font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif;",
    "padding: calc(8px + 1.5625vw); /* reference: https://matthewjamestaylor.com/responsive-padding */",
    "min-height: 100vh;",
    "display: flex;",
    "align-items: center;",
    "justify-content: center;",
    "/* color: #353535; */",
    "/* background-color: #f5f5f5; */",
    "}",
    "img { vertical-align: middle; }",
    ""
    ]
    },
    "Media query": {
    "scope": "css,scss,vue",
    "prefix": "media query min",
    "body": ["@media screen and (min-width: $1em) {", " $0", "}"]
    },
    "Variable": {
    "scope": "css,scss,vue",
    "prefix": "var",
    "body": "var(--$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', {",
    " state: () => ({",
    " $0",
    " }),",
    " getters: {},",
    " actions: {},",
    "})",
    "",
    "const HMR = import.meta.hot",
    "if (HMR) HMR.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', () => {",
    " $0",
    " return {}",
    "})",
    "",
    "const HMR = import.meta.hot",
    "if (HMR) HMR.accept(acceptHMRUpdate(use${TM_FILENAME_BASE/^(.*)$/${1:/pascalcase}/}Store, HMR))"
    ]
    },

    /*** Vue ***/
    "Vue SFC Boilerplate": {
    "scope": "vue",
    "prefix": "vue-sfc",
    "body": [
    "<script lang=\"ts\" setup>",
    "",
    "</script>",
    "",
    "<template>",
    "$0",
    "</template>",
    "",
    "<style scoped></style>"
    ]
    }
    }