Safe Haskell | None |
---|---|
Language | Haskell2010 |
Agda.Interaction.Highlighting.Precise
Description
Types used for precise syntax highlighting.
Synopsis
- data Aspect
- data NameKind
- data OtherAspect
- data Aspects = Aspects {}
- data DefinitionSite = DefinitionSite {}
- data TokenBased
- newtype RangePair = RangePair {}
- rangePairInvariant :: RangePair -> Bool
- newtype PositionMap = PositionMap {}
- newtype DelayedMerge hl = DelayedMerge (Endo [hl])
- delayedMergeInvariant :: (hl -> Bool) -> DelayedMerge hl -> Bool
- type HighlightingInfo = RangeMap Aspects
- highlightingInfoInvariant :: HighlightingInfo -> Bool
- type HighlightingInfoBuilder = DelayedMerge RangePair
- highlightingInfoBuilderInvariant :: HighlightingInfoBuilder -> Bool
- parserBased :: Aspects
- kindOfNameToNameKind :: KindOfName -> NameKind
- class IsBasicRangeMap a m | m -> a where
- several :: (IsBasicRangeMap a hl, Monoid hl) => [Ranges] -> a -> hl
- class Convert a b where
- convert :: a -> b
- insideAndOutside :: Range -> RangeMap a -> (RangeMap a, RangeMap a)
- restrictTo :: Range -> RangeMap a -> RangeMap a
Highlighting information
Constructors
Comment | |
Keyword | |
String | |
Number | |
Hole | |
Symbol | Symbols like forall, =, ->, etc. |
PrimitiveType | Things like Set and Prop. |
Name (Maybe NameKind) Bool | Is the name an operator part? |
Pragma | Text occurring in pragmas that does not have a more specific aspect. |
Background | Non-code contents in literate Agda |
Markup | Delimiters used to separate the Agda code blocks from the other contents in literate Agda |
Instances
NameKind
s are figured out during scope checking.
Constructors
Bound | Bound variable. |
Generalizable | Generalizable variable. (This includes generalizable variables that have been generalized). |
Constructor Induction | Inductive or coinductive constructor. |
Datatype | |
Field | Record field. |
Function | |
Module | Module name. |
Postulate | |
Primitive | Primitive. |
Record | Record type. |
Argument | Named argument, like x in {x = v} |
Macro | Macro. |
Instances
EmbPrj NameKind Source # | |||||
Semigroup NameKind Source # | Some | ||||
Generic NameKind Source # | |||||
Defined in Agda.Syntax.Common.Aspect Associated Types
| |||||
Show NameKind Source # | |||||
NFData NameKind Source # | |||||
Defined in Agda.Syntax.Common.Aspect | |||||
Eq NameKind Source # | |||||
type Rep NameKind Source # | |||||
Defined in Agda.Syntax.Common.Aspect type Rep NameKind = D1 ('MetaData "NameKind" "Agda.Syntax.Common.Aspect" "Agda-2.6.4.3-inplace" 'False) (((C1 ('MetaCons "Bound" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Generalizable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Constructor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Induction)))) :+: (C1 ('MetaCons "Datatype" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Field" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Function" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Module" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Postulate" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Primitive" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Record" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Argument" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Macro" 'PrefixI 'False) (U1 :: Type -> Type))))) |
data OtherAspect Source #
Other aspects, generated by type checking.
(These can overlap with each other and with Aspect
s.)
Constructors
Error | |
ErrorWarning | A warning that is considered fatal in the end. |
DottedPattern | |
UnsolvedMeta | |
UnsolvedConstraint | Unsolved constraint not connected to meta-variable. This could for instance be an emptyness constraint. |
TerminationProblem | |
PositivityProblem | |
Deadcode | Used for highlighting unreachable clauses, unreachable RHS (because of an absurd pattern), etc. |
ShadowingInTelescope | Used for shadowed repeated variable names in telescopes. |
CoverageProblem | |
IncompletePattern | When this constructor is used it is probably a good idea to
include a |
TypeChecks | Code which is being type-checked. |
MissingDefinition | Function declaration without matching definition NB: We put CatchallClause last so that it is overwritten by other, more important, aspects in the emacs mode. |
CatchallClause | |
ConfluenceProblem |
Instances
EmbPrj OtherAspect Source # | |||||
Bounded OtherAspect Source # | |||||
Defined in Agda.Syntax.Common.Aspect | |||||
Enum OtherAspect Source # | |||||
Defined in Agda.Syntax.Common.Aspect Methods succ :: OtherAspect -> OtherAspect # pred :: OtherAspect -> OtherAspect # toEnum :: Int -> OtherAspect # fromEnum :: OtherAspect -> Int # enumFrom :: OtherAspect -> [OtherAspect] # enumFromThen :: OtherAspect -> OtherAspect -> [OtherAspect] # enumFromTo :: OtherAspect -> OtherAspect -> [OtherAspect] # enumFromThenTo :: OtherAspect -> OtherAspect -> OtherAspect -> [OtherAspect] # | |||||
Generic OtherAspect Source # | |||||
Defined in Agda.Syntax.Common.Aspect Associated Types
| |||||
Show OtherAspect Source # | |||||
Defined in Agda.Syntax.Common.Aspect Methods showsPrec :: Int -> OtherAspect -> ShowS # show :: OtherAspect -> String # showList :: [OtherAspect] -> ShowS # | |||||
NFData OtherAspect Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise Methods rnf :: OtherAspect -> () # | |||||
Eq OtherAspect Source # | |||||
Defined in Agda.Syntax.Common.Aspect | |||||
Ord OtherAspect Source # | |||||
Defined in Agda.Syntax.Common.Aspect Methods compare :: OtherAspect -> OtherAspect -> Ordering # (<) :: OtherAspect -> OtherAspect -> Bool # (<=) :: OtherAspect -> OtherAspect -> Bool # (>) :: OtherAspect -> OtherAspect -> Bool # (>=) :: OtherAspect -> OtherAspect -> Bool # max :: OtherAspect -> OtherAspect -> OtherAspect # min :: OtherAspect -> OtherAspect -> OtherAspect # | |||||
type Rep OtherAspect Source # | |||||
Defined in Agda.Syntax.Common.Aspect type Rep OtherAspect = D1 ('MetaData "OtherAspect" "Agda.Syntax.Common.Aspect" "Agda-2.6.4.3-inplace" 'False) (((C1 ('MetaCons "Error" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ErrorWarning" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DottedPattern" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UnsolvedMeta" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnsolvedConstraint" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TerminationProblem" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PositivityProblem" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "Deadcode" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ShadowingInTelescope" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CoverageProblem" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IncompletePattern" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TypeChecks" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MissingDefinition" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CatchallClause" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConfluenceProblem" 'PrefixI 'False) (U1 :: Type -> Type))))) |
Syntactic aspects of the code. (These cannot overlap.)
Meta information which can be associated with a character/character range.
Constructors
Aspects | |
Fields
|
Instances
EncodeTCM Doc Source # | |||||
Underscore Doc Source # | |||||
Defined in Agda.Syntax.Common | |||||
ReportS Doc Source # | |||||
Defined in Agda.TypeChecking.Monad.Debug Methods reportS :: MonadDebug m => VerboseKey -> VerboseLevel -> Doc -> m () Source # | |||||
TraceS Doc Source # | |||||
Defined in Agda.TypeChecking.Monad.Debug Methods traceS :: MonadDebug m => VerboseKey -> VerboseLevel -> Doc -> m c -> m c Source # | |||||
EmbPrj Aspects Source # | |||||
EmbPrj Doc Source # | |||||
Monoid Aspects Source # | |||||
Semigroup Aspects Source # | |||||
Generic Aspects Source # | |||||
Defined in Agda.Syntax.Common.Aspect Associated Types
| |||||
Show Aspects Source # | |||||
NFData Aspects Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise | |||||
Eq Aspects Source # | |||||
ToJSON Doc Source # | |||||
IsBasicRangeMap Aspects PositionMap Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> Aspects -> PositionMap Source # toMap :: PositionMap -> IntMap Aspects Source # toList :: PositionMap -> [(Range, Aspects)] Source # coveringRange :: PositionMap -> Maybe Range Source # | |||||
IsBasicRangeMap Aspects RangePair Source # | |||||
Convert PositionMap (RangeMap Aspects) Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise | |||||
IsBasicRangeMap Aspects (DelayedMerge PositionMap) Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> Aspects -> DelayedMerge PositionMap Source # toMap :: DelayedMerge PositionMap -> IntMap Aspects Source # toList :: DelayedMerge PositionMap -> [(Range, Aspects)] Source # coveringRange :: DelayedMerge PositionMap -> Maybe Range Source # | |||||
IsBasicRangeMap Aspects (DelayedMerge RangePair) Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise | |||||
ReportS (TCM Doc) Source # | |||||
Defined in Agda.TypeChecking.Monad.Debug Methods reportS :: MonadDebug m => VerboseKey -> VerboseLevel -> TCM Doc -> m () Source # | |||||
ReportS [Doc] Source # | |||||
Defined in Agda.TypeChecking.Monad.Debug Methods reportS :: MonadDebug m => VerboseKey -> VerboseLevel -> [Doc] -> m () Source # | |||||
ReportS [TCM Doc] Source # | |||||
Defined in Agda.TypeChecking.Monad.Debug Methods reportS :: MonadDebug m => VerboseKey -> VerboseLevel -> [TCM Doc] -> m () Source # | |||||
TraceS (TCM Doc) Source # | |||||
Defined in Agda.TypeChecking.Monad.Debug Methods traceS :: MonadDebug m => VerboseKey -> VerboseLevel -> TCM Doc -> m c -> m c Source # | |||||
TraceS [Doc] Source # | |||||
Defined in Agda.TypeChecking.Monad.Debug Methods traceS :: MonadDebug m => VerboseKey -> VerboseLevel -> [Doc] -> m c -> m c Source # | |||||
TraceS [TCM Doc] Source # | |||||
Defined in Agda.TypeChecking.Monad.Debug Methods traceS :: MonadDebug m => VerboseKey -> VerboseLevel -> [TCM Doc] -> m c -> m c Source # | |||||
Null (AbsToCon Doc) Source # | |||||
Null (TCM Doc) Source # | |||||
IsString (AbsToCon Doc) Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete Methods fromString :: String -> AbsToCon Doc # | |||||
Semigroup (AbsToCon Doc) Source # | |||||
Semigroup (TCM Doc) Source # | This instance is more specific than a generic instance
| ||||
Convert (DelayedMerge PositionMap) (RangeMap Aspects) Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise Methods convert :: DelayedMerge PositionMap -> RangeMap Aspects Source # | |||||
Convert (DelayedMerge RangePair) (RangeMap Aspects) Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise | |||||
Convert (RangeMap Aspects) (RangeMap Aspects) Source # | |||||
Monad m => Null (PureConversionT m Doc) Source # | |||||
Defined in Agda.TypeChecking.Conversion.Pure | |||||
type Rep Aspects Source # | |||||
Defined in Agda.Syntax.Common.Aspect type Rep Aspects = D1 ('MetaData "Aspects" "Agda.Syntax.Common.Aspect" "Agda-2.6.4.3-inplace" 'False) (C1 ('MetaCons "Aspects" 'PrefixI 'True) ((S1 ('MetaSel ('Just "aspect") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Aspect)) :*: S1 ('MetaSel ('Just "otherAspects") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set OtherAspect))) :*: (S1 ('MetaSel ('Just "note") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "definitionSite") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DefinitionSite)) :*: S1 ('MetaSel ('Just "tokenBased") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TokenBased))))) |
data DefinitionSite Source #
Constructors
DefinitionSite | |
Fields
|
Instances
EmbPrj DefinitionSite Source # | |||||
Semigroup DefinitionSite Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise Methods (<>) :: DefinitionSite -> DefinitionSite -> DefinitionSite # sconcat :: NonEmpty DefinitionSite -> DefinitionSite # stimes :: Integral b => b -> DefinitionSite -> DefinitionSite # | |||||
Generic DefinitionSite Source # | |||||
Defined in Agda.Syntax.Common.Aspect Associated Types
Methods from :: DefinitionSite -> Rep DefinitionSite x # to :: Rep DefinitionSite x -> DefinitionSite # | |||||
Show DefinitionSite Source # | |||||
Defined in Agda.Syntax.Common.Aspect Methods showsPrec :: Int -> DefinitionSite -> ShowS # show :: DefinitionSite -> String # showList :: [DefinitionSite] -> ShowS # | |||||
NFData DefinitionSite Source # | |||||
Defined in Agda.Interaction.Highlighting.Precise Methods rnf :: DefinitionSite -> () # | |||||
Eq DefinitionSite Source # | |||||
Defined in Agda.Syntax.Common.Aspect Methods (==) :: DefinitionSite -> DefinitionSite -> Bool # (/=) :: DefinitionSite -> DefinitionSite -> Bool # | |||||
type Rep DefinitionSite Source # | |||||
Defined in Agda.Syntax.Common.Aspect type Rep DefinitionSite = D1 ('MetaData "DefinitionSite" "Agda.Syntax.Common.Aspect" "Agda-2.6.4.3-inplace" 'False) (C1 ('MetaCons "DefinitionSite" 'PrefixI 'True) ((S1 ('MetaSel ('Just "defSiteModule") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TopLevelModuleName' Range)) :*: S1 ('MetaSel ('Just "defSitePos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "defSiteHere") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "defSiteAnchor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))))) |
data TokenBased Source #
Is the highlighting "token-based", i.e. based only on information from the lexer?
Constructors
TokenBased | |
NotOnlyTokenBased |
Instances
EncodeTCM TokenBased Source # | |
Defined in Agda.Interaction.Highlighting.JSON | |
EmbPrj TokenBased Source # | |
Monoid TokenBased Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods mempty :: TokenBased # mappend :: TokenBased -> TokenBased -> TokenBased # mconcat :: [TokenBased] -> TokenBased # | |
Semigroup TokenBased Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods (<>) :: TokenBased -> TokenBased -> TokenBased # sconcat :: NonEmpty TokenBased -> TokenBased # stimes :: Integral b => b -> TokenBased -> TokenBased # | |
Show TokenBased Source # | |
Defined in Agda.Syntax.Common.Aspect Methods showsPrec :: Int -> TokenBased -> ShowS # show :: TokenBased -> String # showList :: [TokenBased] -> ShowS # | |
Eq TokenBased Source # | |
Defined in Agda.Syntax.Common.Aspect | |
ToJSON TokenBased Source # | |
Defined in Agda.Interaction.Highlighting.JSON Methods toJSON :: TokenBased -> Value # toEncoding :: TokenBased -> Encoding # toJSONList :: [TokenBased] -> Value # toEncodingList :: [TokenBased] -> Encoding # omitField :: TokenBased -> Bool # |
A limited kind of syntax highlighting information: a pair
consisting of Ranges
and Aspects
.
Note the invariant which RangePair
s should satisfy
(rangePairInvariant
).
Instances
Show RangePair Source # | |
NFData RangePair Source # | |
Defined in Agda.Interaction.Highlighting.Precise | |
IsBasicRangeMap Aspects RangePair Source # | |
IsBasicRangeMap Aspects (DelayedMerge RangePair) Source # | |
Defined in Agda.Interaction.Highlighting.Precise | |
Convert (DelayedMerge RangePair) PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods | |
Convert (DelayedMerge RangePair) (RangeMap Aspects) Source # | |
Defined in Agda.Interaction.Highlighting.Precise |
newtype PositionMap Source #
Syntax highlighting information, represented by maps from
positions to Aspects
.
The first position in the file has number 1.
Constructors
PositionMap | |
Fields |
Instances
Monoid PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods mempty :: PositionMap # mappend :: PositionMap -> PositionMap -> PositionMap # mconcat :: [PositionMap] -> PositionMap # | |
Semigroup PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods (<>) :: PositionMap -> PositionMap -> PositionMap # sconcat :: NonEmpty PositionMap -> PositionMap # stimes :: Integral b => b -> PositionMap -> PositionMap # | |
Show PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods showsPrec :: Int -> PositionMap -> ShowS # show :: PositionMap -> String # showList :: [PositionMap] -> ShowS # | |
NFData PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods rnf :: PositionMap -> () # | |
IsBasicRangeMap Aspects PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> Aspects -> PositionMap Source # toMap :: PositionMap -> IntMap Aspects Source # toList :: PositionMap -> [(Range, Aspects)] Source # coveringRange :: PositionMap -> Maybe Range Source # | |
Convert PositionMap (RangeMap Aspects) Source # | |
Defined in Agda.Interaction.Highlighting.Precise | |
IsBasicRangeMap Aspects (DelayedMerge PositionMap) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> Aspects -> DelayedMerge PositionMap Source # toMap :: DelayedMerge PositionMap -> IntMap Aspects Source # toList :: DelayedMerge PositionMap -> [(Range, Aspects)] Source # coveringRange :: DelayedMerge PositionMap -> Maybe Range Source # | |
Convert (DelayedMerge RangePair) PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods | |
Convert (DelayedMerge PositionMap) (RangeMap Aspects) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods convert :: DelayedMerge PositionMap -> RangeMap Aspects Source # |
newtype DelayedMerge hl Source #
Highlighting info with delayed merging.
Merging large sets of highlighting info repeatedly might be costly. The idea of this type is to accumulate small pieces of highlighting information, and then to merge them all at the end.
Note the invariant which values of this type should satisfy
(delayedMergeInvariant
).
Constructors
DelayedMerge (Endo [hl]) |
Instances
IsBasicRangeMap Aspects (DelayedMerge PositionMap) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> Aspects -> DelayedMerge PositionMap Source # toMap :: DelayedMerge PositionMap -> IntMap Aspects Source # toList :: DelayedMerge PositionMap -> [(Range, Aspects)] Source # coveringRange :: DelayedMerge PositionMap -> Maybe Range Source # | |
IsBasicRangeMap Aspects (DelayedMerge RangePair) Source # | |
Defined in Agda.Interaction.Highlighting.Precise | |
Semigroup a => IsBasicRangeMap a (DelayedMerge (RangeMap a)) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> a -> DelayedMerge (RangeMap a) Source # toMap :: DelayedMerge (RangeMap a) -> IntMap a Source # toList :: DelayedMerge (RangeMap a) -> [(Range, a)] Source # coveringRange :: DelayedMerge (RangeMap a) -> Maybe Range Source # | |
Monoid (DelayedMerge hl) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods mempty :: DelayedMerge hl # mappend :: DelayedMerge hl -> DelayedMerge hl -> DelayedMerge hl # mconcat :: [DelayedMerge hl] -> DelayedMerge hl # | |
Semigroup (DelayedMerge hl) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods (<>) :: DelayedMerge hl -> DelayedMerge hl -> DelayedMerge hl # sconcat :: NonEmpty (DelayedMerge hl) -> DelayedMerge hl # stimes :: Integral b => b -> DelayedMerge hl -> DelayedMerge hl # | |
Show hl => Show (DelayedMerge hl) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods showsPrec :: Int -> DelayedMerge hl -> ShowS # show :: DelayedMerge hl -> String # showList :: [DelayedMerge hl] -> ShowS # | |
Convert (DelayedMerge RangePair) PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods | |
Monoid hl => Convert (DelayedMerge hl) hl Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods convert :: DelayedMerge hl -> hl Source # | |
Convert (DelayedMerge PositionMap) (RangeMap Aspects) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods convert :: DelayedMerge PositionMap -> RangeMap Aspects Source # | |
Convert (DelayedMerge RangePair) (RangeMap Aspects) Source # | |
Defined in Agda.Interaction.Highlighting.Precise |
delayedMergeInvariant :: (hl -> Bool) -> DelayedMerge hl -> Bool Source #
Invariant for
, parametrised by the invariant
for DelayedMerge
hlhl
.
Additionally the endofunction should be extensionally equal to (fs
for some list ++
)fs
.
type HighlightingInfo = RangeMap Aspects Source #
Highlighting information.
Note the invariant which values of this type should satisfy
(highlightingInfoInvariant
).
This is a type synonym in order to make it easy to change to another representation.
highlightingInfoInvariant :: HighlightingInfo -> Bool Source #
The invariant for HighlightingInfo
.
type HighlightingInfoBuilder = DelayedMerge RangePair Source #
A type that is intended to be used when constructing highlighting information.
Note the invariant which values of this type should satisfy
(highlightingInfoBuilderInvariant
).
This is a type synonym in order to make it easy to change to another representation.
The type should be an instance of
,
IsBasicRangeMap
Aspects
Semigroup
and Monoid
, and there should be an instance of
.Convert
HighlightingInfoBuilder
HighlightingInfo
highlightingInfoBuilderInvariant :: HighlightingInfoBuilder -> Bool Source #
The invariant for HighlightingInfoBuilder
.
Additionally the endofunction should be extensionally equal to (fs
for some list ++
)fs
.
Operations
parserBased :: Aspects Source #
A variant of mempty
with tokenBased
set to
NotOnlyTokenBased
.
kindOfNameToNameKind :: KindOfName -> NameKind Source #
Conversion from classification of the scope checker.
class IsBasicRangeMap a m | m -> a where Source #
A class that is intended to make it easy to swap between different range map implementations.
Note that some RangeMap
operations are not included in this
class.
Methods
singleton :: Ranges -> a -> m Source #
The map
contains the ranges from singleton
rs xrs
, and
every position in those ranges is associated with x
.
toMap :: m -> IntMap a Source #
Converts range maps to IntMap
s from positions to values.
toList :: m -> [(Range, a)] Source #
Converts the map to a list. The ranges are non-overlapping and non-empty, and earlier ranges precede later ones in the list.
coveringRange :: m -> Maybe Range Source #
Returns the smallest range covering everything in the map (or
Nothing
, if the range would be empty).
Note that the default implementation of this operation might be inefficient.
Instances
IsBasicRangeMap Aspects PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> Aspects -> PositionMap Source # toMap :: PositionMap -> IntMap Aspects Source # toList :: PositionMap -> [(Range, Aspects)] Source # coveringRange :: PositionMap -> Maybe Range Source # | |
IsBasicRangeMap Aspects RangePair Source # | |
IsBasicRangeMap Aspects (DelayedMerge PositionMap) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> Aspects -> DelayedMerge PositionMap Source # toMap :: DelayedMerge PositionMap -> IntMap Aspects Source # toList :: DelayedMerge PositionMap -> [(Range, Aspects)] Source # coveringRange :: DelayedMerge PositionMap -> Maybe Range Source # | |
IsBasicRangeMap Aspects (DelayedMerge RangePair) Source # | |
Defined in Agda.Interaction.Highlighting.Precise | |
Semigroup a => IsBasicRangeMap a (DelayedMerge (RangeMap a)) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods singleton :: Ranges -> a -> DelayedMerge (RangeMap a) Source # toMap :: DelayedMerge (RangeMap a) -> IntMap a Source # toList :: DelayedMerge (RangeMap a) -> [(Range, a)] Source # coveringRange :: DelayedMerge (RangeMap a) -> Maybe Range Source # | |
IsBasicRangeMap a (RangeMap a) Source # | |
class Convert a b where Source #
Conversion between different types.
Instances
Convert PositionMap (RangeMap Aspects) Source # | |
Defined in Agda.Interaction.Highlighting.Precise | |
Convert (DelayedMerge RangePair) PositionMap Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods | |
Monoid hl => Convert (DelayedMerge hl) hl Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods convert :: DelayedMerge hl -> hl Source # | |
Convert (DelayedMerge PositionMap) (RangeMap Aspects) Source # | |
Defined in Agda.Interaction.Highlighting.Precise Methods convert :: DelayedMerge PositionMap -> RangeMap Aspects Source # | |
Convert (DelayedMerge RangePair) (RangeMap Aspects) Source # | |
Defined in Agda.Interaction.Highlighting.Precise | |
Convert (RangeMap Aspects) (RangeMap Aspects) Source # | |
insideAndOutside :: Range -> RangeMap a -> (RangeMap a, RangeMap a) Source #
Returns a RangeMap
overlapping the given range, as well as the
rest of the map.
Orphan instances
Monoid Aspects Source # | |
Monoid TokenBased Source # | |
Methods mempty :: TokenBased # mappend :: TokenBased -> TokenBased -> TokenBased # mconcat :: [TokenBased] -> TokenBased # | |
Semigroup Aspects Source # | |
Semigroup DefinitionSite Source # | |
Methods (<>) :: DefinitionSite -> DefinitionSite -> DefinitionSite # sconcat :: NonEmpty DefinitionSite -> DefinitionSite # stimes :: Integral b => b -> DefinitionSite -> DefinitionSite # | |
Semigroup TokenBased Source # | |
Methods (<>) :: TokenBased -> TokenBased -> TokenBased # sconcat :: NonEmpty TokenBased -> TokenBased # stimes :: Integral b => b -> TokenBased -> TokenBased # | |
NFData Aspect Source # | |
NFData Aspects Source # | |
NFData DefinitionSite Source # | |
Methods rnf :: DefinitionSite -> () # | |
NFData OtherAspect Source # | |
Methods rnf :: OtherAspect -> () # |