<> <> <> <> <> <<>> <> <<>> DIRECTORY TiogaOps USING [CommandProc], TiogaOpsDefs, Rope USING [ROPE]; TiogaExtraOps: CEDAR DEFINITIONS = BEGIN OPEN TiogaOpsDefs; <> SetProp: PROC [name: ROPE, value: REF, which: WhichNodes _ selection]; PutProp: PROCEDURE [n: Ref, name: ATOM, value: REF]; <> <<>> GetProp: PROCEDURE [n: Ref, name: ATOM] RETURNS [REF]; RemProp: PROCEDURE [n: Ref, name: ATOM]; MapProps: PROC [n: Ref, action: MapPropsAction, typeFlag, commentFlag: BOOLEAN _ TRUE] RETURNS [BOOLEAN]; <<-- apply the action to each name & value pair for the node>> <<-- returns true if&when an action returns true>> <<-- if commentFlag is false, skips Comment property; ditto for typeFlag>> <<-- hack to accelerate Inherit and PutFile operations>> MapPropsAction: TYPE = PROC [name: ATOM, value: REF] RETURNS [BOOLEAN]; <> RegisterPropProc: PROC [name: ATOM, reader: ReadSpecsProc, writer: WriteSpecsProc, copier: CopyInfoProc]; <<-- registers these procs for this property name>> <<-- they will be called by DoSpecs, GetSpecs, and CopyInfo >> ReadSpecsProc: TYPE = PROC [name: ATOM, specs: ROPE, n: Ref] RETURNS [value: REF]; WriteSpecsProc: TYPE = PROC [name: ATOM, value: REF, n: Ref] RETURNS [specs: ROPE]; CopyInfoProc: TYPE = PROC [name: ATOM, value: REF, from, to: Ref] RETURNS [new: REF]; NullRead: ReadSpecsProc; -- returns NIL always NullWrite: WriteSpecsProc; -- returns NIL always NullCopy: CopyInfoProc; -- returns NIL always <> PutTextKey: PROC [node: Ref, where: Offset, key: REF]; <> GetTextKey: PROC [node: Ref, key: REF] RETURNS [loc: Location]; <> <> TextKeyNotFound: ERROR; -- raised by GetTextKey RemoveTextKey: PROC [node: Ref, key: REF]; MapTextKeys: PROC [ node: Ref, proc: PROC [key: REF, where: Offset] RETURNS [BOOLEAN]] RETURNS [BOOLEAN]; <> <> <> GetFile: PROCEDURE [name: ROPE] RETURNS [root: Ref]; PutFile: PROCEDURE [name: ROPE, root: Ref]; FreeTree: PROCEDURE [root: Ref]; <> <> UnRegisterCommand: PROC [name: ATOM, proc: TiogaOps.CommandProc]; <> <> editTypeScripts: BOOL ; -- if true and selection not at end of ts, edit like normal Tioga doc. sourceExtensions: LIST OF ROPE; -- the extensions all start with "." END.