File: //usr/share/jed/lib/tex.sl
%
% simple TeX mode for JED
%
% When tex mode is loaded, 'tex_mode_hook' is called. This hook will allow
% users to customize the mode. In particular, certain functions here have
% no keybindings, e.g., 'latex_do_environment'. So, in your jed.rc file,
% add something like:
% define tex_mode_hook () {
% local_setkey ("latex_do_environment", "^C^E");
% }
% which binds the function to Ctrl-C Ctrl-E.
% Load the common definitions if not already loaded.
require ("texcom");
$1 = "TeX-Mode";
ifnot (keymap_p($1))
{
make_keymap ($1);
definekey ("tex_insert_quote", "\"", $1);
definekey ("tex_insert_quote", "'", $1);
definekey ("tex_blink_dollar", "$", $1);
definekey ("tex_ldots", ".", $1);
}
%!%+
%\function{tex_mode}
%\synopsis{tex_mode}
%\description
% Mode useful for editing TeX and LaTeX modes.
% Useful bindings:
%#v+
% '"' : tex_insert_quote
% '\'' : tex_insert_quote
% '$' : tex_blink_dollar
% '.' : tex_ldots. Inserts a '.' except if preceeded by two dots. In
% this case, the dots are converted to \ldots.
%#v-
% When tex mode is loaded, 'tex_mode_hook' is called. This hook will allow
% users to customize the mode. In particular, certain functions here have
% no keybindings, e.g., 'latex_do_environment'. So, in your jed.rc file,
% add something like:
%#v+
% define tex_mode_hook () {
% local_setkey ("latex_do_environment", "^C^E");
% }
%#v-
% which binds the function to Ctrl-C Ctrl-E.
%!%-
define tex_mode ()
{
variable mode = "TeX";
variable texmode = "TeX-Mode";
use_keymap (texmode);
set_mode (mode, 0x1 | 0x20);
set_buffer_hook ("par_sep", "tex_paragraph_separator");
set_buffer_hook ("wrap_hook", "tex_wrap_hook");
unset_buffer_hook ("indent_hook");
unset_buffer_hook ("newline_indent_hook");
use_syntax_table (texmode);
mode_set_mode_info (mode, "fold_info", "%{{{\r%}}}\r\r");
run_mode_hooks ("tex_mode_hook");
% This is called after the hook to give the hook a chance to load the
% abbrev table.
%if (abbrev_table_p (mode)) use_abbrev_table (mode);
%(Now handled in run_mode_hooks)
}
%-----------------------------------------------------------%
#ifdef 0
define tex_info_find_node ()
{
variable node;
node = read_mini ("Node:", Null_String, Null_String);
ifnot (strlen (node)) return;
info_reader ();
info_find_node ("(latex)top");
info_find_node ("(latex)" + node);
}
#endif