Nix configurations for my personal machines (Linux & macOS)
at main 9.3 kB view raw
1{ 2 delib, 3 inputs, 4 pkgs, 5 ... 6}: 7delib.module { 8 name = "programs.vscode"; 9 10 options = delib.singleEnableOption true; 11 12 home.ifEnabled = { 13 home.sessionVariables.EDITOR = "codium --wait"; 14 15 programs.vscode = { 16 enable = true; 17 mutableExtensionsDir = false; 18 package = pkgs.vscodium; 19 20 profiles.default = { 21 enableUpdateCheck = false; 22 enableExtensionUpdateCheck = false; 23 24 extensions = let 25 vscode-extensions = inputs.nix-vscode-extensions.extensions.${pkgs.system}; 26 inherit (vscode-extensions) open-vsx vscode-marketplace; 27 in 28 with open-vsx; [ 29 kamadorueda.alejandra 30 astro-build.astro-vscode 31 matthewpi.caddyfile-support 32 raidou.calc 33 artlaman.chalice-icon-theme # TODO: i should fork this to add support for some newer files (tbd) 34 adpyke.codesnap 35 clinyong.vscode-css-modules 36 mkhl.direnv 37 leonardssh.vscord 38 ms-azuretools.vscode-docker 39 editorconfig.editorconfig 40 irongeek.vscode-env 41 jjk.jjk 42 pgourlain.erlang 43 usernamehw.errorlens 44 dbaeumer.vscode-eslint 45 tamasfe.even-better-toml 46 sleistner.vscode-fileutils 47 bmalehorn.vscode-fish 48 github.vscode-github-actions 49 eamodio.gitlens 50 ms-vscode.hexeditor 51 lokalise.i18n-ally 52 kisstkondoros.vscode-gutter-preview 53 ms-python.isort 54 bierner.markdown-preview-github-styles 55 unifiedjs.vscode-mdx 56 jnoortheen.nix-ide 57 nuxtr.nuxtr-vscode 58 vunguyentuan.vscode-postcss 59 esbenp.prettier-vscode 60 prisma.prisma 61 gleam.gleam 62 # TODO: use jedi instead of pylance 63 ms-python.python 64 ms-python.debugpy 65 mechatroner.rainbow-csv 66 medo64.render-crlf 67 stkb.rewrap 68 rust-lang.rust-analyzer 69 mrmlnc.vscode-scss 70 svelte.svelte-vscode 71 jock.svg 72 coolbear.systemd-unit-file 73 bradlc.vscode-tailwindcss 74 myriad-dreamin.tinymist 75 gruntfuggly.todo-tree 76 tomoki1207.pdf 77 zxh404.vscode-proto3 78 styled-components.vscode-styled-components # TODO: don't really need this 79 vue.volar 80 wakatime.vscode-wakatime 81 redhat.vscode-yaml 82 arcanis.vscode-zipfs 83 golang.go 84 vscode-marketplace.wraith13.background-phi-colors 85 vscode-marketplace.be5invis.theme-dolch 86 vscode-marketplace.fabiospampinato.vscode-diff 87 vscode-marketplace.jakebecker.elixir-ls 88 vscode-marketplace.zh9528.file-size 89 vscode-marketplace.vladdesv.vscode-klog 90 vscode-marketplace.dt.ghlink 91 vscode-marketplace.tyriar.lorem-ipsum 92 vscode-marketplace.phoenixframework.phoenix 93 vscode-marketplace.frigus02.vscode-sql-tagged-template-literals-syntax-only # TODO: alternative? 94 ]; 95 96 userSettings = { 97 # Formatters 98 "editor.defaultFormatter" = "esbenp.prettier-vscode"; 99 "[elixir]"."editor.defaultFormatter" = "JakeBecker.elixir-ls"; 100 "[nix]"."editor.defaultFormatter" = "kamadorueda.alejandra"; 101 "[prisma]"."editor.defaultFormatter" = "Prisma.prisma"; 102 "[python]"."editor.defaultFormatter" = "ms-python.python"; 103 "[rust]"."editor.defaultFormatter" = "rust-lang.rust-analyzer"; 104 "[go]"."editor.defaultFormatter" = "golang.go"; 105 106 # Sane defaults 107 "editor.tabSize" = 2; 108 "editor.insertSpaces" = true; 109 "breadcrumbs.enabled" = true; 110 "editor.wordWrap" = "off"; 111 "security.workspace.trust.enabled" = false; 112 "security.workspace.trust.untrustedFiles" = "open"; 113 "files.eol" = "\n"; 114 "workbench.editor.empty.hint" = "hidden"; 115 "comments.openView" = "never"; 116 "editor.minimap.enabled" = false; 117 "editor.stickyScroll.enabled" = true; 118 "workbench.layoutControl.enabled" = false; 119 "diffEditor.ignoreTrimWhitespace" = true; 120 "editor.acceptSuggestionOnEnter" = "off"; 121 "editor.formatOnSave" = true; 122 "editor.inlineSuggest.enabled" = true; 123 "editor.renderWhitespace" = "none"; 124 "editor.suggestSelection" = "first"; 125 "editor.tabCompletion" = "on"; 126 "emmet.triggerExpansionOnTab" = true; 127 "explorer.confirmDelete" = false; 128 "explorer.confirmDragAndDrop" = false; 129 "redhat.telemetry.enabled" = false; 130 "workbench.tips.enabled" = false; 131 "workbench.tree.indent" = 16; 132 "workbench.tree.renderIndentGuides" = "always"; 133 "editor.unicodeHighlight.ambiguousCharacters" = true; 134 "errorLens.enabledDiagnosticLevels" = ["error" "warning"]; 135 "editor.acceptSuggestionOnCommitCharacter" = false; 136 "files.watcherExclude" = { 137 "**/.git/**" = true; 138 "**/node_modules/*/**" = true; 139 }; 140 "search.exclude" = { 141 "**/node_modules" = true; 142 "**/bower_components" = true; 143 "**/*.code-search" = true; 144 "**/.yarn" = true; 145 }; 146 "terminal.integrated.commandsToSkipShell" = [ 147 "-workbench.action.quickOpenView" 148 "-workbench.action.quickOpen" 149 "-editor.action.clipboardCutAction" 150 ]; 151 # "prettier.prettierPath" = "prettierd"; 152 "prettier.proseWrap" = "always"; 153 "chat.disableAIFeatures" = true; 154 155 # Pretties 156 "workbench.colorTheme" = "Dolch"; 157 "workbench.iconTheme" = "chalice-icon-theme"; 158 "editor.fontFamily" = "'Iosevka Solai', Menlo, Monaco, 'Courier New', monospace"; 159 "editor.fontSize" = 16; 160 "terminal.integrated.fontFamily" = "'Iosevka Solai Term', Consolas, 'Courier New', monospace"; 161 "terminal.integrated.fontSize" = 14; 162 "terminal.integrated.scrollback" = 9999999999; 163 "editor.fontLigatures" = true; 164 "editor.cursorSmoothCaretAnimation" = "on"; 165 "editor.smoothScrolling" = true; 166 "zenMode.fullScreen" = false; 167 "zenMode.centerLayout" = false; 168 "zenMode.hideLineNumbers" = true; 169 170 # No barfing rainbows over my UI pls 171 "backgroundPhiColors.baseColor" = "#FFFFFF"; 172 "backgroundPhiColors.bodySpacesEnabled" = false; 173 "backgroundPhiColors.indentErrorEnabled" = false; 174 "backgroundPhiColors.lineEnabled" = false; 175 "backgroundPhiColors.spacesAlpha" = 10; 176 "backgroundPhiColors.tokenActiveAlpha" = 30; 177 "editor.bracketPairColorization.enabled" = false; 178 179 # Codesnap 180 "codesnap.containerPadding" = "2em"; 181 "codesnap.target" = "window"; 182 "codesnap.transparentBackground" = true; 183 "codesnap.boxShadow" = "none"; 184 "codesnap.showLineNumbers" = false; 185 "codesnap.showWindowControls" = false; 186 "codesnap.shutterAction" = "copy"; 187 "codesnap.roundedCorners" = true; 188 189 # Git 190 "git.autorefresh" = true; 191 "git.autofetch" = false; 192 "git.autoStash" = true; 193 "git.mergeEditor" = false; 194 "git.confirmSync" = false; 195 "git.enableSmartCommit" = true; 196 "gitlens.advanced.messages" = { 197 "suppressLineUncommittedWarning" = true; 198 }; 199 "gitlens.hovers.currentLine.over" = "annotation"; 200 201 # Nix 202 "nix.enableLanguageServer" = true; 203 "nix.serverPath" = "nil"; 204 "alejandra.program" = "alejandra"; 205 206 # Elixir/erlang 207 "elixirLS.suggestSpecs" = false; 208 "elixirLS.fetchDeps" = false; 209 "elixirLS.mixEnv" = "dev"; 210 "elixir.credo.ignoreWarningMessages" = true; 211 212 # Python 213 "python.analysis.typeCheckingMode" = "basic"; 214 215 # JS 216 "debug.javascript.autoAttachFilter" = "onlyWithFlag"; 217 218 # CSS 219 "files.associations"."*.css" = "tailwindcss"; 220 221 # Misc 222 "yaml.format.proseWrap" = "always"; 223 "workbench.startupEditor" = "none"; 224 "remote.SSH.connectTimeout" = 30; 225 "remote.SSH.useLocalServer" = true; 226 "remote.SSH.path" = "/run/current-system/sw/bin/ssh"; 227 "extensions.ignoreRecommendations" = true; 228 "svg.preview.mode" = "svg"; 229 "vscord.status.problems.enabled" = false; 230 "vscord.status.state.text.editing" = "Working on {file_name}{file_extension}"; 231 "vscord.ignore.workspaces" = ["~/Work"]; 232 "typescript.updateImportsOnFileMove.enabled" = "never"; 233 "git.openRepositoryInParentFolders" = "never"; 234 "diffEditor.useInlineViewWhenSpaceIsLimited" = false; 235 "svelte.enable-ts-plugin" = true; 236 "gitlens.launchpad.indicator.enabled" = false; 237 "window.titleBarStyle" = "custom"; 238 "files.simpleDialog.enable" = true; 239 "window.dialogStyle" = "custom"; 240 }; 241 }; 242 }; 243 }; 244}