diff --git a/flake.lock b/flake.lock index d96343c..c4e327f 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1747514353, - "narHash": "sha256-E1WjB+zvDw4x058mg3MIdK5j2huvnNpTEEt2brhg2H8=", + "lastModified": 1736955230, + "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", "owner": "ryantm", "repo": "agenix", - "rev": "6697e8babbd8f323dfd5e28f160a0128582c128b", + "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", "type": "github" }, "original": { @@ -26,11 +26,11 @@ "arkenfox-userjs": { "flake": false, "locked": { - "lastModified": 1745247844, - "narHash": "sha256-YfgmhyqLH067pjqRSeCpfqFkeaac1nBvsKcrRNkKw7o=", + "lastModified": 1741229528, + "narHash": "sha256-21DoV4SMueMFRHMsvfsPfQIOtsvRWNY06rE4gB7xFnc=", "owner": "arkenfox", "repo": "user.js", - "rev": "7f852e94fc80fd0aa19f1c948319974e3301187f", + "rev": "3d76c74c80485931425464fec0e59d6cb461677a", "type": "github" }, "original": { @@ -39,6 +39,29 @@ "type": "github" } }, + "csharp-language-server": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743061507, + "narHash": "sha256-M605lQQ035J61tZ48tye8JUCN4MZKXhcTP3SqXqtr4g=", + "owner": "SofusA", + "repo": "csharp-language-server", + "rev": "a119d6002874d9335dbff0a9445f652762eb6685", + "type": "github" + }, + "original": { + "owner": "SofusA", + "repo": "csharp-language-server", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -47,11 +70,11 @@ ] }, "locked": { - "lastModified": 1744478979, - "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=", + "lastModified": 1700795494, + "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "43975d782b418ebf4969e9ccba82466728c2851b", + "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", "type": "github" }, "original": { @@ -102,17 +125,18 @@ }, "firefox-addons": { "inputs": { + "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" ] }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1747541019, - "narHash": "sha256-j3GieFJQqdtDLQmGMVhtiPy/3gP3PjlPybKywN4hOOQ=", + "lastModified": 1742773104, + "narHash": "sha256-dAhrL+gEjNN5U/Sosy7IrX0Y0qPA0U7Gp9TBhqEliNU=", "owner": "rycee", "repo": "nur-expressions", - "rev": "830ffcdb44051917600abb79007e8593e9effc53", + "rev": "d74460da63a8c08a69a1f143b04f2ab1a6b2f5c2", "type": "gitlab" }, "original": { @@ -155,37 +179,22 @@ } }, "flake-compat_3": { + "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", + "lastModified": 1717312683, + "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", + "owner": "nix-community", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", "type": "github" }, "original": { - "owner": "edolstra", + "owner": "nix-community", "repo": "flake-compat", "type": "github" } }, "flake-compat_4": { - "flake": false, - "locked": { - "lastModified": 1746162366, - "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", - "owner": "nix-community", - "repo": "flake-compat", - "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_5": { "flake": false, "locked": { "lastModified": 1696426674, @@ -208,11 +217,11 @@ ] }, "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "lastModified": 1741352980, + "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", "type": "github" }, "original": { @@ -243,6 +252,21 @@ } }, "flake-utils": { + "locked": { + "lastModified": 1629284811, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": "systems_2" }, @@ -289,11 +313,11 @@ ] }, "locked": { - "lastModified": 1745494811, - "narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=", + "lastModified": 1703113217, + "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", "owner": "nix-community", "repo": "home-manager", - "rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be", + "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", "type": "github" }, "original": { @@ -309,11 +333,11 @@ ] }, "locked": { - "lastModified": 1747331121, - "narHash": "sha256-3MmiUN/jOHBHQUnjqzg6qKArc17j2OS6jisEppDY4g8=", + "lastModified": 1742655702, + "narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "1eec32f0efe3b830927989767a9e6ece0d82d608", + "rev": "0948aeedc296f964140d9429223c7e4a0702a1ff", "type": "github" }, "original": { @@ -346,49 +370,6 @@ "type": "gitlab" } }, - "nix-alien": { - "inputs": { - "flake-compat": "flake-compat_3", - "nix-index-database": "nix-index-database", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747293822, - "narHash": "sha256-1R3Ro+RQCUUnIFZDObP9/2QBLk3xvgbXU67Qii+YZ8s=", - "owner": "thiagokokada", - "repo": "nix-alien", - "rev": "ea7eb3a76520fa8d92879afb819756ffc0bc629e", - "type": "github" - }, - "original": { - "owner": "thiagokokada", - "repo": "nix-alien", - "type": "github" - } - }, - "nix-index-database": { - "inputs": { - "nixpkgs": [ - "nix-alien", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1746934494, - "narHash": "sha256-3n6i+F0sDASjkhbvgFDpPDZGp7z19IrRtjfF9TwJpCA=", - "owner": "nix-community", - "repo": "nix-index-database", - "rev": "e9b21b01e4307176b9718a29ac514838e7f6f4ff", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-index-database", - "type": "github" - } - }, "nixlib": { "locked": { "lastModified": 1643502816, @@ -406,7 +387,7 @@ }, "nixos-cosmic": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_3", "nixpkgs": [ "nixpkgs" ], @@ -414,11 +395,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1747566515, - "narHash": "sha256-mBT3EypUn1HZ5iRGDmZQPtVNYxQxnkIsasggSCndYjw=", + "lastModified": 1742863891, + "narHash": "sha256-/mGCIxO7zlWCHOZLaOMRoJgSLpIav0PBKWG3BQddElw=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "93f3add95306179d15f8a6b1cfc87bfdc1702a33", + "rev": "366999efebcad2165f472ef93e9c996693bda75d", "type": "github" }, "original": { @@ -429,11 +410,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1747129300, - "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", + "lastModified": 1742806253, + "narHash": "sha256-zvQ4GsCJT6MTOzPKLmlFyM+lxo0JGQ0cSFaZSACmWfY=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "e81fd167b33121269149c57806599045fd33eeed", + "rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726", "type": "github" }, "original": { @@ -444,11 +425,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1747335874, - "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=", + "lastModified": 1742751704, + "narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858", + "rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092", "type": "github" }, "original": { @@ -460,11 +441,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1747335874, - "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=", + "lastModified": 1742512142, + "narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858", + "rev": "7105ae3957700a9646cc4b766f5815b23ed0c682", "type": "github" }, "original": { @@ -476,11 +457,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1747327360, - "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=", + "lastModified": 1742669843, + "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46", + "rev": "1e5b653dff12029333a6546c11e108ede13052eb", "type": "github" }, "original": { @@ -515,11 +496,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1747556457, - "narHash": "sha256-L1iSnAQYsveQs1haZ9CcidvYKhYotchzgM9GqYie0Rg=", + "lastModified": 1742893502, + "narHash": "sha256-W8M7Kzat8ySVY+bBW0FF6jB4xjdb8sLm14OHVyyu0KQ=", "owner": "astro", "repo": "nix-openwrt-imagebuilder", - "rev": "568956f921869b6f36af3809fab4a914ed17082c", + "rev": "89d3674159e5606b0c1db636e7c7463b7b976b45", "type": "github" }, "original": { @@ -530,18 +511,18 @@ }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_4", "gitignore": "gitignore", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1747372754, - "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", "type": "github" }, "original": { @@ -554,13 +535,13 @@ "inputs": { "agenix": "agenix", "arkenfox-userjs": "arkenfox-userjs", + "csharp-language-server": "csharp-language-server", "deploy-rs": "deploy-rs", "firefox-addons": "firefox-addons", "flake-parts": "flake-parts", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "home-manager": "home-manager_2", "matrix-appservices": "matrix-appservices", - "nix-alien": "nix-alien", "nixos-cosmic": "nixos-cosmic", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", @@ -578,11 +559,11 @@ ] }, "locked": { - "lastModified": 1747535902, - "narHash": "sha256-rKWBtLcqQeu8PpfKIBn1ORXS2udSH/MwnQFwfSpFOLg=", + "lastModified": 1742437918, + "narHash": "sha256-Vflb6KJVDikFcM9E231mRN88uk4+jo7BWtaaQMifthI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "b7a99615d26b82c39b73ccc9026545c3f3403b71", + "rev": "f03085549609e49c7bcbbee86a1949057d087199", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d2c1853..bb05b10 100644 --- a/flake.nix +++ b/flake.nix @@ -28,11 +28,6 @@ rec { flake-utils.url = "github:numtide/flake-utils"; - nix-alien = { - url = "github:thiagokokada/nix-alien"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; @@ -84,6 +79,11 @@ rec { inputs.nixpkgs.follows = "nixpkgs"; }; + csharp-language-server = { + url = "github:SofusA/csharp-language-server"; + # inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; + }; }; outputs = diff --git a/home/editors/helix/default.nix b/home/editors/helix/default.nix index ffb18dc..e346dfb 100644 --- a/home/editors/helix/default.nix +++ b/home/editors/helix/default.nix @@ -22,12 +22,16 @@ in enable = true; package = pkgs.unstable.helix; languages.language = [ + { + name = "c-sharp"; + language-servers = [ "roslyn" ]; + auto-format = true; + } { name = "javascript"; language-servers = typescriptLanguageServers; # TODO also configure eslint for diagnostics - # formatter.command = ["eslint_d"]; - # formatter.args = ["--fix"]; + # formatter.command = "eslint_d --fix"; formatter = prettier "typescript"; auto-format = true; } @@ -55,7 +59,7 @@ in } { name = "nix"; - # HINT `nix fmt` is a bit slow + # `nix fmt` does not support stdin formatter.command = "nixfmt"; language-servers = [ "nixd" @@ -70,32 +74,12 @@ in } { name = "protobuf"; - formatter.command = "buf"; - formatter.args = [ - "format" - "-w" - ]; + formatter.command = "buf format -w"; language-servers = [ "bufls" "buf-lint" ]; } - { - name = "hcl"; - language-id = "opentofu"; - language-servers = [ "opentofu-ls" ]; - injection-regex = "(hcl|tf|tofu)"; - file-types = [ - "hcl" - "tf" - "tofu" - ]; - } - { - name = "tfvars"; - language-id = "opentofu-vars"; - language-servers = [ "opentofu-ls" ]; - } { name = "graphql"; formatter = prettier "graphql"; @@ -156,6 +140,7 @@ in }; }; }; + roslyn.command = "csharp-language-server"; statix = { command = "efm-langserver"; config = { @@ -227,13 +212,6 @@ in }; }; }; - opentofu-ls = { - command = "opentofu-ls"; - args = [ "serve" ]; - config = { - opentofu.path = "tofu"; - }; - }; }; settings = { theme = "dark_plus"; diff --git a/home/editors/lsp.nix b/home/editors/lsp.nix index 491a001..4f39eec 100644 --- a/home/editors/lsp.nix +++ b/home/editors/lsp.nix @@ -4,11 +4,21 @@ home.packages = with pkgs; [ # language servers efm-langserver + unstable.roslyn-ls + (pkgs.symlinkJoin { + name = "csharp-language-server"; + paths = [ inputs.csharp-language-server.packages.${system}.csharp-language-server ]; + buildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/csharp-language-server \ + --prefix PATH : "${pkgs.lib.makeBinPath [ pkgs.dotnet-sdk_9 ]}" + ''; + }) + omnisharp-roslyn nil unstable.nixd nls terraform-ls - unstable.opentofu-ls pyright nodePackages.bash-language-server nodePackages.vim-language-server @@ -21,7 +31,6 @@ haskellPackages.haskell-language-server rust-analyzer sumneko-lua-language-server - marksman # linters & formatters topiary diff --git a/home/shell/zellij.nix b/home/shell/zellij.nix index 1555ef8..57f3a47 100644 --- a/home/shell/zellij.nix +++ b/home/shell/zellij.nix @@ -7,7 +7,6 @@ programs.zellij.settings = { default_layout = "compact"; # or default default_mode = "normal"; - show_startup_tips = false; ui.pane_frames = { hide_session_name = true; }; diff --git a/system/common.nix b/system/common.nix index 2d8bded..c7202db 100644 --- a/system/common.nix +++ b/system/common.nix @@ -5,7 +5,6 @@ ./zram.nix ./i18n.nix ./nix.nix - ./nix-ld.nix ./networking.nix ./hardened.nix ]; diff --git a/system/nix-ld.nix b/system/nix-ld.nix deleted file mode 100644 index caaab62..0000000 --- a/system/nix-ld.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ inputs, system, ... }: - -{ - environment.systemPackages = [ - inputs.nix-alien.packages.${system}.nix-alien - ]; - - programs.nix-ld.enable = true; -}