<> <> <> <> <> <> <> <<>> <<>> DIRECTORY IO USING [STREAM], PFS USING [nullUniqueID, UniqueID], PFSNames USING [PATH], Rope USING [ROPE], SourceFileOps USING [Index, PosKind, Range, WhichSelection]; SourceFileOpsExtras: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; Position: TYPE ~ RECORD [ fileName: FileName, uniqueID: UniqueID, index: ARRAY PosKind OF Range]; <> FileName: TYPE ~ PFSNames.PATH; UniqueID: TYPE ~ PFS.UniqueID; PosKind: TYPE ~ SourceFileOps.PosKind; Range: TYPE ~ SourceFileOps.Range; Index: TYPE ~ SourceFileOps.Index; noPosition: Position ~ [noName, nullUniqueID, ALL[noRange]]; noName: FileName ~ NIL; noIndex: Index ~ INT.FIRST; nullUniqueID: UniqueID ~ PFS.nullUniqueID; noRange: Range ~ []; WhichSelection: TYPE ~ SourceFileOps.WhichSelection; <> FullGetSelection: PROC [selection: WhichSelection _ primary] RETURNS [pos: Position, contents: ROPE]; <> <> <> FullFormatPosition: PROC [Position] RETURNS [ROPE]; FullFmtIdxs: PROC [pos: Position] RETURNS [ROPE]; FmtRange: PROC [r: Range, introSingular, introPlural: ROPE _ NIL] RETURNS [ROPE]; FullOpenSource: ShowProc; ShowProc: TYPE ~ PROC [desc: ROPE, pos: Position, feedBack: IO.STREAM, selection: WhichSelection _ feedback]; <> END.