mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-01 12:17:25 -05:00
Moved add-hook calls (for tree-sitter initialization) into their respective modes' config blocks, or nearby, to be consistent with how other, similar tools (like lsp!) are initialized, and does so at runtime, rather than at expansion/compile time, which eval-when! caused.
36 lines
1021 B
EmacsLisp
36 lines
1021 B
EmacsLisp
;;; lang/zig/config.el -*- lexical-binding: t; -*-
|
|
|
|
(after! projectile
|
|
(add-to-list 'projectile-project-root-files "build.zig"))
|
|
|
|
|
|
;;
|
|
;;; Packages
|
|
|
|
(use-package! zig-mode
|
|
:hook (zig-mode . rainbow-delimiters-mode)
|
|
:config
|
|
(setq zig-format-on-save nil) ; rely on :editor format instead
|
|
|
|
(when (featurep! +lsp)
|
|
(add-hook 'zig-mode-local-vars-hook #'lsp! 'append))
|
|
|
|
(when (featurep! +tree-sitter)
|
|
(add-hook 'zig-mode-local-vars-hook #'tree-sitter! 'append))
|
|
|
|
(when (featurep! :checkers syntax)
|
|
(flycheck-define-checker zig
|
|
"A zig syntax checker using zig's `ast-check` command."
|
|
:command ("zig" "ast-check" (eval (buffer-file-name)))
|
|
:error-patterns
|
|
((error line-start (file-name) ":" line ":" column ": error: " (message) line-end))
|
|
:modes zig-mode)
|
|
(add-to-list 'flycheck-checkers 'zig))
|
|
|
|
(map! :localleader
|
|
:map zig-mode-map
|
|
"b" #'zig-compile
|
|
"f" #'zig-format-buffer
|
|
"r" #'zig-run
|
|
"t" #'zig-test-buffer))
|