summaryrefslogtreecommitdiff
path: root/modules/common/emacs/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/common/emacs/default.nix')
-rw-r--r--modules/common/emacs/default.nix86
1 files changed, 65 insertions, 21 deletions
diff --git a/modules/common/emacs/default.nix b/modules/common/emacs/default.nix
index c5cf7ed..b16fb83 100644
--- a/modules/common/emacs/default.nix
+++ b/modules/common/emacs/default.nix
@@ -58,36 +58,28 @@ in {
text = concatLines [
(
let
- # NOTE gopls will require the "go" executable which must be provided
- # by the project's flake/shell.
extraBins = with pkgs;
[
(aspellWithDicts (p: with p; [en ru])) # :checkers (spell +aspell)
- (python3.withPackages (p:
- with p; [
- black # :lang python :editor format
- isort # :lang python
- pyflakes # :lang python
- python-lsp-server # :lang (python +lsp)
- ]))
asmfmt # :editor format
+ cargo # :lang rust
clang-tools # :lang (cc +lsp) :editor format
- cmake # :term vterm
cmake-format # :lang cc :editor format
cmigemo # :lang japanese
dockerfile-language-server-nodejs # :tools (docker +lsp)
- dockfmt # :tools docker
+ dockfmt # :tools docker :editor format
editorconfig-core-c # :tools editorconfig
fd # doom!
- gcc # :tools magit :term vterm
- gnumake # :term vterm
+ ghc # :lang haskell
gnuplot # :lang (org +gnuplot)
gnutls # doom!
- go # :lang go org
+ go # :lang go
gocode # :lang go org
+ godef # :lang go
gomodifytags # :lang go
gopls # :lang (go +lsp)
gore # :lang go
+ gotests # :lang go
gotools # :lang go
graphviz # :lang (org +roam2) :lang plantuml
haskellPackages.cabal-fmt # :lang haskell :editor format
@@ -95,10 +87,9 @@ in {
haskellPackages.haskell-language-server # :lang (haskell +lsp)
haskellPackages.hoogle # :lang haskell
haskellPackages.ormolu # :lang haskell :editor format
- html-tidy # :lang web
+ html-tidy # :lang web :editor format
jre # :lang plantuml
- libtool # :term vterm
- libxml2 # :lang data
+ libxml2 # :lang data :editor format
nil # :lang (nix +lsp)
nodePackages.bash-language-server # :lang (sh +lsp)
nodePackages.eslint # :lang (json +lsp)
@@ -107,12 +98,22 @@ in {
nodePackages.stylelint # :lang web
nodejs # :tools debugger
pandoc # :lang org markdown latex
- perl # term vterm
pinentry-emacs # doom!
+ pipenv # :lang python
pre-commit # :tools magit
+ python3 # :lang python
+ python3Packages.black # :lang python :editor format
+ python3Packages.isort # :lang python :editor format
+ python3Packages.nose # :lang python
+ python3Packages.pyflakes # :lang python :editor format
+ python3Packages.pytest # :lang python
+ python3Packages.python-lsp-server # :lang python :editor format
+ racket # :lang racket :editor format
ripgrep # doom!
rust-analyzer # :lang (rust +lsp)
+ rustc # :lang rust
rustfmt # :lang rust
+ sbcl # :lang common-lisp
shellcheck # :lang sh
shfmt # :lang sh :editor format
sqlite # :lang (org +roam2) :tools lookup
@@ -121,6 +122,7 @@ in {
unzip # :tools debugger
wordnet # :tools (lookup +dictionary +offline)
yaml-language-server # :lang (yaml +lsp)
+ zig # :lang zig :editor format
zls # :lang (zig +lsp)
zstd # :emacs undo
]
@@ -142,7 +144,7 @@ in {
concatMapStringsSep ":" (x: "${x}/bin") extraBins
}"))
- (appendq! auth-sources '("${config.secrets.authinfo.path}"))
+ (appendq! auth-sources '(("${config.secrets.authinfo.path}")))
;; The font must be set to n+2, otherwise it looks too small.
(setq doom-font (font-spec
@@ -165,7 +167,7 @@ in {
(setq migemo-dictionary "${pkgs.cmigemo}/share/migemo/utf-8/migemo-dict")
;; :input japanese
- ;; (setq skk-large-jisyo "${pkgs.skk-dicts}/share/skk/SKK-JISYO.L")
+ (setq skk-large-jisyo "${pkgs.skk-dicts}/share/skk/SKK-JISYO.L")
;; :lang nix
(setq nix-nixfmt-bin "${pkgs.writeShellScript "nixfmt" ''
@@ -210,7 +212,49 @@ in {
programs.emacs = {
enable = true;
- package = pkgs.emacs29; # Pin to avoid surprises.
+ package =
+ (pkgs.emacs29.override (finalAttrs: {
+ stdenv = with pkgs;
+ useMoldLinker
+ (withCFlags ["-O2"]
+ (impureUseNativeOptimizations finalAttrs.stdenv));
+ }))
+ .overrideAttrs (_: final: {
+ configureFlags =
+ final.configureFlags
+ ++ [
+ "--without-mailutils"
+ "--without-pop"
+ ];
+ });
+ # TODO https://github.com/NixOS/nixpkgs/issues/267548
+ # packageX = let
+ # emacs = "emacs29"; # Pin the version to avoid surprises.
+ # in
+ # (pkgs.${emacs}.pkgs.overrideScope
+ # (_: super: {
+ # emacs =
+ # (pkgs.${emacs}.override (finalAttrs: {
+ # stdenv = with pkgs;
+ # useMoldLinker
+ # (withCFlags ["-O2"]
+ # (impureUseNativeOptimizations finalAttrs.stdenv));
+ # }))
+ # .overrideAttrs (_: final: {
+ # configureFlags =
+ # final.configureFlags
+ # ++ [
+ # "--without-mailutils"
+ # "--without-pop"
+ # ];
+ # });
+ # }))
+ # .withPackages (p:
+ # with p; [
+ # emacsql # :tools magit
+ # mu4e # :email mu4e
+ # vterm # :term vterm
+ # ]);
};
};
};