STET (text editor)
| Company type | Software |
|---|---|
| Industry | Text editing software |
| Founded | 1977 |
| Founder | Mike Cowlishaw |
| Headquarters | IBM VM/CMS environment |
| Products | Structured text editor |
The STET text editor—an acronym for "structured editing tool"—is considered among the earliest folding editors, with its first iteration created in 1977 by Mike Cowlishaw. It runs on the IBM VM/CMS environment.
STET was developed to incorporate structured programming methodologies into text editing, facilitating the composition of programs and documentation in a 'top-down' manner through manageable segments of code or text, generally confined to about one page in length.
This method introduced an additional dimension beyond traditional editing: a hierarchical tree structure accessible via Program Function Keys, which improved navigation within files alongside standard scrolling techniques.
Principles
As a full-screen editor, STET presents a viewport into the document, allowing users to directly modify lines on-screen by inserting, deleting, or overwriting text. Commands are executed through programmable action keys or typed inputs, classified into 'top-line commands' (entered in the command line at the screen’s top) and 'line commands' (typed within a four-character field adjacent to each line).
Top-line commands influence the entire document and include functions such as saving, searching, replacing text, and navigating—offering over 60 distinct operations.
Line commands focus on one or multiple lines, enabling tasks like copying, moving, merging lines, and converting text to uppercase. A notable feature is the ability to designate a group of lines using the < command to mark start and end boundaries; these groups can then be manipulated as a whole. This functionality underpins STET’s structured editing and folding capabilities.
Structured editing commands
In STET’s structured editing paradigm, each file is viewed as a collection of named blocks composed of line groups. These blocks are formed by marking line ranges and applying commands such as 'form commands', which generates a block named 'COMMANDS' and replaces the original lines with a single reference line beginning with a special character (default ')'). This process streamlines organizing flat files.
Block references operate similarly to hyperlinks in Wikipedia; users may also create new blocks by inserting references and entering them for editing.
The editor offers utilities to display the file’s tree map, list blocks alphabetically, and navigate through the hierarchy—moving between levels or jumping directly to specified blocks. Additional features include renaming blocks, expanding them for detail viewing, and producing flat files from structured content.
Other
The majority of STET is implemented in PL/I, except for the 3270 terminal interface, which is written in Assembler. Mike Cowlishaw developed and supported STET from 1976 until 1979; thereafter, Steve Davies continued its maintenance through the 1980s. Elements of STET’s design influenced subsequent IBM text editors such as XEDIT and LEXX.
Limitations
Each file processed by STET is restricted to a maximum of 32,767 characters per line and up to 32,767 lines within a single block. Unstructured or 'flat files' are treated as one continuous block.
Structured files utilize a specialized disk format that facilitates rapid block loading and navigation while storing metadata like action key configurations and cumulative editing time. However, flat files must be generated ('built') from structured files before they can be used by compilers or word processors.