pmacs3/MODES

31 lines
1.0 KiB
Plaintext

This document is designed to be a quick (and incomplete) description of how
modes work, how you might create one yourself, etc.
1. What are modes?
Pmacs uses modes to determine what actions can be applied to a buffer, which
keys should apply which actions, how the buffer should be highlighted, how the
buffer should be indented, and any other per-buffer configuration. The default
mode ("Fundamental") provides the base functionality which all other modes
inherit.
2. Where do they come from?
All modes are loaded and installed in application.py. It would be nice if there
was a configuration file where you could add your own modes, but there isn't.
Loading a module involves the following (in Application.__init__):
self.modes['foo'] = package.Foo
# ...
self.mode_paths['/some/full/path'] = 'foo'
self.mode_basenames['some-filename'] = 'foo'
self.mode_extensions['.foo'] = 'foo'
self.mode_detection['foo'] = 'foo'
The last is for detecting scripts using the "#!/usr/bin/foo" syntax.
3. How do they work?