364 lines
13 KiB
Nix
364 lines
13 KiB
Nix
|
{ pkgs, system, inputs, ... }: {
|
||
|
programs.vscode = {
|
||
|
enable = true;
|
||
|
#package = pkgs.vscode.fhsWithPackages (ps: [ ]);
|
||
|
extensions =
|
||
|
with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace;
|
||
|
with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace-release; [
|
||
|
# Themes
|
||
|
(pkgs.catppuccin-vsc.override {
|
||
|
accent = "blue";
|
||
|
extraBordersEnabled = true;
|
||
|
italicKeywords = false;
|
||
|
customUIColors = {
|
||
|
mocha = { "statusBar.foreground" = "accent"; };
|
||
|
macchiato = { "statusBar.foreground" = "accent"; };
|
||
|
frappe = { "statusBar.foreground" = "accent"; };
|
||
|
latte = { "statusBar.foreground" = "accent"; };
|
||
|
};
|
||
|
})
|
||
|
catppuccin.catppuccin-vsc-icons
|
||
|
|
||
|
# C#
|
||
|
ms-dotnettools.csharp
|
||
|
ms-dotnettools.csdevkit
|
||
|
ms-dotnettools.vscodeintellicode-csharp
|
||
|
ms-dotnettools.vscode-dotnet-runtime
|
||
|
csharpier.csharpier-vscode
|
||
|
patcx.vscode-nuget-gallery
|
||
|
|
||
|
# Python
|
||
|
ms-python.python
|
||
|
ms-python.vscode-pylance
|
||
|
ms-python.debugpy
|
||
|
ms-python.black-formatter
|
||
|
ms-python.isort
|
||
|
ms-python.flake8
|
||
|
charliermarsh.ruff
|
||
|
matangover.mypy
|
||
|
|
||
|
# JavaScript / TypeScript
|
||
|
dbaeumer.vscode-eslint
|
||
|
yoavbls.pretty-ts-errors
|
||
|
quick-lint.quick-lint-js
|
||
|
gregorbiswanger.json2ts
|
||
|
vendicated.vencord-companion
|
||
|
|
||
|
# Luau
|
||
|
evaera.vscode-rojo
|
||
|
undermywheel.roblox-lua
|
||
|
johnnymorganz.stylua
|
||
|
johnnymorganz.luau-lsp
|
||
|
nightrains.robloxlsp
|
||
|
|
||
|
# Go
|
||
|
golang.go
|
||
|
|
||
|
# Kotlin
|
||
|
mathiasfrohlich.kotlin
|
||
|
|
||
|
# Java
|
||
|
vscjava.vscode-java-debug
|
||
|
vscjava.vscode-gradle
|
||
|
vscjava.vscode-maven
|
||
|
vscjava.vscode-java-dependency
|
||
|
vscjava.vscode-java-test
|
||
|
redhat.java
|
||
|
|
||
|
# Bash
|
||
|
mads-hartmann.bash-ide-vscode
|
||
|
foxundermoon.shell-format
|
||
|
timonwong.shellcheck
|
||
|
shakram02.bash-beautify
|
||
|
|
||
|
# Paradox Interactive Scripting
|
||
|
tboby.cwtools-vscode
|
||
|
|
||
|
# Git
|
||
|
donjayamanne.githistory
|
||
|
codezombiech.gitignore
|
||
|
eamodio.gitlens
|
||
|
|
||
|
# GitHub
|
||
|
ziyasal.vscode-open-in-github
|
||
|
pkgs.vscode-extensions.github.vscode-github-actions
|
||
|
github.vscode-pull-request-github
|
||
|
|
||
|
# Misc - Language Support
|
||
|
jnoortheen.nix-ide
|
||
|
tamasfe.even-better-toml
|
||
|
matthewpi.caddyfile-support
|
||
|
editorconfig.editorconfig
|
||
|
prisma.prisma
|
||
|
redhat.vscode-yaml
|
||
|
ms-vscode.powershell
|
||
|
irongeek.vscode-env
|
||
|
wholroyd.jinja
|
||
|
ms-vscode.makefile-tools
|
||
|
tnze.snbt
|
||
|
logerfo.sln-support
|
||
|
tboby.paradox-syntax
|
||
|
xteal.mcmeta
|
||
|
footerman.heracles-support
|
||
|
|
||
|
# Misc - Debuggers
|
||
|
firefox-devtools.vscode-firefox-debug
|
||
|
rogalmic.zsh-debug
|
||
|
|
||
|
# Misc - Linters
|
||
|
tekumara.typos-vscode
|
||
|
stylelint.vscode-stylelint
|
||
|
|
||
|
# Misc - Formatters
|
||
|
esbenp.prettier-vscode
|
||
|
|
||
|
# Misc - Visuals
|
||
|
naumovs.color-highlight
|
||
|
kshetline.ligatures-limited
|
||
|
|
||
|
# Misc - Utilities
|
||
|
adpyke.codesnap
|
||
|
exodiusstudios.comment-anchors
|
||
|
elypia.magick-image-reader
|
||
|
adpyke.vscode-sql-formatter
|
||
|
qwtel.sqlite-viewer
|
||
|
yy0931.vscode-sqlite3-editor
|
||
|
supermaven.supermaven # requires a supermaven subscription - https://supermaven.com/
|
||
|
leonardssh.vscord
|
||
|
alefragnani.project-manager
|
||
|
mkhl.direnv
|
||
|
ms-vsliveshare.vsliveshare
|
||
|
ms-azuretools.vscode-docker
|
||
|
ms-vscode-remote.remote-ssh
|
||
|
pkgs.vscode-extensions.ms-vscode-remote.remote-ssh-edit
|
||
|
ms-vscode.remote-server
|
||
|
ms-vscode.remote-explorer
|
||
|
pkgs.vscode-extensions.ms-vscode-remote.remote-containers
|
||
|
ms-vscode.remote-repositories
|
||
|
formulahendry.auto-rename-tag
|
||
|
prunoideae.probejs
|
||
|
d-koppenhagen.file-tree-to-text-generator
|
||
|
];
|
||
|
userSettings = {
|
||
|
"editor.tokenColorCustomizations" = {
|
||
|
"[Catppuccin*]" = {
|
||
|
"variables" = "#82eaf0";
|
||
|
"textMateRules" = [
|
||
|
{
|
||
|
"scope" = "comment";
|
||
|
"settings" = {
|
||
|
"foreground" = "#f465ec";
|
||
|
"fontStyle" = "italic";
|
||
|
};
|
||
|
}
|
||
|
{
|
||
|
"scope" = "punctuation.definition.comment";
|
||
|
"settings" = {
|
||
|
"foreground" = "#f465ec";
|
||
|
"fontStyle" = "italic";
|
||
|
};
|
||
|
}
|
||
|
{
|
||
|
"scope" = "variable.other.readwrite";
|
||
|
"settings" = { "foreground" = "#82eaf0"; };
|
||
|
}
|
||
|
{
|
||
|
"scope" = "keyword.operator";
|
||
|
"settings" = { "foreground" = "#EBA0AC"; };
|
||
|
}
|
||
|
{
|
||
|
"scope" = "meta.block.paradox";
|
||
|
"settings" = { "foreground" = "#EBA0AC"; };
|
||
|
}
|
||
|
{
|
||
|
"scope" = "meta.shebang.shell";
|
||
|
"settings" = {
|
||
|
"foreground" = "#fb5d1f";
|
||
|
"fontStyle" = "italic bold";
|
||
|
};
|
||
|
}
|
||
|
{
|
||
|
"scope" = "punctuation.definition.comment.shebang.shell";
|
||
|
"settings" = {
|
||
|
"foreground" = "#fb5d1f";
|
||
|
"fontStyle" = "italic bold";
|
||
|
};
|
||
|
}
|
||
|
{
|
||
|
"scope" =
|
||
|
"string.quoted.double.shell variable.other.normal.shell";
|
||
|
"settings" = { "foreground" = "#82e5f0"; };
|
||
|
}
|
||
|
{
|
||
|
"scope" = "variable.other.property.ts";
|
||
|
"settings" = { "foreground" = "#32d5e7"; };
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
"[python]" = {
|
||
|
"editor.formatOnType" = true;
|
||
|
"editor.formatOnSave" = true;
|
||
|
"editor.defaultFormatter" = "charliermarsh.ruff";
|
||
|
"editor.codeActionsOnSave" = {
|
||
|
"source.fixAll" = "explicit";
|
||
|
"source.organizeImports" = "explicit";
|
||
|
};
|
||
|
};
|
||
|
"python.terminal.activateEnvironment" = false;
|
||
|
"python.terminal.activateEnvInCurrentTerminal" = false;
|
||
|
"[csharp]" = {
|
||
|
"editor.defaultFormatter" = "csharpier.csharpier-vscode";
|
||
|
"editor.formatOnSave" = true;
|
||
|
"editor.formatOnSaveMode" = "file";
|
||
|
};
|
||
|
"[typescript]" = {
|
||
|
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||
|
"editor.formatOnType" = false;
|
||
|
"editor.formatOnPaste" = true;
|
||
|
"editor.formatOnSave" = true;
|
||
|
"editor.formatOnSaveMode" = "file";
|
||
|
"files.autoSave" = "onFocusChange";
|
||
|
};
|
||
|
"[markdown]" = { "files.trimTrailingWhitespace" = false; };
|
||
|
"yaml.schemas" = {
|
||
|
"https://json.schemastore.org/github-workflow.json" = [
|
||
|
".github/workflows/*.{yml,yaml}"
|
||
|
".forgejo/workflows/*.{yml,yaml}"
|
||
|
".gitea/workflows/*.{yml,yaml}"
|
||
|
];
|
||
|
};
|
||
|
"yaml.schemaStore.enable" = true;
|
||
|
"nix.enableLanguageServer" = true;
|
||
|
"nix.serverSettings" = {
|
||
|
"nil" = { "formatting" = { "command" = [ "nixfmt" ]; }; };
|
||
|
};
|
||
|
"nix.serverPath" = "nil";
|
||
|
"vscord.status.image.large.debugging.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/debugging.webp";
|
||
|
"vscord.status.image.large.editing.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/{lang}.webp";
|
||
|
"vscord.status.image.large.idle.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/idle-{app_id}.webp";
|
||
|
"vscord.status.image.large.notInFile.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/idle-{app_id}.webp";
|
||
|
"vscord.status.image.large.viewing.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/{lang}.webp";
|
||
|
"vscord.status.image.small.debugging.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/debugging.webp";
|
||
|
"vscord.status.image.small.editing.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/{app_id}.webp";
|
||
|
"vscord.status.image.small.idle.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/idle.webp";
|
||
|
"vscord.status.image.small.notInFile.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/idle.webp";
|
||
|
"vscord.status.image.small.viewing.key" =
|
||
|
"https://vscord.catppuccin.com/mocha/{app_id}.webp";
|
||
|
"git.enableSmartCommit" = true;
|
||
|
"git.autofetch" = true;
|
||
|
"git.confirmSync" = false;
|
||
|
"security.workspace.trust.untrustedFiles" = "open";
|
||
|
"files.insertFinalNewline" = true;
|
||
|
"files.trimFinalNewlines" = true;
|
||
|
"files.trimTrailingWhitespace" = true;
|
||
|
"editor.inlineSuggest.enabled" = true;
|
||
|
"diffEditor.ignoreTrimWhitespace" = false;
|
||
|
"git.enableCommitSigning" = true;
|
||
|
"editor.accessibilitySupport" = "off";
|
||
|
"git.inputValidationSubjectLength" = null;
|
||
|
"git.inputValidationLength" = 150;
|
||
|
"editor.fontLigatures" =
|
||
|
"'cv01', 'cv02', 'ss05', 'ss08', 'ss03', 'cv29', 'cv30', 'cv11'";
|
||
|
"workbench.iconTheme" = "catppuccin-latte";
|
||
|
"codesnap.shutterAction" = "copy";
|
||
|
"codesnap.transparentBackground" = true;
|
||
|
"codesnap.realLineNumbers" = true;
|
||
|
"codesnap.roundedCorners" = true;
|
||
|
"codesnap.showWindowTitle" = true;
|
||
|
"codesnap.showWindowControls" = false;
|
||
|
"gitlens.remotes" = [{
|
||
|
"domain" = "www.coastalcommits.com";
|
||
|
"type" = "Gitea";
|
||
|
}];
|
||
|
"markdownlint.config" = {
|
||
|
"ol-prefix" = false;
|
||
|
"html" = false;
|
||
|
};
|
||
|
"markdownlint.lintWorkspaceGlobs" = [
|
||
|
"**/*.{md,mkd,mdwn,mdown,markdown,markdn,mdtxt,mdtext,workbook}"
|
||
|
"!**/node_modules"
|
||
|
"!**/bower_components"
|
||
|
"!**/.git"
|
||
|
"!**/LICENSE"
|
||
|
"!**/LICENSE.md"
|
||
|
];
|
||
|
"editor.largeFileOptimizations" = false;
|
||
|
"files.associations" = {
|
||
|
".env" = "properties";
|
||
|
"*.ini" = "paradox";
|
||
|
"*.kt" = "kotlin";
|
||
|
};
|
||
|
"editor.semanticHighlighting.enabled" = true;
|
||
|
"[css]" = { "editor.defaultFormatter" = "vscode.css-language-features"; };
|
||
|
"git.ignoreRebaseWarning" = true;
|
||
|
"remote.autoForwardPortsSource" = "hybrid";
|
||
|
"git.replaceTagsWhenPull" = true;
|
||
|
"redhat.telemetry.enabled" = true;
|
||
|
"editor.fontSize" = 14;
|
||
|
"workbench.colorTheme" = "Catppuccin Mocha";
|
||
|
"editor.codeLensFontFamily" =
|
||
|
"'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'";
|
||
|
"editor.inlayHints.fontFamily" =
|
||
|
"'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font', 'FiraCode Nerd Font Light'";
|
||
|
"editor.fontFamily" =
|
||
|
"'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'";
|
||
|
"explorer.confirmDelete" = false;
|
||
|
"window.confirmSaveUntitledWorkspace" = false;
|
||
|
"cwtools.cache.stellaris" = "/bulk/steam/steamapps/common/Stellaris";
|
||
|
"python.analysis.inlayHints.callArgumentNames" = "partial";
|
||
|
"python.analysis.inlayHints.functionReturnTypes" = true;
|
||
|
"explorer.confirmDragAndDrop" = false;
|
||
|
"editor.unicodeHighlight.allowedLocales" = { ru = true; };
|
||
|
"terminal.integrated.defaultProfile.linux" = "zsh";
|
||
|
"explorer.confirmPasteNative" = false;
|
||
|
"editor.renderWhitespace" = "none";
|
||
|
"explorer.fileNesting.patterns" = {
|
||
|
"*.ts" = "\${capture}.js";
|
||
|
"*.js" = "\${capture}.js.map, \${capture}.min.js, \${capture}.d.ts";
|
||
|
"*.jsx" = "\${capture}.js";
|
||
|
"*.tsx" = "\${capture}.ts";
|
||
|
"tsconfig.json" = "tsconfig.*.json";
|
||
|
"package.json" =
|
||
|
"package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb";
|
||
|
"Cargo.toml" = "Cargo.lock";
|
||
|
"*.sqlite" = "\${capture}.\${extname}-*";
|
||
|
"*.db" = "\${capture}.\${extname}-*";
|
||
|
"*.sqlite3" = "\${capture}.\${extname}-*";
|
||
|
"*.db3" = "\${capture}.\${extname}-*";
|
||
|
"*.sdb" = "\${capture}.\${extname}-*";
|
||
|
"*.s3db" = "\${capture}.\${extname}-*";
|
||
|
};
|
||
|
"[shellscript]" = {
|
||
|
"editor.defaultFormatter" = "shakram02.bash-beautify";
|
||
|
};
|
||
|
"vscord.app.name" = "Visual Studio Code";
|
||
|
"workbench.editorAssociations" = { "*.db" = "sqlite3-editor.editor"; };
|
||
|
"vs-code-prettier-eslint.prettierLast" = false;
|
||
|
"typescript.updateImportsOnFileMove.enabled" = "always";
|
||
|
"supermaven.allowGitignore" = true;
|
||
|
"[javascript]" = {
|
||
|
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||
|
};
|
||
|
"[json]" = {
|
||
|
"editor.defaultFormatter" = "vscode.json-language-features";
|
||
|
};
|
||
|
"go.toolsManagement.autoUpdate" = true;
|
||
|
"remote.SSH.remotePlatform" = { "eclipse" = "linux"; };
|
||
|
"terminal.integrated.fontWeightBold" = "bold";
|
||
|
"terminal.integrated.fontFamily" =
|
||
|
"'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'";
|
||
|
"[jsonc]" = { "editor.defaultFormatter" = "esbenp.prettier-vscode"; };
|
||
|
};
|
||
|
};
|
||
|
}
|