located-0.1.1.0: Source location helpers

Safe HaskellSafe
LanguageHaskell2010

Text.Location

Synopsis

Documentation

data Position Source #

Constructors

Position 

Fields

data Range source Source #

Constructors

Range 

Fields

Instances

Eq source => Eq (Range source) Source # 

Methods

(==) :: Range source -> Range source -> Bool #

(/=) :: Range source -> Range source -> Bool #

Ord source => Ord (Range source) Source # 

Methods

compare :: Range source -> Range source -> Ordering #

(<) :: Range source -> Range source -> Bool #

(<=) :: Range source -> Range source -> Bool #

(>) :: Range source -> Range source -> Bool #

(>=) :: Range source -> Range source -> Bool #

max :: Range source -> Range source -> Range source #

min :: Range source -> Range source -> Range source #

Show source => Show (Range source) Source # 

Methods

showsPrec :: Int -> Range source -> ShowS #

show :: Range source -> String #

showList :: [Range source] -> ShowS #

Generic (Range source) Source # 

Associated Types

type Rep (Range source) :: * -> * #

Methods

from :: Range source -> Rep (Range source) x #

to :: Rep (Range source) x -> Range source #

Monoid (Range source) Source # 

Methods

mempty :: Range source #

mappend :: Range source -> Range source -> Range source #

mconcat :: [Range source] -> Range source #

HasLoc (Range source) Source # 

Associated Types

type LocSource (Range source) :: * Source #

Methods

getLoc :: Range source -> Range (LocSource (Range source)) Source #

type Rep (Range source) Source # 
type Rep (Range source) = D1 (MetaData "Range" "Text.Location" "located-0.1.1.0-CnWaHv54qwOISexTJPeteJ" False) (C1 (MetaCons "Range" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "rangeSource") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe source))) ((:*:) (S1 (MetaSel (Just Symbol "rangeStart") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Position)) (S1 (MetaSel (Just Symbol "rangeEnd") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Position)))))
type LocSource (Range source) Source # 
type LocSource (Range source) = source

data Located source a Source #

Constructors

Located 

Fields

Instances

Functor (Located source) Source # 

Methods

fmap :: (a -> b) -> Located source a -> Located source b #

(<$) :: a -> Located source b -> Located source a #

Foldable (Located source) Source # 

Methods

fold :: Monoid m => Located source m -> m #

foldMap :: Monoid m => (a -> m) -> Located source a -> m #

foldr :: (a -> b -> b) -> b -> Located source a -> b #

foldr' :: (a -> b -> b) -> b -> Located source a -> b #

foldl :: (b -> a -> b) -> b -> Located source a -> b #

foldl' :: (b -> a -> b) -> b -> Located source a -> b #

foldr1 :: (a -> a -> a) -> Located source a -> a #

foldl1 :: (a -> a -> a) -> Located source a -> a #

toList :: Located source a -> [a] #

null :: Located source a -> Bool #

length :: Located source a -> Int #

elem :: Eq a => a -> Located source a -> Bool #

maximum :: Ord a => Located source a -> a #

minimum :: Ord a => Located source a -> a #

sum :: Num a => Located source a -> a #

product :: Num a => Located source a -> a #

Traversable (Located source) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Located source a -> f (Located source b) #

sequenceA :: Applicative f => Located source (f a) -> f (Located source a) #

mapM :: Monad m => (a -> m b) -> Located source a -> m (Located source b) #

sequence :: Monad m => Located source (m a) -> m (Located source a) #

Eq source => Eq (Located source a) Source # 

Methods

(==) :: Located source a -> Located source a -> Bool #

(/=) :: Located source a -> Located source a -> Bool #

Ord source => Ord (Located source a) Source # 

Methods

compare :: Located source a -> Located source a -> Ordering #

(<) :: Located source a -> Located source a -> Bool #

(<=) :: Located source a -> Located source a -> Bool #

(>) :: Located source a -> Located source a -> Bool #

(>=) :: Located source a -> Located source a -> Bool #

max :: Located source a -> Located source a -> Located source a #

min :: Located source a -> Located source a -> Located source a #

(Show source, Show a) => Show (Located source a) Source # 

Methods

showsPrec :: Int -> Located source a -> ShowS #

show :: Located source a -> String #

showList :: [Located source a] -> ShowS #

Generic (Located source a) Source # 

Associated Types

type Rep (Located source a) :: * -> * #

Methods

from :: Located source a -> Rep (Located source a) x #

to :: Rep (Located source a) x -> Located source a #

HasLoc (Located source a) Source # 

Associated Types

type LocSource (Located source a) :: * Source #

Methods

getLoc :: Located source a -> Range (LocSource (Located source a)) Source #

UnLoc a => UnLoc (Located source a) Source # 

Methods

unLoc :: Located source a -> Located source a Source #

type Rep (Located source a) Source # 
type Rep (Located source a) = D1 (MetaData "Located" "Text.Location" "located-0.1.1.0-CnWaHv54qwOISexTJPeteJ" False) (C1 (MetaCons "Located" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "locRange") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Range source))) (S1 (MetaSel (Just Symbol "locValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))
type LocSource (Located source a) Source # 
type LocSource (Located source a) = source

class UnLoc a where Source #

Remove one layer of location information.

Minimal complete definition

unLoc

Methods

unLoc :: a -> a Source #

Instances

UnLoc a => UnLoc [a] Source # 

Methods

unLoc :: [a] -> [a] Source #

UnLoc a => UnLoc (Maybe a) Source # 

Methods

unLoc :: Maybe a -> Maybe a Source #

UnLoc a => UnLoc (Located source a) Source # 

Methods

unLoc :: Located source a -> Located source a Source #

class HasLoc a where Source #

Minimal complete definition

getLoc

Associated Types

type LocSource a :: * Source #

Methods

getLoc :: a -> Range (LocSource a) Source #

Instances

HasLoc a => HasLoc [a] Source # 

Associated Types

type LocSource [a] :: * Source #

Methods

getLoc :: [a] -> Range (LocSource [a]) Source #

HasLoc a => HasLoc (Maybe a) Source # 

Associated Types

type LocSource (Maybe a) :: * Source #

Methods

getLoc :: Maybe a -> Range (LocSource (Maybe a)) Source #

HasLoc (Range source) Source # 

Associated Types

type LocSource (Range source) :: * Source #

Methods

getLoc :: Range source -> Range (LocSource (Range source)) Source #

((~) * (LocSource a) (LocSource b), HasLoc a, HasLoc b) => HasLoc (a, b) Source # 

Associated Types

type LocSource (a, b) :: * Source #

Methods

getLoc :: (a, b) -> Range (LocSource (a, b)) Source #

HasLoc (Located source a) Source # 

Associated Types

type LocSource (Located source a) :: * Source #

Methods

getLoc :: Located source a -> Range (LocSource (Located source a)) Source #

((~) * (LocSource a) (LocSource b), (~) * (LocSource b) (LocSource c), HasLoc a, HasLoc b, HasLoc c) => HasLoc (a, b, c) Source # 

Associated Types

type LocSource (a, b, c) :: * Source #

Methods

getLoc :: (a, b, c) -> Range (LocSource (a, b, c)) Source #

((~) * (LocSource a) (LocSource b), (~) * (LocSource b) (LocSource c), (~) * (LocSource c) (LocSource d), HasLoc a, HasLoc b, HasLoc c, HasLoc d) => HasLoc (a, b, c, d) Source # 

Associated Types

type LocSource (a, b, c, d) :: * Source #

Methods

getLoc :: (a, b, c, d) -> Range (LocSource (a, b, c, d)) Source #

at :: HasLoc loc => a -> loc -> Located (LocSource loc) a Source #

thing :: Located source a -> a Source #

movePos Source #

Arguments

:: Int64

Tab size

-> Char 
-> Position 
-> Position 

Move a position by the width of a character.

inRange :: Range source -> Position -> Bool Source #

rangeText :: Int -> Range source -> Text -> Text Source #

The lines that the region describes, with optional additional lines of context.