diff --git a/modules/home/users/msyds/emacs/init.el b/modules/home/users/msyds/emacs/init.el index 68788e4..4a433b6 100755 --- a/modules/home/users/msyds/emacs/init.el +++ b/modules/home/users/msyds/emacs/init.el @@ -65,6 +65,7 @@ syd/wgrep syd/nix syd/backup + syd/asciidoc syd/flycheck syd/agda syd/rust @@ -77,5 +78,6 @@ syd/transient syd/scheme syd/bookmark + syd/markdown syd/haskell syd/qbe)) diff --git a/modules/home/users/msyds/emacs/lisp/syd/asciidoc.el b/modules/home/users/msyds/emacs/lisp/syd/asciidoc.el new file mode 100644 index 0000000..881f67b --- /dev/null +++ b/modules/home/users/msyds/emacs/lisp/syd/asciidoc.el @@ -0,0 +1,11 @@ +;; -*- lexical-binding: t; -*- + +(require 'syd/base) +(require 'syd/prose) +(require 'syd/edit-indirect) + +(use-package asciidoc-mode + :init + (add-hook 'asciidoc-mode-hook #'syd-prose-mode)) + +(provide 'syd/asciidoc) diff --git a/modules/home/users/msyds/emacs/lisp/syd/edit-indirect.el b/modules/home/users/msyds/emacs/lisp/syd/edit-indirect.el new file mode 100644 index 0000000..4718494 --- /dev/null +++ b/modules/home/users/msyds/emacs/lisp/syd/edit-indirect.el @@ -0,0 +1,7 @@ +;; -*- lexical-binding: t; -*- + +(require 'syd/base) + +(use-package edit-indirect) + +(provide 'syd/edit-indirect) diff --git a/modules/home/users/msyds/emacs/lisp/syd/markdown.el b/modules/home/users/msyds/emacs/lisp/syd/markdown.el index b1b2cfb..eb79697 100644 --- a/modules/home/users/msyds/emacs/lisp/syd/markdown.el +++ b/modules/home/users/msyds/emacs/lisp/syd/markdown.el @@ -1,9 +1,13 @@ ;; -*- lexical-binding: t; -*- (require 'syd/base) +(require 'syd/prose) +(require 'syd/edit-indirect) (use-package markdown-mode - :config + :mode ("README\\.md\\'" . gfm-mode) + :custom ((markdown-header-scaling t)) + :init (add-hook 'markdown-mode-hook #'syd-prose-mode)) (provide 'syd/markdown) diff --git a/modules/home/users/msyds/emacs/lisp/syd/prose.el b/modules/home/users/msyds/emacs/lisp/syd/prose.el index 9222d70..756a79a 100755 --- a/modules/home/users/msyds/emacs/lisp/syd/prose.el +++ b/modules/home/users/msyds/emacs/lisp/syd/prose.el @@ -51,5 +51,4 @@ "A minor mode for writing prose." :lighter nil) - (provide 'syd/prose) diff --git a/modules/home/users/msyds/emacs/nix/tree-sitter-asciidoc.nix b/modules/home/users/msyds/emacs/nix/tree-sitter-asciidoc.nix new file mode 100644 index 0000000..0c28adf --- /dev/null +++ b/modules/home/users/msyds/emacs/nix/tree-sitter-asciidoc.nix @@ -0,0 +1,29 @@ +{ fetchFromGitHub +, tree-sitter +}: + +let + version = "git"; + + repo = fetchFromGitHub { + owner = "cathaysia"; + repo = "tree-sitter-asciidoc"; + # tag = "v${version}"; + rev = "882e43173427b831cd0d98ab3525501bed6ea214"; + hash = "sha256-55wgct1QB7Sg6tReZHgMK+Mn4wL+p1YU/1WPPjeUMvc="; + }; +in { + tree-sitter-asciidoc = + tree-sitter.buildGrammar { + language = "asciidoc"; + inherit version; + src = "${repo}/tree-sitter-asciidoc"; + }; + + tree-sitter-asciidoc-inline = + tree-sitter.buildGrammar { + language = "asciidoc_inline"; + inherit version; + src = "${repo}/tree-sitter-asciidoc_inline"; + }; +} diff --git a/modules/home/users/msyds/emacs/nix/treesit.nix b/modules/home/users/msyds/emacs/nix/treesit.nix index f1b4994..804a430 100644 --- a/modules/home/users/msyds/emacs/nix/treesit.nix +++ b/modules/home/users/msyds/emacs/nix/treesit.nix @@ -9,30 +9,35 @@ in { config = lib.mkIf cfg.enable # https://github.com/dschrempf/haskell-ts-mode/blob/1c236f00dc214e546124a5dac90902ba62500c15/flake.nix#L40-L55 (let + ts-asciidoc = pkgs.callPackage ./tree-sitter-asciidoc.nix {}; + grammars = pkgs.tree-sitter-grammars.overrideScope (ts-final: ts-prev: { tree-sitter-haskell = ts-prev.tree-sitter-haskell.overrideAttrs (prev: - let rev = "1ad6077a1fb776c255836e00aeb6da57ba564b6a"; - in { - version = "unstable-2026-07-07-${builtins.substring 0 7 rev}"; - src = pkgs.fetchFromGitHub { - owner = "dschrempf"; - repo = "tree-sitter-haskell"; - inherit rev; - hash = "sha256-kC6HwImFRx5HUY7NDLAA0I/DaSstQ94dWxA9+lMx2gI="; - }; - nativeBuildInputs = (prev.nativeBuildInputs or [ ]) ++ [ - pkgs.nodejs - pkgs.tree-sitter - ]; - preBuild = '' - tree-sitter generate - ''; - }); + let rev = "1ad6077a1fb776c255836e00aeb6da57ba564b6a"; + in { + version = "unstable-2026-07-07-${builtins.substring 0 7 rev}"; + src = pkgs.fetchFromGitHub { + owner = "dschrempf"; + repo = "tree-sitter-haskell"; + inherit rev; + hash = "sha256-kC6HwImFRx5HUY7NDLAA0I/DaSstQ94dWxA9+lMx2gI="; + }; + nativeBuildInputs = (prev.nativeBuildInputs or [ ]) ++ [ + pkgs.nodejs + pkgs.tree-sitter + ]; + preBuild = '' + tree-sitter generate + ''; + }); }); in { sydnix.emacs.emacsPackages = epkgs: [ (epkgs.treesit-grammars.with-grammars (_ps: - grammars.allGrammars + grammars.allGrammars ++ [ + ts-asciidoc.tree-sitter-asciidoc + ts-asciidoc.tree-sitter-asciidoc-inline + ] )) ]; });