-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Ludovico Piero <lewdovico@gnuweeb.org>
- Loading branch information
1 parent
2dfd35f
commit 2d1a405
Showing
9 changed files
with
1,612 additions
and
68 deletions.
There are no files selected for viewing
293 changes: 293 additions & 0 deletions
293
cells/workstations/homeProfiles/emacs/__modules/emacs-init-defaults.nix
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,293 @@ | ||
# A collection of "uncontroversial" configurations for selected packages. | ||
# Source: https://gitlab.com/rycee/nur-expressions/-/blob/master/hm-modules/emacs-init-defaults.nix | ||
{ | ||
pkgs, | ||
lib, | ||
config, | ||
... | ||
}: | ||
|
||
{ | ||
programs.emacs.init.usePackage = { | ||
all-the-icons = { | ||
enable = true; | ||
extraPackages = [ pkgs.emacs-all-the-icons-fonts ]; | ||
}; | ||
|
||
cmake-mode = { | ||
enable = true; | ||
mode = [ | ||
''"\\.cmake\\'"'' # \ | ||
''"CMakeLists.txt\\'"'' | ||
]; | ||
}; | ||
|
||
cmake-ts-mode = { | ||
mode = [ | ||
''"\\.cmake\\'"'' # \ | ||
''"CMakeLists.txt\\'"'' | ||
]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(cmake-mode . cmake-ts-mode)) | ||
''; | ||
}; | ||
|
||
c-ts-mode = { | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)) | ||
(add-to-list 'major-mode-remap-alist '(c++-mode . c++-ts-mode)) | ||
(add-to-list 'major-mode-remap-alist '(c-or-c++-mode . c-or-c++-ts-mode)) | ||
''; | ||
}; | ||
|
||
csharp-mode = { | ||
enable = true; | ||
mode = [ ''"\\.cs\\'"'' ]; | ||
}; | ||
|
||
csharp-ts-mode = { | ||
mode = [ ''"\\.cs\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(csharp-mode . csharp-ts-mode)) | ||
''; | ||
}; | ||
|
||
css-ts-mode = { | ||
mode = [ ''"\\.css\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(css-mode . css-ts-mode)) | ||
''; | ||
}; | ||
|
||
cue-mode = { | ||
enable = true; | ||
package = | ||
epkgs: | ||
epkgs.trivialBuild { | ||
pname = "cue-mode.el"; | ||
src = pkgs.fetchurl { | ||
url = "https://raw.githubusercontent.com/russell/cue-mode/9c803ee8fa4a6e99c7dc9ae373c6178569583b7a/cue-mode.el"; | ||
sha256 = "0swhpknkg1vwbchblzrwynixf5grg95jy1bkc8w92yfpb1jch7m7"; | ||
}; | ||
version = "0.1.0"; | ||
preferLocalBuild = true; | ||
allowSubstitutes = true; | ||
}; | ||
command = [ "cue-mode" ]; | ||
mode = [ ''"\\.cue\\'"'' ]; | ||
hook = [ "(cue-mode . subword-mode)" ]; | ||
}; | ||
|
||
dap-lldb = { | ||
config = '' | ||
(setq dap-lldb-debug-program "${pkgs.lldb}/bin/lldb-vscode") | ||
''; | ||
}; | ||
|
||
dockerfile-mode = { | ||
enable = true; | ||
mode = [ ''"Dockerfile\\'"'' ]; | ||
}; | ||
|
||
dockerfile-ts-mode = { | ||
mode = [ ''"Dockerfile\\'"'' ]; | ||
}; | ||
|
||
emacsql-sqlite3 = { | ||
defer = lib.mkDefault true; | ||
config = '' | ||
(setq emacsql-sqlite3-executable "${pkgs.sqlite}/bin/sqlite3") | ||
''; | ||
}; | ||
|
||
ggtags = { | ||
config = '' | ||
(setq ggtags-executable-directory "${pkgs.global}/bin") | ||
''; | ||
}; | ||
|
||
idris-mode = { | ||
enable = true; | ||
mode = [ ''"\\.idr\\'"'' ]; | ||
config = '' | ||
(setq idris-interpreter-path "${pkgs.idris}/bin/idris") | ||
''; | ||
}; | ||
|
||
java-ts-mode = { | ||
mode = [ ''"\\.java\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(java-mode . java-ts-mode)) | ||
''; | ||
}; | ||
|
||
js-ts-mode = { | ||
mode = [ ''"\\.js\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(js2-mode . js-ts-mode)) | ||
(add-to-list 'major-mode-remap-alist '(js-mode . js-ts-mode)) | ||
(add-to-list 'major-mode-remap-alist '(javascript-mode . js-ts-mode)) | ||
''; | ||
}; | ||
|
||
json-ts-mode = { | ||
mode = [ ''"\\.json\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(js-json-mode . json-ts-mode)) | ||
''; | ||
}; | ||
|
||
kotlin-mode = { | ||
enable = true; | ||
mode = [ ''"\\.kts?\\'"'' ]; | ||
hook = [ "(kotlin-mode . subword-mode)" ]; | ||
}; | ||
|
||
latex = { | ||
enable = true; | ||
mode = [ ''("\\.tex\\'" . latex-mode)'' ]; | ||
}; | ||
|
||
lsp-clangd = { | ||
config = '' | ||
(setq lsp-clangd-binary-path "${pkgs.clang-tools}/bin/clangd") | ||
''; | ||
}; | ||
|
||
lsp-cmake = { | ||
config = '' | ||
(setq lsp-cmake-server-command "${lib.getExe pkgs.cmake-language-server}") | ||
''; | ||
}; | ||
|
||
lsp-elm = { | ||
config = '' | ||
(setq lsp-elm-elm-language-server-path | ||
"${pkgs.elmPackages.elm-language-server}/bin/elm-language-server") | ||
''; | ||
}; | ||
|
||
lsp-eslint = { | ||
config = '' | ||
(setq lsp-eslint-server-command '("node" "${pkgs.vscode-extensions.dbaeumer.vscode-eslint}/share/vscode/extensions/dbaeumer.vscode-eslint/server/out/eslintServer.js" "--stdio")) | ||
''; | ||
}; | ||
|
||
lsp-kotlin = { | ||
config = '' | ||
(setq lsp-clients-kotlin-server-executable | ||
"${pkgs.kotlin-language-server}/bin/kotlin-language-server") | ||
''; | ||
}; | ||
|
||
lsp-pylsp = { | ||
config = '' | ||
(setq lsp-pylsp-server-command | ||
"${lib.getExe pkgs.python3Packages.python-lsp-server}") | ||
''; | ||
}; | ||
|
||
markdown-mode = { | ||
enable = true; | ||
mode = [ | ||
''"\\.mdwn\\'"'' | ||
''"\\.markdown\\'"'' | ||
''"\\.md\\'"'' | ||
]; | ||
}; | ||
|
||
nix-mode = { | ||
enable = true; | ||
mode = [ ''"\\.nix\\'"'' ]; | ||
}; | ||
|
||
notmuch = { | ||
package = epkgs: lib.getOutput "emacs" pkgs.notmuch; | ||
config = '' | ||
(setq notmuch-command "${pkgs.notmuch}/bin/notmuch") | ||
''; | ||
}; | ||
|
||
octave.mode = [ ''("\\.m\\'" . octave-mode)'' ]; | ||
|
||
ob-plantuml = { | ||
config = '' | ||
(setq org-plantuml-jar-path "${pkgs.plantuml}/lib/plantuml.jar") | ||
''; | ||
}; | ||
|
||
org-roam = { | ||
defines = [ "org-roam-graph-executable" ]; | ||
config = '' | ||
(setq org-roam-graph-executable "${pkgs.graphviz}/bin/dot") | ||
''; | ||
}; | ||
|
||
pandoc-mode = { | ||
config = '' | ||
(setq pandoc-binary "${pkgs.pandoc}/bin/pandoc") | ||
''; | ||
}; | ||
|
||
php-mode.mode = [ ''"\\.php\\'"'' ]; | ||
|
||
plantuml-mode = { | ||
mode = [ ''"\\.puml\\'"'' ]; | ||
config = '' | ||
(setq plantuml-default-exec-mode 'executable | ||
plantuml-executable-path "${pkgs.plantuml}/bin/plantuml") | ||
''; | ||
}; | ||
|
||
protobuf-mode.mode = [ ''"\\.proto\\'"'' ]; | ||
|
||
purescript-mode.mode = [ ''"\\.purs\\'"'' ]; | ||
|
||
python-ts-mode = { | ||
mode = [ ''"\\.py\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(python-mode . python-ts-mode)) | ||
''; | ||
}; | ||
|
||
ripgrep = { | ||
config = '' | ||
(setq ripgrep-executable "${pkgs.ripgrep}/bin/rg") | ||
''; | ||
}; | ||
|
||
rust-mode.mode = [ ''"\\.rs\\'"'' ]; | ||
|
||
rust-ts-mode = { | ||
mode = [ ''"\\.rs\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(rust-mode . rust-ts-mode)) | ||
''; | ||
}; | ||
|
||
terraform-mode.mode = [ ''"\\.tf\\(vars\\)?\\'"'' ]; | ||
|
||
toml-ts-mode = { | ||
mode = [ ''"\\.toml\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(conf-toml-mode . toml-ts-mode)) | ||
''; | ||
}; | ||
|
||
tsx-ts-mode = { | ||
mode = [ ''"\\.[jt]sx\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(js-jsx-mode . tsx-ts-mode)) | ||
''; | ||
}; | ||
|
||
yaml-mode.mode = [ ''"\\.\\(e?ya?\\|ra\\)ml\\'"'' ]; | ||
|
||
yaml-ts-mode = { | ||
mode = [ ''"\\.\\(e?ya?\\|ra\\)ml\\'"'' ]; | ||
init = '' | ||
(add-to-list 'major-mode-remap-alist '(yaml-mode . yaml-ts-mode)) | ||
''; | ||
}; | ||
}; | ||
} |
Oops, something went wrong.