highlighting-kate-0.2.6.1: Text/Highlighting/Kate/Definitions.hs
{- |
Module : Text.Highlighting.Kate.Definitions
Copyright : Copyright (C) 2008 John MacFarlane
License : GNU GPL, version 2 or above
Maintainer : John MacFarlane <jgm@berkeley.edu>
Stability : alpha
Portability : portable
Definitions for data structures needed by highlighting-kate.
-}
module Text.Highlighting.Kate.Definitions where
import qualified Data.Map as Map
-- | A stack of context names for each language. (Language-specific context
-- stacks must be maintained because of IncludeRules.)
type ContextStack = Map.Map String [String]
-- | State for syntax parser.
data SyntaxState = SyntaxState
{ synStContexts :: ContextStack -- ^ Stack of contexts
, synStLanguage :: String -- ^ Language being parsed
, synStCurrentLine :: String -- ^ Contents of current line
, synStCharsParsedInLine :: Int -- ^ Num characters parsed in line
, synStPrevChar :: Char -- ^ Last character parsed
, synStCaseSensitive :: Bool -- ^ Language is case-sensitive
, synStKeywordCaseSensitive :: Bool -- ^ Keywords are case-sensitive
, synStCaptures :: [String] -- ^ List of regex captures from
-- last capturing match
} deriving (Read, Show)
-- | A pair consisting of a list of attributes and some text.
type LabeledSource = ([String], String)
-- | A line of source, list of labeled source items.
type SourceLine = [LabeledSource]