DIRECTORY EditToolBuilder, Buttons, Labels, Menus, NameSymbolTable, Rope, RopeReader, TEditDocument, TEditInput, TextFind, TextLooks, TextNode, TiogaOps, TreeFind, UndoEvent, ViewerClasses; EditToolPrivate: CEDAR DEFINITIONS SHARES Rope = { Register: PROC [atom: ATOM, op: TEditInput.CommandProc] RETURNS [LIST OF REF]; DoButton: PROC [ redList, blueList: LIST OF REF _ NIL, redButton: BOOL _ FALSE, viewer: ViewerClasses.Viewer _ NIL]; numHeights: CARDINAL = 4; NodeKind: TYPE = BOOLEAN; root: NodeKind = FALSE; selection: NodeKind = TRUE; SearchWhere: TYPE = [0..2]; anywhere: SearchWhere = 0; words: SearchWhere = 1; nodes: SearchWhere = 2; Info: TYPE = REF InfoRec; InfoRec: TYPE = RECORD [ heights: ARRAY [0..numHeights) OF CARDINAL, currentHeightIndex: [0..numHeights), interrupt: REF BOOLEAN, searchWhere: SearchWhere, looksExact: BOOLEAN, ignoreLooks: BOOLEAN, ignoreText: BOOLEAN, ignoreType: BOOLEAN, ignoreStyle: BOOLEAN, ignoreComment: BOOLEAN, literal: BOOLEAN, ignoreCase: BOOLEAN, doReplace: BOOLEAN, forceInitCap: BOOLEAN, caretType: BOOLEAN, subsRange: [0..2], sortIncreasing: BOOLEAN, sortKind: [0..2], caretLooks: BOOLEAN, typeNode: NodeKind, styleNode: NodeKind, propNode: NodeKind, targetArg: ViewerClasses.Viewer, sourceArg: ViewerClasses.Viewer, typeNameArg: ViewerClasses.Viewer, styleNameArg: ViewerClasses.Viewer, propNameArg: ViewerClasses.Viewer, propValueArg: ViewerClasses.Viewer, propPatternArg: ViewerClasses.Viewer, substituteButton: Buttons.Button, textButton: Buttons.Button, looksButton: Buttons.Button, typeButton: Buttons.Button, styleButton: Buttons.Button, commentButton: Buttons.Button, doitButton: Buttons.Button, sortOrderLabel: Labels.Label, sortKindLabel: Labels.Label, operationLabel: Labels.Label, propNodeLabel: Labels.Label, opsArg: ViewerClasses.Viewer, filesArg: ViewerClasses.Viewer, typeArg: ViewerClasses.Viewer, looksArg: ViewerClasses.Viewer, initCapLabel: Labels.Label, caretTypeLabel: Labels.Label, comArg: ViewerClasses.Viewer, subsRangeLabel: Labels.Label, looksMatchLabel: Labels.Label, looksLabel: Labels.Label, literalLabel: Labels.Label, caseLabel: Labels.Label, wordLabel: Labels.Label, caretLooksLabel: Labels.Label, typeNodeLabel: Labels.Label, styleNodeLabel: Labels.Label, finder: TreeFind.Finder, varRuns: TextLooks.Runs, varRope: Rope.ROPE, layout: EditToolBuilder.Layout ]; SubsInfo: TYPE = REF SubsInfoRec; SubsInfoRec: TYPE = RECORD [ substitute: BOOLEAN, searchLooks, targetLooks, sourceLooks: TextLooks.Looks, last: TextNode.Ref, lastLen, sourceLen: TextNode.Offset, sourceRope, styleRope: Rope.ROPE, sourceRuns: TextLooks.Runs, nameRope: REF substr node Rope.RopeRep, sourceType: TextNode.TypeName, sourceStyle: NameSymbolTable.Name, sourceComment: BOOLEAN, rdr: RopeReader.Ref, event: UndoEvent.Ref ]; editTool: ViewerClasses.Viewer; mainToolInfo: Info; Event: TYPE = UndoEvent.Ref; tSel: TEditDocument.Selection; ChangeState: PROC [flag: BOOLEAN, trueList, falseList: LIST OF REF]; CycleTriple: PROC [state: [0..2], list0, list1, list2: LIST OF REF]; SavePSel: PROC; -- if pSel is not in data field of Edit Tool, save it for later FixPSel: PROC; -- if pSel is in data field of Edit Tool, restore prior DoSubstituteMenuButton, DoYesMenuButton, DoNoMenuButton, DoItMenuButton, DoCountMenuButton, DoSearchMenuButton: Menus.MenuProc; BuildSearchEntries, BuildSearchButtons, BuildTargetEntry: PROC [info: Info]; Search: PROC [whichDir: TiogaOps.SearchDir, info: Info]; TrySearch: PROC [whichDir: TiogaOps.SearchDir, info: Info] RETURNS [found: BOOL]; CheckPSel: PROC [pSel: TEditDocument.Selection, typescriptOK: BOOL _ TRUE] RETURNS [ok: BOOLEAN]; GetPatternNode: PROC [info: Info] RETURNS [pattern: TextNode.RefTextNode]; Extend: PROC[info: Info, forward: BOOLEAN, searchLooks: TextLooks.Looks, where: TextNode.RefTextNode, at, atEnd: TextNode.Offset, last: TextNode.Ref _ NIL, lastLen: TextNode.Offset _ TextNode.MaxLen] RETURNS [newAt, newAtEnd: TextNode.Offset]; ReportPatternError: PROC [ec: TextFind.PatternErrorCode]; withinSel: [0..2] = 0; afterSel: [0..2] = 1; entireDoc: [0..2] = 2; GetLooksAndPatternInfo: PROC [pattern: TextNode.RefTextNode, info: Info] RETURNS [pat: TextNode.RefTextNode, lit: BOOLEAN, searchLooks: TextLooks.Looks, type: TextNode.TypeName, style: NameSymbolTable.Name, commentControl: TreeFind.CommentControl]; BuildSourceEntry, BuildDoItEntries, BuildOperationEntry, BuildInitCapEntry, BuildOperationField, BuildGetAndSetOpsEntries, BuildFileListEntries, BuildComNumField, BuildSubstituteEntry, BuildPatternDocEntry, BuildMiniPatternDocEntry: PROC [info: Info]; GetOps: PROC [info: Info] RETURNS [list: LIST OF REF ANY]; DoOpsCom: PROC [info: Info]; BuildSortButtons: PROC [info: Info]; sortText: [0..2] = 0; sortLines: [0..2] = 1; sortBranches: [0..2] = 2; BuildLooksButtons: PROC [info: Info]; BuildTypeButtons: PROC [info: Info]; BuildStyleButtons: PROC [info: Info]; BuildPropertyButtons: PROC [info: Info]; BuildExtraButtons: PROC [info: Info]; BuildExtraOverflow: PROC [info: Info]; DoList: PROC [list: LIST OF REF ANY, typescriptOK: BOOL _ TRUE]; DoList2: PROC [list: LIST OF REF ANY, typescriptOK: BOOL _ TRUE]; }... ZEditToolPrivate.mesa Edited by Paxton on December 30, 1982 10:21 am Edited by McGregor on June 11, 1982 1:50 pm Russ Atkinson, July 22, 1983 11:09 am -- command registration stuff -- general stuff -- Menu procs -- Search related stuff -- Substitute related stuff -- Sort related stuff -- Looks related stuff -- Miscellaneous related stuff Κθ˜šΟc™Jš.™.Jš+™+Jš%™%—J˜šΟk ˜ J˜J˜J˜J˜J˜J˜J˜ J˜J˜ J˜ J˜ J˜ J˜ J˜ J˜ J˜J˜—šœžœ˜#Jšžœ ˜—J˜Jš™J˜JšΟnœžœžœžœžœžœžœ˜NJ˜Jš™J˜šŸœžœ˜Jš œžœžœžœžœ˜%Jšœ žœžœ˜Jšœžœ˜$J˜—Jšœ žœ˜J˜Jšœ žœžœ˜Jšœžœ˜Jšœžœ˜J˜Jšœ žœ ˜J˜J˜J˜J˜Jšœžœžœ ˜šœ žœžœ˜Jšœ žœžœžœ˜+J˜$Jšœ ž œ˜J˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœžœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœžœ˜Jšœ žœ˜J˜Jšœžœ˜J˜Jšœ žœ˜J˜J˜J˜J˜ J˜ J˜"J˜#J˜"J˜#J˜%J˜!J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜Jšœžœ˜J˜!J˜—Jšœ žœžœ ˜!šœ žœžœ˜Jšœ žœ˜J˜7J˜J˜$Jšœžœ˜!J˜Jšœ žœ˜'J˜J˜"Jšœžœ˜J˜J˜J˜—J˜J˜J˜J˜Jšœžœ˜J˜J˜J˜Jš Ÿ œžœžœžœžœžœ˜DJ˜Jš Ÿ œžœ&žœžœžœ˜DJ˜JšŸœžœ?˜OJ˜JšŸœžœ7˜FJ˜Jš ™ J˜˜8J˜FJ˜—Jš™J˜Jšœ(Ÿœžœ˜LJ˜JšŸœžœ,˜8JšŸ œžœ,žœ žœ˜QJ˜šŸ œžœ/žœžœ˜JJšžœžœ˜J˜—JšŸœžœžœ!˜JJ˜šŸœžœžœ˜HJ˜8Jšœžœ-˜EJšžœ$˜+J˜—JšŸœžœ!˜9J˜Jš™J˜J˜J˜J˜J˜šŸœžœ,˜Hšžœ˜#Jšœžœ˜ J˜J˜J˜J˜)J˜——codešœΞŸœžœ˜ϋJ˜—JšŸœžœžœžœžœžœžœ˜:J˜JšŸœžœ˜J˜Jš™J˜JšŸœžœ˜$J˜J˜J˜J˜J˜Jš™J˜JšŸœžœ˜%J˜Jš™J˜JšŸœžœ˜$J˜JšŸœžœ˜%J˜JšŸœžœ˜(J˜JšŸœžœ˜%J˜JšŸœžœ˜&J˜JšŸœžœžœžœžœžœžœžœ˜@J˜JšŸœžœžœžœžœžœžœžœ˜AJ˜J˜—…—>€