yi-language-0.13.1: Collection of language-related Yi libraries.

Safe HaskellNone
LanguageHaskell2010

Yi.Region

Description

This module defines the Region ADT

Synopsis

Documentation

data Region Source #

The region data type. The region is semi open: it includes the start but not the end bound. This allows simpler region-manipulation algorithms. Invariant : regionStart r <= regionEnd r

Instances

Show Region Source # 
Generic Region Source # 

Associated Types

type Rep Region :: * -> * #

Methods

from :: Region -> Rep Region x #

to :: Rep Region x -> Region #

Binary Region Source # 

Methods

put :: Region -> Put #

get :: Get Region #

putList :: [Region] -> Put #

type Rep Region Source # 
type Rep Region = D1 (MetaData "Region" "Yi.Region" "yi-language-0.13.1-5XAtNEqLtpf4cZk8F6UgUX" False) (C1 (MetaCons "Region" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "regionDirection") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Direction)) ((:*:) (S1 (MetaSel (Just Symbol "regionStart") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Point)) (S1 (MetaSel (Just Symbol "regionEnd") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Point)))))

emptyRegion :: Region Source #

The empty region

mkRegion :: Point -> Point -> Region Source #

Construct a region from its bounds, emacs style: the right bound is excluded

inRegion :: Point -> Region -> Bool Source #

True if the given point is inside the given region.

nearRegion :: Point -> Region -> Bool Source #

True if the given point is inside the given region or at the end of it.

includedRegion :: Region -> Region -> Bool Source #

Returns if a region (1st arg) is included in another (2nd arg)

intersectRegion :: Region -> Region -> Region Source #

Take the intersection of two regions

unionRegion :: Region -> Region -> Region Source #

Take the union of two regions (including what is between them)