+ {
+ // -- 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.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"
+ }