summary refs log tree commit diff stats
path: root/user/settings/emacs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'user/settings/emacs.nix')
-rw-r--r--user/settings/emacs.nix42
1 files changed, 28 insertions, 14 deletions
diff --git a/user/settings/emacs.nix b/user/settings/emacs.nix
index 8ce0c7d6..27327af7 100644
--- a/user/settings/emacs.nix
+++ b/user/settings/emacs.nix
@@ -8,11 +8,6 @@ let
 
   nativeCompileDirectory = "${config.xdg.cacheHome}/emacs/native-compile/";
 
-  darwinPath = pkgs.runCommandLocal "path_helper " { } ''
-    eval $(/usr/libexec/path_helper)
-    echo -n $PATH > $out
-  '';
-
   editorScript = pkgs.writeScriptBin "edit" ''
     #!${pkgs.runtimeShell}
     if [ -z "$1" ]; then
@@ -31,9 +26,14 @@ in
     "*.el diff=elisp"
   ];
   programs.git.extraConfig."diff.elisp" = {
-    xfuncname = "^\\((((def\\S+)|use-package)\\s+\\S+)";
+    xfuncname = "^(((;;;+ )|\\(|([ \t]+\\(((cl-|el-patch-)?def(un|var|macro|method|custom)|gb/))).*)$";
   };
 
+  services.emacs = lib.mkIf stdenv.isLinux {
+    enable = true;
+    package = config.programs.emacs.finalPackage;
+    client.enable = true;
+  };
   programs.emacs = {
     enable = true;
     package = lib.mkDefault (pkgs.emacs29.override { withGTK3 = true; });
@@ -65,6 +65,7 @@ in
         cdg = "cd (project-root)";
       };
     };
+
     extraPackages = epkgs: (with epkgs;
       [
         ace-link
@@ -83,7 +84,6 @@ in
         crux
         dired-git-info
         docker-compose-mode
-        dockerfile-mode
         dtrt-indent
         envrc
         editorconfig
@@ -101,6 +101,7 @@ in
         evil-commentary
         evil-embrace
         evil-exchange
+        evil-lion
         evil-matchit
         evil-mu4e
         evil-numbers
@@ -120,22 +121,21 @@ in
         git-gutter-fringe
         git-modes
         git-timemachine
+        gl-conf-mode # gitolite
         goto-chg
         helpful
-        ibuffer-project
         jinx
         just-mode
         justl
-        json-mode
         kind-icon
         lua-mode
-        lispy
+        lsp-mode
         lispyville
         magit
-        magit-filenotify
         markdown-mode
         marginalia
         nerd-icons
+        nix-ts-mode
         orderless
         doom-modeline
         php-mode
@@ -149,17 +149,31 @@ in
         tempel
         tempel-collection
         eglot-tempel
-        toml-mode
         treesit-grammars.with-all-grammars
+        treesit-auto
         vc-msg
         vertico
         vertico-prescient
         wgrep-ag
         ws-butler
         which-key
-        yaml-mode
+        yasnippet
+        yasnippet-capf
       ]);
+    overrides = self: super: {
+      apheleia = self.melpaPackages.apheleia.overrideAttrs
+        (old: {
+          patchPhase = ''
+            substituteInPlace apheleia-formatters.el \
+              --replace-fail '"prettier"' '"prettierd"'
+          '';
+        });
+      lsp-mode = self.melpaPackages.lsp-mode.overrideAttrs {
+        LSP_USE_PLISTS = "true"; # sync with below
+      };
+    };
     extraConfig = ''
+      (setenv "LSP_USE_PLISTS" "true") ; sync with above
       (with-eval-after-load 'editorconfig
         (setq editorconfig-exec-path "${pkgs.editorconfig-core-c}/bin/editorconfig"))
       (when (featurep 'native-compile)
@@ -170,11 +184,11 @@ in
         (setq insert-directory-program "${pkgs.coreutils-prefixed}/bin/gls"))
       (with-eval-after-load 'dired
         (setq dired-use-ls-dired t))
-      (setq exec-path (parse-colon-path (setenv "PATH" "${pkgs.lib.readFile darwinPath}")))
     '';
   };
   home.packages = with pkgs; [
     editorScript
+    enchant
   ];
   xdg.configFile."raycast/scripts/Emacs" = {
     executable = true;