From 2d3ca78643c64b7639a6690caf8ffc20e470760e Mon Sep 17 00:00:00 2001 From: derped Date: Thu, 25 Nov 2021 22:13:28 +0100 Subject: [PATCH] emacs/web: switch to typescript mode + lsp. --- pkgsets/emacs/lsp.nix | 4 ++++ pkgsets/emacs/web-mode.nix | 35 ++++++++++++++++++++++++----------- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/pkgsets/emacs/lsp.nix b/pkgsets/emacs/lsp.nix index 982f0ea..30cd584 100644 --- a/pkgsets/emacs/lsp.nix +++ b/pkgsets/emacs/lsp.nix @@ -18,6 +18,10 @@ mkIf (elem "emacs::lsp" config.machine.pkgs) { ${optionalString (elem "emacs::rust" config.machine.pkgs) '' (setq lsp-rust-clippy-preference "on") ''} + ${optionalString (elem "emacs::web-mode" config.machine.pkgs) '' + (setq lsp-clients-deno-enable-unstable 't) + (setq lsp-disabled-clients '(ts-ls)) + ''} ''; }; diff --git a/pkgsets/emacs/web-mode.nix b/pkgsets/emacs/web-mode.nix index 027c7b8..99b1f7d 100644 --- a/pkgsets/emacs/web-mode.nix +++ b/pkgsets/emacs/web-mode.nix @@ -28,19 +28,32 @@ mkIf (elem "emacs::web-mode" config.machine.pkgs) { }; js2-mode = { enable = true; - }; - tide = { - enable = true; - after = [ "typescript-mode" "company" "flycheck" ]; - hook = [ - "(typescript-mode . tide-setup)" - "(typescript-mode . tide-hl-identifier-mode)" - "(before-save . tide-format-before-save)" + mode = [ + ''("\\.js\\'" . js2-mode)'' ]; - config = '' - (setq company-tooltip-align-annotations t) - ''; }; + typescript-mode = { + enable = true; + hook = lib.optional (elem "emacs::lsp" config.machine.pkgs) + ''(typescript-mode . (lambda () (lsp)))''; + mode = [ + ''("\\.ts\\'" . typescript-mode)'' + ]; + }; + # tide = { + # enable = true; + # after = [ "typescript-mode" "company" "flycheck" ]; + # hook = [ + # "(typescript-mode . tide-setup)" + # "(typescript-mode . tide-hl-identifier-mode)" + # "(before-save . tide-format-before-save)" + # ]; + # config = '' + # (flycheck-mode +1) + # (setq flycheck-check-syntax-automatically '(save mode-enabled)) + # (setq company-tooltip-align-annotations t) + # ''; + # }; impatient-mode = { enable = true; };