diff --git a/layers/+lang/forth/README.org b/layers/+lang/forth/README.org new file mode 100644 index 000000000..4be7bf804 --- /dev/null +++ b/layers/+lang/forth/README.org @@ -0,0 +1,40 @@ +#+TITLE: Forth layer + + +* Table of Contents :TOC_4_gh:noexport: + - [[#description][Description]] + - [[#install][Install]] + - [[#key-bindings][Key bindings]] + +* Description +This layer supports developing in the Forth family of languages. It provides +shortcuts to a basic set of commands for interactive development. + +* Install +To use this configuration layer, add it to your =~/.spacemacs=. You will need to +add =forth= to the existing =dotspacemacs-configuration-layers= list in this +file. + +A local installation of Forth needs to be present as well. /GNU Forth/ is +commonly available on Unix systems via the package manager. To bypass the query +when calling ~run-forth~, the default Forth can be configured by setting the +appropriate variable. + +#+BEGIN_SRC emacs-lisp + (setq-default dotspacemacs-configuration-layers + '((forth :variables forth-executable "gforth"))) +#+END_SRC + +* Key bindings +All Forth specific bindings are prefixed with the major-mode leader +~SPC m~. + +| Key Binding | Description | +|-------------+-------------------------------------------------------------------| +| ~SPC m d s~ | See definition (show decompiled body) | +| ~SPC m e E~ | Evaluate expression in minibuffer | +| ~SPC m e e~ | Evaluate last expression | +| ~SPC m e r~ | Evaluate region | +| ~SPC m s b~ | Load file in interactive Forth | +| ~SPC m s i~ | Start interactive Forth (prompts for Forth executable if not set) | +| ~SPC m s k~ | Kill interactive Forth | diff --git a/layers/+lang/forth/packages.el b/layers/+lang/forth/packages.el new file mode 100644 index 000000000..21e7021d1 --- /dev/null +++ b/layers/+lang/forth/packages.el @@ -0,0 +1,25 @@ +;;; packages.el --- forth layer packages file for Spacemacs. +;; +;; Copyright (c) 2012-2016 Sylvain Benner & Contributors +;; +;; Author: Tim Jaeger +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(defconst forth-packages + '(forth-mode)) + +(defun forth/init-forth-mode () + (use-package forth-mode + :defer t + :init (spacemacs/set-leader-keys-for-major-mode 'forth-mode + "ds" 'forth-see + "eE" 'forth-eval + "ee" 'forth-eval-last-expression + "er" 'forth-eval-region + "sb" 'forth-load-file + "si" 'run-forth + "sk" 'forth-kill)))