Harmonia-Mode uses the standard XEmacs "Customize" interface for user-level configuration. To get started, select either "Customize Harmonia-language" or "Customize Harmonia" from the Harmonia-Mode menu:
For example, selecting "Customize Harmonia" will bring you to a screen like this:
The XEmacs customization system is not described in detail here. To learn more about how to use it, see the XEmacs User's Manual.
Harmonia-Mode's settings are divided into the following groups:
Group Name | Description |
---|---|
harmonia | General options |
harmonia-faces | Fonts, sizes, colors, etc. used in Harmonia-Mode |
harmonia-java-mode-faces | A collection of faces for Harmonia Java mode (Only appears after a Java file has been loaded) |
harmonia-titanium-mode-faces | A collection of faces for Harmonia Titanium mode (Only appears after a Titanium file has been loaded) |
harmonia-c-mode-faces | A collection of faces for Harmonia C mode (Only appears after a C file has been loaded) |
harmonia-cool-mode-faces | A collection of faces for Harmonia Cool mode (Only appears after a Cool file has been loaded) |
harmonia-scheme-mode-faces | A collection of faces for Harmonia Scheme mode (Only appears after a Scheme file has been loaded) |
harmonia-languages | Contains links to the groups for each language. |
harmonia-java | Options specific to the Java language |
harmonia-titanium | Options specific to the Titanium language |
harmonia-c | Options specific to the C language |
harmonia-cool | Options specific to the Cool language |
harmonia-scheme | Options specific to the Scheme language |
The rest of this section describes each group's settings.
The Harmonia group contains general options, as well as hyperlinks to the other, more specific, customization groups.
Option | Default | Summary |
---|---|---|
Lexer Delay Time | 0.001 | The length of idle time that Harmonia-Mode waits before running the Lexer after a text edit |
Parser Delay Time | 0.5 | The length of idle time that Harmonia-Mode waits between running the Lexer and the Parser |
Sematics Delay Time | 0.4 | The length of idle time that Harmonia-Mode waits between running the Parser and Semantics |
Line Move Ignore Invisible | Off | (XEmacs Option) Non-nil means down and up arrow ignore invisible lines |
Clean Up On Exit | On | Whether or not to erase all formatting when switching out of harmonia-mode to a different major mode |
Auto-Recenter Buffer During Structural Movement | Off | Whether or not the screen should be forced to recenter after structural movement commands |
Persistent I-Search Structural Filters | Off | Whether or not structural filters should be reset between I-search sessions |
Margin Width | 1 | The width of the left margin (for error-triangles) in Harmonia-Mode buffers. |
Warning Messages Enabled | On | Display warnings about source code detected by semantic analysis |
A collection of faces used to highlight various sections of `harmonia-mode' buffers. Many of these are prefixed with `font-lock', for consistent access in the "edit faces" screen.
Option | Summary |
---|---|
Harmonia Nav Structure Face | Harmonia-Mode face used to highlight the currently navigated structure. |
Harmonia Error Face | Harmonia-Mode face used to highlight errors. |
Harmonia Error Icon Face | Harmonia-Mode face used to color the triangle in the margin that indicates program errors. |
Harmonia Warning Face | Harmonia-Mode face used to highlight warnings. |
Harmonia Warning Icon Face | Harmonia-Mode face used to color the exclamation point in the margin that indicates program warnings. |
Harmonia Preprocessor Face | Harmonia-Mode face used to highlight preprocessed includes in the buffer (only for C mode). |
Harmonia Java Mode Faces (Sub-Group) | A collection of faces for Harmonia Java mode |
Harmonia Titanium Mode Faces (Sub-Group) | A collection of faces for Harmonia Titanium mode |
Harmonia C Mode Faces (Sub-Group) | A collection of faces for Harmonia C mode |
Harmonia Cool Mode Faces (Sub-Group) | A collection of faces for Harmonia Cool mode |
Harmonia Scheme Mode Faces (Sub-Group) | A collection of faces for Harmonia Scheme mode |
A collection of faces used to highlight various sections of `harmonia-java-mode' buffers. Many of these are prefixed with `font-lock', for consistent access in the "edit faces" screen.
Option | Summary |
---|---|
Harmonia Java Method Name Face | Harmonia-Java-Mode face for method names. Defaults to 'font-lock-function-name-face |
Harmonia Java Variable Name Face | Harmonia-Java-Mode face for variable names. Defaults to 'font-lock-variable-name-face |
Harmonia Java Type Face | Harmonia-Java-Mode face for type names. Defaults to 'font-lock-type-face |
Harmonia Java Comment Face | Harmonia-Java-Mode face for comments. Defaults to 'font-lock-comment-face |
Harmonia Java String Face | Harmonia-Java-Mode face for strings. Defaults to 'font-lock-string-face |
Harmonia Java Special Literal Face | Harmonia-Java-Mode face for special literals (null, true, false). Defaults to 'font-lock-keyword-face |
Harmonia Java Special Var Face | Harmonia-Java-Mode face for special variables (this, super). Defaults to 'font-lock-reference-face |
Harmonia Java Control Face | Harmonia-Java-Mode face for control constructs (for, while, etc.). Defaults to 'font-lock-keyword-face |
Harmonia Java Declarator Face | Harmonia-Java-Mode face for declarators (class, interface, etc.). Defaults to 'font-lock-keyword-face |
Harmonia Java Modifier Face | Harmonia-Java-Mode face for type modifiers (abstract, final, etc.). Defaults to 'font-lock-type-face |
Harmonia Java Pragma Face | Harmonia-Java-Mode face for compilation pragmas (import, package). Defaults to 'font-lock-preprocessor-face |
Harmonia Java Public Access Face | Harmonia-Java-Mode face for 'public' modifier. Defaults to 'font-lock-reference-face |
Harmonia Java Protected Access Face | Harmonia-Java-Mode face for 'protected' modifier. Defaults to 'font-lock-preprocessor-face |
Harmonia Java Private Access Face | Harmonia-Java-Mode face for 'private' modifier. Defaults to 'font-lock-string-face |
A collection of faces used to highlight various sections of `harmonia-titanium-mode' buffers. Many of these are prefixed with `font-lock', for consistent access in the "edit faces" screen.
Option | Summary |
---|---|
Harmonia Titanium Method Name Face | Harmonia-Titanium-Mode face for method names. Defaults to 'font-lock-function-name-face |
Harmonia Titanium Variable Name Face | Harmonia-Titanium-Mode face for variable names. Defaults to 'font-lock-variable-name-face |
Harmonia Titanium Type Face | Harmonia-Titanium-Mode face for type names. Defaults to 'font-lock-type-face |
Harmonia Titanium Comment Face | Harmonia-Titanium-Mode face for comments. Defaults to 'font-lock-comment-face |
Harmonia Titanium String Face | Harmonia-Titanium-Mode face for strings. Defaults to 'font-lock-string-face |
Harmonia Titanium Special Literal Face | Harmonia-Titanium-Mode face for special literals (null, true, false). Defaults to 'font-lock-keyword-face |
Harmonia Titanium Special Var Face | Harmonia-Titanium-Mode face for special variables (this, super). Defaults to 'font-lock-reference-face |
Harmonia Titanium Control Face | Harmonia-Titanium-Mode face for control constructs (for, while, etc.). Defaults to 'font-lock-keyword-face |
Harmonia Titanium Declarator Face | Harmonia-Titanium-Mode face for declarators (class, interface, etc.). Defaults to 'font-lock-keyword-face |
Harmonia Titanium Modifier Face | Harmonia-Titanium-Mode face for type modifiers (abstract, final, etc.). Defaults to 'font-lock-type-face |
Harmonia Titanium Pragma Face | Harmonia-Titanium-Mode face for compilation pragmas (import, package). Defaults to 'font-lock-preprocessor-face |
Harmonia Titanium Public Access Face | Harmonia-Titanium-Mode face for 'public' modifier. Defaults to 'font-lock-reference-face |
Harmonia Titanium Protected Access Face | Harmonia-Titanium-Mode face for 'protected' modifier. Defaults to 'font-lock-preprocessor-face |
Harmonia Titanium Private Access Face | Harmonia-Titanium-Mode face for 'private' modifier. Defaults to 'font-lock-string-face |
A collection of faces used to highlight various sections of `harmonia-c-mode' buffers. Many of these are prefixed with `font-lock', for consistent access in the "edit faces" screen.
Option | Summary |
---|---|
Harmonia C Function Name Face | Harmonia-C-Mode face for function names. Defaults to 'font-lock-function-name-face |
Harmonia C Function Call Face | Harmonia-C-Mode face for function calls. Defaults to 'font-lock-variable-name-face |
Harmonia C Variable Name Face | Harmonia-C-Mode face for variable names. Defaults to 'font-lock-variable-name-face |
Harmonia C Type Face | Harmonia-C-Mode face for type names. Defaults to 'font-lock-type-face |
Harmonia C Comment Face | Harmonia-C-Mode face for comments. Defaults to 'font-lock-comment-face |
Harmonia C String Face | Harmonia-C-Mode face for strings. Defaults to 'font-lock-string-face |
Harmonia C Control Face | Harmonia-C-Mode face for control constructs (for, while, etc.). Defaults to 'font-lock-keyword-name-face |
Harmonia C Declarator Face | Harmonia-C-Mode face for declarators (struct, enum, etc.). Defaults to 'font-lock-keyword-name-face |
Harmonia C Modifier Face | Harmonia-C-Mode face for type modifiers (register, static, etc.). Defaults to 'font-lock-type-face |
Harmonia C Preproc Face | Harmonia-C-Mode face for preprocessor directives. Defaults to 'font-lock-preprocessor-name-face |
A collection of faces used to highlight various sections of `harmonia-cool-mode' buffers. Many of these are prefixed with `font-lock', for consistent access in the "edit faces" screen.
Option | Summary |
---|---|
Harmonia Cool Method Name Face | Harmonia-Cool-Mode face for method names. Defaults to 'font-lock-function-name-face |
Harmonia Cool Variable Name Face | Harmonia-Cool-Mode face for variable names. Defaults to 'font-lock-variable-name-face |
Harmonia Cool Type Face | Harmonia-Cool-Mode face for type names. Defaults to 'font-lock-type-face |
Harmonia Cool Comment Face | Harmonia-Cool-Mode face for comments. Defaults to 'font-lock-comment-face |
Harmonia Cool String Face | Harmonia-Cool-Mode face for strings. Defaults to 'font-lock-string-face |
Harmonia Cool Special Literal Face | Harmonia-C-Mode face for special literals (null, true, false). Defaults to 'font-lock-keyword-face |
Harmonia Cool Control Face | Harmonia-Cool-Mode face for control constructs (if, while, loop, etc.). Defaults to 'font-lock-keyword-face |
Harmonia Cool Declarator Face | Harmonia-Cool-Mode face for declarators (class, inherits). Defaults to 'font-lock-keyword-face |
A collection of faces used to highlight various sections of `harmonia-scheme-mode' buffers. Many of these are prefixed with `font-lock', for consistent access in the "edit faces" screen.
Option | Summary |
---|---|
Harmonia Scheme Function Def Name Face | Harmonia-Scheme-Mode face for function names in definitions. Defaults to 'font-lock-function-name-face |
Harmonia Scheme Variable Def Name Call Face | Harmonia-Scheme-Mode face for variable names in definitions. Defaults to 'font-lock-variable-name-face |
Harmonia Scheme Special Forms Face | Harmonia-Scheme-Mode face for special form keywords. Defaults to 'font-lock-keyword-name-face |
Harmonia Scheme Comment Face | Harmonia-Scheme-Mode face for comments. Defaults to 'font-lock-comment-face |
Harmonia Scheme String Face | Harmonia-Scheme-Mode face for characters and strings. Defaults to 'font-lock-string-face |
Harmonia Scheme Id Face | Harmonia-Scheme-Mode face for identifiers. Defaults to 'font-lock-keyword-name-face |
Harmonia Scheme Literal Face | Harmonia-Scheme-Mode face for number and boolean literals. Defaults to 'font-lock-reference-name-face |
All Harmonia languages
Group | Description |
---|---|
harmonia-cool | Options specific to the Cool language |
harmonia-java | Options specific to the Java language |
harmonia-titanium | Options specific to the Titanium language |
harmonia-c | Options specific to the C language |
harmonia-scheme | Options specific to the Scheme language |
Options for Harmonia Cool Mode
Setting | Description |
---|---|
Harmonia-Cool-Mode Enabled | Automatically starts harmonia-cool-mode when opening a file with a matching filename. This adds the Cool language to `auto-mode-alist'. Note that this can usually be overridden with a "-*- mode: some mode -*-" line at the beginning of a file. |
Harmonia-Cool-Mode File Extensions | A list of Cool file extensions that trigger XEmacs to invoke Harmonia-Cool-Mode. Defaults to *.cl |
Harmonia-Cool-Mode Max File-Size | If a Cool file is smaller than this limit (in bytes), Harmonia-Cool-Mode will automatically be invoked. If the file is bigger, Harmonia-Cool-Mode will not be started. Defaults to 200,000 bytes. |
Options for Harmonia Java Mode
Setting | Description |
---|---|
Harmonia-Java-Mode Enabled | Automatically starts harmonia-java-mode when opening a file with a matching filename. This adds the Java language to `auto-mode-alist'. Note that this can usually be overridden with a "-*- mode: some mode -*-" line at the beginning of a file. |
Harmonia-Java-Mode File Extensions | A list of java file extensions that trigger XEmacs to invoke Harmonia-Java-Mode. Defaults to *.java |
Harmonia-Java-Mode Max File-Size | If a Java file is smaller than this limit (in bytes), Harmonia-Java-Mode will automatically be invoked. If the file is bigger, Harmonia-Java-Mode will not be started. Defaults to 200,000 bytes. |
JDK Path | Path to the JDK source code. Harmonia-Java's semantic analyses need the source code for a JDK to work properly. Install the source code for a JDK (any version) and set this to the path of the src/ directory in that installation. In a typical installation, you would unpack the src.jar file included with Sun's JDK and point JDK Path at that directory. |
Project Path | Path to current project's source code. Harmonia-Java's semantic analyses need to know where project code is located. If your Java files import other Java files, add the paths to the imported file's directories here. Defaults to the current directory '.' |
Cache Directory | Path to semantic cache directory. Harmonia-mode for Java caches its semantic analysis results (name resolution and type checking) in your home directory, in a new subdirectory identified by this customization variable. This cache speeds analysis immensely, and only requires around 1-2 KB of data per analyzed Java class. Defaults to ~/.harmonia_java_cache. |
Read-Only Cache Directories | Path to read-only semantic cache directories. Harmonia-Java's semantic analyses can search for pre-cached data in additional directories before searching in the cache directory. |
Project Files | Files to always load. In some cases, files are not always loaded when they are needed. This can occur when the filenames and the classes in them do not match up properly. These files will always be loaded for semantic analysis, but only upon creation of the symbol table. In particular, changing this variable will not load files until you restart XEmacs. These files are not cached. (This variable is temporary, and will be removed in a future release.) |
Always Run Semantics | Force semantics to continue even if the JDK is not correct or present. If you do not have a JDK source distribution installed, or your JDK distribution is broken in some way, but you still want semantics to run, set this to true. |
Java Mode Faces | A collection of face for Harmonia Java Mode |
Options for Harmonia Titanium Mode
Setting | Description |
---|---|
Harmonia-Titanium-Mode Enabled | Automatically starts harmonia-titanium-mode when opening a file with a matching filename. This adds the Titanium language to `auto-mode-alist'. Note that this can usually be overridden with a "-*- mode: some mode -*-" line at the beginning of a file. |
Harmonia-Titanium-Mode File Extensions | A list of java file extensions that trigger XEmacs to invoke Harmonia-Titanium-Mode. Defaults to *.ti |
Harmonia-Titanium-Mode Max File-Size | If a Titanium file is smaller than this limit (in bytes), Harmonia-Titanium-Mode will automatically be invoked. If the file is bigger, Harmonia-Titanium-Mode will not be started. Defaults to 200,000 bytes. |
TDK Path | Path to the TDK source code. Harmonia-Titanium's semantic analyses need the source code for a TDK to work properly. Install the source code for a TDK (any version) and set this to the path of the src/ directory in that installation. In a typical installation, you copy the tlib directory from the Titanium compiler distribution and point JDK Path at that directory. The default Harmonia installation provides this for you. Defaults to the default install location for the TDK |
Project Path | Path to current project's source code. Harmonia-Titanium's semantic analyses need to know where project code is located. If your Titanium files import other Titanium or Java files, add the paths to the imported file's directories here. Defaults to the current directory '.' |
Cache Directory | Path to semantic cache directory. Harmonia-mode for Titanium caches its semantic analysis results (name resolution and type checking) in your home directory, in a new subdirectory identified by this customization variable. This cache speeds analysis immensely, and only requires around 1-2 KB of data per analyzed Titanium class. Defaults to ~/.harmonia_titanium_cache. |
Read-Only Cache Directories | Path to read-only semantic cache directories. Harmonia-Titanium's semantic analyses can search for pre-cached data in additional directories before searching in the cache directory. |
Project Files | Files to always load. In some cases, files are not always loaded when they are needed. This can occur when the filenames and the classes in them do not match up properly. These files will always be loaded for semantic analysis, but only upon creation of the symbol table. In particular, changing this variable will not load files until you restart XEmacs. These files are not cached. (This variable is temporary, and will be removed in a future release.) |
Always Run Semantics | Force semantics to continue even if the TDK is not correct or present. If you do not have a TDK source distribution installed, or your TDK distribution is broken in some way, but you still want semantics to run, set this to true. |
Titanium Mode Faces | A collection of face for Harmonia Titanium Mode |
Options for Harmonia C Mode
Setting | Description |
---|---|
Harmonia-C-Mode Enabled | Automatically starts harmonia-c-mode when opening a file with a matching filename. This adds the C language to `auto-mode-alist'. Note that this can usually be overridden with a "-*- mode: some mode -*-" line at the beginning of a file. |
Harmonia-C-Mode File Extensions | A list of C file extensions that trigger XEmacs to invoke Harmonia-C-Mode. Defaults to *.c and *.h |
Harmonia-C-Mode Max File-Size | If a C file is smaller than this limit (in bytes), Harmonia-C-Mode will automatically be invoked.
If the file is bigger, Harmonia-C-Mode will not be started. Defaults to 200,000 bytes. |
GCC CPP | Pathname to the C preprocessor binary. Defaults to /usr/bin/gcc. |
GCC CPP Flags | Options for the C preprocessor. Defaults to -E -C -dD -dI These flags are required to make the C preprocessor work with gcc - do not change them unless you are using a different compiler. GCC version 3.0+ users can add -P to get rid of the #line directives. |
GCC CPP Include Path | Include path for the C preprocessor (e.g. -I/my/project/dir -I/her/project/dir) |
Harmonia Preprocessor Shell | Path to shell used by the Harmonia preprocessor facility (must include option to run shell with commands given on the the rest of the command line). Defaults to /bin/bash -c |
Harmonia Preprocessor Temporary Directory | Path to temporary directory where the preprocessor can create, read, write and delete files. Defaults to /tmp. |
Options for Harmonia Scheme Mode
Setting | Description |
---|---|
Harmonia-Scheme-Mode Enabled | Automatically starts harmonia-scheme-mode when opening a file with a matching filename. This adds the Scheme language to `auto-mode-alist'. Note that this can usually be overridden with a "-*- mode: some mode -*-" line at the beginning of a file. |
Harmonia-Scheme-Mode File Extensions | A list of Scheme file extensions that trigger XEmacs to invoke Harmonia-Scheme-Mode. Defaults to *.scm |
Harmonia-Scheme-Mode Max File-Size | If a Scheme file is smaller than this limit (in bytes), Harmonia-Scheme-Mode will automatically be invoked.
If the file is bigger, Harmonia-Scheme-Mode will not be started. Defaults to 200,000 bytes. |