nixnew/modules/emacs/default.nix

126 lines
2.8 KiB
Nix
Raw Normal View History

2023-06-27 22:37:18 +00:00
{ inputs, config, pkgs, ... }: let
newpkgs = pkgs.appendOverlays
2023-11-17 12:16:32 +00:00
(with inputs.emacs-overlay.overlays; [
emacs
package
(final: prev: {
tree-sitter = prev.tree-sitter.override {
extraGrammars = {
tree-sitter-qmljs = {
version = "master";
src = pkgs.fetchFromGitHub {
owner = "yuja";
repo = "tree-sitter-qmljs";
rev = "35ead5b9955cdb29bcf709d622fa960ff33992b6";
sha256 = "jT47lEGuk6YUjcHB0ZMyL3i5PqyUaCQmt0j78cUpy8Q=";
};
};
};
};
})
]);
2023-06-27 22:37:18 +00:00
tree-sitter-parsers = grammars: with grammars; [
tree-sitter-bash
tree-sitter-c
tree-sitter-c-sharp
tree-sitter-cmake
tree-sitter-cpp
tree-sitter-css
tree-sitter-dot
tree-sitter-elisp
tree-sitter-glsl
tree-sitter-html
tree-sitter-java
tree-sitter-javascript
tree-sitter-json
tree-sitter-json5
tree-sitter-kotlin
tree-sitter-latex
tree-sitter-llvm
tree-sitter-lua
tree-sitter-make
tree-sitter-markdown
tree-sitter-markdown-inline
tree-sitter-nickel
tree-sitter-nix
tree-sitter-prisma
tree-sitter-python
2023-11-17 12:16:32 +00:00
tree-sitter-qmljs
2023-06-27 22:37:18 +00:00
tree-sitter-regex
tree-sitter-rust
tree-sitter-scss
tree-sitter-sql
tree-sitter-toml
tree-sitter-tsx
tree-sitter-typescript
tree-sitter-vim
tree-sitter-yaml
];
custom-emacs =
with newpkgs;
2023-11-17 12:16:32 +00:00
((emacsPackagesFor (emacs29-pgtk.override { withNativeCompilation = true; })).emacsWithPackages (epkgs: with epkgs; let
qml-ts-mode = trivialBuild {
pname = "qml-ts-mode";
version = "master";
src = fetchFromGitHub {
owner = "outfoxxed";
repo = "qml-ts-mode";
rev = "b24b9e78305ed045baa136782623ad16de01b7b8";
sha256 = "PgXm/a92cX5zjA9blTrIRH7DfOUczRwb9oBcMMEzF2I=";
};
};
in [
2023-06-27 22:37:18 +00:00
avy
2023-08-13 21:12:07 +00:00
better-jumper
2023-06-27 22:37:18 +00:00
company
2023-08-20 20:40:11 +00:00
crux
2023-06-27 22:37:18 +00:00
cmake-font-lock
direnv
editorconfig
evil
evil-collection
evil-goggles
face-explorer
flycheck
frames-only-mode
fussy
2023-09-07 10:24:09 +00:00
groovy-mode
2023-08-10 19:59:11 +00:00
just-mode
2023-06-27 22:37:18 +00:00
kotlin-mode
lsp-mode
lsp-treemacs
lsp-ui
2023-08-20 20:39:55 +00:00
lsp-java
2023-06-27 22:37:18 +00:00
magit
markdown-mode
nasm-mode
nix-mode reformatter # required by nix mode
projectile
2023-11-17 12:16:32 +00:00
qml-ts-mode
2023-06-27 22:37:18 +00:00
rainbow-mode
string-inflection
(treesit-grammars.with-grammars (grammars: tree-sitter-parsers grammars))
treemacs
treemacs-evil
treemacs-projectile
treemacs-magit
2023-08-13 23:56:59 +00:00
undo-tree
2023-06-27 22:37:18 +00:00
use-package
vertico
which-key
ws-butler
]));
in {
home-manager.users.${config.main-user} = {
home.packages = [ custom-emacs ];
services.emacs = {
enable = true;
package = custom-emacs;
};
};
}