diff --git a/flake.lock b/flake.lock index fb1a2ef..f61ad26 100644 --- a/flake.lock +++ b/flake.lock @@ -53,11 +53,11 @@ ] }, "locked": { - "lastModified": 1773000227, - "narHash": "sha256-zm3ftUQw0MPumYi91HovoGhgyZBlM4o3Zy0LhPNwzXE=", + "lastModified": 1775037210, + "narHash": "sha256-KM2WYj6EA7M/FVZVCl3rqWY+TFV5QzSyyGE2gQxeODU=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "da529ac9e46f25ed5616fd634079a5f3c579135f", + "rev": "06648f4902343228ce2de79f291dd5a58ee12146", "type": "github" }, "original": { @@ -91,11 +91,11 @@ ] }, "locked": { - "lastModified": 1774616761, - "narHash": "sha256-pzfNGD4voajXEozJPdOom795D3f+thTrPsj3Dlko2SM=", + "lastModified": 1775738372, + "narHash": "sha256-c/iQt5Brq1WGEkKXU9xnmtG8sWMq6mZqJaPUgqyyjvo=", "owner": "elixir-lang", "repo": "expert", - "rev": "1bbd0df1ebc79621919096ae4c6f911bf5d91336", + "rev": "eb07bff80b8a556f3098d712852e175cd4979a48", "type": "github" }, "original": { @@ -127,11 +127,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "type": "github" }, "original": { @@ -162,11 +162,11 @@ ] }, "locked": { - "lastModified": 1774584114, - "narHash": "sha256-uWR9fC+4NykFJVn4GN4Ini9LX+w8Llj7BnWKKp0N6bw=", + "lastModified": 1775683737, + "narHash": "sha256-oBYyowo6yfgb95Z78s3uTnAd9KkpJpwzjJbfnpLaM2Y=", "owner": "nix-community", "repo": "home-manager", - "rev": "4b1be5c38be350ee9452a4847945ce71d950dc31", + "rev": "7ba4ee4228ed36123c7cb75d50524b43514ef992", "type": "github" }, "original": { @@ -177,11 +177,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1774273680, - "narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=", + "lastModified": 1775701739, + "narHash": "sha256-2FWWY1rr/+pGUJK1npcVcsWNEblzmKs6VxD3VEvwJSs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed", + "rev": "0f7663154ff2fec150f9dbf5f81ec2785dc1e0db", "type": "github" }, "original": { @@ -208,11 +208,11 @@ }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1772328832, - "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=", + "lastModified": 1774748309, + "narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742", + "rev": "333c4e0545a6da976206c74db8773a1645b5870a", "type": "github" }, "original": { diff --git a/modules/git/ignore b/modules/git/ignore index 930927e..a4ae488 100644 --- a/modules/git/ignore +++ b/modules/git/ignore @@ -79,3 +79,5 @@ oprofile_data # }}} erl_crash.dump + +.dexter.db* diff --git a/modules/nvim.nix b/modules/nvim.nix index 7933496..c085ee4 100644 --- a/modules/nvim.nix +++ b/modules/nvim.nix @@ -22,7 +22,8 @@ let ['rust_analyzer'] = "${pkgs.rust-analyzer}/bin/rust-analyzer", ['expert'] = "${expert}/bin/expert", ['elp'] = "${pkgs.erlang-language-platform}/bin/elp", - ['typos_lsp'] = "${pkgs.typos-lsp}/bin/typos-lsp" + ['typos_lsp'] = "${pkgs.typos-lsp}/bin/typos-lsp", + ['dexter'] = "dexter" } package.path = package.path .. ";${pkgs.luajitPackages.fennel}/share/lua/5.1/?.lua" require('basic') diff --git a/modules/nvim/fnl/langclient.fnl b/modules/nvim/fnl/langclient.fnl index e2fb96c..dfcd9ac 100644 --- a/modules/nvim/fnl/langclient.fnl +++ b/modules/nvim/fnl/langclient.fnl @@ -40,10 +40,15 @@ :cmd [vim.g.lsp_paths.rust_analyzer] :settings {:rust-analyzer {:files {:excludeDirs [".direnv"]}}}}) -(setup :expert { +; (setup :expert { +; :root_markers [ "mix.exs" ".git" ".jj" ] +; :filetypes [ "elixir" "eelixir" "heex" ] +; :cmd [vim.g.lsp_paths.expert "--stdio"]}) + +(setup :dexter { :root_markers [ "mix.exs" ".git" ".jj" ] :filetypes [ "elixir" "eelixir" "heex" ] - :cmd [vim.g.lsp_paths.expert "--stdio"]}) + :cmd [vim.g.lsp_paths.dexter "lsp"]}) (setup :elp { :root_markers [ "rebar.config" ] diff --git a/modules/tools.nix b/modules/tools.nix index 469ee97..2d26ec0 100644 --- a/modules/tools.nix +++ b/modules/tools.nix @@ -31,5 +31,7 @@ in pkgs.timg pkgs.typos pkgs-self.mac-mole + + pkgs-self.dexter ]; } diff --git a/pkgs/default.nix b/pkgs/default.nix index 88252ac..8bcc39f 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -10,6 +10,8 @@ hosevka = callPackage ./hosevka.nix { }; mac-mole = callPackage ./mac-mole.nix { }; + dexter = callPackage ./dexter.nix { }; + fswatch = writeShellApplication { name = "fswatch"; diff --git a/pkgs/dexter.nix b/pkgs/dexter.nix new file mode 100644 index 0000000..b227914 --- /dev/null +++ b/pkgs/dexter.nix @@ -0,0 +1,46 @@ +{ + buildGoModule, + fetchFromGitHub, + installShellFiles, + lib, + stdenv, +}: +let + name = "dexter"; + version = "0.5.3"; + src = fetchFromGitHub { + owner = "remoteoss"; + repo = name; + tag = "v${version}"; + hash = "sha256-8JjxR7Q+4OgBSIgODxIEU/0mC+bPp9Nz7uCAjfn4HiY="; + }; +in +buildGoModule { + pname = name; + + inherit version src; + + nativeBuildInputs = [ installShellFiles ]; + + proxyVendor = true; + + postInstall = '' + mv $out/bin/cmd $out/bin/dexter + '' + + (lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd dexter \ + --bash <($out/bin/dexter completion bash) \ + --fish <($out/bin/dexter completion fish) \ + --zsh <($out/bin/dexter completion zsh) + ''); + + vendorHash = "sha256-1mJ4HdDCsZl/g8F+L+NrW2ACuiHe2aSheJO/1XfKAb4="; + + meta = { + description = "Fast implementation of Elixir language server in Go"; + mainProgram = "dexter"; + homepage = "https://github.com/remoteoss/dexter"; + license = lib.licenses.mit; + platforms = lib.platforms.all; + }; +}