Files
sydnix/modules/home/users/crumb/emacs/modules/lang/syd-lang-idris2.el
T
msyds 4741124563 uhhh
idkkkk
2025-07-15 11:40:54 -06:00

48 lines
1.4 KiB
EmacsLisp

;;; syd-lang-idris2.el -*- lexical-binding: t; -*-
(require 'syd-handle-repl)
(require 'syd-handle-lookup)
(defun syd-idris2-open-repl ()
(interactive)
(idris2-repl-buffer))
(use-package idris2-mode
:mode "\\.idr\\'"
:straight (:type git
:host github
:repo "idris-community/idris2-mode")
:config
;; Fixes lag when editing idris code with Evil. See
;; https://github.com/idris-community/idris2-mode?tab=readme-ov-file#doom-emacs
(syd-defadvice syd-idris2--fix-evil-motion-range (fn &rest args)
"Like `evil-motion-range', but override field-beginning for performance.
See `https://github.com/ProofGeneral/PG/issues/427'."
:around #'evil-motion-range
(cl-letf (((symbol-function 'field-beginning)
(lambda (&rest args) 1)))
(apply fn args)))
(add-hook 'idris2-mode-hook #'lsp)
(general-define-key
:keymaps 'idris2-mode-map
:states '(normal visual motion emacs insert)
:major-modes t
:prefix syd-localleader-key
:non-normal-prefix syd-alt-localleader-key
"l" #'idris2-load-file)
(set-repl-handler! 'idris2-mode
#'syd-idris2-open-repl)
(set-popup-rules!
`((,(rx bol "*idris2-notes*" eol)
:ttl nil)
(,(rx bol "*idris2-holes*" eol)
:ttl nil :quit t :vslot -5 :height 7)))
(dolist (c '(?_ ??))
(modify-syntax-entry c "w" idris2-syntax-table)))
(provide 'syd-lang-idris2)