Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Extendable Editor.

3 views
Skip to first unread message

c70:editor-people

unread,
Sep 11, 1982, 9:53:40 PM9/11/82
to
>From JAY@USC-ECLC Sat Sep 4 03:21:33 1982
You may recall my typology of necessary commands in a minimal editor. I
have added three things and moved one.

1) The ability to define/redefine commands. Which means some sort of
extension language including:

; Flow control
1.1) WHILE .. DO ..
1.2) IF .. THEN .. ELSE .. (The ELSE is of course optional)
1.3) Other looping constructs? Perhaps a case type statement.
; Data
1.4) Variables: Local, and Global
1.4.1) Various types, including some or all of the folowing
; Primitive Types
1.4.1.1) Boolean, Integer, Character,
String (and Buffer if its not a string),
Mark (In the string or buffer), List, Atom,
Procedures, Functions
; Type Construction
1.4.1.2) Array, Record (Both of any primitive types)
(For instance a Window could be a RECORD with fields
Top-Line,Bottom-Line : Integer; Upper-left-Char : Mark;
And a dispatch table - Array [0..127] of Procedure)
; Primitive operations
1.5) The ability to call other commands and editor primitives.
1.6) Input Output commands.
1.7) Actions on all the variable types.
AND, OR, NOT, Etc. for booleans;
Addition, Subtraction, Etc. for integers;
Concatination, Insertion, Deletion, Searching,
Creation, Selection, and Removal (Multiple buffer comands)
Etc. for Strings-Buffers;
Indexing into arrays;
Accessing fields of records

; Programing aids.
1.8) An interactive debugger? (it would be painful to use this language
to develop a ~REAL~ editor without it)

2) Some means to connect commands to keys, and some way to disconnect them.
(Perhaps Dispatch tables)

3) Due to the size limitations of most machines, a way to load libraies of
functions and to "Unload" them (ie. get them out of core). This may be
done manualy or via some function like Make Space in Emacs (Teco version).

4) Display package? Should this be at a low level and thus fast, or should
it be written in the extension language and thus easily modified? If the
extension language is (or can be) compiled then perhaps both are posible.

5) Garbage collection. Especialy if Lists are included as a data type.
This may be where libraries are unloaded (if they haven't been used
for quite a while)

6) Interrupts. To allow users to escape endless loops and to abort
re-display if they continue to type ahead (ie. C-V C-V C-V C-V M-> )


Any thing else?

j'
-------

0 new messages