| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Agda.Interaction.Highlighting.Precise
Description
Types used for precise syntax highlighting.
- data Aspect
- data NameKind
- data OtherAspect
- data Aspects = Aspects {
- aspect :: Maybe Aspect
- otherAspects :: [OtherAspect]
- note :: Maybe String
- definitionSite :: Maybe (TopLevelModuleName, Int)
- data File
- type HighlightingInfo = CompressedFile
- singleton :: Ranges -> Aspects -> File
- several :: [Ranges] -> Aspects -> File
- smallestPos :: File -> Maybe Int
- toMap :: File -> IntMap Aspects
- newtype CompressedFile = CompressedFile {}
- compressedFileInvariant :: CompressedFile -> Bool
- compress :: File -> CompressedFile
- decompress :: CompressedFile -> File
- noHighlightingInRange :: Ranges -> CompressedFile -> CompressedFile
- singletonC :: Ranges -> Aspects -> CompressedFile
- severalC :: [Ranges] -> Aspects -> CompressedFile
- splitAtC :: Int -> CompressedFile -> (CompressedFile, CompressedFile)
- smallestPosC :: CompressedFile -> Maybe Int
- tests :: IO Bool
Files
Syntactic aspects of the code. (These cannot overlap.)
They can be obtained from the lexed tokens already,
except for the NameKind.
NameKinds are figured our during scope checking.
data OtherAspect Source
Other aspects, generated by type checking.
(These can overlap with each other and with Aspects.)
Constructors
| Error | |
| DottedPattern | |
| UnsolvedMeta | |
| UnsolvedConstraint | Unsolved constraint not connected to meta-variable. This could for instance be an emptyness constraint. |
| TerminationProblem | |
| IncompletePattern | When this constructor is used it is probably a good idea to
include a |
| TypeChecks | Code which is being type-checked. |
Instances
| Bounded OtherAspect Source | |
| Enum OtherAspect Source | |
| Eq OtherAspect Source | |
| Show OtherAspect Source | |
| CoArbitrary OtherAspect Source | |
| Arbitrary OtherAspect Source | |
| EmbPrj OtherAspect Source |
Meta information which can be associated with a character/character range.
Constructors
| Aspects | |
Fields
| |
A File is a mapping from file positions to meta information.
The first position in the file has number 1.
type HighlightingInfo = CompressedFile Source
Syntax highlighting information.
Creation
singleton :: Ranges -> Aspects -> File Source
is a file whose positions are those in singleton rs mrs,
and in which every position is associated with m.
Inspection
toMap :: File -> IntMap Aspects Source
Convert the File to a map from file positions (counting from 1)
to meta information.
Compressed files
compressedFileInvariant :: CompressedFile -> Bool Source
Invariant for compressed files.
Note that these files are not required to be maximally
compressed, because ranges are allowed to be empty, and the
Aspectss in adjacent ranges are allowed to be equal.
compress :: File -> CompressedFile Source
Compresses a file by merging consecutive positions with equal meta information into longer ranges.
decompress :: CompressedFile -> File Source
Decompresses a compressed file.
noHighlightingInRange :: Ranges -> CompressedFile -> CompressedFile Source
Clear any highlighting info for the given ranges. Used to make sure unsolved meta highlighting overrides error highlighting.
Creation
singletonC :: Ranges -> Aspects -> CompressedFile Source
is a file whose positions are those in singletonC rs mrs,
and in which every position is associated with m.
severalC :: [Ranges] -> Aspects -> CompressedFile Source
Like singletonR, but with a list of Ranges instead of a
single one.
splitAtC :: Int -> CompressedFile -> (CompressedFile, CompressedFile) Source
splitAtC p f splits the compressed file f into (f1, f2),
where all the positions in f1 are < p, and all the positions
in f2 are >= p.
Inspection
smallestPosC :: CompressedFile -> Maybe Int Source
Returns the smallest position, if any, in the CompressedFile.