Modulecursor-0.3.2.0Haskell2010
Cursor.Simple.Tree
Synopsis
- type TreeCursor
- data TreeAbove
- value singletonTreeCursor
- value makeTreeCursor
- value makeNodeTreeCursor
- value makeTreeCursorWithSelection
- value rebuildTreeCursor
- value drawTreeCursor
- value mapTreeCursor
- value treeCursorAboveL
- value treeCursorCurrentL
- value treeCursorBelowL
- value treeAboveLeftsL
- value treeAboveAboveL
- value treeAboveNodeL
- value treeAboveRightsL
- value treeCursorWithPointer
- value treeCursorSelection
- data TreeCursorSelection
- value treeCursorSelect
- value treeCursorSelectPrev
- value treeCursorSelectNext
- value treeCursorSelectFirst
- value treeCursorSelectLast
- value treeCursorSelectAbove
- value treeCursorSelectBelowAtPos
- value treeCursorSelectBelowAtStart
- value treeCursorSelectBelowAtEnd
- value treeCursorSelectBelowAtStartRecursively
- value treeCursorSelectBelowAtEndRecursively
- value treeCursorSelectPrevOnSameLevel
- value treeCursorSelectNextOnSameLevel
- value treeCursorSelectFirstOnSameLevel
- value treeCursorSelectLastOnSameLevel
- value treeCursorSelectAbovePrev
- value treeCursorSelectAboveNext
- value treeCursorOpenCurrentForest
- value treeCursorCloseCurrentForest
- value treeCursorToggleCurrentForest
- value treeCursorOpenCurrentForestRecursively
- value treeCursorToggleCurrentForestRecursively
- value treeCursorInsert
- value treeCursorInsertAndSelect
- value treeCursorInsertNodeSingleAndSelect
- value treeCursorInsertNodeAndSelect
- value treeCursorAppend
- value treeCursorAppendAndSelect
- value treeCursorAppendNodeSingleAndSelect
- value treeCursorAppendNodeAndSelect
- value treeCursorAddChildAtPos
- value treeCursorAddChildAtStart
- value treeCursorAddChildAtEnd
- value treeCursorAddChildAtPosAndSelect
- value treeCursorAddChildAtStartAndSelect
- value treeCursorAddChildAtEndAndSelect
- value treeCursorAddChildNodeSingleAtPosAndSelect
- value treeCursorAddChildNodeSingleAtStartAndSelect
- value treeCursorAddChildNodeSingleAtEndAndSelect
- value treeCursorAddChildNodeAtPosAndSelect
- value treeCursorAddChildNodeAtStartAndSelect
- value treeCursorAddChildNodeAtEndAndSelect
- value treeCursorDeleteSubTreeAndSelectPrevious
- value treeCursorDeleteSubTreeAndSelectNext
- value treeCursorDeleteSubTreeAndSelectAbove
- value treeCursorRemoveSubTree
- value treeCursorDeleteSubTree
- value treeCursorDeleteElemAndSelectPrevious
- value treeCursorDeleteElemAndSelectNext
- value treeCursorDeleteElemAndSelectAbove
- value treeCursorRemoveElem
- value treeCursorDeleteElem
- value treeCursorSwapPrev
- value treeCursorSwapNext
- data SwapResult
- value treeCursorPromoteElem
- data PromoteElemResult
- value treeCursorPromoteSubTree
- data PromoteResult
- value treeCursorDemoteElem
- value treeCursorDemoteSubTree
- data DemoteResult
- value treeCursorDemoteElemUnder
- value treeCursorDemoteSubTreeUnder
- data CTree
- data CForest
- value makeCTree
- value cTree
- value rebuildCTree
- Packagecursor-0.3.2.0
- Exports88
- LanguageHaskell2010
- LicenceMIT
- SourceTree.hs
Constructors
TreeAbovetreeAboveLefts :: ![CTree b]treeAboveAbove :: !Maybe (TreeAbove b)treeAboveNode :: !btreeAboveRights :: ![CTree b]
Instances7Functor, Eq, Show, Generic, NFData, Validity, …
Functor TreeAboveDefined in cursor-0.3.2.0 · Cursor.Tree.TypesEq b => Eq (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesShow b => Show (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesGeneric (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesNFData b => NFData (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesValidity b => Validity (TreeAbove b)Defined in cursor-0.3.2.0 · Cursor.Tree.Typestype Rep (TreeAbove b) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Types"TreeAbove"
"Cursor.Tree.Types"
"cursor-0.3.2.0-Goc09bEWCK1ISEU87uNjFO"
'False) (C1 ('MetaCons"TreeAbove"
'PrefixI 'True) ((S1 ('MetaSel ('Just"treeAboveLefts"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [CTree b]) :*: S1 ('MetaSel ('Just"treeAboveAbove"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe (TreeAbove b)))) :*: (S1 ('MetaSel ('Just"treeAboveNode"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"treeAboveRights"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [CTree b]))))
Constructors
Instances6Eq, Show, Generic, NFData, Validity, Rep
Eq TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.TypesShow TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.TypesGeneric TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.TypesNFData TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.TypesValidity TreeCursorSelectionDefined in cursor-0.3.2.0 · Cursor.Tree.Typestype Rep TreeCursorSelection = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Types"TreeCursorSelection"
"Cursor.Tree.Types"
"cursor-0.3.2.0-Goc09bEWCK1ISEU87uNjFO"
'False) (C1 ('MetaCons"SelectNode"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SelectChild"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TreeCursorSelection)))
Go back and down as far as necessary to find a previous element on a level below
Go up as far as necessary to find a next element on a level above and forward
Note: This will fail if there is a next node on the same level or any node below the current node
Swaps the current node with the previous node on the same level
Example:
Before:
p
|- a
|- b <--After:
p
|- b <--
|- aSwaps the current node with the next node on the same level
Example:
Before:
p
|- a <--
|- bAfter:
p
|- b
|- a <--Constructors
Instances7Functor, Eq, Show, Generic, NFData, Validity, …
Functor SwapResultDefined in cursor-0.3.2.0 · Cursor.Tree.SwapEq a => Eq (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.SwapShow a => Show (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.SwapGeneric (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.SwapNFData a => NFData (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.SwapValidity a => Validity (SwapResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.Swaptype Rep (SwapResult a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Swap"SwapResult"
"Cursor.Tree.Swap"
"cursor-0.3.2.0-Goc09bEWCK1ISEU87uNjFO"
'False) (C1 ('MetaCons"SwapperIsTopNode"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NoSiblingsToSwapWith"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Swapped"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))
Instances9Monad, Functor, Applicative, Eq, Show, Generic, …
Monad PromoteElemResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteFunctor PromoteElemResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteApplicative PromoteElemResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteEq a => Eq (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteShow a => Show (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteGeneric (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteNFData a => NFData (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteValidity a => Validity (PromoteElemResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.Promotetype Rep (PromoteElemResult a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Promote"PromoteElemResult"
"Cursor.Tree.Promote"
"cursor-0.3.2.0-Goc09bEWCK1ISEU87uNjFO"
'False) ((C1 ('MetaCons"CannotPromoteTopElem"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NoGrandparentToPromoteElemUnder"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"NoSiblingsToAdoptChildren"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PromotedElem"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))
Constructors
Instances9Monad, Functor, Applicative, Eq, Show, Generic, …
Monad PromoteResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteFunctor PromoteResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteApplicative PromoteResultDefined in cursor-0.3.2.0 · Cursor.Tree.PromoteEq a => Eq (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteShow a => Show (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteGeneric (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteNFData a => NFData (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.PromoteValidity a => Validity (PromoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.Promotetype Rep (PromoteResult a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Promote"PromoteResult"
"Cursor.Tree.Promote"
"cursor-0.3.2.0-Goc09bEWCK1ISEU87uNjFO"
'False) (C1 ('MetaCons"CannotPromoteTopNode"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NoGrandparentToPromoteUnder"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Promoted"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))
Constructors
Instances7Functor, Eq, Show, Generic, NFData, Validity, …
Functor DemoteResultDefined in cursor-0.3.2.0 · Cursor.Tree.DemoteEq a => Eq (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.DemoteShow a => Show (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.DemoteGeneric (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.DemoteNFData a => NFData (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.DemoteValidity a => Validity (DemoteResult a)Defined in cursor-0.3.2.0 · Cursor.Tree.Demotetype Rep (DemoteResult a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Demote"DemoteResult"
"Cursor.Tree.Demote"
"cursor-0.3.2.0-Goc09bEWCK1ISEU87uNjFO"
'False) (C1 ('MetaCons"CannotDemoteTopNode"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NoSiblingsToDemoteUnder"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Demoted"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))
Demotes the current node to the level of its children, by adding two roots. One for the current node and one for its children that are left behind.
Example:
Before:
p
|- a <--
|- bAfter:
p
|- <given element 1>
| |- a <--
|- <given element 2>
| |- bDemotes the current subtree to the level of its children, by adding a root.
Example:
Before:
a <--
|- bAfter:
<given element>
|- a <--
|- bInstances9Functor, Foldable, Traversable, Eq, Show, Generic, …
Functor CTreeDefined in cursor-0.3.2.0 · Cursor.Tree.TypesFoldable CTreeDefined in cursor-0.3.2.0 · Cursor.Tree.TypesTraversable CTreeDefined in cursor-0.3.2.0 · Cursor.Tree.TypesEq a => Eq (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesShow a => Show (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesGeneric (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesNFData a => NFData (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesValidity a => Validity (CTree a)Defined in cursor-0.3.2.0 · Cursor.Tree.Typestype Rep (CTree a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Types"CTree"
"Cursor.Tree.Types"
"cursor-0.3.2.0-Goc09bEWCK1ISEU87uNjFO"
'False) (C1 ('MetaCons"CNode"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CForest a))))
Instances9Functor, Foldable, Traversable, Eq, Show, Generic, …
Functor CForestDefined in cursor-0.3.2.0 · Cursor.Tree.TypesFoldable CForestDefined in cursor-0.3.2.0 · Cursor.Tree.TypesTraversable CForestDefined in cursor-0.3.2.0 · Cursor.Tree.TypesEq a => Eq (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesShow a => Show (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesGeneric (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesNFData a => NFData (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.TypesValidity a => Validity (CForest a)Defined in cursor-0.3.2.0 · Cursor.Tree.Typestype Rep (CForest a) = D1 ('MetaDataDefined in cursor-0.3.2.0 · Cursor.Tree.Types"CForest"
"Cursor.Tree.Types"
"cursor-0.3.2.0-Goc09bEWCK1ISEU87uNjFO"
'False) (C1 ('MetaCons"EmptyCForest"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ClosedForest"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (Tree a)))) :+: C1 ('MetaCons"OpenForest"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NonEmpty (CTree a))))))