{ pkgs, ... }: { xdg.mimeApps.defaultApplications = { "text/plain" = "code.desktop"; "text/x-csrc" = "code.desktop"; "application/octet-stream" = "code.desktop"; "application/xml" = "code.desktop"; "application/x-zerosize" = "code.desktop"; }; home.file.".continue/config.json".source = ../../home/.continue/config.json; catppuccin.vscode.enable = true; programs.vscode = { enable = true; mutableExtensionsDir = false; profiles.default = { userSettings = { # general "editor.rulers" = [ 80 ]; "color-highlight.enable" = false; "security.workspace.trust.untrustedFiles" = "open"; "window.restoreWindows" = "none"; "extensions.autoUpdate" = false; "chat.commandCenter.enabled" = false; # font "editor.fontFamily" = "'MesloLGS NF', 'Terminess Nerd Font Mono'"; # sidebar "workbench.hover.delay" = 200; "workbench.iconTheme" = "material-icon-theme"; "explorer.compactFolders" = false; # editor "editor.cursorBlinking" = "solid"; "editor.largeFileOptimizations" = false; # terminal "terminal.external.linuxExec" = "ghostty"; "terminal.integrated.suggest.enabled" = true; "terminal.integrated.defaultProfile.linux" = "zsh"; "terminal.integrated.enableMultiLinePasteWarning" = "never"; "terminal.integrated.enablePersistentSessions" = false; "terminal.integrated.scrollback" = 65536; # default is 1000 # git "git.autofetch" = true; "git.confirmSync" = false; "git.openRepositoryInParentFolders" = "always"; "diffEditor.ignoreTrimWhitespace" = false; "gitlens.currentLine.enabled" = false; "gitlens.hovers.currentLine.over" = "line"; "gitlens.statusBar.enabled" = false; "gitlens.advanced.messages" = { "suppressCreatePullRequestPrompt" = true; }; # telemetry "dotnetAcquisitionExtension.enableTelemetry" = false; "gitlens.telemetry.enabled" = false; "intelephense.telemetry.enabled" = false; # AI "continue.enableTabAutocomplete" = true; }; keybindings = [ { key = "ctrl+alt+s"; command = "git.stageSelectedRanges"; when = "editorTextFocus && !operationInProgress && resourceScheme == 'file'"; } { key = "ctrl+alt+u"; command = "git.unstageSelectedRanges"; when = "editorTextFocus && isInDiffEditor && resourceScheme == 'file'"; } { key = "ctrl+alt+r"; command = "git.revertSelectedRanges"; when = "editorTextFocus && !operationInProgress && resourceScheme == 'file'"; } ]; enableExtensionUpdateCheck = false; # List installed extensions: codium --list-extensions extensions = with pkgs.vscode-extensions; [ # General wakatime.vscode-wakatime # https://marketplace.visualstudio.com/items?itemName=wakatime.vscode-wakatime fill-labs.dependi # https://marketplace.visualstudio.com/items?itemName=fill-labs.dependi aaron-bond.better-comments # https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments streetsidesoftware.code-spell-checker # https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker usernamehw.errorlens # https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens christian-kohler.path-intellisense # https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense formulahendry.auto-rename-tag # https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag naumovs.color-highlight # https://marketplace.visualstudio.com/items?itemName=naumovs.color-highlight ms-vscode.hexeditor # https://marketplace.visualstudio.com/items?itemName=ms-vscode.hexeditor vadimcn.vscode-lldb # https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb bradlc.vscode-tailwindcss # https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss jock.svg # https://marketplace.visualstudio.com/items?itemName=jock.svg nefrob.vscode-just-syntax # https://marketplace.visualstudio.com/items?itemName=nefrob.vscode-just-syntax ms-vscode.makefile-tools # https://marketplace.visualstudio.com/items?itemName=ms-vscode.makefile-tools stkb.rewrap # https://marketplace.visualstudio.com/items?itemName=stkb.rewrap antfu.slidev # https://marketplace.visualstudio.com/items?itemName=antfu.slidev ms-vscode-remote.remote-containers # https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers # Appearance pkief.material-icon-theme # https://marketplace.visualstudio.com/items?itemName=pkief.material-icon-theme zhuangtongfa.material-theme # https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.material-theme # AI continue.continue # https://marketplace.visualstudio.com/items?itemName=continue.continue # Git/GitHub eamodio.gitlens # https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens github.vscode-github-actions # https://marketplace.visualstudio.com/items?itemName=github.vscode-github-actions # Config/Data mechatroner.rainbow-csv # https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv redhat.vscode-xml # https://marketplace.visualstudio.com/items?itemName=redhat.vscode-xml redhat.vscode-yaml # https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml coolbear.systemd-unit-file # https://marketplace.visualstudio.com/items?itemName=coolbear.systemd-unit-file xadillax.viml # https://marketplace.visualstudio.com/items?itemName=xadillax.viml editorconfig.editorconfig # https://marketplace.visualstudio.com/items?itemName=editorconfig.editorconfig # Shell foxundermoon.shell-format # https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format timonwong.shellcheck # https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck # Nodejs ecosystem dbaeumer.vscode-eslint # https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint esbenp.prettier-vscode # https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode denoland.vscode-deno # https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno yoavbls.pretty-ts-errors # https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors svelte.svelte-vscode # https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode stylelint.vscode-stylelint # https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint vue.volar # https://marketplace.visualstudio.com/items?itemName=Vue.volar # Markdown yzhang.markdown-all-in-one # https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one bierner.markdown-mermaid # https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid unifiedjs.vscode-mdx # https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx # LaTeX james-yu.latex-workshop # https://marketplace.visualstudio.com/items?itemName=james-yu.latex-workshop # Typst myriad-dreamin.tinymist # Docker ms-azuretools.vscode-docker # https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker # Nix mikestead.dotenv # https://marketplace.visualstudio.com/items?itemName=mikestead.dotenv jnoortheen.nix-ide # https://marketplace.visualstudio.com/items?itemName=jnoortheen.nix-ide mkhl.direnv # https://marketplace.visualstudio.com/items?itemName=mkhl.direnv # Rust rust-lang.rust-analyzer # https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer tamasfe.even-better-toml # https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml tauri-apps.tauri-vscode # https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode # Zig ziglang.vscode-zig # https://marketplace.visualstudio.com/items?itemName=ziglang.vscode-zig # Python ms-python.python # https://marketplace.visualstudio.com/items?itemName=ms-python.python ms-python.vscode-pylance # https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance ms-python.black-formatter # https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter ms-python.mypy-type-checker # https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker ms-python.pylint # https://marketplace.visualstudio.com/items?itemName=ms-python.pylint charliermarsh.ruff # https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff # Go golang.go # https://marketplace.visualstudio.com/items?itemName=golang.go # C/C++ ms-vscode.cpptools # https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools # C# ms-dotnettools.csharp # https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp ms-dotnettools.csdevkit # https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit # PHP bmewburn.vscode-intelephense-client # https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client # Lua sumneko.lua # https://marketplace.visualstudio.com/items?itemName=sumneko.lua # Java vscjava.vscode-java-pack # https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack vscjava.vscode-gradle # https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-gradle redhat.java # https://marketplace.visualstudio.com/items?itemName=redhat.java ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ # General { # https://marketplace.visualstudio.com/items?itemName=mkxml.vscode-filesize name = "vscode-filesize"; publisher = "mkxml"; version = "3.2.2"; sha256 = "sha256-RVhgCt/zY155oeL7EbVBokNFFBB9xvGL3j3zySdjGRg="; } { # https://marketplace.visualstudio.com/items?itemName=dprint.dprint name = "dprint"; publisher = "dprint"; version = "0.16.4"; sha256 = "sha256-PL4qVr9WMmADZkcNBlZDx9+LdvKlzW+mVRqakkbSM6M="; } { # https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight name = "vscode-todo-highlight"; publisher = "wayou"; version = "1.0.5"; sha256 = "sha256-CQVtMdt/fZcNIbH/KybJixnLqCsz5iF1U0k+GfL65Ok="; } { # https://marketplace.visualstudio.com/items?itemName=dbankier.vscode-quick-select name = "vscode-quick-select"; publisher = "dbankier"; version = "0.2.9"; sha256 = "sha256-XeyjXU+ZdpZ7VOK4oECZp4As3MZxhExq6lXMTMJRAcA="; } { # https://marketplace.visualstudio.com/items?itemName=earshinov.sort-lines-by-selection name = "sort-lines-by-selection"; publisher = "earshinov"; version = "1.2.0"; sha256 = "sha256-mxwMX4r+3XuPxG9pRN7MmmvCft0fLtKxp5dv/VFOeK8="; } { # https://marketplace.visualstudio.com/items?itemName=plievone.vscode-template-literal-editor name = "vscode-template-literal-editor"; publisher = "plievone"; version = "0.10.0"; sha256 = "sha256-AiDtJadgEQA5Zmrk28oTfOG6eS4QYIA8GQVO6RNUM5Y="; } { # https://marketplace.visualstudio.com/items?itemName=iamhyc.overleaf-workshop name = "overleaf-workshop"; publisher = "iamhyc"; version = "0.15.0"; sha256 = "sha256-//PGvogsYMe3NzKTvmNFUUyxOokH298J5/0eCM4Z63U="; } # Nodejs ecosystem { # https://marketplace.visualstudio.com/items?itemName=oven.bun-vscode name = "bun-vscode"; publisher = "oven"; version = "0.0.26"; sha256 = "sha256-klMkKAorWJj2o015FWbQQfpmYe4JM0UOM+WVh+YPtI4="; } { # https://marketplace.visualstudio.com/items?itemName=bierner.jsdoc-markdown-highlighting name = "jsdoc-markdown-highlighting"; publisher = "bierner"; version = "0.0.1"; sha256 = "sha256-f87gKQwEPu/aJOhz5sstW804B8hf0pQRdC3C2PAnfgQ="; } { # https://marketplace.visualstudio.com/items?itemName=vunguyentuan.vscode-postcss name = "vscode-postcss"; publisher = "vunguyentuan"; version = "2.0.2"; sha256 = "sha256-ttvCwxk3dMwva5LmVHq4p31INTa/T91qQISEU4gYNbg="; } { # https://marketplace.visualstudio.com/items?itemName=ardenivanov.svelte-intellisense name = "svelte-intellisense"; publisher = "ardenivanov"; version = "0.7.1"; sha256 = "sha256-/AiGMgwCeD9B3y8LxTe6HoIswLuCnLbmwV7fxwfWSLw="; } { # https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode name = "oxc-vscode"; publisher = "oxc"; version = "0.16.0"; sha256 = "sha256-2u8Z7xjygnUItPjveeI3XnpzdsJgzZ/Lh3I0vrbfzcY="; } # Git/GitHub { # https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits name = "vscode-conventional-commits"; publisher = "vivaxy"; version = "1.26.0"; sha256 = "sha256-Lj2+rlrKm9h21zEoXwa2TeGFNKBmlQKr7MRX0zgngdg="; } # Low level stuff { # https://marketplace.visualstudio.com/items?itemName=tintinweb.vscode-decompiler name = "vscode-decompiler"; publisher = "tintinweb"; version = "0.1.0"; sha256 = "sha256-AyUABtVUTQi9NRjo3O8Ma+XE3rcY+NSxahKUEvxvFG8="; } { # https://marketplace.visualstudio.com/items?itemName=13xforever.language-x86-64-assembly name = "language-x86-64-assembly"; publisher = "13xforever"; version = "3.1.4"; sha256 = "sha256-FJRDm1H3GLBfSKBSFgVspCjByy9m+j9OStlU+/pMfs8="; } # Markdown { # https://marketplace.visualstudio.com/items?itemName=jeff-tian.markdown-katex name = "markdown-katex"; publisher = "jeff-tian"; version = "0.1.4"; sha256 = "sha256-NEVoT1zn9ehG/XJJyPunL3LAeiWORW/8nt+HOH5VxcI="; } { # https://marketplace.visualstudio.com/items?itemName=bpruitt-goddard.mermaid-markdown-syntax-highlighting name = "mermaid-markdown-syntax-highlighting"; publisher = "bpruitt-goddard"; version = "1.7.0"; sha256 = "sha256-Vjmc9tlHSFdhhcSopUG3MnyBSi//B6cpnavqFLhVRho="; } # C# { # https://marketplace.visualstudio.com/items?itemName=ms-vscode.mono-debug name = "mono-debug"; publisher = "ms-vscode"; version = "0.16.3"; sha256 = "sha256-6IU8aP4FQVbEMZAgssGiyqM+PAbwipxou5Wk3Q2mjZg="; } # Unity { # https://marketplace.visualstudio.com/items?itemName=visualstudiotoolsforunity.vstuc name = "vstuc"; publisher = "visualstudiotoolsforunity"; version = "1.1.0"; sha256 = "sha256-86KDksbTKlPgKC1joUc7uQTsDe2w9AIL0fekZP0z6gE="; } # Godot { # https://marketplace.visualstudio.com/items?itemName=geequlim.godot-tools name = "godot-tools"; publisher = "geequlim"; version = "2.4.0"; sha256 = "sha256-iuSec4PoVxyu1KB2jfCYOd98UrqQjH3q24zOR4VCPgs="; } { # https://marketplace.visualstudio.com/items?itemName=alfish.godot-files name = "godot-files"; publisher = "alfish"; version = "0.1.3"; sha256 = "sha256-0cMcVpkFHRZLlm5wjOwPiqamZaRyfTUDwck5hUwIhyE="; } { # https://marketplace.visualstudio.com/items?itemName=neikeq.godot-csharp-vscode name = "godot-csharp-vscode"; publisher = "neikeq"; version = "0.2.1"; sha256 = "sha256-sLsP+4deo/O8NjHGGXVdSOPWQPALypW/H0oZOMMM9RE="; } # Nginx { # https://marketplace.visualstudio.com/items?itemName=ahmadalli.vscode-nginx-conf name = "vscode-nginx-conf"; publisher = "ahmadalli"; version = "0.3.5"; sha256 = "sha256-6gJtMQH2zanFt+UTaD0Vn1vDq5GY9R1CfelPCklYxYE="; } # Linux { # https://marketplace.visualstudio.com/items?itemName=nico-castell.linux-desktop-file name = "linux-desktop-file"; publisher = "nico-castell"; version = "0.0.21"; sha256 = "sha256-4qy+2Tg9g0/9D+MNvLSgWUE8sc5itsC/pJ9hcfxyVzQ="; } # Terraform / OpenTofu { # https://marketplace.visualstudio.com/items?itemName=gamunu.opentofu name = "opentofu"; publisher = "gamunu"; version = "0.2.1"; sha256 = "sha256-OizdHTSGuwBRuD/qPXjmna6kZWfRp9EimhcFk3ICN9I="; } # SQL { # https://marketplace.visualstudio.com/items?itemName=inferrinizzard.prettier-sql-vscode name = "prettier-sql-vscode"; publisher = "inferrinizzard"; version = "1.6.0"; sha256 = "sha256-l6pf/+uv8Bn4uDMX0CbzSjydTStr73uRY550Ad9wm7Q="; } # i18n { # https://marketplace.visualstudio.com/items?itemName=macabeus.vscode-fluent name = "vscode-fluent"; publisher = "macabeus"; version = "1.1.0"; sha256 = "sha256-cDo8nH6hFvYNiHuoriDzgZC4xt/vm+yJdLZ1pgggpSA="; } # Android { # https://marketplace.visualstudio.com/items?itemName=expo.vscode-expo-tools name = "vscode-expo-tools"; publisher = "expo"; version = "1.6.0"; sha256 = "sha256-on+QlNwHQzmBBDYkRWJ2hVMuW+xLhJHx7Og6tuR2nMo="; } ]; }; }; }