From 5c06ae218a89fc646f993b6c7b332dec932e4a9d Mon Sep 17 00:00:00 2001 From: Xe Date: Thu, 19 Jan 2023 13:32:48 -0500 Subject: [PATCH] fix tree-sitter Signed-off-by: Xe --- common/home-manager/emacs/default.nix | 45 +++------------------------ flake.nix | 1 + overlays/tree-sitter-typescript.nix | 12 +++++++ 3 files changed, 18 insertions(+), 40 deletions(-) create mode 100644 overlays/tree-sitter-typescript.nix diff --git a/common/home-manager/emacs/default.nix b/common/home-manager/emacs/default.nix index b332d5e..2cf5a2c 100644 --- a/common/home-manager/emacs/default.nix +++ b/common/home-manager/emacs/default.nix @@ -19,7 +19,7 @@ in { programs.emacs = { enable = true; - package = pkgs.emacsUnstable; + package = pkgs.emacsUnstable-nox; init = { enable = true; @@ -345,6 +345,10 @@ in { web-mode = { enable = true; mode = [ ''"\\.html\\'"'' ''"\\.tmpl\\'"'' ]; + config = '' + (define-derived-mode typescript-tsx-mode web-mode "TypeScript-tsx") + (add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-tsx-mode)) + ''; }; # org-mode @@ -407,45 +411,6 @@ in { tide.enable = true; typescript-mode.enable = true; - tree-sitter.enable = true; - tree-sitter-langs.enable = true; - - graphql-mode.enable = true; - tsx-mode = { - enable = true; - package = epkgs: - epkgs.trivialBuild { - pname = "tsx-mode.el"; - packageRequires = with epkgs; [ - graphql-mode - coverlay - lsp-mode - origami - (epkgs.trivialBuild { - pname = "tsi"; - packageRequires = with epkgs; [ tree-sitter tree-sitter-langs buttercup ]; - src = pkgs.fetchFromGitHub { - owner = "orzechowskid"; - repo = "tsi.el"; - rev = "6fba6a4c61125e95c5ff744d1e9cb8ec17d6d4e4"; - sha256 = "WgaFCpZeb81AdM77/DQnDdk7mVRK+NMJcoB/DxvCMx8="; - }; - preferLocalBuild = true; - allowSubstitutes = true; - }) - ]; - src = pkgs.fetchFromGitHub { - owner = "orzechowskid"; - repo = "tsx-mode.el"; - rev = "d9d1fda2929de59082c1dc34636271d4341c3b68"; - sha256 = "fa0dHRfXVCNRiKFtW/+Zg4hWES9M+CrvJjQXiScdaTo="; - }; - preferLocalBuild = true; - allowSubstitutes = true; - }; - mode = [''"\\.tsx\\'"'']; - }; - deno-fmt = { enable = true; config = '' diff --git a/flake.nix b/flake.nix index c6b7cbd..2187ebd 100644 --- a/flake.nix +++ b/flake.nix @@ -72,6 +72,7 @@ home-manager.useUserPackages = true; nixpkgs.overlays = [ emacs-overlay.overlay + (import ./overlays/tree-sitter-typescript.nix) ]; }) ./common diff --git a/overlays/tree-sitter-typescript.nix b/overlays/tree-sitter-typescript.nix new file mode 100644 index 0000000..69837a0 --- /dev/null +++ b/overlays/tree-sitter-typescript.nix @@ -0,0 +1,12 @@ +final: prev: { + tree-sitter-grammars = prev.tree-sitter-grammars // { + tree-sitter-typescript = + prev.tree-sitter-grammars.tree-sitter-typescript.overrideAttrs (_: { + nativeBuildInputs = [ final.nodejs final.tree-sitter ]; + configurePhase = '' + tree-sitter generate --abi 13 typescript/src/grammar.json + tree-sitter generate --abi 13 tsx/src/grammar.json + ''; + }); + }; +}