{
    "editor.fontSize": 15,
    "editor.fontFamily": "Cascadia Code, Vazir", // Remove to change the font back to default
    "markdown.preview.fontSize": 16,

    // Open a new file when an empty instance is started
    "workbench.startupEditor": "newUntitledFile",
    // Disable npm script detection
    "npm.autoDetect": "off",
    // Use Unix style EOL
    "files.eol": "\n",
    // Set ruler at 80 characters
    "editor.rulers": [80],
    // Disable the annoying extension recommendation pop-up
    "extensions.ignoreRecommendations": true,
    // Edit settings as json
    "workbench.settings.editor": "json",

    // **Intellisense**
    // Send snippets to top
    "editor.snippetSuggestions": "top",
    // Enable tab complete for snippets
    "editor.tabCompletion": "on",
    // Suggest snippets as you type trigger characters
    "editor.suggestOnTriggerCharacters": true,
    // Enable quick suggestions
    "editor.quickSuggestions": {
        "other": true,
        "comments": false,
        "strings": true
    },
    "editor.suggestSelection": "first",
    "editor.maxTokenizationLineLength": 200000000,

    // **Go lint**
    "go.lintTool": "golangci-lint",
    // Lint all workspace, this is good for source code review
    // Other options are "off" or "package"
    "go.lintOnSave": "package",
    // Enable auto population of function parameters.
    "go.useCodeSnippetsOnFunctionSuggest": true,
    // Increase timeout for running tests.
    "go.testTimeout": "600s",
    "go.formatTool": "goimports",
    "go.useLanguageServer": true,

    // **Markdown**
    "[markdown]": {
        // Enable word based suggestions
        "editor.wordBasedSuggestions": true,
        // Disable drag and drop in markdown files
        "editor.dragAndDrop": false,
        // Enable quick suggestions
        "editor.quickSuggestions": {
            "comments": "on",
            "strings": "on",
            "other": "on"
        },
        // Send snippets to top in suggestion list
        "editor.snippetSuggestions": "top",
    },

    // **Markdown All in One**
    // Generate Github compatible table of content
    "markdown.extension.toc.slugifyMode": "github",
    // Update the table of contents on save
    "markdown.extension.toc.updateOnSave": true,
    // Set list indentation to inherit
    "markdown.extension.list.indentationSize": "inherit",
    // Convert toc to lowercase to work on Github and Hugo
    "markdown.extension.toc.downcaseLink": true,
    // Use '*' to indicate italic and not '_'
    "markdown.extension.italic.indicator": "*",

    // **Git**
    // **uncomment to disable git**
    // "git.enabled": false,
    // "git.path": null,
    // "git.autofetch": false,

    // **Disable some gitlens stuff**
    "gitlens.codeLens.recentChange.enabled": false,
    "gitlens.codeLens.authors.enabled": false,
    // Disable telemetry
    "telemetry.telemetryLevel": "off",

    // **Markdown Notes**
    "vscodeMarkdownNotes.workspaceFilenameConvention": "relativePaths",

    "go.toolsManagement.autoUpdate": true,
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "remote.WSL.debug": false,
    "remote.WSL.fileWatcher.polling": true,
    "spellright.language": [
        "en"
    ],
    "spellright.documentTypes": [
        "markdown",
        "latex",
        "plaintext"
    ],
    "window.zoomLevel": 1,
    "git.ignoreMissingGitWarning": true,
    "redhat.telemetry.enabled": false,

    "[rust]": {
        "editor.defaultFormatter": "rust-lang.rust-analyzer",
        "editor.formatOnSave": true
    },
    "debug.allowBreakpointsEverywhere": true,
    "[yaml]": {
        "editor.stablePeek": true
    },
    "antlr4.generation": {
        "mode": "internal",
        "language": "Java",
        "listeners": true,
        "visitors": true,
    },

    // "remote.WSL.fileWatcher.pollingInterval": 50000,
}
