108 lines
5 KiB
Org Mode
108 lines
5 KiB
Org Mode
#+TITLE: Factor Layer
|
|
|
|
#+TAGS: general|layer|multi-paradigm|programming
|
|
|
|
[[file:img/logo.png]]
|
|
|
|
* Table of Contents :TOC_5_gh:noexport:
|
|
- [[#description][Description]]
|
|
- [[#features][Features:]]
|
|
- [[#install][Install]]
|
|
- [[#key-bindings][Key bindings]]
|
|
- [[#factor-mode-editing-source-files][factor-mode (editing source files)]]
|
|
- [[#fuel-listener-mode][fuel-listener-mode]]
|
|
- [[#snippets][Snippets]]
|
|
- [[#starting-a-graphical-listener][Starting a Graphical Listener]]
|
|
|
|
* Description
|
|
A spacemacs layer for Factor language support.
|
|
|
|
** Features:
|
|
- Syntax Highlighting
|
|
- Factor REPL integration
|
|
- Auto-Completion in REPL
|
|
- Scaffolding support
|
|
- Refactoring support
|
|
- Running graphical Listeners
|
|
- Reloading emacs-lisp portion of FUEL
|
|
|
|
* Install
|
|
This layer depends on the elisp files that are bundled with factor. To use this
|
|
layer, make sure that factor is installed and the bundled elisp files are picked
|
|
up by emacs (usually somewhere in site-lisp).
|
|
|
|
To use this layer, add it to your =./spacemacs= file. Add =factor= to the
|
|
=dotspacemacs-configuration-layers= list there.
|
|
|
|
* Key bindings
|
|
** factor-mode (editing source files)
|
|
|
|
| Key binding | Description |
|
|
|-------------+-----------------------------------------------------|
|
|
| ~SPC m '~ | Jump to the factor listener, start if required |
|
|
| ~SPC m c c~ | Compile and run the current file |
|
|
| | |
|
|
| ~SPC m e f~ | Evaluate definition at point |
|
|
| ~SPC m e r~ | Evaluate region |
|
|
| ~SPC m e R~ | Evaluate region extended to nearest definition |
|
|
| | |
|
|
| ~SPC m g g~ | Jump to definition of word (under point) |
|
|
| ~SPC m g a~ | Cycle between source, test, and documentation |
|
|
| | |
|
|
| ~SPC m t a~ | Run tests for current vocab |
|
|
| | |
|
|
| ~SPC m r s~ | Extract innermost sexp as separate word |
|
|
| ~SPC m r r~ | Extract region as separate word |
|
|
| ~SPC m r v~ | Create new Vocab with words in region |
|
|
| ~SPC m r i~ | Inline word |
|
|
| ~SPC m r w~ | Rename all occurrences of word |
|
|
| ~SPC m r a~ | Extract region as new ARTICLE form |
|
|
| ~SPC m r g~ | Turn current definition into generic word |
|
|
| ~SPC m r u~ | Update USING: line according to actually used words |
|
|
| | |
|
|
| ~SPC m s s~ | Switch to factor listener |
|
|
| | |
|
|
| ~SPC m h h~ | Help for thing at point |
|
|
| ~SPC m h e~ | Infer stack effect for sexp/region |
|
|
| ~SPC m h p~ | Apropos |
|
|
| ~SPC m h v~ | List all words in current file/vocab |
|
|
| ~SPC m h <~ | Show calling words of current word |
|
|
| ~SPC m h >~ | Show words called by current word |
|
|
| | |
|
|
| ~SPC m S v~ | Scaffold vocab |
|
|
| ~SPC m S h~ | Scaffold help for current vocab |
|
|
|
|
** fuel-listener-mode
|
|
|
|
| Key binding | Description |
|
|
|-------------+---------------------------|
|
|
| ~SPC m r~ | Refresh all loaded vocabs |
|
|
| ~SPC m T s~ | Toggle stack mode |
|
|
| ~SPC m h~ | Help for word at point |
|
|
| ~SPC m v~ | Edit vocab |
|
|
| ~SPC m S v~ | Scaffold vocab |
|
|
|
|
* Snippets
|
|
This layer provides a yasnippet for colon definitions, which can be expanded
|
|
after typing a single ~:~. Note that you might have
|
|
to set =yas-triggers-in-field= to nil if you use =x= for stack effect
|
|
declaration elements a lot, as this will trigger a builtin snippet from
|
|
prog-mode instead of advancing to the next field when pressing =<TAB>=.
|
|
|
|
* Starting a Graphical Listener
|
|
The command =factor/start-ui-listener= can be used to run a Factor process which
|
|
sets up a FUEL server on the standard port and runs the graphical listener. If successful, the
|
|
command =connect-to-factor= will connect to that factor instance.
|
|
|
|
This procedure can be influenced with the following variables, which can also be
|
|
set as directory-local variables to make it easier to work with projects which
|
|
require different Factor versions, for example. (See their respective
|
|
documentation for details)
|
|
- =fuel-factor-root-dir=
|
|
- =fuel-listener-factor-binary=
|
|
- =fuel-listener-factor-image=
|
|
- =factor-ui-listener-args=
|
|
|
|
Note that the commands described in the [[#key-bindings][Key bindings]] section which start a
|
|
factor listener are supplied by FUEL and don't take the last of these variables,
|
|
=factor-ui-listener-args= into account.
|