! EVE_EDT_CORE.TPU ! ! Written by: Chris Yoder ! for: Harvey Mudd College ! Mathematics Department ! on: September 9, 1988 ! ! Eve_EDT is my own special version of EVE and EDT. It's mostly ! just an EDT keypad on top of Eve. With VMS 5.0, this version is ! *almost* unnecessary, but I'm used to my version by now... Besides ! that, Eve_EDT contains a number of subtle differences from the basic ! EDT keypad in Eve as well as some additional functionality. ! !++ ! Table of Contents ! ! EVE_EDT_CORE.TPU ! ! Procedure name Page Description ! -------------- ---- ------------ ! ! eve_edt_module_ident 2 Ident ! eve_edt_module_init 3 Initialization ! eve_edt_declare_synonym 4 Synonyms ! ! Page 2 ! procedure eve_edt_module_ident ! Ident module (required) return "V02-000"; ! Version 2, edit level 000 endprocedure; ! eve_edt_module_ident ! Page 3 ! procedure eve_edt_module_init ! eve_edt initializations (required) ! First we get ourselves into EDT mode and make certain that the ! cursor stays where it's supposed to... eve$set_edt_keypad; eve$bound_cursor; ! Now for a couple of nice little features... eve_set_find_whitespace; eve_set_scroll_margins ("10%","10%"); ! Now we set up a bunch of key definitions and subtle differences ! that I'm used to. ! Word separators: space, horizontal tab, form feed, carriage return, vertical ! tab, and line feed (+ "programmer's" word separators) eve$replace_word_separators (" " + ascii(9) + ascii(10) + ascii(11) + ascii(12) + ascii(13) + "._$-+[]{}()%*/\&@,!?;:"); define_key (eve$$kt_return + "copy_text('0')", key_name ("0", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "eve_one_window", key_name ("1", SHIFT_KEY), "one_window", eve$x_edt_keys); define_key (eve$$kt_return + "copy_text('2')", key_name ("2", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "copy_text('3')", key_name ("3", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "copy_text('4')", key_name ("4", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "copy_text('5')", key_name ("5", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "copy_text('6')", key_name ("6", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "copy_text('7')", key_name ("7", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "copy_text('8')", key_name ("8", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "copy_text('9')", key_name ("9", SHIFT_KEY), "", eve$x_edt_keys); define_key (eve$$kt_return + "eve_split_window", key_name ("=", SHIFT_KEY), "split_window", eve$x_edt_keys); define_key (eve$$kt_return + "eve_shrink_window('1')", key_name ("-", SHIFT_KEY), "shrink_window", eve$x_edt_keys); define_key (eve$$kt_return + "eve_enlarge_window('1')", key_name ("+", SHIFT_KEY), "enlarge_window", eve$x_edt_keys); define_key (eve$$kt_return + "eve_delete_window", key_name (DEL_KEY, SHIFT_KEY), "delete_window", eve$x_edt_keys); define_key (eve$$kt_return + "eve_previous_window", key_name (UP, SHIFT_KEY), "previous_window", eve$x_edt_keys); define_key (eve$$kt_return + "eve_next_window", key_name (DOWN, SHIFT_KEY), "next_window", eve$x_edt_keys); define_key (eve$$kt_return + "eve_shift_right('8')", key_name (RIGHT, SHIFT_KEY), "shift_right", eve$x_edt_keys); define_key (eve$$kt_return + "eve_shift_left('8')", key_name (LEFT, SHIFT_KEY), "shift_left", eve$x_edt_keys); define_key (eve$$kt_return + "eve_quote", key_name (KP3, SHIFT_KEY), "quote", eve$x_edt_keys); define_key (eve$$kt_return + "eve_replace('','')", key_name (KP9, SHIFT_KEY), "replace", eve$x_edt_keys); define_key (eve$$kt_return + "eve_learn", key_name (ENTER, SHIFT_KEY), "learn", eve$x_edt_keys); define_key (eve$$kt_return + "eve_attach('')", key_name ("a", SHIFT_KEY), "attach", eve$x_edt_keys); define_key (eve$$kt_return + "eve_buffer('')", key_name ("b", SHIFT_KEY), "buffer", eve$x_edt_keys); define_key (eve$$kt_return + "eve_show_buffers", key_name ("s", SHIFT_KEY), "show_buffers", eve$x_edt_keys); define_key (eve$$kt_return + "eve_repeat('')", key_name (PF2, SHIFT_KEY), "repeat", eve$x_edt_keys); define_key (eve$$kt_return + "eve_start_of_line", key_name (ASCII(8)), "start_of_line", eve$x_edt_keys); define_key (eve$$kt_return + "eve_do('')", key_name (ASCII(26)), "do", eve$x_edt_keys); define_key (eve$$kt_return + "eve_start_of_line", key_name(f12), "start_of_line", eve$x_edt_keys); define_key (eve$$kt_return + "eve_attach('')", key_name(f17), "attach", eve$x_edt_keys); define_key (eve$$kt_return + "eve_write_modified", key_name(f19), "write_modified", eve$x_edt_keys); define_key (eve$$kt_return + "eve_write_file('')", key_name(f20), "write_file", eve$x_edt_keys); ! These key definitions are specific to the Rectangular cut and paste ! routines. define_key (eve$$kt_return + "eve_mark_corner", key_name (".", SHIFT_KEY), "mark_corner", eve$x_edt_keys); define_key (eve$$kt_return + "eve_extract_rectangle", key_name ("<",SHIFT_KEY), "extract_rectangle", eve$x_edt_keys); define_key (eve$$kt_return + "eve_insert_rectangle", key_name (">", SHIFT_KEY), "insert_rectangle", eve$x_edt_keys); define_key (eve$$kt_return + "eve_copy_rectangle", key_name ("(", SHIFT_KEY), "copy_rectangle", eve$x_edt_keys); define_key (eve$$kt_return + "eve_overlay_rectangle", key_name (")", SHIFT_KEY), "overlay_rectangle", eve$x_edt_keys); endprocedure; ! eve_edt_module_init ! Page 4 ! procedure eve_edt_declare_synonym ! declare synonyms for people so they ! don't get lost eve$build_synonym ("what_line","current_line",1); eve$build_synonym ("write_file","write",1); eve$build_synonym ("exit","ex",1); eve$build_synonym ("show_buffers","list_buffers",1); endprocedure; ! eve_edt_declare_synonym