Alternatively, FUEL comes bundled with Factor's distribution.
The folder misc/fuel can be added to your load path:
- (load-file "<path/to/factor/installation>/misc/fuel/fu.el")
+ (add-to-list 'load-path "<path/to/factor/installation>/misc/fuel")
The factor-mode major mode provides basic fontification and indentation
-without connecting to an running Factor image:
+without connecting to a running Factor image:
(require 'factor-mode)
Commands in parenthesis can be invoked interactively with
M-x <command>, not necessarily in a factor buffer.
-|--------------------+------------------------------------------------------------|
-| C-c C-z | switch to listener (run-factor) |
-| C-c C-o | cycle between code, tests and docs files |
-| C-c C-t | run the unit tests for a vocabulary |
-| C-c C-r | switch to listener and refresh all loaded vocabs |
-| C-c C-s | switch to other factor buffer (fuel-switch-to-buffer) |
-| C-x 4 s | switch to other factor buffer in other window |
-| C-x 5 s | switch to other factor buffer in other frame |
-|--------------------+------------------------------------------------------------|
-| M-. | edit word at point in Emacs (fuel-edit-word) |
-| M-, | go back to where M-. was last invoked |
-| M-TAB | complete word at point |
-| C-c C-e u | update USING: line (fuel-update-usings) |
-| C-c C-e v | edit vocabulary (fuel-edit-vocabulary) |
-| C-c C-e w | edit word (fuel-edit-word-at-point) |
-| C-c C-e d | edit word's doc (C-u M-x fuel-edit-word-doc-at-point) |
-| C-c C-e l | load vocabs in USING: form |
-|--------------------+------------------------------------------------------------|
-| C-c C-e r | eval region |
-| C-M-r, C-c C-e e | eval region, extending it to definition boundaries |
-| C-M-x, C-c C-e x | eval definition around point |
-| C-c C-k, C-c C-e k | run file (fuel-run-file) |
-|--------------------+------------------------------------------------------------|
-| C-c C-d a | toggle autodoc mode (fuel-autodoc-mode) |
-| C-c C-d d | help for word at point (fuel-help) |
-| C-c C-d s | short help word at point (fuel-help-short) |
-| C-c C-d e | show stack effect of current sexp (with prefix, region) |
-| C-c C-d p | find words containing given substring (fuel-apropos) |
-| C-c C-d v | show words in current file (with prefix, ask for vocab) |
-|--------------------+------------------------------------------------------------|
-| C-c M-< | show callers of word or vocabulary at point |
-| | (fuel-show-callers, fuel-vocab-usage) |
-| C-c M-> | show callees of word or vocabulary at point |
-| | (fuel-show-callees, fuel-vocab-uses) |
-|--------------------+------------------------------------------------------------|
-| C-c C-x s | extract innermost sexp (up to point) as a separate word |
-| | (fuel-refactor-extract-sexp) |
-| C-c C-x r | extract region as a separate word |
-| | (fuel-refactor-extract-region) |
-| C-c C-x v | extract region as a separate vocabulary |
-| | (fuel-refactor-extract-vocab) |
-| C-c C-x i | replace word by its definition (fuel-refactor-inline-word) |
-| C-c C-x w | rename all uses of a word (fuel-refactor-rename-word) |
-| C-c C-x a | extract region as a separate ARTICLE: form |
-| C-c C-x g | convert current word definition into GENERIC + method |
-| | (fuel-refactor-make-generic) |
-|--------------------+------------------------------------------------------------|
+ |--------------------+------------------------------------------------------------|
+ | C-c C-z | switch to listener (run-factor) |
+ | C-c C-o | cycle between code, tests and docs files |
+ | C-c C-t | run the unit tests for a vocabulary |
+ | C-c C-r | switch to listener and refresh all loaded vocabs |
+ | C-c C-s | switch to other factor buffer (fuel-switch-to-buffer) |
+ | C-x 4 s | switch to other factor buffer in other window |
+ | C-x 5 s | switch to other factor buffer in other frame |
+ |--------------------+------------------------------------------------------------|
+ | M-. | edit word at point in Emacs (fuel-edit-word) |
+ | M-, | go back to where M-. was last invoked |
+ | M-TAB | complete word at point |
+ | C-c C-e u | update USING: line (fuel-update-usings) |
+ | C-c C-e v | edit vocabulary (fuel-edit-vocabulary) |
+ | C-c C-e w | edit word (fuel-edit-word-at-point) |
+ | C-c C-e d | edit word's doc (C-u M-x fuel-edit-word-doc-at-point) |
+ | C-c C-e l | load vocabs in USING: form |
+ |--------------------+------------------------------------------------------------|
+ | C-c C-e r | eval region |
+ | C-M-r, C-c C-e e | eval region, extending it to definition boundaries |
+ | C-M-x, C-c C-e x | eval definition around point |
+ | C-c C-k, C-c C-e k | run file (fuel-run-file) |
+ |--------------------+------------------------------------------------------------|
+ | C-c C-d a | toggle autodoc mode (fuel-autodoc-mode) |
+ | C-c C-d d | help for word at point (fuel-help) |
+ | C-c C-d s | short help word at point (fuel-help-short) |
+ | C-c C-d e | show stack effect of current sexp (with prefix, region) |
+ | C-c C-d p | find words containing given substring (fuel-apropos) |
+ | C-c C-d v | show words in current file (with prefix, ask for vocab) |
+ |--------------------+------------------------------------------------------------|
+ | C-c M-< | show callers of word or vocabulary at point |
+ | | (fuel-show-callers, fuel-vocab-usage) |
+ | C-c M-> | show callees of word or vocabulary at point |
+ | | (fuel-show-callees, fuel-vocab-uses) |
+ |--------------------+------------------------------------------------------------|
+ | C-c C-x s | extract innermost sexp (up to point) as a separate word |
+ | | (fuel-refactor-extract-sexp) |
+ | C-c C-x r | extract region as a separate word |
+ | | (fuel-refactor-extract-region) |
+ | C-c C-x v | extract region as a separate vocabulary |
+ | | (fuel-refactor-extract-vocab) |
+ | C-c C-x i | replace word by its definition (fuel-refactor-inline-word) |
+ | C-c C-x w | rename all uses of a word (fuel-refactor-rename-word) |
+ | C-c C-x a | extract region as a separate ARTICLE: form |
+ | C-c C-x g | convert current word definition into GENERIC + method |
+ | | (fuel-refactor-make-generic) |
+ |--------------------+------------------------------------------------------------|
### In the listener:
-|---------+----------------------------------------------------------|
-| TAB | complete word at point |
-| M-. | edit word at point in Emacs |
-| C-c C-r | refresh all loaded vocabs |
-| C-c C-a | toggle autodoc mode |
-| C-c C-p | find words containing given substring (M-x fuel-apropos) |
-| C-c C-s | toggle stack mode |
-| C-c C-v | edit vocabulary |
-| C-c C-w | help for word at point |
-| C-c C-k | run file |
-|---------+----------------------------------------------------------|
+ |---------+----------------------------------------------------------|
+ | TAB | complete word at point |
+ | M-. | edit word at point in Emacs |
+ | C-c C-r | refresh all loaded vocabs |
+ | C-c C-a | toggle autodoc mode |
+ | C-c C-p | find words containing given substring (M-x fuel-apropos) |
+ | C-c C-s | toggle stack mode |
+ | C-c C-v | edit vocabulary |
+ | C-c C-w | help for word at point |
+ | C-c C-k | run file |
+ |---------+----------------------------------------------------------|
### In the debugger (it pops up upon eval/compilation errors):
-|---------+-------------------------------------|
-| g | go to error |
-| <digit> | invoke nth restart |
-| w/e/l | invoke :warnings, :errors, :linkage |
-| q | bury buffer |
-|---------+-------------------------------------|
+ |---------+-------------------------------------|
+ | g | go to error |
+ | <digit> | invoke nth restart |
+ | w/e/l | invoke :warnings, :errors, :linkage |
+ | q | bury buffer |
+ |---------+-------------------------------------|
### In the help browser:
-|-----------+----------------------------------------------------------|
-| h | help for word at point |
-| v | help for a vocabulary |
-| a | find words containing given substring (M-x fuel-apropos) |
-| e | edit current article |
-| b a | bookmark current page |
-| b b | display bookmarks |
-| b d | delete bookmark at point |
-| n/p | next/previous page |
-| l | previous page |
-| SPC/S-SPC | scroll up/down |
-| TAB/S-TAB | next/previous link |
-| k | kill current page and go to previous or next |
-| r | refresh page |
-| c | clean browsing history |
-| M-. | edit word at point in Emacs |
-| C-c C-z | switch to listener |
-| q | bury buffer |
-|-----------+----------------------------------------------------------|
+ |-----------+----------------------------------------------------------|
+ | h | help for word at point |
+ | v | help for a vocabulary |
+ | a | find words containing given substring (M-x fuel-apropos) |
+ | e | edit current article |
+ | b a | bookmark current page |
+ | b b | display bookmarks |
+ | b d | delete bookmark at point |
+ | n/p | next/previous page |
+ | l | previous page |
+ | SPC/S-SPC | scroll up/down |
+ | TAB/S-TAB | next/previous link |
+ | k | kill current page and go to previous or next |
+ | r | refresh page |
+ | c | clean browsing history |
+ | M-. | edit word at point in Emacs |
+ | C-c C-z | switch to listener |
+ | q | bury buffer |
+ |-----------+----------------------------------------------------------|
### In crossref buffers
-|-----------------+-----------------------------|
-| TAB/BACKTAB | navigate links |
-| RET/mouse click | follow link |
-| h | show help for word at point |
-| q | bury buffer |
-|-----------------+-----------------------------|
+ |-----------------+-----------------------------|
+ | TAB/BACKTAB | navigate links |
+ | RET/mouse click | follow link |
+ | h | show help for word at point |
+ | q | bury buffer |
+ |-----------------+-----------------------------|