inform-mode Homepage
This is the homepage for inform-mode, a major mode for emacs used
to edit programs written in the Inform programming language.
inform-mode supports the usual program mode functions: automatic
indentation, moving over expressions, comment and string filling, font
locking, tags-file support, starting compiles and parsing errors. It
should work on GNU Emacs (v20/21) or XEmacs (v20/21) on any supported
platform.
Download
You can download the latest version of inform-mode here. It is also available at the
Interactive Fiction archives: see the links
section.
Latest Version
Version 1.5.8, released 3 September 2002
New feature:
- inform-run-project (C-c C-c) runs an interpreter on the z-code file
for the current project. This allows you to test games from within
the development environment.
If 'inform-interpreter-command' is a string (eg "frotz") then it
will be run as an external program. This program can either be a
standalone program like xzip or winfrotz, or it can be a
character-based application like frotz or jzip: in the latter case,
set 'inform-interpreter-is-graphical' to nil and inform-mode will
run it in a terminal window using 'term' mode.
If 'inform-interpreter-command' is a symbol then inform-mode will
call it as an Emacs Lisp function, which is useful if you want to
run malyon on it or have a custom function you want to run on the
story file.
Bug fixes:
- Don't fontify semicolon after keyword.
- Fontify double-quoted dictionary words properly.
- Expand filenames sent to inform-project-file-list.
- inform-retagify should now work on NT systems.
- Don't move point unnecessarily in inform-indent-line.
The following obsolete function has been removed:
- inform-convert-old-format
- Fixed bug in fontification on GNU Emacs 21
Version 1.5.6, released 17 December 2000
- Recognise 'private' keyword
- Fontify object name after '->' properly
- Fontify dictionary words containing '-' properly
- Fontify 1-character dictionary words properly
- Fontify 'with name' properly
- Correct fontification of char before attribute/property name
- Allow imenu to recognize objects with -> in their header
Version 1.5.5, released 4 September 2000
- Strings with '^' and '//' are now fontified properly
- Non-directives ending with directive names (eg 'JObject') are now fontified properly
- Comment line-up (ie with inform-comments-line-up-p non-nil) is no longer confused by '!' in code
- Multi-line switch labels indented properly
- Indentation of multi-line strings now handled by inform-strings-line-up-p
- Dictionary words are now fontified using
inform-dictionary-word-face, as font-lock-constant-face is not
available on all Emacsen.
- Actions (eg ##Examine) are indented properly.
- Dictionary words are fontified using font-lock-constant-face.
Version 1.5.2, released 15 December 1999
- Objects that start with a class line should now be indented
properly.
- You can now spell-check all double-quoted strings in the buffer
using the keystroke 'C-c C-s' (inform-spell-check-buffer). This
assumes that you have the GNU 'ispell' program on your system.
- If you set the variable 'inform-comments-line-up-p' to non-NIL,
comments spread out over several lines will start on the same column
as the first comment line.
- '#ifdef'/'#endif' blocks should be indented properly.
- Byte-compilation should work on GNU Emacs
- Indentation bug in first property of class or object fixed.
Version 1.5.0, released 27 Novemver 1999
This was the first major release of inform-mode for several years. The
changes made in this version are mostly to bring the mode up to date
with Inform 6: the emacs user interface remains the same.
In detail, the changes are:
- Understands all Inform 6.21 directives and library 6/10 attributes
and properties.
- Indents if-else blocks correctly,
- Font locking for Inform routine code as well as object/class definitions.
- New keywords can be added easily as font locking regexps are
calculated at mode eval time.
- inform-indent-line (TAB) moves point in a similar way to other major
modes.
- When filling strings, backslashes are no longer added.
- Tags files can now be created on non-Unix platforms.
- More object and routine definitions are now identified properly when
creating tage files.
Installation
To run inform-mode, you need the regexp-opt library,
which should be installed on most newer emacsen. If you are running
Xemacs with packages, make sure you have the xemacs-base and
xemacs-devel packages loaded.
When you have downloaded the inform-mode.el file, copy
it to somewhere on your emacs load-path such as the
site-lisp directory. If you put the file in a
non-standard place, tell emacs where to find it by putting a line
like:
(setq load-path (cons (expand-file-name "/path/to/file/") load-path))
in your .emacs.
To speed up the operation of inform-mode, I recommend that you
byte-compile it: start up emacs, type:
M-x byte-compile-file
and enter the filename for inform-mode at the prompt. Ignore any
byte-compilation errors.
Finally, to enable inform-mode add the following to your
.emacs:
(autoload 'inform-mode "inform-mode" "Inform editing mode." t)
(autoload 'inform-maybe-mode "inform-mode" "Inform/C header editing mode.")
(setq auto-mode-alist
(append '(("\\.h\\'" . inform-maybe-mode)
("\\.inf\\'" . inform-mode))
auto-mode-alist))
To turn on font locking add:
(add-hook 'inform-mode-hook 'turn-on-font-lock)
Links
Author, License and Reporting Bugs
inform-mode was originally written by Gareth Rees and was previously
maintained by Michael Fessler. It is free software; you can
redistribute it and/or modify it under the terms of the GNU General
Public License as published by the Free Software Foundation; either
version 2, or (at your option) any later version.
Rupert Lane is the current maintainer of inform-mode. If you find
any bugs or have any comments about the mode, please email rupert@rupert-lane.org.
Last modified: Tue Sep 3 15:00:13 BST 2002