diff --git a/nix/configuration/roles/emacs/default.nix b/nix/configuration/roles/emacs/default.nix index c4628a2..4fd70ee 100644 --- a/nix/configuration/roles/emacs/default.nix +++ b/nix/configuration/roles/emacs/default.nix @@ -131,8 +131,9 @@ in final.cmake-language-server final.cmake # Used by cmake-language-server final.rust-analyzer - final.nodePackages_latest.prettier # Format yaml, json, and JS + final.prettier # Format yaml, json, and JS final.terraform-ls + final.typescript-language-server ] } ''; diff --git a/nix/configuration/roles/emacs/files/emacs/elisp/lang-javascript.el b/nix/configuration/roles/emacs/files/emacs/elisp/lang-javascript.el index 310daee..fdb425e 100644 --- a/nix/configuration/roles/emacs/files/emacs/elisp/lang-javascript.el +++ b/nix/configuration/roles/emacs/files/emacs/elisp/lang-javascript.el @@ -1,6 +1,12 @@ (require 'common-lsp) (require 'util-tree-sitter) +(defun js-format-buffer () + "Run prettier." + (interactive) + (run-command-on-buffer "prettier" "--stdin-filepath" buffer-file-name) + ) + (use-package json-ts-mode :ensure nil :pin manual @@ -113,10 +119,14 @@ ("\\.js\\'" . js-ts-mode) ) :commands (js-ts-mode) + :custom ( + (js-indent-level 2) + ) :hook ( (js-ts-mode . (lambda () (when-linux (eglot-ensure) + (add-hook 'before-save-hook 'js-format-buffer nil 'local) ) )) ) diff --git a/nix/configuration/roles/git/default.nix b/nix/configuration/roles/git/default.nix index 24183f7..b8cbc00 100644 --- a/nix/configuration/roles/git/default.nix +++ b/nix/configuration/roles/git/default.nix @@ -20,7 +20,7 @@ config = lib.mkMerge [ { environment.systemPackages = with pkgs; [ - git + my_git ]; } (lib.mkIf (config.me.git.config != null) { @@ -32,54 +32,32 @@ }; }; }) - # (lib.mkIf (config.me.graphical) { - # nixpkgs.overlays = [ - # (final: prev: { - # git = pkgs.buildEnv { - # name = prev.git.name; - # paths = [ - # prev.git - # ]; - # extraOutputsToInstall = [ - # "man" - # "doc" - # "info" - # ]; - # buildInputs = [ final.makeWrapper ]; - # postBuild = '' - # wrapProgram $out/bin/git --prefix PATH : ${ - # lib.makeBinPath [ - # final.meld - # ] - # } - # ''; - # }; - # }) - # ]; - # }) - # (lib.mkIf (!config.me.graphical) { - # nixpkgs.overlays = [ - # (final: prev: { - # git = pkgs.buildEnv { - # name = prev.git.name; - # paths = [ - # prev.git - # ]; - # extraOutputsToInstall = [ - # "man" - # "doc" - # "info" - # ]; - # buildInputs = [ final.makeWrapper ]; - # postBuild = '' - # wrapProgram $out/bin/git --prefix PATH : ${ - # lib.makeBinPath [ - # ] - # } - # ''; - # }; - # }) - # ]; - # }) + (lib.mkIf (config.me.graphical) { + nixpkgs.overlays = [ + (final: prev: { + my_git = pkgs.symlinkJoin { + name = final.git.name; + paths = [ + final.git + ]; + nativeBuildInputs = [ final.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/git --prefix PATH : ${ + lib.makeBinPath [ + final.meld + ] + } + ''; + }; + }) + ]; + }) + (lib.mkIf (!config.me.graphical) { + nixpkgs.overlays = [ + (final: prev: { + my_git = final.git; + }) + ]; + }) ]; }