Merge pull request #2473 from tchajed/add-fstar-module
Add fstar module
This commit is contained in:
commit
c5c0a2f25e
5 changed files with 117 additions and 0 deletions
|
@ -105,6 +105,7 @@ Modules that bring support for a language or group of languages to Emacs.
|
||||||
+ [[file:../modules/lang/ess/README.org][ess]] =+lsp= - TODO
|
+ [[file:../modules/lang/ess/README.org][ess]] =+lsp= - TODO
|
||||||
+ [[file:../modules/lang/faust/README.org][faust]] - TODO
|
+ [[file:../modules/lang/faust/README.org][faust]] - TODO
|
||||||
+ [[file:../modules/lang/fsharp/README.org][fsharp]] - TODO
|
+ [[file:../modules/lang/fsharp/README.org][fsharp]] - TODO
|
||||||
|
+ [[file:../modules/lang/fstar/README.org][fstar]] - F* support
|
||||||
+ [[file:../modules/lang/go/README.org][go]] =+lsp= - TODO
|
+ [[file:../modules/lang/go/README.org][go]] =+lsp= - TODO
|
||||||
+ [[file:../modules/lang/haskell/README.org][haskell]] =+dante +intero +lsp= - TODO
|
+ [[file:../modules/lang/haskell/README.org][haskell]] =+dante +intero +lsp= - TODO
|
||||||
+ hy - TODO
|
+ hy - TODO
|
||||||
|
|
|
@ -121,6 +121,7 @@
|
||||||
;;ess ; emacs speaks statistics
|
;;ess ; emacs speaks statistics
|
||||||
;;faust ; dsp, but you get to keep your soul
|
;;faust ; dsp, but you get to keep your soul
|
||||||
;;fsharp ; ML stands for Microsoft's Language
|
;;fsharp ; ML stands for Microsoft's Language
|
||||||
|
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||||
;;go ; the hipster dialect
|
;;go ; the hipster dialect
|
||||||
;;(haskell +dante) ; a language that's lazier than I am
|
;;(haskell +dante) ; a language that's lazier than I am
|
||||||
;;hy ; readability of scheme w/ speed of python
|
;;hy ; readability of scheme w/ speed of python
|
||||||
|
|
56
modules/lang/fstar/README.org
Normal file
56
modules/lang/fstar/README.org
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#+TITLE: lang/fstar
|
||||||
|
#+DATE: February 2, 2020
|
||||||
|
#+SINCE: 2.0.10
|
||||||
|
#+STARTUP: inlineimages nofold
|
||||||
|
|
||||||
|
* Table of Contents :TOC_3:noexport:
|
||||||
|
- [[#description][Description]]
|
||||||
|
- [[#maintainers][Maintainers]]
|
||||||
|
- [[#module-flags][Module Flags]]
|
||||||
|
- [[#plugins][Plugins]]
|
||||||
|
- [[#prerequisites][Prerequisites]]
|
||||||
|
- [[#f][F*]]
|
||||||
|
- [[#macos][macOS]]
|
||||||
|
- [[#arch-linux][Arch Linux]]
|
||||||
|
- [[#features][Features]]
|
||||||
|
- [[#configuration][Configuration]]
|
||||||
|
- [[#troubleshooting][Troubleshooting]]
|
||||||
|
|
||||||
|
* Description
|
||||||
|
This module adds [[https://fstar-lang.org/][F*]] support, powered by [[https://github.com/FStarLang/fstar-mode.el][fstar-mode.el]].
|
||||||
|
|
||||||
|
+ Syntax highlighting
|
||||||
|
+ Interactively process F* files one definition at a time
|
||||||
|
+ Query the running F* process to look up definitions, documentation, and
|
||||||
|
theorems
|
||||||
|
|
||||||
|
** Maintainers
|
||||||
|
+ [[https://github.com/tchajed][@tchajed]] (Author)
|
||||||
|
|
||||||
|
** Module Flags
|
||||||
|
This module provides no flags.
|
||||||
|
|
||||||
|
** Plugins
|
||||||
|
+ [[https://github.com/FStarLang/fstar-mode.el][fstar-mode]]
|
||||||
|
|
||||||
|
* Prerequisites
|
||||||
|
** F*
|
||||||
|
While fstar-mode supports the latest release of F*, you may have a better
|
||||||
|
experience installing a more recent version from source. See F*'s [[https://github.com/FStarLang/FStar/blob/master/INSTALL.md][INSTALL.md]].
|
||||||
|
*** macOS
|
||||||
|
#+BEGIN_SRC sh
|
||||||
|
brew install fstar
|
||||||
|
#+END_SRC
|
||||||
|
*** Arch Linux
|
||||||
|
Install ~fstar~ from the AUR:
|
||||||
|
#+BEGIN_SRC sh
|
||||||
|
yaourt -S fstar
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
* Features
|
||||||
|
|
||||||
|
* Configuration
|
||||||
|
|
||||||
|
* Troubleshooting
|
||||||
|
If you're having trouble getting F* to start correctly, you may need to
|
||||||
|
configure a few variables in fstar-mode; see its [[https://github.com/FStarLang/fstar-mode.el][README]] for more details.
|
55
modules/lang/fstar/config.el
Normal file
55
modules/lang/fstar/config.el
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
;;; lang/fstar/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(after! fstar-mode
|
||||||
|
(set-lookup-handlers! 'fstar-mode
|
||||||
|
:definition #'fstar-jump-to-definition
|
||||||
|
:documentation #'fstar-doc-at-point-dwim)
|
||||||
|
|
||||||
|
(map! :map fstar-mode-map
|
||||||
|
:localleader
|
||||||
|
:desc "F* next" "]" #'fstar-subp-advance-next
|
||||||
|
:desc "F* go to point" "." #'fstar-subp-advance-or-retract-to-point
|
||||||
|
:desc "F* previous" "[" #'fstar-subp-retract-last
|
||||||
|
(:prefix ("p" . "proof")
|
||||||
|
:desc "go to point (lax)" "l" #'fstar-subp-advance-or-retract-to-point-lax
|
||||||
|
:desc "compile buffer (lax)" "b" #'fstar-subp-advance-to-point-max-lax
|
||||||
|
"q" #'fstar-subp-kill-one-or-many
|
||||||
|
"k" #'fstar-subp-kill-z3
|
||||||
|
"r" #'fstar-subp-reload-to-point)
|
||||||
|
|
||||||
|
(:prefix ("l" . "layout")
|
||||||
|
"c" #'fstar-quit-windows
|
||||||
|
"o" #'fstar-outline)
|
||||||
|
|
||||||
|
;; Moving around
|
||||||
|
"'" #'fstar-jump-to-related-error
|
||||||
|
(:prefix ("j" . "jump")
|
||||||
|
"j" #'fstar-jump-to-definition
|
||||||
|
"f" #'fstar-jump-to-definition-other-frame
|
||||||
|
"w" #'fstar-jump-to-definition-other-window
|
||||||
|
"e" #'fstar-jump-to-related-error
|
||||||
|
"F" #'fstar-jump-to-related-error-other-frame
|
||||||
|
"W" #'fstar-jump-to-related-error-other-window
|
||||||
|
"d" #'fstar-visit-dependency
|
||||||
|
"a" #'fstar-visit-interface-or-implementation
|
||||||
|
:desc "jump to first unprocessed line" "u" #'fstar-subp-goto-beginning-of-unprocessed)
|
||||||
|
|
||||||
|
;; Help !!!
|
||||||
|
(:prefix ("h" . "help")
|
||||||
|
"y" #'fstar-copy-help-at-point
|
||||||
|
"w" #'fstar-browse-wiki
|
||||||
|
"W" #'fstar-browse-wiki-in-browser
|
||||||
|
"o" #'fstar-list-options
|
||||||
|
"p" #'fstar-quick-peek)
|
||||||
|
|
||||||
|
(:prefix ("a" . "ask (queries)")
|
||||||
|
"a" #'fstar-print
|
||||||
|
"e" #'fstar-eval
|
||||||
|
"E" #'fstar-eval-custom
|
||||||
|
"s" #'fstar-search
|
||||||
|
"d" #'fstar-doc)
|
||||||
|
|
||||||
|
(:prefix ("i" . "insert")
|
||||||
|
"m" #'fstar-insert-match-dwim
|
||||||
|
"M" #'fstar-insert-match)
|
||||||
|
))
|
4
modules/lang/fstar/packages.el
Normal file
4
modules/lang/fstar/packages.el
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
;; -*- no-byte-compile: t; -*-
|
||||||
|
;;; lang/fstar/packages.el
|
||||||
|
|
||||||
|
(package! fstar-mode)
|
Loading…
Add table
Add a link
Reference in a new issue