This is reduce-ide.info, produced by Makeinfo version 3.12d from c:/NTEmacs/REDUCE/reduce-ide.texinfo. INFO-DIR-SECTION GNU Emacs Lisp START-INFO-DIR-ENTRY * REDUCE IDE: (reduce-ide). REDUCE Integrated Development Environment. END-INFO-DIR-ENTRY This file documents REDUCE IDE: GNU Emacs major modes for editing and running REDUCE source code. Copyright (C) 1994, 1996, 1999 Francis J. Wright This manual and the software that it describes are subject to the GNU General Public License that is distributed with GNU Emacs - see the file `COPYING'. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.  File: reduce-ide.info, Node: Imenu, Next: Tags, Prev: Show Proc, Up: Access Imenu support ============= REDUCE mode supports the standard Emacs `Imenu' facilities (*note Imenu: (elisp)Imenu.). The easiest way to use them is via the REDUCE menu entry that builds a new (nested) menu of REDUCE procedure and operator names. Selecting an entry in this menu moves point to the start of the definition of the specified procedure or operator. Another way to use `Imenu' is by entering the extended command `M-x imenu' and then using the standard Emacs completion facilities to select a procedure or operator name. The REDUCE mode `Imenu' menu-bar menu name and the regular expression used to build menu entries can be customized (*note Customization of the REDUCE IDE: Customization.).  File: reduce-ide.info, Node: Tags, Prev: Imenu, Up: Access Support for tag files ===================== A REDUCE mode submenu provides rapid access to some of the main facilities for finding a definition via a tag file. Two commands (and submenu options) are also provided to facilitate tagging all the files in one directory or all the files in all subdirectories (one level deep) of a directory. The former is useful for tagging all the files associated with a single project or package; the latter for tagging all REDUCE packages in a single tag file. Beware: Both the tagging commands currently require a UNIX-compatible command shell called `sh' in a directory in Emacs' `exec-path'. A standard Microsoft Windows (or MS-DOS) command shell _will not suffice_ for this application, but there are plenty of suitable free shells that will work under Windows. I recommend the port of `ash' included in the Cygwin (http://sourceware.cygnus.com/cygwin/) package, which includes a port of a great deal of excellent GNU (and other) free software to Microsoft Windows. (Note that, whilst `bash' will work perfectly well, it is overkill for this application.) `M-x reduce-tagify-dir' Generate a REDUCE TAGS file for (all `.red' files in) a directory, by default the current directory. `M-x reduce-tagify-subdirs' Generate a REDUCE TAGS file for (all `.red' files in) all subdirectories of a directory, by default the parent of the current directory.  File: reduce-ide.info, Node: Miscellaneous, Next: Customization, Prev: Access, Up: Top Miscellaneous minor features and bugs ************************************* REDUCE mode extends some of the standard Emacs handling of parenthesised "lists" to include REDUCE group and block constructs. It provides a major mode menu and easy access to its version information. This chapter also discusses known and potential problems using REDUCE mode, and describes how to access some special function keys that are useful in Emacs in general and in REDUCE mode in particular. * Menu: * Groups and blocks:: Delimiter highlighting and moving over * Menu:: Major mode menu * Version:: REDUCE mode version information * Problems:: Known and potential problems * Special function keys:: Linefeed, Meta-TAB, etc.  File: reduce-ide.info, Node: Groups and blocks, Next: Menu, Prev: Miscellaneous, Up: Miscellaneous Groups and blocks: delimiter highlighting and moving over ========================================================= Delimiters for groups (`<<' and `>>') and blocks (`begin' and `end') are treated as brackets. Either highlighting of matching group and block delimiters (consistent with the `paren' library (*note Automatic Display Of Matching Parentheses: (emacs)Matching.)) or (group only) blink matching is toggled by the command `reduce-show-delim-mode'. Highlighting is turned on automatically when REDUCE mode is selected if `reduce-show-delim-mode' is non-nil, which it is by default if the `paren' library is in use. *Note Automatic Display Of Matching Parentheses: (emacs)Matching, all of which applies to this extended bracket matching facility. Beware: Currently highlighting of matching group and block delimiters works only when point is _at the end_ of the delimiter. This may be changed in future. `M-x reduce-show-delim-mode' Toggle REDUCE Show Delim mode. With a prefix argument, turn REDUCE Show Delim mode on if and only if the argument is positive. When REDUCE Show Delim mode is enabled, any matching delimiter is highlighted after `show-paren-delay' seconds of Emacs idle time. *Note Customization of the REDUCE IDE: Customization. Groups and blocks are regarded as "symbolic expressions" (sexp's) by the commands `reduce-backward-sexp' and `reduce-forward-sexp'. `C-M-f' `M-x reduce-forward-sexp' Move forward across one balanced expression. With an argument, do it that many times. `C-M-b' `M-x reduce-backward-sexp' Move backward across one balanced expression. With an argument, do it that many times.  File: reduce-ide.info, Node: Menu, Next: Version, Prev: Groups and blocks, Up: Miscellaneous Major mode menu =============== REDUCE mode adds a major-mode menu called "REDUCE" to the menu bar, which is also available as a pop-up menu activated by the command `mouse-major-mode-menu' on the standard key `C-down-mouse-3'.  File: reduce-ide.info, Node: Version, Next: Problems, Prev: Menu, Up: Miscellaneous REDUCE mode version information =============================== The version of REDUCE mode that is running is available as the value of the variable `reduce-mode-version', which is a string that can be displayed in the echo area either by selecting the `Show Version' menu option from the REDUCE major mode menu or by running the command `M-x reduce-mode-version' (both of which also record it in the `*Messages*' buffer). If REDUCE mode is not running then an easy way to start it is to switch to a temporary buffer (e.g. by using `C-x b tmp') and then switch it to REDUCE mode (by using `M-x reduce-mode').  File: reduce-ide.info, Node: Problems, Next: Special function keys, Prev: Version, Up: Miscellaneous Known and potential problems ============================ There is a problem with the way that REDUCE mode handles an exclamation mark (`!') followed immediately by a double quote `"'. *Note Font-lock support for automatic font selection: Font-Lock. This should not be a problem in "normal" code, but it may upset the parsing of code that uses this character sequence within an identifier. It is caused by a limitation in the way that Emacs currently handles the syntax of the text being edited and is not easy to avoid completely! I am looking for a better resolution of this problem. There is no guarantee that an arbitrary minor mode or other extension will be compatible with REDUCE mode, although I am not aware of any conflicts. Two minor modes that are known to be compatible with REDUCE mode are transient-mark-mode and delete-selection-mode (because I always use them and I recommend them!).  File: reduce-ide.info, Node: Special function keys, Prev: Problems, Up: Miscellaneous Special function keys ===================== A number of "special function" keys are useful in Emacs in general and in REDUCE mode in particular, which are not directly accessible on all platforms. The following comments apply particularly to Microsoft Windows. The standard key to terminate lines of indented code is `' and the standard key to continue a comment is `Meta-', but `' does not exist on a standard PC keyboard. Note that `' can always be accessed via its ASCII code as `C-j', or on some keyboards `Control-' generates `'. In some situations, the keyboard can be re-programmed to provide this very convenient synonym, which is true of the better terminal emulators. The standard key to complete a symbol is `Meta-', but Microsoft Windows uses this key combination for fast task switching. When Emacs is able to read the keyboard directly, as when it is run under X or Microsoft Windows, `' can be conveniently emulated as `Control-' and `Meta-' as `Control-'. A good way to generate these and similar emulations is to put the following code in your `.emacs' file: (define-key function-key-map [(control return)] [?\C-J]) (define-key function-key-map [(control meta return)] [?\C-\M-J]) (define-key function-key-map [(control tab)] [?\M-\t])  File: reduce-ide.info, Node: Customization, Next: Run, Prev: Miscellaneous, Up: Top Customization of the REDUCE IDE ******************************* REDUCE IDE supports a small amount of customization. The following edit-mode user options can be changed using the standard Emacs customization facilities. The main REDUCE customization group is called "REDUCE", under which are the two sub-groups "REDUCE Interface" and "REDUCE Format & Display" and two hooks. REDUCE IDE font-lock support can be customized by resetting standard font-lock variables (*note Font-lock support for automatic font selection: Font-Lock.). Customization of REDUCE run mode is documented separately. *Note Customization of REDUCE run mode: Run Customization. * Menu: * Interface:: Interface customization * Format & Display:: Format and display customization * Hooks:: REDUCE mode hooks  File: reduce-ide.info, Node: Interface, Next: Format & Display, Prev: Customization, Up: Customization REDUCE mode interface customization =================================== `reduce-imenu-generic-expression' Imenu support for procedure definitions and operator declarations. An alist with elements of the form `(MENU-TITLE REGEXP INDEX)' - see the documentation for `imenu-generic-expression'. `reduce-imenu' Default value `nil'. If non-nil then REDUCE mode automatically calls `imenu-add-to-menubar' to add a Contents menu to the menubar. `reduce-imenu-title' Default value "Procs/Ops". The title to use if REDUCE mode adds a procedure/operator menu to the menubar. `reduce-max-up-tries' Default value 2. Number of repeats of `reduce-forward' or `backward-statement' required to move up out of a block or group. `reduce-completion-alist' Association list of REDUCE-mode completions searched by `reduce-complete-symbol'. Each key word or phrase to be simply completed should be a list containing a single string. If a perfectly matched string (only) is a non-trivial pair then the match is deleted and the `cdr' inserted if it is a string or called if it is a (nullary) function, passing on any prefix argument (in raw form).  File: reduce-ide.info, Node: Format & Display, Next: Hooks, Prev: Interface, Up: Customization REDUCE mode format & display customization ========================================== Format ------ `reduce-indentation' Default value 3. Depth of successive indentation in REDUCE code. `reduce-comment-region' Default value `%% '. String inserted by `reduce-comment-region' or `reduce-comment-procedure' at the start of each line. `reduce-auto-indent-mode' Default value `t'. If non-nil then conditionally re-indent the current line after `reduce-auto-indent-delay' seconds of Emacs idle time if the text just typed matches `reduce-auto-indent-regex'. `reduce-auto-indent-delay' Default value 0.125. Time in seconds to delay before maybe re-indenting current line. `reduce-auto-indent-regexp' Default value `"\\(else\\|end\\|>>\\)\\="'. Auto indent the current line if the text just typed matches this regexp. It should end with `\='. Display ------- `reduce-show-delim-mode' Default value is "on" if this makes sense. If non-nil then highlight matching group and block delimiters. Otherwise blink the open-group matching an inserted close-group. `reduce-show-delim-match-face' Default value as for standard paren match highlighting (Show Paren mode). Face used for a matching REDUCE delimiter. `reduce-show-delim-mismatch-face' Default value as for standard paren match highlighting (Show Paren mode). Face used for a mismatching REDUCE delimiter. `reduce-show-proc-mode' Default value `nil'. If non-nil then display the current procedure name in the mode line after `reduce-show-proc-delay' seconds of Emacs idle time. `reduce-show-proc-delay' Default value 0.125. Time in seconds to delay before showing the current procedure name.  File: reduce-ide.info, Node: Hooks, Prev: Format & Display, Up: Customization REDUCE mode hooks ================= Hooks allow arbitrary customization that is not supported by the standard customization facilities. When the REDUCE mode library is loaded into Emacs, the last step of the loading process is to execute the function(s) assigned to the variable `reduce-mode-load-hook'. This hook would be appropriate for modifying global properties of REDUCE mode such as its key map. When REDUCE mode is activated in a buffer the last step of its initialization process is to execute the function(s) assigned to the variable `reduce-mode-hook'. This hook would be appropriate for modifying properties local to the buffer. *Note Installation of the REDUCE IDE: Installation, for further details. `reduce-mode-load-hook' Default value `nil'. List of functions to be called when REDUCE mode is loaded, e.g. `require-reduce-run' to automatically load `reduce-run'. It can be used to customize global features of REDUCE mode such as its key map, i.e. it is a good place to put key bindings. `reduce-mode-hook' Default value `nil'. List of functions to be called when REDUCE mode is entered. It can be used to customize buffer-local features of REDUCE mode, e.g. use `turn-on-font-lock' to turn on font-lock mode locally.  File: reduce-ide.info, Node: Run, Next: Feedback, Prev: Customization, Up: Top Running REDUCE in a buffer ************************** REDUCE run mode is a subsidiary of REDUCE edit mode, in the sense that it requires REDUCE edit mode to be loaded before it can be loaded. (It tries to ensure this automatically.) It provides an interface that allows a command-line (as opposed to a GUI) version of REDUCE to be run interactively in an Emacs buffer, with input from and output to that buffer. * Menu: * Run Introduction:: Introduction to REDUCE run mode * Run Installation:: Installation of REDUCE run mode * Run Customization:: Customization of REDUCE run mode * Run Multiple:: Multiple Process Support * Run Keys:: Run mode key bindings and menu  File: reduce-ide.info, Node: Run Introduction, Next: Run Installation, Prev: Run, Up: Run Introduction to REDUCE run mode =============================== REDUCE run mode provides the following facilities for running REDUCE: * input editing and flexible re-execution of previous input; * flexible browsing of all input and output; * syntax highlighting of prompts, input and error messages; * bracket and delimiter highlighting or matching as in REDUCE edit mode; * easy REDUCE package loading, source file input and module compilation; * seamless integration with source files being edited using REDUCE edit mode, including easy input of statements, procedure definitions, arbitrary regions or the whole file to REDUCE; * optional automatic starting of REDUCE; * menu access to many facilities; * all other standard Emacs facilities, such as printing part or all of the interaction buffer; * the full source code is free, and the package is documented and user customizable. These facilities include most, if not all, of the facilities offered by any other REDUCE interface, with the notable exception of typeset quality display of mathematical output. It may be possible to support this in some future version. REDUCE run mode is provided as a separate library so that a user who prefers another REDUCE interface does not need to install it. However, it is subsidiary to REDUCE edit mode, and when loaded it hooks itself into and cooperates closely with REDUCE edit mode. REDUCE run mode is based closely on the standard library `inf-lisp' by Olin Shivers . *Note Running an External Lisp: (emacs)External Lisp. Since this mode is built on top of the general command-interpreter-in-a-buffer (comint) mode, it shares a common base functionality and a common set of key bindings with all modes derived from comint mode. (Among these, shell mode is likely to be the most familiar. *Note Interactive Inferior Shell: (emacs)Interactive Shell.) This makes these modes easier to use. For further documentation on the functionality provided by comint mode and the hooks available for customising it, see the file `comint.el'.  File: reduce-ide.info, Node: Run Installation, Next: Run Customization, Prev: Run Introduction, Up: Run Installation of REDUCE run mode =============================== It is probably best to use the semi-automatic installation procedure described earlier. *Note Installation of the REDUCE IDE: Installation. But if you want to install by hand, or understand the details of the installation process, then read on .... REDUCE run mode requires the library `reduce-mode' both when it is compiled and when it is loaded. It tries quite hard to locate this library, but normally it should be in the same directory as `reduce-run'. Byte-compile the file `reduce-run.el', put the result somewhere in your `load-path', and put the following in your `.emacs' file: (autoload 'run-reduce "reduce-run" "Run a REDUCE process" t) If you would like to have automatic full access to the features of REDUCE run mode from REDUCE edit mode then also put the following in your `.emacs' file: (add-hook 'reduce-mode-load-hook 'require-reduce-run)  File: reduce-ide.info, Node: Run Customization, Next: Run Multiple, Prev: Run Installation, Up: Run Customization of REDUCE run mode ================================ REDUCE run mode provides a small amount of customization. The following user options can be changed using the standard Emacs customization facilities. The main REDUCE customization group is called "REDUCE", under which REDUCE run mode provides a sub-group "REDUCE Run" that allows the following options to be customized. `reduce-run-program' Default value `"reduce"'. The program name by which to invoke REDUCE in REDUCE run mode. `reduce-run-prompt' Default value `"^\\([0-9]+[:*] \\)+"'. The regexp to recognise prompts in REDUCE run mode. The default works well for CSL-REDUCE. This variable is used to initialize `comint-prompt-regexp' in the REDUCE run buffer. `reduce-run-echo' Default value `t'. If non-nil then echo "automatic" input to REDUCE processes, i.e. input generated by REDUCE run mode rather than typed directly by the user. `reduce-run-autostart' Default value `t'. If non-nil then automatically start a REDUCE process if necessary. `reduce-run-mode-hook' Default value `nil'. The main hook for customising REDUCE run mode. `reduce-run-load-hook' Default value `nil'. The hook run when REDUCE run mode is loaded. It is a good place to put key bindings. `reduce-input-filter' Default value `"\\`\\([ \t;$]*\\|[ \t]*.[ \t]*\\)\\'"'. What not to save on REDUCE run mode's input history. The value is a regular expression (regexp). The default matches any combination of zero or more whitespace characters and/or statement terminators, or any single character (e.g. `y' or `n') possibly surrounded by whitespace. `reduce-run-buffer' Default value `nil'. The current REDUCE process buffer. `reduce-source-modes' Default value `(reduce-mode)'. Used to determine if a buffer contains REDUCE source code. If a file is loaded into a buffer that is in one of these major modes then it is considered to be a REDUCE source file by `reduce-input-file' and `reduce-fasl-file'. Used by these commands to determine defaults.  File: reduce-ide.info, Node: Run Multiple, Next: Run Keys, Prev: Run Customization, Up: Run Multiple Process Support ======================== To run multiple REDUCE processes, you start the first with `M-x run-reduce' or via a menu option. It will be in a buffer named `*REDUCE*'. Rename this buffer with `M-x rename-buffer'. You may now start a new process with another `M-x run-reduce'. It will be in a new buffer, named `*REDUCE*'. You can switch between the different process buffers with `M-x switch-to-buffer'. Commands that send text from source buffers to REDUCE processes - like `reduce-eval-proc' or `reduce-eval-region' - have to choose a process to send to if there is more than one REDUCE process running. This is determined by the global variable `reduce-run-buffer'. Suppose you have three REDUCE processes running: Buffer Process foo REDUCE bar REDUCE<2> *REDUCE* REDUCE<3> If you do a `M-x reduce-eval-proc' command on some REDUCE source code, which process is it sent to? * If you're in a process buffer (foo, bar, or *REDUCE*), you send it to that process. * If you're in some other buffer (e.g. a source file), you send it to the process attached to buffer `reduce-run-buffer'. This process selection is performed by the function `reduce-run-proc'. Whenever `M-x run-reduce' fires up a new process, it resets `reduce-run-buffer' to be the new process's buffer. If you only run one process, this does the right thing. If you run multiple processes, you can change `reduce-run-buffer' to another process buffer with `M-x set-variable' or by using customization.  File: reduce-ide.info, Node: Run Keys, Prev: Run Multiple, Up: Run Run mode key bindings and menu ============================== If the user option `reduce-run-autostart' is non-nil (which it is by default) then all commands that require a REDUCE process automatically start one if necessary. *Note Customization of REDUCE run mode: Run Customization. Where appropriate, input commands have their own history lists, and if run in REDUCE edit mode then any input file defaults to the file being edited. The following key bindings are provided in both REDUCE edit and run modes: `C-c C-i' `reduce-input-file' Input a REDUCE source file into the REDUCE process. Echo it if `reduce-run-echo' is non-nil. (This key binding redefines its default meaning in REDUCE mode.) `C-c C-l' `reduce-load-package' Load a REDUCE package into the REDUCE process. `C-c C-f' `reduce-fasl-file' Compile a REDUCE source file to a FASL image in the REDUCE process. Echo the file if `reduce-run-echo' is non-nil. The following key bindings are added to REDUCE edit mode: `C-x C-e' `reduce-eval-last-statement-and-go' Send the previous statement to the REDUCE process, and switch to its buffer. (This key binding follows Emacs convention.) `M-C-x' `C-c C-e' `reduce-eval-proc-and-go' Send the current procedure definition to the REDUCE process, and switch to its buffer. (The `M-C-x' key binding follows Emacs convention.) `C-c C-r' `reduce-eval-region-and-go' Send the current region to the REDUCE process, and switch to its buffer. `C-c C-z' `switch-to-reduce' Switch to the REDUCE process buffer. With an argument, position the cursor at the end of the buffer. Versions of the above "and-go" commands are also defined with names that omit the "-and-go" prefix, which do not switch to the REDUCE process buffer. These seem to be less useful and so are not currently bound to any keys. The following key bindings, in addition to the defaults provided by comint mode, are provided in REDUCE run mode: `M-TAB' `reduce-complete-symbol' Perform completion on the REDUCE symbol preceding point (or preceding the region if it is active). Compare that symbol against the elements of `reduce-completion-alist'. If a perfect match (only) has a `cdr' then delete the match and insert the `cdr' if it is a string or call it if it is a (nullary) function, passing on any prefix argument (in raw form). (This key binding is exactly as in REDUCE mode. It is included explicitly here because it is one of the edit mode key bindings that is also particularly useful in run mode.) The REDUCE run library provides a REDUCE run major mode menu and also adds a slightly modified version of this menu to the menu bar in REDUCE edit mode. These two menus provide appropriate access to all the above commands, and to echoing and highlighting control for REDUCE run mode. They also provide access to the following commands that are not bound to any keyboard keys. `run-reduce' Run a REDUCE process with input and output via the buffer named `*REDUCE*'. If there is a process already running in the buffer named `*REDUCE*' then just switch to that buffer. With an argument, the command allows you to edit the command line to be run (the default is the value of `reduce-run-program'). Runs the hook `reduce-run-mode-hook' (after `comint-mode-hook'). (Type `C-h m' in the process buffer for a list of commands.) `re-run-reduce' Re-run REDUCE in the current buffer, first killing REDUCE but _not the buffer_ if necessary.  File: reduce-ide.info, Node: Feedback, Next: Command Index, Prev: Run, Up: Top Feedback: bug reports, suggestions, comments, ... ************************************************* Feedback to the author is welcome, preferably by e-mail . (I will probably reply _only_ by e-mail.) Reports of errors or features that do not work well and suggestions for improvements or additional features are all welcome. If possible, please include details of the version of Emacs that you are using, the platform on which you are using it, and the version of REDUCE edit (and if relevant run) mode that you are using. (This information is essential if you are reporting a bug.) An easy way to do this is to send me the Emacs and REDUCE IDE version strings. You can access the former from the standard Emacs `Help' menu and the latter from the REDUCE major mode menus, in all cases by selecting the `Show Version' menu option. The version strings can also be accessed by running the commands `M-x emacs-version', `M-x reduce-mode-version' and `M-x reduce-run-version'. These menu options and commands will display the version string in the echo area at the bottom of the frame; it will also be recorded in the `*Messages*' buffer, from where it can easily be copied.  File: reduce-ide.info, Node: Command Index, Next: Variable Index, Prev: Feedback, Up: Top Command Index ************* * Menu: * autoload: Installation. * backward-delete-char-untabify: General. * describe-mode: Introduction. * indent-for-comment: Comments. * indent-new-comment-line: Comments. * load-library: Installation. * mouse-major-mode-menu: Menu. * re-run-reduce: Run Keys. * reduce-auto-indent-mode: Indentation. * reduce-backward-procedure: Procedures. * reduce-backward-sexp: Groups and blocks. * reduce-backward-statement: Statements. * reduce-comment-procedure: Comments. * reduce-comment-region: Comments. * reduce-complete-symbol <1>: Run Keys. * reduce-complete-symbol: Completion. * reduce-down-block-or-group: Statements. * reduce-eval-last-statement-and-go: Run Keys. * reduce-eval-proc-and-go: Run Keys. * reduce-eval-region-and-go: Run Keys. * reduce-fasl-file: Run Keys. * reduce-fill-comment: Comments. * reduce-forward-procedure: Procedures. * reduce-forward-sexp: Groups and blocks. * reduce-forward-statement: Statements. * reduce-indent-line: Indentation. * reduce-indent-procedure <1>: Procedures. * reduce-indent-procedure: Indentation. * reduce-indent-region: Indentation. * reduce-input-file: Run Keys. * reduce-insert-block: Structures. * reduce-insert-group: Structures. * reduce-insert-if-then: Structures. * reduce-kill-procedure: Procedures. * reduce-kill-statement: Statements. * reduce-load-package: Run Keys. * reduce-mark-procedure: Procedures. * reduce-mode: General. * reduce-narrow-to-procedure: Procedures. * reduce-reposition-window: Procedures. * reduce-show-delim-mode: Groups and blocks. * reduce-show-proc-mode: Show Proc. * reduce-tagify-dir: Tags. * reduce-tagify-subdirs: Tags. * reduce-unindent-line: Indentation. * reduce-up-block-or-group: Statements. * reindent-then-newline-and-indent: Indentation. * run-reduce: Run Keys. * switch-to-reduce: Run Keys.  File: reduce-ide.info, Node: Variable Index, Next: Keystroke Index, Prev: Command Index, Up: Top Variable Index ************** * Menu: * auto-mode-alist: Installation. * font-lock-builtin-face: Font-Lock. * font-lock-comment-face: Font-Lock. * font-lock-constant-face: Font-Lock. * font-lock-function-name-face: Font-Lock. * font-lock-keyword-face: Font-Lock. * font-lock-reference-face: Font-Lock. * font-lock-string-face: Font-Lock. * font-lock-type-face: Font-Lock. * font-lock-variable-name-face: Font-Lock. * font-lock-warning-face: Font-Lock. * reduce-auto-indent-delay: Format & Display. * reduce-auto-indent-mode: Format & Display. * reduce-auto-indent-regexp: Format & Display. * reduce-comment-region: Format & Display. * reduce-completion-alist: Interface. * reduce-imenu: Interface. * reduce-imenu-generic-expression: Interface. * reduce-imenu-title: Interface. * reduce-indentation: Format & Display. * reduce-input-filter: Run Customization. * reduce-max-up-tries: Interface. * reduce-mode-hook: Hooks. * reduce-mode-load-hook: Hooks. * reduce-run-autostart: Run Customization. * reduce-run-buffer: Run Customization. * reduce-run-echo: Run Customization. * reduce-run-load-hook: Run Customization. * reduce-run-mode-hook: Run Customization. * reduce-run-program: Run Customization. * reduce-run-prompt: Run Customization. * reduce-show-delim-match-face: Format & Display. * reduce-show-delim-mismatch-face: Format & Display. * reduce-show-delim-mode: Format & Display. * reduce-show-proc-delay: Format & Display. * reduce-show-proc-mode: Format & Display. * reduce-source-modes: Run Customization.  File: reduce-ide.info, Node: Keystroke Index, Next: Concept Index, Prev: Variable Index, Up: Top Keystroke Index *************** * Menu: * BACKTAB: Indentation. * C-c :: Comments. * C-c ;: Comments. * C-c <: Structures. * C-c b: Structures. * C-c C-d: Statements. * C-c C-e: Run Keys. * C-c C-f: Run Keys. * C-c C-i: Run Keys. * C-c C-k: Statements. * C-c C-l: Run Keys. * C-c C-n: Statements. * C-c C-p: Statements. * C-c C-r: Run Keys. * C-c C-u: Statements. * C-c C-z: Run Keys. * C-c i: Structures. * C-c k: Procedures. * C-c TAB <1>: Run Keys. * C-c TAB: Indentation. * C-down-mouse-3: Menu. * C-h m: Introduction. * C-M-\: Indentation. * C-M-a: Procedures. * C-M-b: Groups and blocks. * C-M-e: Procedures. * C-M-f: Groups and blocks. * C-M-h: Procedures. * C-M-l: Procedures. * C-M-q <1>: Indentation. * C-M-q: Procedures. * C-x C-e: Run Keys. * C-x n d: Procedures. * DEL: General. * LFD <1>: Indentation. * LFD: Special function keys. * M-;: Comments. * M-C-x: Run Keys. * M-LFD: Comments. * M-q: Comments. * M-TAB <1>: Completion. * M-TAB: Run Keys. * Meta-LFD: Special function keys. * Meta-TAB: Special function keys. * Shift-TAB: Indentation. * TAB <1>: Special function keys. * TAB: Indentation.  File: reduce-ide.info, Node: Concept Index, Prev: Keystroke Index, Up: Top Concept Index ************* * Menu: * Abbreviations: Completion. * Access to procedures and operators: Access. * Blocks: Groups and blocks. * Bug reports: Feedback. * Bugs <1>: Miscellaneous. * Bugs: Problems. * Changes to REDUCE mode: Changes. * Comment support: Comments. * Comments: Feedback. * Compatibility: Problems. * Completion: Completion. * Contact: Feedback. * Customization <1>: Customization. * Customization: Run Customization. * Delimiters: Groups and blocks. * Display customization: Format & Display. * Displaying current procedure: Show Proc. * Expansion: Completion. * Features <1>: General. * Features: Miscellaneous. * Feedback: Feedback. * Font selection: Font-Lock. * Font-lock support: Font-Lock. * Format & display customization: Format & Display. * Format customization: Format & Display. * Function keys: Special function keys. * General features: General. * Groups: Groups and blocks. * Highlighting and moving over: Groups and blocks. * Highlighting of keywords: Font-Lock. * Hooks: Hooks. * Imenu support: Imenu. * Indentation: Indentation. * Information about version: Version. * Information, procedures and operators: Access. * Installation of REDUCE run mode: Run Installation. * Installation of the REDUCE IDE: Installation. * Interface customization: Interface. * Introduction to REDUCE run mode: Run Introduction. * Introduction to the REDUCE IDE: Introduction. * Key bindings: Run Keys. * Keys, special function: Special function keys. * Keyword completion: Completion. * Keyword highlighting: Font-Lock. * LFD: Special function keys. * Linefeed: Special function keys. * Major mode menu: Menu. * Menu <1>: Menu. * Menu: Run Keys. * Menu of procedures and operators: Imenu. * Meta-LFD: Special function keys. * Meta-TAB: Special function keys. * Minor modes: Miscellaneous. * Miscellaneous: Miscellaneous. * Moving over: Groups and blocks. * Multiple Process Support: Run Multiple. * New facilities in the REDUCE IDE: Changes. * Operations on Procedures: Procedures. * Operations on Statements: Statements. * Operator menu: Imenu. * Operators access: Access. * Options <1>: Customization. * Options: Run Customization. * Problems: Problems. * Procedure access: Access. * Procedure display: Show Proc. * Procedure menu: Imenu. * Procedures: Procedures. * Process Support, Multiple: Run Multiple. * REDUCE mode version information: Version. * Run mode: Run. * Running REDUCE: Run. * Show procedure mode: Show Proc. * Showing current procedure: Show Proc. * Special function keys: Special function keys. * Statements: Statements. * Structure templates: Structures. * Structures: Completion. * Suggestions: Feedback. * Support for imenu: Imenu. * Support for Multiple Process: Run Multiple. * Support for tag files: Tags. * TAB: Special function keys. * Tag files: Tags. * Tags: Tags. * Templates for structures: Structures. * Updates to REDUCE mode: Changes. * User options <1>: Customization. * User options: Run Customization. * Variables <1>: Run Customization. * Variables: Customization. * Version information: Version. * Which procedure: Show Proc.