monoids-0.1.17: Monoids, specialized containers and a general map/reduce frameworkSource codeContentsIndex
Portabilitynon-portable (MPTCs, OverloadedStrings)

Incrementally determine locations in a source file through local information This allows for efficient recomputation of line #s and token locations while the file is being interactively updated by storing this as a supplemental measure on a FingerTree.

The general idea is to use this as part of a measure in a FingerTree so you can use mappend to prepend a startOfFile with the file information.

module Data.Monoid.Reducer.Char
nextTab :: Int -> Int
data SourcePosition file
type SourceLine = Int
type SourceColumn = Int
sourceLine :: SourcePosition f -> Maybe SourceLine
sourceColumn :: SourcePosition f -> Maybe SourceColumn
startOfFile :: f -> SourcePosition f
showSourcePosition :: SourcePosition String -> String
module Data.Monoid.Reducer.Char
nextTab :: Int -> IntSource
Compute the location of the next standard 8-column aligned tab
data SourcePosition file Source
A Monoid of partial information about locations in a source file. This is polymorphic in the kind of information you want to maintain about each source file.
show/hide Instances
type SourceLine = IntSource
type SourceColumn = IntSource
sourceLine :: SourcePosition f -> Maybe SourceLineSource
extract partial information about the current line number if possible
sourceColumn :: SourcePosition f -> Maybe SourceColumnSource
extract partial information about the current column, even in the absence of knowledge of the source file
startOfFile :: f -> SourcePosition fSource
lift information about a source file into a starting SourcePosition for that file
showSourcePosition :: SourcePosition String -> StringSource
extract the standard format for an absolute source position
Produced by Haddock version 2.4.1