diff --git a/flake.nix b/flake.nix index 424e09e..35d0fba 100644 --- a/flake.nix +++ b/flake.nix @@ -45,6 +45,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; nix-direnv.url = "github:nix-community/nix-direnv"; + direnv-vscode = { + url = "github:direnv/direnv-vscode"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nix-vscode-marketplace.url = "github:AmeerTaweel/nix-vscode-marketplace"; nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; @@ -58,6 +63,10 @@ url = "github:c0re100/qBittorrent-Enhanced-Edition"; flake = false; }; + rnix-lsp = { + url = "github:nix-community/rnix-lsp"; + inputs.nixpkgs.follows = "nixpkgs"; + }; rycee = { url = "gitlab:rycee/nur-expressions"; flake = false; diff --git a/profiles/applications/vscode/default.nix b/profiles/applications/vscode/default.nix index 0fe3aa9..b12639e 100644 --- a/profiles/applications/vscode/default.nix +++ b/profiles/applications/vscode/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, config, ... }: +{ pkgs, lib, config, inputs, ... }: let thmFile = config.lib.base16.templateFile; thm = config.lib.base16.theme; @@ -12,19 +12,69 @@ let ''; in { + defaultApplications.editor = { + cmd = "${EDITOR}"; + desktop = "code-wayland"; + }; + home-manager.users.alukard = { programs.vscode = { enable = true; package = pkgs.vscode; - extensions = with pkgs.vscode-extensions; - (map - (extension: pkgs.vscode-utils.buildVscodeMarketplaceExtension { - mktplcRef = { - inherit (extension) name publisher version sha256; - }; - }) - (import ./extensions.nix).extensions - ); + enableExtensionUpdateCheck = false; + enableUpdateCheck = false; + extensions = + with inputs.nix-vscode-marketplace.packages.${pkgs.system}.vscode; + with inputs.nix-vscode-marketplace.packages.${pkgs.system}.open-vsx; + with pkgs.vscode-extensions; + let + nixpkgs-extensions = pkgs.vscode-extensions; + in [ + (inputs.direnv-vscode.packages.${pkgs.system}.vsix.overrideAttrs (_: { + buildPhase = "yarn run build"; + installPhase = '' + mkdir -p $out/share/vscode/extensions/direnv.direnv-vscode + cp -R * $out/share/vscode/extensions/direnv.direnv-vscode + ''; + })) + (pkgs.callPackage ./theme.nix { } config.lib.base16.theme) + + aaron-bond.better-comments + alefragnani.bookmarks + alefragnani.project-manager + # arrterian.nix-env-selector + # bbenoist.nix + bungcip.better-toml + catppuccin.catppuccin-vsc + christian-kohler.path-intellisense + codezombiech.gitignore + dart-code.dart-code + # dlasagno.wal-theme + eamodio.gitlens + enkia.tokyo-night + equinusocio.vsc-material-theme-icons + felixangelov.bloc + github.vscode-pull-request-github + irongeek.vscode-env + jebbs.plantuml + jnoortheen.nix-ide + lucax88x.codeacejumper + marcelovelasquez.flutter-tree + mhutchie.git-graph + ms-azuretools.vscode-docker + ms-vscode-remote.remote-ssh + # ms-vscode-remote.remote-ssh-edit + ]; + # ++ [ (import ./extensions.nix).extensions ]; + # extensions = with pkgs.vscode-extensions; + # (map + # (extension: pkgs.vscode-utils.buildVscodeMarketplaceExtension { + # mktplcRef = { + # inherit (extension) name publisher version sha256; + # }; + # }) + # (import ./extensions.nix).extensions + # ); # ++ [ # arrterian.nix-env-selector @@ -66,7 +116,9 @@ in "editor.tabSize" = 2; "editor.detectIndentation" = true; }; - "nix.formatterPath" = "nixfmt"; + "nix.enableLanguageServer" = true; + "nix.serverPath" = "${inputs.rnix-lsp.defaultPackage.${pkgs.system}}/bin/rnix-lsp"; + # "nix.formatterPath" = "nixfmt"; "dart.allowAnalytics" = false; "dart.flutterCreateOrganization" = "com.ataraxiadev"; "files.exclude" = { @@ -119,9 +171,4 @@ in #${thm.base07-hex} ''; }; - - defaultApplications.editor = { - cmd = "${EDITOR}"; - desktop = "cod-wayland"; - }; } diff --git a/profiles/applications/vscode/extensions.nix b/profiles/applications/vscode/extensions.nix deleted file mode 100644 index 8584342..0000000 --- a/profiles/applications/vscode/extensions.nix +++ /dev/null @@ -1,153 +0,0 @@ -{ extensions = [ - { - name = "better-comments"; - publisher = "aaron-bond"; - version = "3.0.2"; - sha256 = "15w1ixvp6vn9ng6mmcmv9ch0ngx8m85i1yabxdfn6zx3ypq802c5"; - } - { - name = "Bookmarks"; - publisher = "alefragnani"; - version = "13.3.1"; - sha256 = "0q3zc84f4dl9zhsr6j569bm4jgyjlrzn9zf3fcpw871wnak8b509"; - } - { - name = "project-manager"; - publisher = "alefragnani"; - version = "12.7.0"; - sha256 = "023xglwiqs8dp521h34zgny1d3wma1xn5pdm0srqwl7adsz304xc"; - } - { - name = "nix-env-selector"; - publisher = "arrterian"; - version = "1.0.9"; - sha256 = "0kdfhkdkffr3cdxmj7llb9g3wqpm13ml75rpkwlg1y0pkxcnlk2f"; - } - { - name = "Nix"; - publisher = "bbenoist"; - version = "1.0.1"; - sha256 = "0zd0n9f5z1f0ckzfjr38xw2zzmcxg1gjrava7yahg5cvdcw6l35b"; - } - { - name = "better-toml"; - publisher = "bungcip"; - version = "0.3.2"; - sha256 = "08lhzhrn6p0xwi0hcyp6lj9bvpfj87vr99klzsiy8ji7621dzql3"; - } - { - name = "catppuccin-vsc"; - publisher = "Catppuccin"; - version = "2.4.0"; - sha256 = "0kb4ddwvkl06d7mbkid32ck87hmx6bpdkflkxhr7phh9s2nrfbp5"; - } - { - name = "path-intellisense"; - publisher = "christian-kohler"; - version = "2.8.1"; - sha256 = "1j7q4mzj173sl6xl3zjw40hnqvyqsrsczakmv63066k4k0rb6clm"; - } - { - name = "gitignore"; - publisher = "codezombiech"; - version = "0.9.0"; - sha256 = "0ww0x28m83fv5zdqkmz108rsxb60fyy5y0ksknb2xchirzwhayi0"; - } - { - name = "dart-code"; - publisher = "Dart-Code"; - version = "3.53.20221107"; - sha256 = "17si9970q6nj2s3caxma5r94c72yg8bjh0rgzvsskr8gsmx7vkdc"; - } - { - name = "flutter"; - publisher = "Dart-Code"; - version = "3.53.20221101"; - sha256 = "0s51a8lhzw25ynivdl0cwwv29p2m6ncjmryr6mjsfzzv377kf9pr"; - } - { - name = "wal-theme"; - publisher = "dlasagno"; - version = "1.2.0"; - sha256 = "17130z04jg8hhj1k62q3d3lni10hajrckf1y95bbnm2d57j8spjz"; - } - { - name = "gitlens"; - publisher = "eamodio"; - version = "2022.11.1604"; - sha256 = "1c7qllq4s48259f973rr5if1m4jjsbkj8610ydd105341fb0fy22"; - } - { - name = "tokyo-night"; - publisher = "enkia"; - version = "0.9.4"; - sha256 = "0v1hkv8smwp64c0danrln39h0lgqa2dwiiy45rx29s9qmq3j9am4"; - } - { - name = "vsc-material-theme-icons"; - publisher = "equinusocio"; - version = "2.4.0"; - sha256 = "0grqsb6snj8817saialdgx0ilblky5jw4i8yxaf8nymiysywzkyq"; - } - { - name = "bloc"; - publisher = "FelixAngelov"; - version = "6.6.2"; - sha256 = "11fynj7qpgxampjwvxma3li6icl3715qnqr3yd26lg6pn7r3ps38"; - } - { - name = "vscode-pull-request-github"; - publisher = "GitHub"; - version = "0.55.2022111609"; - sha256 = "18hz42p4hdswsww14jigy3w9nnr9s0ma4s9z97k2yf5shnjfy8rx"; - } - { - name = "vscode-env"; - publisher = "IronGeek"; - version = "0.1.0"; - sha256 = "1ygfx1p38dqpk032n3x0591i274a63axh992gn6z1d45ag9bs6ji"; - } - { - name = "plantuml"; - publisher = "jebbs"; - version = "2.17.4"; - sha256 = "1s6jp1rx1k03ir7j3fsyqkhnnp9m6akabznb4pmjxpkvn2wzlz3y"; - } - { - name = "codeacejumper"; - publisher = "lucax88x"; - version = "3.3.2"; - sha256 = "02a5f0lg0rmrjjf52z30mk19ii71pcdxjmbcb4v6haw1pkm6anqn"; - } - { - name = "flutter-tree"; - publisher = "marcelovelasquez"; - version = "1.0.0"; - sha256 = "08glv02b5d5f4jfdfddg62jvdzscinl2jhsb7gpz36rxrbp0f17s"; - } - { - name = "git-graph"; - publisher = "mhutchie"; - version = "1.30.0"; - sha256 = "000zhgzijf3h6abhv4p3cz99ykj6489wfn81j0s691prr8q9lxxh"; - } - { - name = "vscode-docker"; - publisher = "ms-azuretools"; - version = "1.22.2"; - sha256 = "13scns5iazzsjx8rli311ym2z8i8f4nvbcd5w8hqj5z0rzsds6xi"; - } - { - name = "remote-ssh"; - publisher = "ms-vscode-remote"; - version = "0.93.2022111515"; - sha256 = "1zqx6n1xhydqzqcm4g3xdsivyhrck2sklx7k89pv6sxbri77fxpb"; - } - { - name = "remote-ssh-edit"; - publisher = "ms-vscode-remote"; - version = "0.84.0"; - sha256 = "0rw2klz1f4sy1xzwg4bilcm2sjk0lxdfh9ly3f4kbl8a5xccfy6z"; - } -]; -} \ No newline at end of file