;;; syd-lang-agda.el -*- lexical-binding: t; -*- (with-eval-after-load 'agda2 (general-define-key :keymaps 'agda2-mode-map :states '(normal visual motion emacs insert) :major-modes t :prefix syd-localleader-key :non-normal-prefix syd-alt-localleader-key "?" #'agda2-show-goals "." #'agda2-goal-and-context-and-inferred "," #'agda2-goal-and-context "=" #'agda2-show-constraints "g" #'agda2-give "a" #'agda2-mimer-maybe-all "[" #'agda2-previous-goal "c" #'agda2-make-case "d" #'agda2-infer-type-maybe-toplevel "e" #'agda2-show-context "]" #'agda2-next-goal "h" #'agda2-helper-function-type "l" #'agda2-load "n" #'agda2-compute-normalised-maybe-toplevel "p" #'agda2-module-contents-maybe-toplevel "r" #'agda2-refine "s" #'agda2-solveAll "t" #'agda2-goal-type "w" #'agda2-why-in-scope-maybe-toplevel "x c" #'agda2-compile "x d" #'agda2-remove-annotations "x h" #'agda2-display-implicit-arguments "x q" #'agda2-quit "x r" #'agda2-restart) (general-def :keymaps 'agda2-mode-map :states '(motion normal) "[ n" #'agda2-previous-goal "] n" #'agda2-next-goal) (setq agda2-fontset-name "JuliaMono") ;; Inform Smartparens and Evil-surround of some extra brackets. (with-eval-after-load 'smartparens (sp-local-pair 'agda2-mode "⟨" "⟩")) (syd-add-hook 'agda2-mode-hook (defun syd-agda--configure-evil-surround-h () (with-eval-after-load 'evil-surround (push '(?z . ("⟨" . "⟩")) evil-surround-pairs-alist)))) (defun syd-agda-lookup-documentation () (interactive) (call-interactively #'agda2-goal-and-context) agda2-info-buffer) ;; DEPRECATED: Remove once syd-strategies is working. (syd-add-hook 'agda2-mode-hook (defun syd-agda-set-handlers-h () (setq-local syd-lookup-documentation-handlers (list #'syd-agda-lookup-documentation))))) (provide 'syd-lang-agda)