lean4-htt/lean4-mode/lean4-settings.el

110 lines
4 KiB
EmacsLisp

;; Copyright (c) 2014 Microsoft Corporation. All rights reserved.
;; Released under Apache 2.0 license as described in the file LICENSE.
;;
;; Author: Soonho Kong
;;
(require 'cl-lib)
(defgroup lean nil
"Lean Theorem Prover"
:prefix "lean4-"
:group 'languages
:link '(url-link :tag "Website" "http://leanprover.github.io")
:link '(url-link :tag "Github" "https://github.com/leanprover/lean"))
(defgroup lean4-keybinding nil
"Keybindings for lean4-mode."
:prefix "lean4-"
:group 'lean)
(defvar-local lean4-default-executable-name
(cl-case system-type
('windows-nt "lean.exe")
(t "lean"))
"Default executable name of Lean")
(defcustom lean4-rootdir nil
"Full pathname of lean root directory. It should be defined by user."
:group 'lean
:type 'string)
(defcustom lean4-executable-name lean4-default-executable-name
"Name of lean executable"
:group 'lean
:type 'string)
(defcustom lean4-memory-limit 1024
"Memory limit for lean process in megabytes"
:group 'lean
:type 'number)
(defcustom lean4-timeout-limit 100000
"Deterministic timeout limit (it is approximately the maximum number of memory allocations in thousands)"
:group 'lean
:type 'number)
(defcustom lean4-extra-arguments nil
"Extra command-line arguments to the lean process"
:group 'lean
:type '(list string))
(defcustom lean4-delete-trailing-whitespace nil
"Set this variable to true to automatically delete trailing
whitespace when a buffer is loaded from a file or when it is
written."
:group 'lean
:type 'boolean)
(defcustom lean4-highlight-inaccessible-names t
"Set this variable to `t` to highlight inaccessible names in the info display
using `font-lock-comment-face' instead of the `` suffix used by Lean."
:group 'lean
:type 'boolean)
(defcustom lean4-keybinding-std-exe1 (kbd "C-c C-x")
"Lean Keybinding for std-exe #1"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-std-exe2 (kbd "C-c C-l")
"Lean Keybinding for std-exe #2"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-show-key (kbd "C-c C-k")
"Lean Keybinding for show-key"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-server-restart (kbd "C-c C-r")
"Lean Keybinding for server-restart"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-server-switch-version (kbd "C-c C-s")
"Lean Keybinding for lean4-server-switch-version"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-find-definition (kbd "M-.")
"Lean Keybinding for find-definition"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-tab-indent (kbd "TAB")
"Lean Keybinding for tab-indent"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-auto-complete (kbd "S-SPC")
"Lean Keybinding for auto completion"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-hole (kbd "C-c SPC")
"Lean Keybinding for hole manipulation"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-lean4-toggle-info (kbd "C-c C-i")
"Lean Keybinding for lean4-toggle-info"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-lean4-message-boxes-toggle (kbd "C-c C-b")
"Lean Keybinding for lean4-message-boxes-toggle"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-leanpkg-configure (kbd "C-c C-p C-c")
"Lean Keybinding for lean4-leanpkg-configure"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-leanpkg-build (kbd "C-c C-p C-b")
"Lean Keybinding for lean4-leanpkg-build"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-leanpkg-test (kbd "C-c C-p C-t")
"Lean Keybinding for lean4-leanpkg-test"
:group 'lean4-keybinding :type 'key-sequence)
(defcustom lean4-keybinding-refresh-file-dependencies (kbd "C-c C-d")
"Lean Keybinding for lean4-refresh-file-dependencies"
:group 'lean4-keybinding :type 'key-sequence)
(provide 'lean4-settings)