This commit is contained in:
Madeleine Sydney
2025-03-14 18:24:05 -06:00
parent 604d2cbe77
commit 4464e7cec1
24 changed files with 462 additions and 831 deletions

View File

@@ -61,16 +61,16 @@ to a pop up buffer."
:force-popup current-prefix-arg))
(dolist (m '(emacs-lisp-mode lisp-data-mode))
(set-repl-handler! 'emacs-lisp-mode
(set-repl-handler! m
#'syd/open-emacs-lisp-repl)
(set-eval-handler! 'emacs-lisp-mode
(set-eval-handler! m
#'syd-emacs-lisp-eval))
(syd-add-hook '(emacs-lisp-mode-hook lisp-data-mode)
(syd-add-hook '(emacs-lisp-mode-hook lisp-data-mode-hook)
#'syd-lisp-mode)
;; DEPRECATED: Remove once syd-strategies is working.
(syd-add-hook '(emacs-lisp-mode-hook help-mode-hook lisp-data-mode)
(syd-add-hook '(emacs-lisp-mode-hook help-mode-hook lisp-data-mode-hook)
(defun syd-emacs-set-handlers-h ()
(setq-local syd-lookup-documentation-handlers
(list #'syd-emacs-lisp-lookup-documentation))))

View File

@@ -67,7 +67,7 @@
(use-package lsp-haskell
:defer t
:init
(add-hook 'haskell-mode-local-vars-hook #'lsp 'append)
(add-hook 'haskell-literate-mode-local-vars-hook #'lsp 'append))
(add-hook 'haskell-mode-hook #'lsp 'append)
(add-hook 'haskell-literate-mode-hook #'lsp 'append))
(provide 'syd-lang-haskell)

View File

@@ -0,0 +1,45 @@
;;; 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))))
(provide 'syd-lang-idris2)