diff --git a/home-manager/vscode.nix b/home-manager/vscode.nix index 20d1cd6..6459f54 100644 --- a/home-manager/vscode.nix +++ b/home-manager/vscode.nix @@ -28,432 +28,443 @@ rec { }; home.packages = with pkgs; [ + stylua + rojo + (pkgs.callPackage ../packages/luau-lsp.nix { inherit pkgs; }) powershell ruff ruff-lsp ]; - programs.vscode = let dotnettools = import inputs.dotnettoolsVscodeExtensions { - inherit system; - config.allowUnfree = true; - }; in { - enable = true; - enableUpdateCheck = false; - enableExtensionUpdateCheck = false; - package = pkgs.vscode; - # package = pkgs.vscode.fhsWithPackages ( - # ps: with pkgs; [ - # dotnetCorePackages.sdk_8_0 - # jdk21 - # go - # ] - # ); - 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"; + programs.vscode = + let + dotnettools = import inputs.dotnettoolsVscodeExtensions { + inherit system; + config.allowUnfree = true; + }; + in + { + enable = true; + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; + package = pkgs.vscode; + # package = pkgs.vscode.fhsWithPackages ( + # ps: with pkgs; [ + # dotnetCorePackages.sdk_8_0 + # jdk21 + # go + # ] + # ); + 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# + dotnettools.vscode-extensions.ms-dotnettools.csharp + dotnettools.vscode-extensions.ms-dotnettools.csdevkit + pkgs.vscode-extensions.ms-dotnettools.vscodeintellicode-csharp + pkgs.vscode-extensions.ms-dotnettools.vscode-dotnet-runtime + csharpier.csharpier-vscode + patcx.vscode-nuget-gallery + corylulu.csharp-interpolated-string-converter + adrianwilczynski.asp-net-core-switcher + kevin-chatham.aspnetcorerazor-html-css-class-completion + adrianwilczynski.blazor-snippet-pack + adrianwilczynski.csharp-to-typescript + adrianwilczynski.namespace + + # Python + ms-python.python + ms-python.vscode-pylance + ms-python.debugpy + ms-python.black-formatter + ms-python.mypy-type-checker + charliermarsh.ruff + + # JavaScript / TypeScript + dbaeumer.vscode-eslint + rvest.vs-code-prettier-eslint + yoavbls.pretty-ts-errors + gregorbiswanger.json2ts + vendicated.vencord-companion + + # Lua + sumneko.lua + + # Luau + evaera.vscode-rojo + johnnymorganz.stylua + johnnymorganz.luau-lsp + + # Go + pkgs.vscode-extensions.golang.go + + # Hugo + budparr.language-hugo-vscode + kaellarkin.hugo-shortcode-syntax + + # 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 + bradlc.vscode-tailwindcss + jnoortheen.nix-ide + tamasfe.even-better-toml + jnoortheen.xonsh + 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 + davidanson.vscode-markdownlint + + # Misc - Formatters + esbenp.prettier-vscode + + # Misc - Visuals + aaron-bond.better-comments + naumovs.color-highlight + kshetline.ligatures-limited + + # Misc - Utilities + vasubasraj.flashpost + adpyke.codesnap + elypia.magick-image-reader + adpyke.vscode-sql-formatter + qwtel.sqlite-viewer + yy0931.vscode-sqlite3-editor + 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 + + # Copilot + github.copilot + github.copilot-chat + ]; + userSettings = { + "DO-NOT-EDIT-1" = + "This file is managed by the Nix module located at `/etc/nixos/home-manager/vscode.nix`."; + "DO-NOT-EDIT-2" = "Changes will be overwritten when VSCode is restarted."; + "DO-NOT-EDIT-3" = "To persist changes, edit the module and run `upd` in your terminal."; + "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"; + }; + } + ]; }; - }) - catppuccin.catppuccin-vsc-icons - - # C# - dotnettools.vscode-extensions.ms-dotnettools.csharp - dotnettools.vscode-extensions.ms-dotnettools.csdevkit - pkgs.vscode-extensions.ms-dotnettools.vscodeintellicode-csharp - pkgs.vscode-extensions.ms-dotnettools.vscode-dotnet-runtime - csharpier.csharpier-vscode - patcx.vscode-nuget-gallery - corylulu.csharp-interpolated-string-converter - adrianwilczynski.asp-net-core-switcher - adrianwilczynski.blazor-snippet-pack - adrianwilczynski.csharp-to-typescript - adrianwilczynski.namespace - - # Python - ms-python.python - ms-python.vscode-pylance - ms-python.debugpy - ms-python.black-formatter - ms-python.mypy-type-checker - charliermarsh.ruff - - # JavaScript / TypeScript - dbaeumer.vscode-eslint - rvest.vs-code-prettier-eslint - yoavbls.pretty-ts-errors - gregorbiswanger.json2ts - vendicated.vencord-companion - - # Lua - sumneko.lua - - # Luau - evaera.vscode-rojo - undermywheel.roblox-lua - johnnymorganz.stylua - johnnymorganz.luau-lsp - nightrains.robloxlsp - - # Go - pkgs.vscode-extensions.golang.go - - # Hugo - budparr.language-hugo-vscode - kaellarkin.hugo-shortcode-syntax - - # 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 - bradlc.vscode-tailwindcss - jnoortheen.nix-ide - tamasfe.even-better-toml - jnoortheen.xonsh - 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 - davidanson.vscode-markdownlint - - # Misc - Formatters - esbenp.prettier-vscode - - # Misc - Visuals - aaron-bond.better-comments - naumovs.color-highlight - kshetline.ligatures-limited - - # Misc - Utilities - vasubasraj.flashpost - adpyke.codesnap - elypia.magick-image-reader - adpyke.vscode-sql-formatter - qwtel.sqlite-viewer - yy0931.vscode-sqlite3-editor - 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 - - # Copilot - github.copilot - github.copilot-chat - ]; - userSettings = { - "DO-NOT-EDIT-1" = - "This file is managed by the Nix module located at `/etc/nixos/home-manager/vscode.nix`."; - "DO-NOT-EDIT-2" = "Changes will be overwritten when VSCode is restarted."; - "DO-NOT-EDIT-3" = "To persist changes, edit the module and run `upd` in your terminal."; - "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"; + }; + }; + "ruff.path" = [ "${pkgs.ruff}/bin/ruff" ]; + "luau-lsp.serverPath" = "${pkgs.callPackage ../packages/luau-lsp.nix { inherit pkgs; }}/bin/luau-lsp"; + "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}" ]; }; - }; - "[python]" = { - "editor.formatOnType" = true; - "editor.formatOnSave" = true; - "editor.defaultFormatter" = "charliermarsh.ruff"; - "editor.codeActionsOnSave" = { - "source.fixAll" = "explicit"; - "source.organizeImports" = "explicit"; - }; - }; - "ruff.path" = [ "${pkgs.ruff}/bin/ruff" ]; - "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" ]; + "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"; - "catppuccin.syncWithIconPack" = false; - "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"; - "**/xonsh/*.py" = "xonsh"; - }; - "editor.semanticHighlighting.enabled" = true; - "[css]" = { - "editor.defaultFormatter" = "esbenp.prettier-vscode"; - }; - "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" = "xonsh"; - "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"; - }; - "typescript.updateImportsOnFileMove.enabled" = "always"; - "[javascript]" = { - "editor.defaultFormatter" = "esbenp.prettier-vscode"; - }; - "[json]" = { - "editor.defaultFormatter" = "esbenp.prettier-vscode"; - }; - "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"; - }; - "github.copilot.enable" = { - "markdown" = true; + "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"; + "stylua.styluaPath" = "${pkgs.stylua}/bin/stylua"; + "git.enableSmartCommit" = true; + "git.autofetch" = true; + "luau-lsp.sourcemap.autogenerate" = true; + "luau-lsp.completion.autocompleteEnd" = true; + "luau-lsp.sourcemap.rojoPath" = "${pkgs.rojo}/bin/rojo"; + "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"; + "catppuccin.syncWithIconPack" = false; + "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"; + "**/xonsh/*.py" = "xonsh"; + }; + "editor.semanticHighlighting.enabled" = true; + "[css]" = { + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + }; + "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" = "xonsh"; + "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"; + }; + "typescript.updateImportsOnFileMove.enabled" = "always"; + "[javascript]" = { + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + }; + "[json]" = { + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + }; + "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"; + }; + "github.copilot.enable" = { + "markdown" = true; + }; }; }; - }; } diff --git a/packages/luau-lsp.nix b/packages/luau-lsp.nix new file mode 100644 index 0000000..2da537f --- /dev/null +++ b/packages/luau-lsp.nix @@ -0,0 +1,41 @@ +{ pkgs, lib, ... +}: +pkgs.stdenv.mkDerivation (finalAttrs: { + pname = "luau-lsp"; + version = "1.38.0"; + + src = pkgs.fetchFromGitHub { + owner = "JohnnyMorganz"; + repo = "luau-lsp"; + rev = finalAttrs.version; + hash = "sha256-31EdtCQftxhpp2b7fpM5XqRh+r0rBE/k9SpYEPpGpV0="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ pkgs.cmake ] + ++ lib.optional pkgs.stdenv.isLinux pkgs.gcc9; + + buildPhase = '' + runHook preBuild + cmake .. + cmake --build . --target Luau.LanguageServer.CLI --config Release + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp ./luau-lsp $out/bin/luau-lsp + runHook postInstall + ''; + + meta = { + description = "Language Server for Luau"; + homepage = "https://github.com/JohnnyMorganz/luau-lsp"; + downloadPage = "https://github.com/JohnnyMorganz/luau-lsp/releases/tag/${finalAttrs.version}"; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ cswimr ]; + mainProgram = "luau-lsp"; + }; +})