Skip to content

Instantly share code, notes, and snippets.

@nandordudas
Last active April 25, 2024 09:59
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save nandordudas/a80971a3cf4a4563a26bc9aa3cfc8c00 to your computer and use it in GitHub Desktop.
Save nandordudas/a80971a3cf4a4563a26bc9aa3cfc8c00 to your computer and use it in GitHub Desktop.
Setup WSL 2 on Windows 11

TL;DR

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
iex "& {$(irm get.scoop.sh)} -ScoopDir ${Env:USERPROFILE}\Scoop"
scoop install git; scoop bucket add extras; scoop bucket add nerd-fonts
scoop install --global JetBrains-Mono Maple-Mono Maple-Mono-NF Meslo-NF-Mono Monaspace
#
winget install Docker.DockerDesktop
winget install JanDeDobbeleer.OhMyPosh
winget install Microsoft.PowerShell
winget install Microsoft.VisualStudioCode
#
wsl --install --distribution Ubuntu-22.04
Restart-Computer
#
code --install-extension ms-vscode-remote.remote-wsl
wsl --install --distribution Ubuntu-22.04
wsl --update
#
wsl --user root -- sh -c 'apt update --yes && apt upgrade --yes && apt autoremove --yes'
# Prompt should be 'normal' or 'never'
wsl --user root -- sh -c "sed -i 's/Prompt=lts/Prompt=normal/g' /etc/update-manager/release-upgrades"
wsl --user root -- sh -c "sed -i 's/Prompt=lts/Prompt=never/g' /etc/update-manager/release-upgrades"
wsl --user root -- sh -c 'do-release-upgrade'
wsl --user root -- sh -c 'apt update --yes && apt upgrade --yes && apt autoremove --yes'
#
wsl --shutdown
mkdir E:\WSL
wsl --export Ubuntu-22.04 "E:\WSL\Ubuntu-23.10.tar"
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-23.10 "E:\WSL\Ubuntu-23.10" "E:\WSL\Ubuntu-23.10.tar"
wsl --set-default Ubuntu-23.10
# if you didn't install Docker Desktop or you need Docker in WSL
sudo apt update --yes && sudo apt upgrade --yes
mkdir -p ~/Downloads
curl -fsSL https://get.docker.com -o ~/Downloads/get-docker.sh
sudo sh ~/Downloads/get-docker.sh
sudo usermod -aG docker $USER
sudo apt autoremove --yes
rm ~/Downloads/get-docker.sh
#
sudo apt install --yes exiftool
base_url=https://github.com/dandavison/delta/releases/download
delta_version=0.17.0
filename="git-delta_${delta_version}_amd64.deb"
curl -fsSL "${base_url}/${delta_version}/${filename}" -o ~/Downloads/$filename
sudo dpkg --install git-delta_${delta_version}_amd64.deb
rm ~/Downloads/$filename
#
sudo apt install --yes zsh
gist_base=https://raw.githubusercontent.com
sh -c "$(curl -fsSL ${gist_base}/ohmyzsh/ohmyzsh/master/tools/install.sh)"
plugins_path="${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins"
git config --global url."https://github.com/".insteadOf gh:
git clone gh:z-shell/F-Sy-H "${plugins_path}/F-Sy-H"
git clone gh:zsh-users/zsh-autosuggestions "${plugins_path}/zsh-autosuggestions"
sed -ie "s/plugins=.*/plugins=(git F-Sy-H zsh-autosuggestions)/g" ~/.zshrc
source ~/.zshrc
# bash -c "$(curl -sSL ${gist_base}/nandordudas/a80971a3cf4a4563a26bc9aa3cfc8c00/raw/git_config)"
file_hash=94b3917fd77133fc310aeb62fad8a7c1d8ff3d1261324fb5fedfe1fb57b33c21
gist_base=https://gist.githubusercontent.com
curl -fsSL ${gist_base}/nandordudas/a80971a3cf4a4563a26bc9aa3cfc8c00/raw/git_config -o ~/Downloads/git_config
diff <(sha256sum ~/Downloads/git_config | awk '{print $1}') <(echo ${file_hash})
bash ~/Downloads/git_config
rm ~/Downloads/git_config

Install Scoop a command-line installer for Windows

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
iex "& {$(irm get.scoop.sh)} -ScoopDir ${Env:USERPROFILE}\Scoop"
scoop install git
scoop bucket add extras
scoop install delta exiftool

Windows Package Manager and PowerShell

Install Powershell

winget upgrade --all --silent --include-unknown
winget install Microsoft.PowerShell
winget install Microsoft.PowerToys
Font settings

Monaspace, Maple mono, Nerd fonts

scoop bucket add nerd-fonts
scoop install --global Monaspace JetBrains-Mono Maple-Mono Maple-Mono-NF Meslo-NF-Mono
Customize Powershell

Oh My Posh and Terminal-Icons

Install-Module Terminal-Icons
winget install JanDeDobbeleer.OhMyPosh

Update Powershell profile setup.

winget install Microsoft.VisualStudioCode
code $PROFILE

Add Microsoft.PowerShell_profile.ps1 content and save the file.

Update Windows Terminal settings and set it as the default profile. Disable the logo on your PowerShell profile by adding -NoLogo after the command and save the changes, like \pwsh.exe -NoLogo - go to Settings/Defaults/Font face and set Maple Mono NF.

winget install Docker.DockerDesktop
winget install Microsoft.VisualStudioCode

Note

If using Docker Desktop is not feasible or undesirable.

# WSL already installed
sudo apt update --yes && sudo apt upgrade --yes
mkdir -p ~/Downloads
curl -fsSL https://get.docker.com -o ~/Downloads/get-docker.sh
sudo sh ~/Downloads/get-docker.sh
sudo usermod -aG docker $USER
sudo apt autoremove --yes
rm ~/Downloads/get-docker.sh
# If you encounter issues with Docker setup, consider deleting the ~/.docker folder both on the host and within WSL

Install Windows Subsystem for Linux (WSL)

Open Windows Terminal with Administrator permissions

Setup the new user. These commands are running in Powershell, not in WSL.

# Set up Ubuntu within WSL or choose a particular release, such as Ubuntu-22.04
wsl --install --distribution Ubuntu
Restart-Computer
# To rerun the previous command, use the up arrow key in the terminal, and WSL will update the kernel
wsl --install --distribution Ubuntu
wsl --update
wsl --user root apt update --yes
wsl --user root apt upgrade --yes
# Check system info
wsl lsb_release --all
# Set default distribution
wsl --list
wsl --set-default Ubuntu

Upgrade WSL optionally

# Prepare WSL image upgrade - cat /etc/os-release
sudo apt install update-manager-core
# Upgrade WSL image - use the "-d" flag if you want use development versions
sudo do-release-upgrade
sudo apt update --yes && sudo apt upgrade --yes
sudo apt install --yes zsh
sudo apt autoremove --yes

Export your WSL (recommended)

It's recommended to export your WSL image to an external disk for space-saving and backup purposes.

wsl --shutdown
mkdir E:\WSL
wsl --export Ubuntu-22.04 "E:\WSL\Ubuntu-23.10.tar"
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-23.10 "E:\WSL\Ubuntu-23.10" "E:\WSL\Ubuntu-23.10.tar"
wsl --set-default Ubuntu-23.10

Tip

Add WSL config on the host

Check wslconfig. Restart WSL and Docker.

wsl --shutdown

Install recommended VS Code extensions

Remote containers

code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-vscode-remote.remote-wsl

Setup Git in WSL

Note

You don't need to setup Git on host but recommended to set email and name globally.

Use Windows Terminal or VS Code, or use WSL Bash.

Git config

Check Delta and exiftool.

# On WSL Ubuntu
base_url=https://github.com/dandavison/delta/releases/download
delta_version=0.17.0
filename="git-delta_${delta_version}_amd64.deb"
curl -fsSL "${base_url}/${delta_version}/${filename}" -o ~/Downloads/$filename
sudo dpkg --install git-delta_${delta_version}_amd64.deb
sudo apt install --yes exiftool
rm ~/Downloads/$filename
# Arch
# sudo pacman -S git-delta perl-image-exiftool
Setup zsh

Oh-My-Zsh, Powerlevel 10k, Fast syntax highlight and Zsh completions

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
plugins_path="${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins"
git config --global url."https://github.com/".insteadOf gh:
git clone gh:z-shell/F-Sy-H "${plugins_path}/F-Sy-H"
git clone gh:zsh-users/zsh-autosuggestions "${plugins_path}/zsh-autosuggestions"
sed -ie "s/plugins=.*/plugins=(git F-Sy-H zsh-autosuggestions)/g" ~/.zshrc
source ~/.zshrc

Advanced Git setup (or winget install GnuPG.Gpg4win)

Git setup

Please check git_config file below before run following script!

bash -c "$(curl -sSL https://gist.githubusercontent.com/nandordudas/a80971a3cf4a4563a26bc9aa3cfc8c00/raw/git_config)"

Folder specific Git configuration

git config --global --edit

[includeIf "gitdir:~/Code/Github/"]
  path = ~/Code/Github/.gitconfig

Use local repositories like that:

  • ~/Code/GitHub/johndoe
    • /repository_one
    • /repository_two
  • ~/Code/GitHub/janedoe
    • /repository_one
    • /repository_two
  • ~/Code/GitLab/janedoe
    • /repository_one

Add refspec

The +refs/merge-requests/*:refs/remotes/origin/merge-requests/* refspec tells Git to fetch all merge requests from the remote repository. The * wildcard matches all merge requests, and the :refs/remotes/origin/merge-requests/* part tells Git to store the fetched merge requests in the refs/remotes/origin/merge-requests/* namespace.

GitLab repositories

git config --add remote.origin.fetch "+refs/merge-requests/*:refs/remotes/origin/merge-requests/*"

The +refs/pull/*/head:refs/remotes/pull_requests/* refspec tells Git to fetch the heads of all pull requests from the remote repository. The refs/pull/*/head part matches the heads of all pull requests, and the :refs/remotes/pull_requests/* part tells Git to store the fetched heads in the refs/remotes/pull_requests/* namespace.

GitHub repositories

git config --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/pull_requests/*"

The +refs/pull-requests/*/from:refs/remotes/origin/pr/* refspec tells Git to fetch the from branches of all pull requests from the remote repository. The refs/pull-requests/*/from part matches the from branches of all pull requests, and the :refs/remotes/origin/pr/* part tells Git to store the fetched branches in the refs/remotes/origin/pr/* namespace.

Bitbucket repositories

git config --add remote.origin.fetch "+refs/pull-requests/*/from:refs/remotes/origin/pr/*"

Note

I you have issues with signing commits with GPG key.

GPG for Win, sharing GPG keys and about commit signature verification

Please check what sudo does before installing it, or simply use the terminal as an administrator and execute the command without it.

scoop install sudo
sudo scoop install gpg4win
# Restarting the computer is recommended, but even signing off is sufficient
Logoff

Log back into WSL. Enjoy.

asax
ashx
astro
axaml
bazel
bazelignore
bazelproject
bazelrc
calt
clangd
clippy
codecov
czrc
dlig
dlint
dprint
eamodio
envrc
gitmojirc
heex
histoire
huskyrc
isort
latexmk
leex
liga
lighthouserc
lintstagedrc
lockb
mdsvex
nuxt
nuxtignore
nuxtrc
phpcs
postcssrc
pyproject
pyrightconfig
releaserc
resx
rspack
rustfmt
scminput
styleci
tazerc
terserrc
transform
tsdoc
unlighthouse
unocss
usernamehw
versionrc
vetur
vuetify
windi
#!/usr/bin/env bash
set -euo pipefail
main() {
CONFIG_FILE="$HOME/.gitconfig"
backup_config() {
if [ -e "$CONFIG_FILE" ]; then
mv "$CONFIG_FILE" "$CONFIG_FILE-$(date +%F_%T).bak"
fi
}
exists() {
command -v "$1" >/dev/null 2>&1
}
confirm() {
local title="$1"
echo -n "$title (Y/n): "
while read -rn 1 -s answer; do
answer="${answer:-Y}"
case $answer in
[Yy]*) echo "Confirmed."; return 0 ;;
[Nn]*) echo "Canceled."; return 1 ;;
*) echo "Invalid input. Please enter 'Yy' or 'Nn'." ;;
esac
done
}
get_secret_keys() {
local email="$1"
if [[ -n "${cache[$email]}" ]]; then
echo "${cache[$email]}"
return
fi
local result
result=$(gpg --list-secret-keys "$email" 2>/dev/null | sed -n '2s/.*\(.\{16\}\)$/\1/p')
cache["$email"]=$result
echo "$result"
}
backup_config
read -rp "Enter your email: " email
read -rp "Enter your name: " name
declare -A cache=([$email]="")
git config --global advice.detachedHead false
if confirm "Do you prefer rebasing instead of merging?"; then
git config --global branch.autoSetupRebase always
git config --global pull.rebase merges
git config --global --add --bool rebase.updateRefs true
else
git config --global branch.autoSetupRebase never
git config --global pull.rebase false
fi
git config --global color.pager true
git config --global color.ui true
git config --global color.branch.current "yellow reverse"
git config --global color.branch.local yellow
git config --global color.branch.remote green
git config --global color.branch.commit "227 bold"
git config --global color.branch.frag "magenta bold"
git config --global color.branch.meta 227
git config --global color.branch.new "green bold"
git config --global color.branch.old "red bold 52"
git config --global color.branch.whitespace "red reverse"
git config --global color.diff-highlight.newHighlight "green bold 22"
git config --global color.diff-highlight.newNormal "green bold"
git config --global color.diff-highlight.oldHighlight "red bold 52"
git config --global color.diff-highlight.oldNormal "red bold"
git config --global color.status.added yellow
git config --global color.status.changed green
git config --global color.status.untracked cyan
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
git config --global core.autocrlf true
else
git config --global core.autocrlf input
fi
git config --global core.abbrev 12
git config --global core.fsmonitor true
git config --global core.quotePath false
git config --global core.untrackedCache true
git config --global core.whitespace "fix,-indent-with-non-tab,trailing-space,cr-at-eol"
# git config --global credential.helper "cache --timeout 3600" # Security enhancement
if confirm "Do you want to set up delta (colorized git diff viewer)?"; then
if exists "delta" && exists "exiftool"; then
git config --global core.pager delta # https://github.com/dandavison/delta
git config --global delta.commit-decoration-style "bold yellow box ul"
git config --global delta.file-style "bold yellow ul"
git config --global delta.hunk-header-decoration-style "yellow box"
git config --global delta.line-numbers true
git config --global delta.minus-color "#340001"
git config --global delta.plus-color "#012800"
git config --global delta.side-by-side true
git config --global delta.whitespace-error-style "22 reverse"
git config --global diff.exif.textconv exiftool # sudo apt install --yes exiftool
git config --global initeractive.diffFilter "delta --color-only"
else
echo "Delta and exiftool binaries are required but not found."
fi
fi
git config --global diff.algorithm histogram
git config --global diff.colorMoved default
git config --global diff.indentHeuristic true
git config --global diff.mnemonicPrefix true
git config --global diff.renames copies
git config --global difftool.prompt false
git config --global feature.experimental true
git config --global fetch.prune true
git config --global fetch.pruneTags true
git config --global fetch.writeCommitGraph true
git config --global gc.cruftPacks true
git config --global grep.cloumn true
git config --global grep.fullName true
git config --global grep.lineNumber true
git config --global init.defaultBranch main
git config --global initeractive.singleKey true
git config --global maintenance.auto false
git config --global maintenance.strategy incremental
git config --global merge.conflictStyle diff3
git config --global merge.ff only
git config --global mergetool.prompt false
git config --global pack.writeReverseIndex true
git config --global push.autoSetupRemote true
git config --global push.default simple
git config --global push.followTags true
git config --global push.useForceIfIncludes true
git config --global rebase.abbreviateCommands true
git config --global rebase.autoSquash true
git config --global rebase.autoStash true
git config --global rebase.updateRefs true
git config --global rerere.autoUpdate true
git config --global rerere.enabled true
git config --global revert.reference true
git config --global status.showUntrackedFiles all
git config --global tag.sort version:refname
git config --global transfer.fsckObjects true
git config --global url."https://bitbucket.org/".insteadOf bb:
git config --global url."https://github.com/".insteadOf gh:
git config --global url."https://gitlab.com/".insteadOf gl:
if confirm "Do you want to set up GPG key for signing commits?"; then
local existing_key
existing_key=$(get_secret_keys "$email")
if [ -n "$existing_key" ]; then
echo "GPG key already exists for the specified email."
else
gpg --quick-generate-key "$name <$email>" "ed25519/cert,sign+cv25519/encr"
existing_key=$(get_secret_keys "$email")
fi
echo "If the GPG key is not already present, add it to the remote - run 'gpg --armor --export $existing_key'."
git config --global commit.gpgSign true
git config --global tag.forceSignAnnotated true
git config --global tag.gpgSign true
git config --global user.signingKey "$existing_key"
fi
if exists "code"; then
git config --global core.editor "code --wait"
git config --global diff.tool default-difftool
git config --global difftool.default-difftool.cmd "code --wait --diff \$LOCAL \$REMOTE"
git config --global merge.tool code
git config --global mergetool.code.cmd "code --wait --merge \$REMOTE \$LOCAL \$BASE \$MERGED"
fi
git config --global user.email "$email"
git config --global user.name "$name"
git config --global user.useConfigOnly true
git config --list --show-origin # Reload Git configuration
echo "Git configuration completed!"
}
main
{
// Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
"Print to console": {
"scope": "typescript,typescriptreact,vue",
"prefix": "clog",
"body": ["console.log($0) // eslint-disable-line no-console"],
"description": "Log output to the console"
},
"Variable - const or let": {
"scope": "typescript,typescriptreact,vue",
"prefix": "$",
"body": ["${1|const,let|} ${3:{ username \\}} = ${2:{ username: 'John' \\}}"],
"description": "Create hoisted variable"
},
"Export module": {
"scope": "typescript,typescriptreact",
"prefix": "ex",
"body": ["export ${2:{ default as ${3:Component} \\}} from '$1'"],
"description": "Export module"
},
"Import module": {
"scope": "typescript,typescriptreact,vue",
"prefix": "im",
"body": ["import ${2:{ ${3:resolve} \\}} from '${1:node:path}'"],
"description": "Import module"
},
"Vitest it": {
"scope": "typescript,typescriptreact",
"prefix": "spec",
"body": [
"it('${1:should does not do much}', () => {",
" // arrange",
" ${2:const mockValue = true}",
"",
" // act and assert",
" ${4:expect(mockValue).toBeTruthy()}",
"})"
],
"description": "Create spec"
},
"Vitest describe": {
"scope": "typescript,typescriptreact",
"prefix": "suite",
"body": [
"describe('${1:${TM_FILENAME_BASE/^(.*)\\.spec$/${1:/pascalcase}/}}', () => {",
" ${2:spec}",
"",
" it.todo('should satisfy test case in the future')",
"})"
],
"description": "Create suite with optional spec"
}
}
[
/* */
{ "key": "shift+alt+right", "command": "-cursorWordEndRightSelect", "when": "editorTextFocus" },
{ "key": "shift+alt+left", "command": "-cursorWordStartLeftSelect", "when": "editorTextFocus" },
/* */
{ "key": "alt alt", "command": "workbench.action.showCommands", "when": "editorTextFocus" },
/* */
{ "key": "shift shift", "command": "workbench.action.quickOpen", "when": "editorTextFocus" }
]
function Initialize-Environment {
<#
.SYNOPSIS
Initialize user environment in PowerShell
.DESCRIPTION
The Initialize-Environment script configures Oh My Posh, initialize
PSReadLine and Terminal-Icons.
.EXAMPLE
Initialize-Environment
Initialize PowerShell user environment, you can get themes with
Get-PoshThemes command.
#>
[CmdletBinding()]
param (
# Set default theme as aliens, which can be overrided by the caller
[Parameter()]
[Alias('t')]
[string]$OhMyPoshTheme = "aliens"
)
Set-StrictMode -Version Latest
Try {
# Get Oh My Posh Config
$OhMyPoshConfig = "${Env:LOCALAPPDATA}\Programs\oh-my-posh\themes\${OhMyPoshTheme}.omp.json"
# Validate if Oh My Posh Config Exists
if(-not (Test-Path -Path $OhMyPoshConfig -ErrorAction SilentlyContinue)) {
throw "Oh My Posh config file doesn't exist at the path: $OhMyPoshConfig."
}
# Initialize Oh My Posh
oh-my-posh init pwsh --config $OhMyPoshConfig | Invoke-Expression
# Define the array of required modules
$requiredModules = 'PSReadLine', 'Terminal-Icons'
# Check if required modules are installed
foreach ($module in $requiredModules) {
if(-not(Get-Module -ListAvailable -Name $module)) {
throw "Module $module is not installed."
}
# Import required modules
Import-Module -Name $module
}
# Set PSReadLine options
Set-PSReadLineOption -EditMode Windows -PredictionSource History
} Catch {
Write-Error "Failed to initialize the environment: $($_.Exception.Message)"
exit 1
}
}
function Update-SystemPackages {
<#
.SYNOPSIS
Update various system packages
.DESCRIPTION
The Update-SystemPackages script updates various system packages, using
Scoop, winget and WSL and performs system operations based on passed
parameters.
.PARAMETER RestartComputer
Restart the computer after performing updates
.PARAMETER LogOffUser
Log off the user after performing updates
.PARAMETER ShutdownComputer
Shutdown the computer after performing updates
.EXAMPLE
Update-SystemPackages -RestartComputer or -r
Update system packages and restart the computer afterwards.
#>
[CmdletBinding()]
param (
[switch]$RestartComputer,
[switch]$LogOffUser,
[switch]$ShutdownComputer
)
Set-StrictMode -Version Latest
Try {
# Update Scoop packages
scoop update --all --quiet
scoop cleanup --all --cache
scoop cache rm --all
# Upgrade Windows packages
winget upgrade --all --silent
# Update WSL packages
wsl --update
wsl --user root -- sh -c 'apt update --yes && apt upgrade --yes && apt autoremove --yes'
} Catch {
Write-Error "Failed to update packages: $($_.Exception.Message)"
exit 1
}
# Perform system actions if specified
if ($RestartComputer) {
Restart-Computer
}
if ($LogOffUser) {
Logoff
}
if ($ShutdownComputer) {
shutdown -s -t 0
}
}
# Set an alias for the Update-SystemPackages function
Set-Alias -Name upb -Value Update-SystemPackages
# Initialize the environment
Initialize-Environment -t '1_shell' # wholespace
cascadia
consolas
meslo
vitesse
{
/* */
"breadcrumbs.enabled": false,
/* */
"debug.onTaskErrors": "debugAnyway",
/* */
"diffEditor.experimental.showEmptyDecorations": true,
"diffEditor.experimental.showMoves": true,
"diffEditor.ignoreTrimWhitespace": false,
/* */
"editor.accessibilitySupport": "off",
"editor.codeActionsOnSave": { "source.fixAll": "explicit", "source.organizeImports": "never" },
"editor.cursorBlinking": "phase",
"editor.cursorSmoothCaretAnimation": "explicit",
"editor.cursorStyle": "underline-thin",
"editor.detectIndentation": false,
"editor.emptySelectionClipboard": false,
"editor.find.addExtraSpaceOnTop": false,
"editor.find.autoFindInSelection": "multiline",
"editor.fontFamily": "Monaspace Neon, Monaspace Argon, Maple Mono, JetBrains Mono, Cascadia Code, Consolas, monospace",
"editor.fontLigatures": "'ss01', 'ss02', 'ss03', 'ss04', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'calt', 'liga', 'dlig'",
"editor.fontWeight": "normal",
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "modificationsIfAvailable",
"editor.guides.bracketPairs": "active",
"editor.guides.bracketPairsHorizontal": false,
"editor.guides.indentation": false,
"editor.hover.sticky": true,
"editor.inlayHints.enabled": "offUnlessPressed",
"editor.inlayHints.fontFamily": "Monaspace Radon",
"editor.inlineSuggest.enabled": true,
"editor.insertSpaces": true,
"editor.linkedEditing": true,
"editor.minimap.enabled": false,
"editor.occurrencesHighlight": "multiFile",
"editor.quickSuggestions": { "comments": "off", "other": "inline", "strings": "inline" },
"editor.renderWhitespace": "boundary",
"editor.rulers": [
{ "color": "#4f8f3140", "column": 80 },
{ "color": "#a5551f40", "column": 120 }
],
"editor.selectionHighlight": false,
"editor.smoothScrolling": true,
"editor.stickyScroll.enabled": true,
"editor.suggest.selectionMode": "whenQuickSuggestion",
"editor.suggest.showStatusBar": true,
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.suggestSelection": "first",
"editor.tabCompletion": "onlySnippets",
"editor.tabSize": 2,
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": [
"comment",
"constant",
"entity.name.type.class",
"keyword",
"storage.modifier",
"storage.type.class.js"
],
"settings": { "fontStyle": "italic" }
},
{
"scope": [
"constant.numeric.css",
"constant.numeric.decimal.js",
"constant.numeric.json",
"invalid",
"keyword.operator",
"keyword.other.unit.px.css"
],
"settings": { "fontStyle": "" }
}
]
},
"editor.wordWrapColumn": 120,
"editor.wordWrap": "off",
"editor.wrappingIndent": "deepIndent",
/* */
"emmet.showSuggestionsAsSnippets": true,
"emmet.syntaxProfiles": {
"jsx": {
"markup.attributes": { "class*": "className" },
"markup.valuePrefix": { "class*": "styles" }
}
},
"emmet.triggerExpansionOnTab": false,
/* */
"explorer.compactFolders": false,
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.expand": false,
"explorer.fileNesting.patterns": {
"*.asax": "$(capture).*.cs, $(capture).*.vb",
"*.ascx": "$(capture).*.cs, $(capture).*.vb",
"*.ashx": "$(capture).*.cs, $(capture).*.vb",
"*.aspx": "$(capture).*.cs, $(capture).*.vb",
"*.axaml": "$(capture).axaml.cs",
"*.bloc.dart": "$(capture).event.dart, $(capture).state.dart",
"*.c": "$(capture).h",
"*.cc": "$(capture).hpp, $(capture).h, $(capture).hxx",
"*.cjs": "$(capture).cjs.map, $(capture).*.cjs, $(capture)_*.cjs",
"*.component.ts": "$(capture).component.html, $(capture).component.spec.ts, $(capture).component.css, $(capture).component.scss, $(capture).component.sass, $(capture).component.less",
"*.cpp": "$(capture).hpp, $(capture).h, $(capture).hxx",
"*.cs": "$(capture).*.cs",
"*.cshtml": "$(capture).cshtml.cs",
"*.csproj": "*.config, *proj.user, appsettings.*, bundleconfig.json",
"*.css": "$(capture).css.map, $(capture).*.css",
"*.cxx": "$(capture).hpp, $(capture).h, $(capture).hxx",
"*.dart": "$(capture).freezed.dart, $(capture).g.dart",
"*.ex": "$(capture).html.eex, $(capture).html.heex, $(capture).html.leex",
"*.fs": "$(capture).fs.js, $(capture).fs.js.map, $(capture).fs.jsx, $(capture).fs.ts, $(capture).fs.tsx, $(capture).fs.rs, $(capture).fs.php, $(capture).fs.dart",
"*.go": "$(capture)_test.go",
"*.java": "$(capture).class",
"*.js": "$(capture).js.map, $(capture).*.js, $(capture)_*.js",
"*.jsx": "$(capture).js, $(capture).*.jsx, $(capture)_*.js, $(capture)_*.jsx, $(capture).less, $(capture).module.less",
"*.master": "$(capture).*.cs, $(capture).*.vb",
"*.mjs": "$(capture).mjs.map, $(capture).*.mjs, $(capture)_*.mjs",
"*.module.ts": "$(capture).resolver.ts, $(capture).controller.ts, $(capture).service.ts",
"*.mts": "$(capture).mts.map, $(capture).*.mts, $(capture)_*.mts",
"*.pubxml": "$(capture).pubxml.user",
"*.resx": "$(capture).*.resx, $(capture).designer.cs, $(capture).designer.vb",
"*.tex": "$(capture).acn, $(capture).acr, $(capture).alg, $(capture).aux, $(capture).bbl, $(capture).blg, $(capture).fdb_latexmk, $(capture).fls, $(capture).glg, $(capture).glo, $(capture).gls, $(capture).idx, $(capture).ind, $(capture).ist, $(capture).lof, $(capture).log, $(capture).lot, $(capture).out, $(capture).pdf, $(capture).synctex.gz, $(capture).toc, $(capture).xdv",
"*.ts": "$(capture).js, $(capture).d.ts.map, $(capture).*.ts, $(capture)_*.js, $(capture)_*.ts",
"*.tsx": "$(capture).ts, $(capture).*.tsx, $(capture)_*.ts, $(capture)_*.tsx, $(capture).less, $(capture).module.less, $(capture).scss, $(capture).module.scss",
"*.vbproj": "*.config, *proj.user, appsettings.*, bundleconfig.json",
"*.vue": "$(capture).*.ts, $(capture).*.js, $(capture).story.vue",
"*.xaml": "$(capture).xaml.cs",
"+layout.svelte": "+layout.ts,+layout.ts,+layout.js,+layout.server.ts,+layout.server.js,+layout.gql",
"+page.svelte": "+page.server.ts,+page.server.js,+page.ts,+page.js,+page.gql",
".clang-tidy": ".clang-format, .clangd, compile_commands.json",
".env": "*.env, .env.*, .envrc, env.d.ts",
".gitignore": ".gitattributes, .gitmodules, .gitmessage, .mailmap, .git-blame*",
".project": ".classpath",
"BUILD.bazel": "*.bzl, *.bazel, *.bazelrc, bazel.rc, .bazelignore, .bazelproject, WORKSPACE",
"CMakeLists.txt": "*.cmake, *.cmake.in, .cmake-format.yaml, CMakePresets.json, CMakeCache.txt",
"Cargo.toml": ".clippy.toml, .rustfmt.toml, cargo.lock, clippy.toml, cross.toml, rust-toolchain.toml, rustfmt.toml",
"Dockerfile": "*.dockerfile, .devcontainer.*, .dockerignore, compose.*, docker-compose.*, dockerfile*",
"I*.cs": "$(capture).cs",
"Makefile": "*.mk",
"Pipfile": ".editorconfig, .flake8, .isort.cfg, .python-version, Pipfile, Pipfile.lock, requirements*.in, requirements*.pip, requirements*.txt, tox.ini",
"README*": "AUTHORS, Authors, BACKERS*, Backers*, CHANGELOG*, CITATION*, CODEOWNERS, CODE_OF_CONDUCT*, CONTRIBUTING*, CONTRIBUTORS, COPYING*, CREDITS, Changelog*, Citation*, Code_Of_Conduct*, Codeowners, Contributing*, Contributors, Copying*, Credits, GOVERNANCE.MD, Governance.md, HISTORY.MD, History.md, LICENSE*, License*, MAINTAINERS, Maintainers, README*, Readme*, SECURITY.MD, SPONSORS*, Security.md, Sponsors*, authors, backers*, changelog*, citation*, code_of_conduct*, codeowners, contributing*, contributors, copying*, credits, governance.md, history.md, license*, maintainers, readme*, security.md, sponsors*",
"Readme*": "AUTHORS, Authors, BACKERS*, Backers*, CHANGELOG*, CITATION*, CODEOWNERS, CODE_OF_CONDUCT*, CONTRIBUTING*, CONTRIBUTORS, COPYING*, CREDITS, Changelog*, Citation*, Code_Of_Conduct*, Codeowners, Contributing*, Contributors, Copying*, Credits, GOVERNANCE.MD, Governance.md, HISTORY.MD, History.md, LICENSE*, License*, MAINTAINERS, Maintainers, README*, Readme*, SECURITY.MD, SPONSORS*, Security.md, Sponsors*, authors, backers*, changelog*, citation*, code_of_conduct*, codeowners, contributing*, contributors, copying*, credits, governance.md, history.md, license*, maintainers, readme*, security.md, sponsors*",
"artisan": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, server.php, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, webpack.mix.js, windi.config.*",
"astro.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
"composer.json": ".php*.cache, composer.lock, phpunit.xml*, psalm*.xml",
"default.nix": "shell.nix",
"deno.json*": "*.env, .env.*, .envrc, api-extractor.json, deno.lock, env.d.ts, import-map.json, import_map.json, jsconfig.*, tsconfig.*, tsdoc.*",
"flake.nix": "flake.lock",
"gatsby-config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, gatsby-browser.*, gatsby-node.*, gatsby-ssr.*, gatsby-transformer.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
"gemfile": ".ruby-version, gemfile.lock",
"go.mod": ".air*, go.sum",
"go.work": "go.work.sum",
"hatch.toml": ".editorconfig, .flake8, .isort.cfg, .python-version, hatch.toml, requirements*.in, requirements*.pip, requirements*.txt, tox.ini",
"mix.exs": ".credo.exs, .dialyzer_ignore.exs, .formatter.exs, .iex.exs, .tool-versions, mix.lock",
"next.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, next-env.d.ts, next-i18next.config.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
"nuxt.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .nuxtignore, .nuxtrc, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
"package.json": ".browserslist*, .circleci*, .commitlint*, .cz-config.js, .czrc, .dlint.json, .dprint.json*, .editorconfig, .eslint*, .firebase*, .flowconfig, .github*, .gitlab*, .gitmojirc.json, .gitpod*, .huskyrc*, .jslint*, .knip.*, .lintstagedrc*, .markdownlint*, .node-version, .nodemon*, .npm*, .nvmrc, .pm2*, .pnp.*, .pnpm*, .prettier*, .release-please*.json, .releaserc*, .sentry*, .simple-git-hooks*, .stackblitz*, .styleci*, .stylelint*, .tazerc*, .textlint*, .tool-versions, .travis*, .versionrc*, .vscode*, .watchman*, .xo-config*, .yamllint*, .yarnrc*, Procfile, apollo.config.*, appveyor*, azure-pipelines*, biome.json, bower.json, build.config.*, bun.lockb, commitlint*, crowdin*, dangerfile*, dlint.json, dprint.json*, electron-builder.*, eslint*, firebase.json, grunt*, gulp*, jenkins*, knip.*, lerna*, lint-staged*, nest-cli.*, netlify*, nodemon*, npm-shrinkwrap.json, nx.*, package-lock.json, package.nls*.json, phpcs.xml, pm2.*, pnpm*, prettier*, pullapprove*, pyrightconfig.json, release-please*.json, release-tasks.sh, release.config.*, renovate*, rollup.config.*, rspack*, simple-git-hooks*, sonar-project.properties, stylelint*, tslint*, tsup.config.*, turbo*, typedoc*, unlighthouse*, vercel*, vetur.config.*, webpack*, workspace.json, xo.config.*, yarn*",
"pubspec.yaml": ".metadata, .packages, all_lint_rules.yaml, analysis_options.yaml, build.yaml, pubspec.lock, pubspec_overrides.yaml",
"pyproject.toml": ".editorconfig, .flake8, .isort.cfg, .pdm-python, .pdm.toml, .python-version, MANIFEST.in, Pipfile, Pipfile.lock, hatch.toml, pdm.lock, poetry.lock, pyproject.toml, requirements*.in, requirements*.pip, requirements*.txt, setup.cfg, setup.py, tox.ini",
"quasar.conf.js": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, quasar.extensions.json, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
"readme*": "AUTHORS, Authors, BACKERS*, Backers*, CHANGELOG*, CITATION*, CODEOWNERS, CODE_OF_CONDUCT*, CONTRIBUTING*, CONTRIBUTORS, COPYING*, CREDITS, Changelog*, Citation*, Code_Of_Conduct*, Codeowners, Contributing*, Contributors, Copying*, Credits, GOVERNANCE.MD, Governance.md, HISTORY.MD, History.md, LICENSE*, License*, MAINTAINERS, Maintainers, README*, Readme*, SECURITY.MD, SPONSORS*, Security.md, Sponsors*, authors, backers*, changelog*, citation*, code_of_conduct*, codeowners, contributing*, contributors, copying*, credits, governance.md, history.md, license*, maintainers, readme*, security.md, sponsors*",
"remix.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, remix.*, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
"requirements.txt": ".editorconfig, .flake8, .isort.cfg, .python-version, requirements*.in, requirements*.pip, requirements*.txt, tox.ini",
"rush.json": ".browserslist*, .circleci*, .commitlint*, .cz-config.js, .czrc, .dlint.json, .dprint.json*, .editorconfig, .eslint*, .firebase*, .flowconfig, .github*, .gitlab*, .gitmojirc.json, .gitpod*, .huskyrc*, .jslint*, .knip.*, .lintstagedrc*, .markdownlint*, .node-version, .nodemon*, .npm*, .nvmrc, .pm2*, .pnp.*, .pnpm*, .prettier*, .release-please*.json, .releaserc*, .sentry*, .simple-git-hooks*, .stackblitz*, .styleci*, .stylelint*, .tazerc*, .textlint*, .tool-versions, .travis*, .versionrc*, .vscode*, .watchman*, .xo-config*, .yamllint*, .yarnrc*, Procfile, apollo.config.*, appveyor*, azure-pipelines*, biome.json, bower.json, build.config.*, bun.lockb, commitlint*, crowdin*, dangerfile*, dlint.json, dprint.json*, electron-builder.*, eslint*, firebase.json, grunt*, gulp*, jenkins*, knip.*, lerna*, lint-staged*, nest-cli.*, netlify*, nodemon*, npm-shrinkwrap.json, nx.*, package-lock.json, package.nls*.json, phpcs.xml, pm2.*, pnpm*, prettier*, pullapprove*, pyrightconfig.json, release-please*.json, release-tasks.sh, release.config.*, renovate*, rollup.config.*, rspack*, simple-git-hooks*, sonar-project.properties, stylelint*, tslint*, tsup.config.*, turbo*, typedoc*, unlighthouse*, vercel*, vetur.config.*, webpack*, workspace.json, xo.config.*, yarn*",
"setup.cfg": ".editorconfig, .flake8, .isort.cfg, .python-version, MANIFEST.in, requirements*.in, requirements*.pip, requirements*.txt, setup.cfg, tox.ini",
"setup.py": ".editorconfig, .flake8, .isort.cfg, .python-version, MANIFEST.in, requirements*.in, requirements*.pip, requirements*.txt, setup.cfg, setup.py, tox.ini",
"shims.d.ts": "*.d.ts",
"svelte.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, houdini.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, mdsvex.config.js, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vite.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
"vite.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*",
"vue.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, capacitor.config.*, contentlayer.config.*, cssnano.config.*, cypress.*, env.d.ts, formkit.config.*, formulate.config.*, histoire.config.*, htmlnanorc.*, i18n.config.*, ionic.config.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, panda.config.*, playwright.config.*, postcss.config.*, puppeteer.config.*, rspack.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, uno.config.*, unocss.config.*, vitest.config.*, vuetify.config.*, webpack.config.*, windi.config.*"
},
/* */
"extensions.autoUpdate": "onlyEnabledExtensions", /* This setting has an application scope and can be set only in the user settings file. */
/* */
"files.associations": {
".env*": "properties",
".wslconfig": "ini"
},
"files.autoSave": "onWindowChange",
"files.encoding": "utf8",
"files.eol": "\n", /* lf */
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,
/* */
"git.allowForcePush": true,
"git.allowNoVerifyCommit": true,
"git.alwaysShowStagedChangesResourceGroup": true,
"git.autofetch": true,
"git.autoStash": true,
"git.branchProtection": ["develop", "main", "master"],
"git.confirmForcePush": false,
"git.confirmNoVerifyCommit": false,
"git.confirmSync": false,
"git.enableCommitSigning": true,
"git.enableSmartCommit": true,
"git.fetchOnPull": true,
"git.followTagsWhenSync": true,
"git.pruneOnFetch": true,
"git.pullBeforeCheckout": true,
"git.untrackedChanges": "separate",
/* */
"problems.showCurrentInStatus": true,
/* */
"scm.defaultViewMode": "tree",
"scm.diffDecorationsGutterWidth": 2,
/* */
"search.exclude": {
"**/.git": true,
"**/.github": true,
"**/.gitlab": true,
"**/.nuxt": true,
"**/.output": true,
"**/.pnpm": true,
"**/.turbo": true,
"**/.vscode": true,
"**/.yarn": true,
"**/bower_components": true,
"**/build/**": true,
"**/CHANGELOG*": true,
"**/dist/**": true,
"**/LICENSE*": true,
"**/logs": true,
"**/node_modules": true,
"**/package-lock.json": true,
"**/pnpm-lock.yaml": true,
"**/public": true,
"**/tmp": true,
"**/yarn.lock": true
},
"search.mode": "newEditor",
"search.searchOnType": true,
"search.seedWithNearestWord": true,
"search.showLineNumbers": false,
"search.useIgnoreFiles": true,
/* */
"task.reconnection": true,
/* */
"telemetry.telemetryLevel": "off", /* This setting has an application scope and can be set only in the user settings file. */
/* */
"terminal.integrated.autoReplies": { "[oh-my-zsh] Would you like to update? [Y/n]": "Y\r" },
"terminal.integrated.cursorBlinking": true,
"terminal.integrated.cursorStyle": "underline",
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.fontFamily": "Maple Mono NF, MesloLGS NF, JetBrains Mono, Cascadia Mono, Consolas, monospace",
"terminal.integrated.fontWeight": 400,
"terminal.integrated.persistentSessionReviveProcess": "never",
"terminal.integrated.smoothScrolling": true,
"terminal.integrated.stickyScroll.enabled": true,
"terminal.integrated.stickyScroll.enabled": true,
/* */
"typescript.inlayHints.enumMemberValues.enabled": true,
"typescript.inlayHints.functionLikeReturnTypes.enabled": true,
"typescript.inlayHints.parameterNames.enabled": "all",
"typescript.inlayHints.parameterTypes.enabled": true,
"typescript.inlayHints.propertyDeclarationTypes.enabled": true,
"typescript.inlayHints.variableTypes.enabled": true,
"typescript.preferences.preferTypeOnlyAutoImports": true,
"typescript.updateImportsOnFileMove.enabled": "always",
/* */
"window.autoDetectColorScheme": true,
"window.commandCenter": false,
"window.dialogStyle": "custom", /* This setting has an application scope and can be set only in the user settings file. */
"window.menuBarVisibility": "compact", /* This setting has an application scope and can be set only in the user settings file. */
/* */
"workbench.activityBar.location": "bottom",
"workbench.colorCustomizations": {
"[Vitesse Dark Soft]": { "terminalStickyScroll.background": "#181818c0" }
},
"workbench.colorTheme": "Vitesse Dark", /* antfu.theme-vitesse */
"workbench.editor.closeOnFileDelete": true,
"workbench.editor.customLabels.patterns": { "pages/**": "/${filename}" },
"workbench.editor.doubleClickTabToToggleEditorGroupSizes": "off",
"workbench.editor.highlightModifiedTabs": true,
"workbench.editor.limit.enabled": true,
"workbench.editor.limit.perEditorGroup": true,
"workbench.editor.limit.value": 8,
"workbench.editor.tabActionCloseVisibility": false,
"workbench.iconTheme": "file-icons", /* file-icons.file-icons */
"workbench.layoutControl.enabled": false,
"workbench.list.smoothScrolling": true,
"workbench.productIconTheme": "icons-carbon", /* antfu.icons-carbon */
"workbench.sideBar.location": "right",
"workbench.startupEditor": "none",
"workbench.tips.enabled": false,
"workbench.tree.indent": 10,
/* SonarSource.sonarlint-vscode */
"sonarlint.disableTelemetry": true,
"sonarlint.pathToNodeExecutable": "", /* command -v node */
"sonarlint.rules": { /* This setting has an application scope and can be set only in the user settings file. */
"typescript:S3776": {
"level": "on",
/* https://sonarcloud.io/organizations/sonarsource/rules?languages=ts&open=typescript%3AS3776 */
"parameters": { "threshold": 5 }
}
},
/* dbaeumer.vscode-eslint */
"eslint.experimental.useFlatConfig": true,
"eslint.rules.customizations": [
{ "rule": "*-dangle", "severity": "off" },
{ "rule": "*-indent", "severity": "off" },
{ "rule": "*-newline", "severity": "off" },
{ "rule": "*-order", "severity": "off" },
{ "rule": "*-spaces", "severity": "off" },
{ "rule": "*-spacing", "severity": "off" },
{ "rule": "*quotes", "severity": "off" },
{ "rule": "*semi", "severity": "off" },
{ "rule": "format/*", "severity": "off" },
{ "rule": "style/*", "severity": "off" }
],
"eslint.runtime": "node",
"eslint.validate": [
"gql",
"graphql",
"html",
"javascript",
"javascriptreact",
"json",
"jsonc",
"markdown",
"toml",
"typescript",
"typescriptreact",
"vue",
"yaml"
],
/* streetsidesoftware.code-spell-checker */
"cSpell.allowCompoundWords": true,
"cSpell.customDictionaries": {
"extensions": { "addWords": true, "name": "extensions", "path": "~/extensions.txt", "scope": "user" },
"other": { "addWords": true, "name": "other", "path": "~/other.txt", "scope": "user" }
},
"cSpell.language": "en,en-US",
/* usernamehw.errorlens */
"errorLens.excludeBySource": [
"cSpell",
"eslint"
],
"errorLens.fontStyleItalic": true,
"errorLens.fontWeight": "100",
/* antfu.file-nesting */
"fileNestingUpdater.promptOnAutoUpdate": false,
/* eamodio.gitlens */
"gitlens.codeLens.authors.enabled": false,
"gitlens.codeLens.enabled": false,
"gitlens.codeLens.recentChange.enabled": false,
"gitlens.menus": {
"editor": { "blame": false, "clipboard": true, "compare": true, "history": false, "remote": false },
"editorGroup": { "blame": true, "compare": false },
"editorTab": { "clipboard": true, "compare": true, "history": true, "remote": true },
"explorer": { "clipboard": true, "compare": true, "history": true, "remote": true },
"scm": { "authors": true },
"scmGroup": { "compare": true, "openClose": true, "stash": true },
"scmGroupInline": { "stash": true },
"scmItem": { "clipboard": true, "compare": true, "history": true, "remote": false, "stash": true }
},
"gitlens.views.worktrees.files.layout": "list"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment