diff --git a/flake.lock b/flake.lock index 9a778d8..0ab34b1 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,23 @@ { "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -38,7 +56,58 @@ "type": "github" } }, + "lexical": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1709314714, + "narHash": "sha256-jPm/wRSlNL6XlLfWlE52my2chtqLf69XoeYdXGoQUD0=", + "owner": "lexical-lsp", + "repo": "lexical", + "rev": "1e2aa3e8d6c23635bfed184753b467ac6e799712", + "type": "github" + }, + "original": { + "owner": "lexical-lsp", + "repo": "lexical", + "type": "github" + } + }, "nixpkgs": { + "locked": { + "lastModified": 1699725108, + "narHash": "sha256-NTiPW4jRC+9puakU4Vi8WpFEirhp92kTOSThuZke+FA=", + "path": "/nix/store/1ryprai4bllkrna60cmcygxc4qyn79s1-source", + "rev": "911ad1e67f458b6bcf0278fa85e33bb9924fed7e", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1701253981, + "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1707743206, "narHash": "sha256-AehgH64b28yKobC/DAWYZWkJBxL/vP83vkY+ag2Hhy4=", @@ -58,7 +127,8 @@ "inputs": { "flake-utils": "flake-utils", "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "lexical": "lexical", + "nixpkgs": "nixpkgs_2" } }, "systems": { @@ -75,6 +145,21 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 85dbb8c..2f1a3a3 100644 --- a/flake.nix +++ b/flake.nix @@ -4,14 +4,14 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; - home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + lexical.url = "github:lexical-lsp/lexical"; }; - outputs = { nixpkgs, home-manager, flake-utils, ... }: + outputs = { nixpkgs, home-manager, flake-utils, lexical, ... }: flake-utils.lib.eachDefaultSystem (system: let user = "nikos"; # change your user here @@ -25,6 +25,11 @@ # Specify your home configuration modules here, for example, # the path to your home.nix. modules = [ + ({ ... }: { + nixpkgs.overlays = [ + (self: super: { lexical = lexical.packages.${system}.default; }) + ]; + }) ./home.nix ]; diff --git a/home.nix b/home.nix index beaf71c..3e51789 100644 --- a/home.nix +++ b/home.nix @@ -76,8 +76,9 @@ pkgs.nil # Nix lsp pkgs.nixpkgs-fmt # Nix formatter pkgs.efm-langserver # Generic language server - pkgs.lua-language-server - pkgs.gopls + pkgs.lua-language-server # Lua lsp + pkgs.gopls # Go lsp + pkgs.lexical # Elixir lsp ]; }; diff --git a/nvim/lua/my/lsp.lua b/nvim/lua/my/lsp.lua index 138ebf7..17f9c85 100644 --- a/nvim/lua/my/lsp.lua +++ b/nvim/lua/my/lsp.lua @@ -156,14 +156,17 @@ local servers = { }, }, }, - elixirls = { - cmd = { "elixir-ls" }, - settings = { - elixirLS = { - dialyzerEnabled = true, - }, - }, + lexical = { + cmd = { "lexical" }, }, + -- elixirls = { + -- cmd = { "elixir-ls" }, + -- settings = { + -- elixirLS = { + -- dialyzerEnabled = true, + -- }, + -- }, + -- }, tsserver = { settings = { documentFormatting = false,