My system configuration via Nix flakes
{
	// -- Editor behaviour --
	"editor.formatOnSave": true,
	"explorer.confirmDelete": false,
	"explorer.confirmDragAndDrop": false,
	"liveServer.settings.donotVerifyTags": true,
	"security.workspace.trust.untrustedFiles": "open",
	"workbench.editor.empty.hint": "hidden",
	"terminal.integrated.initialHint": false,
	"workbench.startupEditor": "none",

	// -- File associations --
	"files.associations": {
		"*.asm": "gas",
		".ignore": "ignore"
	},
	"files.watcherExclude": {
		"**/.trunk/*out": true
	},
	"workbench.editorAssociations": {
		"{hexdiff}:/**/*.*": "hexEditor.hexedit",
		"*.rom": "hexEditor.hexedit",
		"*.bin": "hexEditor.hexedit"
	},

	// -- Formatters --

	// Biome toolchain
	"[javascript]": {
		"editor.defaultFormatter": "biomejs.biome"
	},
	"[json]": {
		"editor.defaultFormatter": "biomejs.biome"
	},
	"[jsonc]": {
		"editor.defaultFormatter": "biomejs.biome"
	},
	"[typescript]": {
		"editor.defaultFormatter": "biomejs.biome"
	},

	// Other
	"[markdown]": {
		"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
	},
	"[python]": {
		"editor.defaultFormatter": "charliermarsh.ruff"
	},

	// -- Language servers --

	// Rust
	"rust-analyzer.cargo.extraArgs": [
		"--all-features",
		"--profile",
		"rust-analyzer",
		"--target-dir",
		"/tmp/rust-analyzer"
	],
	"rust-analyzer.check.command": "clippy",
	"rust-analyzer.diagnostics.experimental.enable": true,
	"rust-analyzer.imports.granularity.group": "module",
	"rust-analyzer.inlayHints.bindingModeHints.enable": true,
	"rust-analyzer.inlayHints.closureCaptureHints.enable": true,
	"rust-analyzer.inlayHints.closureReturnTypeHints.enable": "always",
	"rust-analyzer.inlayHints.closureStyle": "rust_analyzer",
	"rust-analyzer.inlayHints.discriminantHints.enable": "always",
	// "rust-analyzer.inlayHints.expressionAdjustmentHints.enable": "always",
	"rust-analyzer.inlayHints.genericParameterHints.lifetime.enable": true,
	"rust-analyzer.inlayHints.genericParameterHints.type.enable": true,
	// "rust-analyzer.inlayHints.implicitDrops.enable": true,
	"rust-analyzer.inlayHints.implicitSizedBoundHints.enable": true,
	"rust-analyzer.inlayHints.lifetimeElisionHints.enable": "always",
	"rust-analyzer.inlayHints.lifetimeElisionHints.useParameterNames": true,
	"rust-analyzer.inlayHints.parameterHints.missingArguments.enable": true,
	"rust-analyzer.inlayHints.rangeExclusiveHints.enable": true,
	"rust-analyzer.interpret.tests": true,
	"rust-analyzer.lens.references.adt.enable": true,
	"rust-analyzer.lens.references.enumVariant.enable": true,
	"rust-analyzer.lens.references.method.enable": true,
	"rust-analyzer.lens.references.trait.enable": true,
	"rust-analyzer.showUnlinkedFileNotification": false,

	// Python
	"python.languageServer": "None",
	"ty.path": ["/etc/profiles/per-user/finchie/bin/ty"],

	// Nix
	"nix.enableLanguageServer": true,
	"nix.serverPath": "/etc/profiles/per-user/finchie/bin/nil",

	// Markdown
	"markdownlint.config": {
		"no-inline-html": false
	},

	// -- Spellcheck --
	"harper.path": "/etc/profiles/per-user/finchie/bin/harper-ls",

	// -- Debugging --
	"launch": {
		"version": "0.2.0",
		"configurations": [
			{
				"type": "midas-rr",
				"request": "attach",
				"name": "Launch replay debug session",
				"cwd": "${workspaceFolder}",
				// "stopOnEntry": true,
				"trace": "Off",
				"setupCommands": ["set print object on", "set auto-load safe-path /"]
			}
		]
	},

	// -- Version Control --
	"git.openRepositoryInParentFolders": "always",
	"gitlens.launchpad.indicator.enabled": false,
	"pijul.ignoreMissingInstallation": true,

	// -- Diff --
	"semanticdiff.closeOriginalTab": true,
	"semanticdiff.defaultDiffViewer": true,

	// -- Disable AI --
	// https://leonidboykov.com/how-to-disable-all-ai-stuff-in-visual-studio-code/
	"chat.agent.enabled": false,
	"chat.commandCenter.enabled": false,
	"inlineChat.accessibleDiffView": "off"
}