diff --git a/modules/emacs/default.nix b/modules/emacs/default.nix index 7f38352..5fca514 100644 --- a/modules/emacs/default.nix +++ b/modules/emacs/default.nix @@ -1,6 +1,25 @@ { inputs, config, pkgs, ... }: let newpkgs = pkgs.appendOverlays - (with inputs.emacs-overlay.overlays; [ emacs package ]); + (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="; + }; + }; + }; + }; + }) + ]); tree-sitter-parsers = grammars: with grammars; [ tree-sitter-bash @@ -28,6 +47,7 @@ tree-sitter-nix tree-sitter-prisma tree-sitter-python + tree-sitter-qmljs tree-sitter-regex tree-sitter-rust tree-sitter-scss @@ -41,7 +61,18 @@ custom-emacs = with newpkgs; - ((emacsPackagesFor (emacs29-pgtk.override { withNativeCompilation = true; })).emacsWithPackages (epkgs: with epkgs; [ + ((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 [ avy better-jumper company @@ -68,6 +99,7 @@ nasm-mode nix-mode reformatter # required by nix mode projectile + qml-ts-mode rainbow-mode string-inflection (treesit-grammars.with-grammars (grammars: tree-sitter-parsers grammars))