{
    // File paths to language mappings
    "files.associations": {
        // root
        ".ignore": "ignore",
        "dot-manage": "shellscript",
        "dot-update": "shellscript",
        // bash
        ".bash_logout": "shellscript",
        ".bashrc": "shellscript",
        ".profile": "shellscript",
        // bazaar
        "**/.bazaar/*.conf": "ini",
        // clink
        "clink_settings": "properties",
        // curl
        ".curlrc": "properties",
        // cygwin
        ".startxwinrc": "shellscript",
        // dig
        ".digrc": "properties",
        // dircolors
        ".dircolors": "plain",
        // editline
        ".editrc": "properties",
        // git
        ".gitconfig": "ini",
        ".gitconfig-priv": "ini",
        "**/git/bin/*": "shellscript",
        "**/git/hooks/*": "shellscript",
        // git-win
        ".git-for-windows-updater": "ini",
        ".gitconfig-win": "ini",
        // htop
        "htoprc": "properties",
        // irssi
        "**/irssi/.irssi/*": "plain",
        // jetbrains
        "*.DotSettings": "xml",
        // less
        ".lesskey": "properties",
        // markdownlint
        ".markdownlintrc": "jsonc",
        // mysql
        ".my.cnf": "ini",
        // npm
        ".npmrc": "properties",
        // openssh
        "**/.ssh/config": "ssh_config",
        "**/.ssh/known_hosts": "plain",
        "**/.ssh/known_hosts.old": "plain",
        "**/.ssh/hosts/*": "plain",
        "**/.ssh/includes/*": "ssh_config",
        "**/.ssh/keys/*": "plain",
        "**/.ssh/templates/*": "ssh_config",
        "**/openssh/bin/*": "shellscript",
        // openssl
        "**/openssl/*.cnf": "ini",
        // pgsql
        ".psqlrc": "sql",
        // pip
        "pip.conf": "ini",
        // prettier
        ".prettierrc": "json",
        // putty
        "**/putty/Sessions/*.json": "jsonc",
        // quilt
        ".quiltrc": "shellscript",
        // readline
        ".inputrc": "properties",
        // ripgrep
        ".ripgreprc": "properties",
        // sbuild
        ".mk-sbuild.rc": "shellscript",
        // screen
        ".screenrc": "properties",
        // scripts
        "**/scripts/bin/*": "shellscript",
        // shellcheck
        ".shellcheckrc": "properties",
        // stow
        ".stow-local-ignore": "plain",
        "**/stow/bin/*": "perl",
        // subversion
        "**/.subversion/config": "ini",
        "**/.subversion/servers": "ini",
        // vs
        "*.vssettings": "xml",
        // wget
        ".wgetrc": "properties",
        // windows/Windows Sandbox
        "*.wsb": "xml",
        // wsl
        ".wslconfig": "ini",
        "wsl.conf": "ini",
        // xdg-user-dir
        "user-dirs.dirs": "shellscript",
        "user-dirs.locale": "plain",
        // xlaunch
        "*.xlaunch": "xml",
        // zsh
        ".zlogout": "shellscript",
        ".zshrc": "shellscript"
    },

    // Files to hide in Explorer tree
    "files.exclude": {
        "**/.venv": true,
        "**/~$*.doc*": true,
        "**/~$*.ppt*": true,
        "**/~$*.xls*": true
    },

    // Excludes for search & quick open
    "search.exclude": {
        "**/modules/oh-my-zsh/**": true,
        "**/posh/Help/**": true,
        "**/posh/Modules/**": true,
        "**/pwsh/**": true,
        "**/zsh/.oh-my-zsh/**": true
    },

    // Markdown table of contents generation
    "markdown.extension.toc.levels": "2..2",
    "markdown.extension.toc.slugifyMode": "github",

    // PowerShell script analysis
    "powershell.scriptAnalysis.settingsPath": ".config/PSScriptAnalyzerSettings.psd1",

    // Prettier code formatter
    "prettier.configPath": ".config/.prettierrc",

    // Python virtual environment
    "python.defaultInterpreterPath": "${env:DOTFILES}/.venv",

    // Excludes for ShellCheck linter
    "shellcheck.ignorePatterns": {
        "**/*.zsh": true,
        "**/.zshrc": true
    },

    // VS Code explorer icons
    "vsicons.presets.foldersAllDefaultIcon": true,
    "vsicons.associations.files": [
        {
            "icon": "bazaar",
            "extensions": ["bazaar.conf"],
            "filename": true,
            "format": "svg"
        },
        {
            "icon": "binary",
            "extensions": [".less"],
            "filename": true,
            "format": "svg"
        },
        {
            "icon": "binary",
            "extensions": ["pmf"],
            "filename": false,
            "format": "svg"
        },
        {
            "icon": "db",
            "extensions": ["sdb"],
            "filename": false,
            "format": "svg"
        },
        {
            "icon": "git",
            "extensions": [
                ".git-for-windows-updater",
                ".gitconfig-priv",
                ".gitconfig-win",
                ".keepme"
            ],
            "filename": true,
            "format": "svg"
        },
        {
            "icon": "key",
            "extensions": ["pub"],
            "filename": false,
            "format": "svg"
        },
        {
            "icon": "mysql",
            "extensions": [".my.cnf"],
            "filename": true,
            "format": "svg"
        },
        {
            "icon": "onenote",
            "extensions": ["onetastic"],
            "filename": false,
            "format": "svg"
        },
        {
            "icon": "pgsql",
            "extensions": [".psqlrc"],
            "filename": true,
            "format": "svg"
        },
        {
            "icon": "pip",
            "extensions": ["pip.conf"],
            "filename": true,
            "format": "svg"
        },
        {
            "icon": "text",
            "extensions": [
                ".bash_history",
                ".ignore",
                "clink_history",
                "user-dirs.locale"
            ],
            "filename": true,
            "format": "svg"
        },
        {
            "icon": "vim",
            "extensions": ["vim"],
            "filename": false,
            "format": "svg"
        },
        {
            "icon": "vim",
            "extensions": [".viminfo"],
            "filename": true,
            "format": "svg"
        }
    ],

    // XML schema file associations
    "xml.fileAssociations": [
        {
            "pattern": "**/windows/Event Viewer/*.xml",
            "systemId": "windows/Event Viewer/Query.xsd"
        }
    ],

    "[ahk]": {
        "editor.rulers": [79]
    },

    "[bat]": {
        "editor.rulers": [79]
    },

    "[csharp]": {
        "editor.rulers": [79]
    },

    "[ini]": {
        "editor.rulers": [79]
    },

    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.formatOnSave": true,
        "editor.rulers": [79]
    },

    "[json]": {
        "editor.rulers": [79]
    },

    "[jsonc]": {
        "editor.rulers": [79]
    },

    "[powershell]": {
        "editor.formatOnSave": true,
        "editor.rulers": [79]
    },

    "[properties]": {
        "editor.rulers": [79]
    },

    "[shellscript]": {
        "editor.formatOnSave": true,
        "editor.rulers": [79]
    },

    "[sql]": {
        "editor.rulers": [79]
    },

    "[ssh_config]": {
        "editor.rulers": [79]
    },

    "[vba]": {
        "editor.rulers": [79]
    },

    "[viml]": {
        "editor.rulers": [79]
    },

    "[xml]": {
        "editor.rulers": [79]
    }
}
