File: //usr/share/jed/lib/tabs.sl
%%
%% Tab routines for JED
%%
%% The following defines the tab stops to be 8 column:
custom_variable ("Tab_Stops", [0:19] * TAB_DEFAULT + 1);
define tab_to_tab_stop ()
{
variable c, goal, i;
c = what_column ();
foreach (Tab_Stops)
{
goal = ();
if (goal > c) break;
}
insert_spaces (goal - c);
}
setkey ("tab_to_tab_stop", "^I");
private variable _Tabs_Buffer;
$1 = "*TabsEdit*";
ifnot (keymap_p($1))
{
make_keymap ($1);
undefinekey ("^C", $1);
definekey ("tabs_install_tab_stops", "^C^C", $1);
}
%% emacs like edit tab stops
define edit_tab_stops ()
{
variable tbuf, i;
_Tabs_Buffer = whatbuf();
tbuf = "*TabsEdit*";
sw2buf(tbuf); erase_buffer();
TAB = 0;
use_keymap(tbuf);
foreach (Tab_Stops)
{
i = ();
goto_column (i);
insert_char ('T');
}
newline ();
_for (1, 13, 1)
{
i = ();
goto_column (10 * i);
insert (string(i));
}
newline ();
loop (13) insert ("1234567890");
insert ("\nTo install changes, type control-c control-c.");
bob ();
set_buffer_modified_flag (0);
set_overwrite (1);
}
define tabs_install_tab_stops ()
{
variable i;
bob ();
_for (0, length (Tab_Stops) - 1, 1)
{
i = ();
skip_white ();
if (eolp()) break;
Tab_Stops[i] = what_column ();
go_right_1 ();
}
Tab_Stops[[i:]] = 0;
set_buffer_modified_flag (0);
delbuf (whatbuf ());
sw2buf ( _Tabs_Buffer);
}