2015-07-04 00:10:27 +00:00
|
|
|
;;; packages.el --- Idris Layer packages File for Spacemacs
|
|
|
|
;;
|
2016-01-12 02:40:54 +00:00
|
|
|
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
|
2015-07-04 00:10:27 +00:00
|
|
|
;;
|
|
|
|
;; Author: Timothy Jones <git@zmthy.io>
|
|
|
|
;; URL: https://github.com/syl20bnr/spacemacs
|
|
|
|
;;
|
|
|
|
;; This file is not part of GNU Emacs.
|
|
|
|
;;
|
|
|
|
;;; License: GPLv3
|
|
|
|
|
2015-11-20 01:26:13 +00:00
|
|
|
(setq idris-packages '(idris-mode
|
|
|
|
popwin))
|
2015-07-04 00:10:27 +00:00
|
|
|
|
2015-09-22 04:25:51 +00:00
|
|
|
(defun idris/init-idris-mode ()
|
2015-07-04 00:10:27 +00:00
|
|
|
(use-package idris-mode
|
|
|
|
:defer t
|
2016-01-26 16:31:15 +00:00
|
|
|
:init (spacemacs/register-repl 'idris-mode 'idris-ensure-process-and-repl-buffer "idris")
|
2015-09-22 04:25:51 +00:00
|
|
|
:config
|
2015-07-04 00:10:27 +00:00
|
|
|
(progn
|
|
|
|
(defun spacemacs/idris-load-file-and-focus (&optional set-line)
|
|
|
|
"Pass the current buffer's file to the REPL and switch to it in
|
|
|
|
`insert state'."
|
|
|
|
(interactive "p")
|
|
|
|
(idris-load-file set-line)
|
|
|
|
(idris-pop-to-repl)
|
|
|
|
(evil-insert-state))
|
|
|
|
|
|
|
|
(defun spacemacs/idris-load-forward-line-and-focus ()
|
|
|
|
"Pass the next line to REPL and switch to it in `insert state'."
|
|
|
|
(interactive)
|
|
|
|
(idris-load-forward-line)
|
|
|
|
(idris-pop-to-repl)
|
|
|
|
(evil-insert-state))
|
|
|
|
|
|
|
|
(defun spacemacs/idris-load-backward-line-and-focus ()
|
|
|
|
"Pass the previous line to REPL and switch to it in `insert state'."
|
|
|
|
(interactive)
|
|
|
|
(idris-load-backward-line)
|
|
|
|
(idris-pop-to-repl)
|
|
|
|
(evil-insert-state))
|
|
|
|
|
2015-11-18 00:38:05 +00:00
|
|
|
(spacemacs/set-leader-keys-for-major-mode 'idris-mode
|
2015-07-04 00:10:27 +00:00
|
|
|
;; Shorthands: rebind the standard evil-mode combinations to the local
|
|
|
|
;; leader for the keys not used as a prefix below.
|
2015-11-18 00:38:05 +00:00
|
|
|
"c" 'idris-case-split
|
|
|
|
"d" 'idris-add-clause
|
|
|
|
"p" 'idris-proof-search
|
|
|
|
"r" 'idris-load-file
|
|
|
|
"t" 'idris-type-at-point
|
|
|
|
"w" 'idris-make-with-block
|
2015-07-04 00:10:27 +00:00
|
|
|
|
|
|
|
;; ipkg.
|
2015-11-18 00:38:05 +00:00
|
|
|
"bc" 'idris-ipkg-build
|
|
|
|
"bC" 'idris-ipkg-clean
|
|
|
|
"bi" 'idris-ipkg-install
|
|
|
|
"bp" 'idris-open-package-file
|
2015-07-04 00:10:27 +00:00
|
|
|
|
|
|
|
;; Interactive editing.
|
2015-11-18 00:38:05 +00:00
|
|
|
"ia" 'idris-proof-search
|
|
|
|
"ic" 'idris-case-split
|
|
|
|
"ie" 'idris-make-lemma
|
|
|
|
"im" 'idris-add-missing
|
|
|
|
"ir" 'idris-refine
|
|
|
|
"is" 'idris-add-clause
|
|
|
|
"iw" 'idris-make-with-block
|
2015-07-04 00:10:27 +00:00
|
|
|
|
|
|
|
;; Documentation.
|
2015-11-18 00:38:05 +00:00
|
|
|
"ha" 'idris-apropos
|
|
|
|
"hd" 'idris-docs-at-point
|
|
|
|
"hs" 'idris-type-search
|
|
|
|
"ht" 'idris-type-at-point
|
2015-07-04 00:10:27 +00:00
|
|
|
|
|
|
|
;; Active term manipulations.
|
2015-11-18 00:38:05 +00:00
|
|
|
"mn" 'idris-normalise-term
|
|
|
|
"mi" 'idris-show-term-implicits
|
|
|
|
"mh" 'idris-hide-term-implicits
|
|
|
|
"mc" 'idris-show-core-term
|
2015-07-04 00:10:27 +00:00
|
|
|
|
|
|
|
;; REPL
|
2016-01-26 16:31:15 +00:00
|
|
|
"'" 'idris-ensure-process-and-repl-buffer
|
2015-11-18 00:38:05 +00:00
|
|
|
"sb" 'idris-load-file
|
|
|
|
"sB" 'spacemacs/idris-load-file-and-focus
|
|
|
|
"si" 'idris-ensure-process-and-repl-buffer
|
|
|
|
"sn" 'idris-load-forward-line
|
|
|
|
"sN" 'spacemacs/idris-load-forward-line-and-focus
|
|
|
|
"sp" 'idris-load-backward-line
|
|
|
|
"sP" 'spacemacs/idris-load-backward-line-and-focus
|
2015-11-20 01:26:13 +00:00
|
|
|
"ss" 'idris-pop-to-repl)))
|
|
|
|
|
|
|
|
;; open special buffers in motion state so they can be closed with ~q~
|
|
|
|
(evil-set-initial-state 'idris-compiler-notes-mode 'motion)
|
|
|
|
(evil-set-initial-state 'idris-hole-list-mode 'motion)
|
|
|
|
(evil-set-initial-state 'idris-info-mode 'motion))
|
|
|
|
|
|
|
|
(defun idris/pre-init-popwin ()
|
|
|
|
(spacemacs|use-package-add-hook popwin
|
|
|
|
:post-config
|
|
|
|
(push '("*idris-notes*" :dedicated t :position bottom :stick t :noselect nil :height 0.4)
|
|
|
|
popwin:special-display-config)
|
|
|
|
(push '("*idris-holes*" :dedicated t :position bottom :stick t :noselect nil :height 0.4)
|
|
|
|
popwin:special-display-config)
|
|
|
|
(push '("*idris-info*" :dedicated t :position bottom :stick t :noselect nil :height 0.4)
|
|
|
|
popwin:special-display-config)))
|