s2      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                               !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred*The system-default color of the engine used. e.g. in Gtk this should pick whatever the user has chosen as default color (background or forground depending on usage) for the text.kA StyleName determines what style to use, taking into account the set of rendering preferences given by a #. Typically, style names will be "-valued field names of . The UI type"ground attributes for the modeline#transformation of modeline in focus ground attributes for the tabbar $a tab that currently holds the focus *a tab that does not have the current focus )ground attributes for the main text views the selected portion empty file marker coloursindicates errors in textsearch matches paren matches other hintscurrent search match all comments"additional only for block commentsapplied to language keywordsnumbers.preprocessor directive (often in Haskell or C)constant strings!additional style for long strings+type name (such as class in an OO language)data constructorstyle of import names(builtin things, e.g. Array in JavaScriptregular expressions"any standard variable (identifier)infix operators/Style of a quotation (e.g. in template haskell) .stuff that's passed to the shell in a Makefile!makefile rule headers"dThe style is used to transform attributes by modifying one or more of the visual text attributes.#3Visual text attributes to be applied during layout.'mThe text should be show as "active" or "selected". This can be implemented by reverse video on the terminal.,!A style that sets the foreground.-!A style that sets the background.."A style that sets the font to bold/&A style that sets the style to italics0)A style that sets the style to underlined1)A style that sets the style to underlined2The identity transform.3KConvert a color to its text specification, as to be accepted by XParseColorE  !"#$%&'()*+,-./0123456789:;<=>?@ABCDE  !"#$%&'()*+,-./0123456789:;<=>?@ABCDE#$%&'()*+"  !,-.10/234<;:98765=DCBA@?>  !"#$%&'()*+,-./0123456789:;<=>?@ABCD Safe-InferredF-Abstract theme that provides useful defaults.G4A Theme inspired by the darkblue colorscheme of Vim.EFGEFGEFGEFGGPL-2yi-devel@googlegroups.com experimentalportableNone368PAs !"!, but with O(n*log(n)) behaviour.Q>As Map.adjust, but the combining function is applied strictly.RGeneralisation of  to arbitrary foldables.SAlternative to groupBy. 7groupBy' (\a b -> abs (a - b) <= 1) [1,2,3] = [[1,2,3]]whereas 8groupBy (\a b -> abs (a - b) <= 1) [1,2,3] = [[1,2],[3]]7TODO: Check in ghc 6.12 release if groupBy == groupBy'.U3Return the longest common prefix of a set of lists. sP(xs) === all (isPrefixOf (commonPrefix xs)) xs length s > length (commonPrefix xs) --> not (all (isPrefixOf s) xs)VVFinds the first element satisfying the predicate, and returns a zipper pointing at it.WGiven a function which moves the focus from index A to index B, return a function which swaps the elements at indexes A and B and then moves the focus. See Yi.Editor.swapWinWithFirstE for an example.HIJKLMNOPQRSTUVWXYZ[HIJKLMNOPQRSTUVWXYZLMNOHIJKPQRSTUVW[XYZHIJKLMNOPQRSTUVWXYZ[None +06:BM\Window references_Size of a buffer regionbA point in a buffereReference to a buffer.gA mark in a bufferj%Direction of movement inside a buffernreverse if Backwardo direction is in the same style of  or p functions, It takes one argument per direction (backward, then forward) and a direction to select the output.\]^_`abcdefghijklmnopqrst\]^_`abcdefghijklmnojlktmnoghiefsbcdr_`aq\]^p\]^_`abcdefghijlkmnopqrstNone03vETreat the input not as a regex but as a literal string to search for.w(Compile for newline-insensitive matchingx+Compile for matching that ignores char case=Return an escaped (for parseRegex use) version of the string.+Return a pattern that matches its argument.EReverse a pattern. Note that the submatches will be reversed as well.,The regular expression that matches nothing.uvwxyz{|}~Q      !"#$uvwxyz{|}~uxwvyz{|}~uxwvyz{|}~None+0M The region data type. The region is semi open: it includes the start but not the end bound. This allows simpler region-manipulation algorithms. Invariant : regionStart r <= regionEnd r$Take the intersection of two regions>Take the union of two regions (including what is between them)%iCreate a region from ordered bounds. If 2nd argument is greater than 1st, then the region will be empty.MConstruct a region from its bounds, emacs style: the right bound is excludedThe empty region3True if the given point is inside the given region.GTrue if the given point is inside the given region or at the end of it.?Returns if a region (1st arg) is included in another (2nd arg)&%'(&%'((c) Don Stewart 2007GPL-2yi-devel@googlegroups.com experimentalportableNone-./:M Initial stateHow far did the scanner look to produce this intermediate state? The state can be reused as long as nothing changes before that point.bRunning function returns a list of results and intermediate states. Note: the state is the state before/ producing the result in the second component.The main type of syntax highlighters. This record type combines all the required functions, and is parametrized on the type of the internal state.$The start state for the highlighter.focus at a given point, and return the coresponding node. (hint -- the root can always be returned, at the cost of performance.)This takes as input a scanner that returns the "full" result at each element in the list; perhaps in a different form for the purpose of incremental-lazy eval.)* _`abcd bcd_`a )*GPL-2yi-devel@googlegroups.com experimentalportableNone- over . Just like - but also knows how to turn its tokens into s.Generalises lexers. This allows us to easily use lexers which don't want to be cornered into the types we have predefined here and use in  common.hsinc. Handy aliasKFunction to (possibly) lex a single token and give us the remaining input. Lexer stateBEncode a Haskell String to a list of Word8 values, in UTF8 format.Return a constant token3Return a constant token, and modify the lexer stateJConvert the parsed string into a token, and also modify the lexer state&Convert the parsed string into a token Defines a  for %. This exists to make using the new  easier if you're using ) as all our lexers do today, 23-08-2014.`Combine a character scanner with a lexer to produce a token scanner. May be used together with  mkHighlighter to produce a  , or with linearSyntaxMode to produce a Mode.Dunfold lexer into a function that returns a stream of (state, token)JLIK_`aPIK_`a3 None;+7Scan one token. Return (maybe) a token and a new state.Q,-./0123456789:     ;<=>?@AB+CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a          4,/.-0321487659:     ;<=>?@AB+CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a None;b7Scan one token. Return (maybe) a token and a new state.Bcdefghijklmnopqrstuvwxyz{|}b~5cdihgfejmlknrqpostuvwxyz{|}b~ None;7Scan one token. Return (maybe) a token and a new state.=2 None;7Scan one token. Return (maybe) a token and a new state.-  None;7Scan one token. Return (maybe) a token and a new state.Y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_G     ! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_None;`7Scan one token. Return (maybe) a token and a new state.Tabcdefghijklmnopqrstuvwxyz{|}~`Aabgfedchkjilponmqrsyxwvutz{|}~`None;[7Scan one token. Return (maybe) a token and a new state. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[     = !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[=X[TUZYVW .-,+*)('&%$#"!SNRQPO:MLKJIHGFEDCBA@?>=<;/9876543210b .-,+*)('&%$#"!/ 9876543210:MLKJIHGFEDCBA@?>=<;NRQPOSTUVWXYZ[     None;7Scan one token. Return (maybe) a token and a new state.. !"\#$%&'()*]+,-./0123456789:;<=>\]]\# !"\#$%&'()*]+,-./0123456789:;<=>None; ^The different tokens.iHlStateB is 0 when outside of a multi-line comment and -1 when inside one.jThe constructors for Operator0 have an apostrophe as a suffix because e.g. LT is already used by Prelude.The constructors for Reserved+ have an apostrophe as a suffix because Default" is already used. Also note that  Undefined' is not intended as some sort of "backup" reserved word for things we don't care about -- it really means the "undefined" built-in in JavaScript.?The Line0 constructor represents a single-line comment. Start and EndH represent the start and end of a multi-line comment, respectively. Text0 represents the text in a multi-line comment.Prefix operators. NOTE: Add' is also a valid prefix operator, but since it's completely useless in the real world, we don't care about it here. Doing this makes parsing much, much easier.Postfix operators.Infix operators.Takes a ^7 and returns a style to be used for that type of token. TODO: The @ check is potentially unnecessarily slow. We could split the Const constructor into two different ones, one for builtins and one for others.AGiven a String& representing an operator, returns an j% with the appropriate constructor.BGiven a String) representing a reserved word, returns a % with the appropriate constructor.7Scan one token. Return (maybe) a token and a new state.CDEFGHIJKLMNOPQ^_`abcdefghijklmnopqrstuvwxyz{|}~?RSTUVWXYZ[\AB]^_`abcdefghijklmnopqrstuvwxyz{|}~R^_`abcdefghijklmnopqrstuvwxyz{|}~R^hgfedcba`_j~}|{zyxwvutsrqponmlki=CFEDGJIHKONMLPQ^ hgfedcba`_ij ~}|{zyxwvutsrqponmlk?UTSRVWXYZ[\AB]^_`abcdefghijklmnopqrstuvwxyz{|}~None;7Scan one token. Return (maybe) a token and a new state.8  &None;7Scan one token. Return (maybe) a token and a new state.      !"#$%&'()*+,-r      !"#$%&'()*+,-None;.7Scan one token. Return (maybe) a token and a new state.F/0123456789:;<=>?@ABCDEF.GHIJKLMNOPQRSTUVWXYZ[\]^_`abcde//21036547;:98<= >?@ABCDEF.GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeNone;f7Scan one token. Return (maybe) a token and a new state.Dghijklmnopqrstuvwxyz{|}~f9gjihknmlosrqptuvwxyz{|}~fNone;7Scan one token. Return (maybe) a token and a new state.:+None;7Scan one token. Return (maybe) a token and a new state..     #     None;7Scan one token. Return (maybe) a token and a new state.= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ2 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJNone;K7Scan one token. Return (maybe) a token and a new state.<LMNOPQRSTUVWXYZ[\]^_`abcKdefghijklmnopqrstuvwxyz{|}~1LONMPSRQTXWVUYZ[\]^_`abcKdefghijklmnopqrstuvwxyz{|}~None;7Scan one token. Return (maybe) a token and a new state.<1None;7Scan one token. Return (maybe) a token and a new state.<1None;7Scan one token. Return (maybe) a token and a new state.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~p       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None;7Scan one token. Return (maybe) a token and a new state.3(None;7Scan one token. Return (maybe) a token and a new state.<1None;7Scan one token. Return (maybe) a token and a new state.8      !"#$%&-      !"#$%& None;'7Scan one token. Return (maybe) a token and a new state.5()*+,-./0123456789:;<=>?'@ABCDEFGHIJKLMNOPQRSTUVWXYZ*(+*),/.-0432156789:;<=>?'@ABCDEFGHIJKLMNOPQRSTUVWXYZ[#$%&''()*+,-./0123456789:;<=>?@ABCDEEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}}~                          ! " # $ % & & &  ' ( & &&)*+,-./0123456789:; "<=>?@ABCDEFGHIJKL'MN#$O%PQRS&T+U.VWXYZ#,[\]^_`abcdefghijklmnopqrstuvwxyz{|}~PS#.'+P$S#PS+,-./0&&&&&&&&&&&& & S                       P                          ! " # $ % & S '  ( '                #       P        )                   ! " # $ * + , - . % & S                 #       P        / 0 )               1 2 3   ! " # $ % & S                #       P        )    ! " # $ % & S '  ( '                # 4 5 6 7 8       P        9 : ; < )                 1 2 3 = > ? @ A B C D E F G   ! " # $ * + , - . % &S'('#HIJKLMP     NOPQR)123=>?@ !"#$*+,-.%&'('     S123=>?@ABCDEFGTUVWXYZ[\]^_`abcdefghij !"#$*+,-.%&S#P     ) !"#$%&Kklmn'oLp     qr12=> !"#$%&     ) !"#$%&'('stuvw     xyS123=>?@ABCDEFGTUVWXYZ[\]^_`abcefghijz{|}~ !"#$*+,-.%&S#P     S !"#$%&S#P     S13=>?ABCE !"#$%&S'('#P     ) !"#$*+,-.%&S#P     ) !"#$%&S#P     S)123 !"#$%&S#P     S)1 !"#$%&S#P     S)12 !"#$%&S#P     S)1 !"#$%&S'('#P     0)123=>?@ABCDEFGTUVWXYZ[\]^_`abcdefghijz{|}~ !"#$*+,-.%&S#P     ) !"#$%&S#P     S)12 !"#$%&S#P     ) !"#$%& S                 #       P        )              ! " # $ % &yi-language-0.2.0Yi.StyleYi.Style.LibraryYi.UtilsYi.Buffer.BasicYi.Regex Yi.Region Yi.Syntax Yi.Lexer.AlexYi.Lexer.AbellaYi.Lexer.CabalYi.Lexer.ClojureYi.Lexer.CompilationYi.Lexer.GNUMakeYi.Lexer.GitCommitYi.Lexer.Haskell Yi.Lexer.JSONYi.Lexer.JavaScriptYi.Lexer.LatexYi.Lexer.LiterateHaskellYi.Lexer.OCaml Yi.Lexer.OttYi.Lexer.SVNCommitYi.Lexer.Whitespace Yi.Lexer.CYi.Lexer.Cplusplus Yi.Lexer.JavaYi.Lexer.ObjectiveC Yi.Lexer.PerlYi.Lexer.Python Yi.Lexer.R Yi.Lexer.Ruby Yi.Lexer.SrmcPreludenubColorDefaultRGB StyleNameUIStylemodelineAttributesmodelineFocusStyletabBarAttributestabInFocusStyletabNotFocusedStylebaseAttributes selectedStyleeofStyle errorStyle hintStylestrongHintStyle commentStyleblockCommentStyle keywordStyle numberStylepreprocessorStyle stringStylelongStringStyle typeStyledataConstructorStyle importStyle builtinStyle regexStyle variableStyle operatorStyle quoteStylemakeFileActionmakeFileRuleHeadStyle Attributes foreground background reverseAttrbolditalic underlineemptyAttributeswithFgwithBgwithBdwithItlc withUnderline withReverse defaultStyle colorToTextblackgrey lightGreydarkredred darkgreengreenbrownyellowdarkbluebluepurplemagentadarkcyancyanwhite brightwhiteTheme defaultTheme darkBlueThemeSemiNum+~-~~-iofst3snd3trd3nubSet mapAdjust'mapFromFoldablegroupBy'chain commonPrefixfindPL swapFocusmakeClassyWithSuffix addSuffixmakeLensesWithSuffix$fBinaryHashMap WindowRef unWindowRefSizefromSizePoint fromPoint BufferRefMarkmarkId DirectionForwardBackward reverseDir mayReverse directionElim$fDefaultWindowRef$fSemiNumPointSize $fShowPoint$fShowBufferRef$fBinaryDirection SearchOption QuoteRegex NoNewLine IgnoreCase SearchExpseInput seCompiledseBackCompiled seOptions searchString searchRegexmakeSearchOptsMregexEscapeString emptySearch emptyRegexRegionregionDirection regionStart regionEnd regionFirst regionLast fmapRegion regionSizeintersectRegion unionRegionmkRegion mkRegion' mkSizeRegion emptyRegioninRegion nearRegionincludedRegion regionIsEmptyregionsOverlapCacheScannerscanInit scanLooked scanEmptyscanRunExtHL HighlighterSynHL hlStartStatehlRun hlGetTreehlFocusSpan spanBegin spanContentsspanEndStrokeLength skipScanner emptyFileScan mkHighlighter noHighlighter StyleLexerASI StyleLexer _tokenToStyle _styleLexerLexer_step _starting _withChars_looked _statePosn _lexEmpty_startingState CharScanner TokenLexerASIPosnposnOfsposnLineposnColToktokTtokLentokPosn AlexStatestLexer lookedOffsetstPosnAction AlexInput IndexedStrByte utf8Encode tokToSpantokFromTtokBegintokEnd startPosnmoveStrmoveCh alexGetChar alexGetBytealexCollectCharalexInputPrevChar actionConstactionAndModifyactionStringAndModifyactionStringConst commonLexer lexScanner unfoldLexer $fShowPosn $fOrdPosn $fShowTok$fEqTokposnColA posnLineAposnOfsAtokLenAtokPosnAtokTAlexEmptylookedstarting startingState statePosnstep withChars styleLexer tokenToStyleTTToken UnrecognizedSkip CommentLine ReservedOpReserved ConsIdentVarIdentNumberOtherOpDotDoubleRightArrow RightArrow BackSlashAndOrOtherExistsForallHlState tokenToText isCommentlexerTextReport CppDirectiveTHQuoteCommentOperator ConsOperatorSpecial StringTokCharTokOpTypeTildaArobase DoubleDot DoubleColon LeftArrowEqualPipe ReservedTypeInstanceClassModuleDeriving OtherLayoutOfDoInLetWhereTypeNewTypeDataImportAs QualifiedHiding CommentTypeLineCloseOpen startsLayout initState isSpecial isErrorTok alexScanTokenConst ValidNameOpRexStrResUnknownQualify'BitNot' RightShiftZ' RightShift' LeftShift'BitXor'BitOr'BitAnd'Not'Or'And'NotEqualsType' EqualsType'LTE'LT'GTE'GT' NotEquals'Equals' ModuloAssign' DivideAssign'MultiplyAssign'SubtractAssign' AddAssign'Assign' Decrement' Increment'Modulo'Divide' Multiply' Subtract'Add' Undefined'Null'False'True'With'While'Void'Var'TypeOf'Try'Throw'This'Switch'Return'New' InstanceOf'In'If' Function'For'Finally'Else'Do'Delete'Default' Continue'Catch'Case'Break'prefixOperatorspostfixOperatorsinfixOperators NewCommandEndBeginCommandIndentReservedcontainers-0.5.5.1 Data.Map.BasefromListbase Data.Maybemaybe Data.EithereitherliteralPatternreversePattern searchOptmapLeftliteralPattern'$fPlatedPattern$fBinarySearchExp$fBinarySearchOptionregex-base-0.93.2Text.Regex.BasegetVersion_Text_Regex_BaseText.Regex.Base.RegexLike MatchOffset MatchLength MatchArray MatchTextmrSubs mrSubListmrAftermrMatchmrBeforeMR MatchResult getExecOpts setExecOptsdefaultExecOptdefaultCompOpt blankExecOpt blankCompOpt RegexOptionsmakeRegexOptsM makeRegexM makeRegexOpts makeRegex RegexMaker matchOnceText matchAllText matchTest matchCountmatchAll matchOnce RegexLikematchMmatch RegexContextextractemptyafterbeforeExtractgetAllSubmatches AllSubmatchesgetAllTextSubmatchesAllTextSubmatches getAllMatches AllMatchesgetAllTextMatchesAllTextMatchesregex-tdfa-1.2.0Text.Regex.TDFA=~~=~getVersion_Text_Regex_TDFAText.Regex.TDFA.CommonlastStarGreedy newSyntax rightAssoc multiline caseSensitive CompOption captureGroups ExecOptionRegex ordRegion $fShowRegion$fBinaryRegion$fFunctorScannerAlexAcc AlexAccSkip AlexAccNone AlexLastAcc AlexLastSkipAlexNone AlexReturn AlexTokenAlexSkip AlexErrorAlexEOFAlexAddrAlexA# alex_base alex_table alex_check alex_deflt alex_accept stateToInit alexScan' alexScanUser'alex_scan_tkn'cmmscs alex_action_1 alex_action_2 alex_action_3 alex_action_4 alex_action_5 alex_action_6 alex_action_7 alex_action_8 alex_action_9alex_action_10alex_action_11alex_action_12alex_action_13alex_action_14alex_action_15alex_action_16alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkniUnbox$fFunctorAlexLastAcc AlexAccPredAlexAccSkipPred alex_action_0 alexAndPredalexPrevCharIsalexPrevCharMatchesalexPrevCharIsOneOfalexRightContextregexstringalex_action_17alex_action_18alex_action_19 RuleCommandComplexExpansionIncludeDirective InCommentTopLevelcommentcomplexExpansionincludeDirective ruleCommandalex_action_20alex_action_21alex_action_22alex_action_23alex_action_24alex_action_25alex_action_26alex_action_27alex_action_28alex_action_29alex_action_30DiffDeclaration LineComment MessageLineKeyword SecondLineDigestbodydiffkeyword lineComment secondLinenestcommalex_action_31alex_action_32alex_action_33alex_action_34alex_action_35alex_action_36alex_action_37alex_action_38alex_action_39alex_action_40alex_action_41alex_action_42alex_action_43alex_action_44alex_action_45alex_action_46alex_action_47alex_action_48alex_action_49alex_action_50alex_action_51alex_action_52alex_action_53GHC.ListelemopToOpresToResStartbuiltinConstructorshtmlcomm multicomm LaTeXBlock CommentBlock unCommentCodeLine CodeBlock codeBlockcodeLinealex_action_54alex_action_55alex_action_56alex_action_57alex_action_58alex_action_59alex_action_60alex_action_61alex_action_62alex_action_63alex_action_64alex_action_65alex_action_66alex_action_67alex_action_68alex_action_69alex_action_70alex_action_71alex_action_72alex_action_73alex_action_74alex_action_75alex_action_76alex_action_77alex_action_78alex_action_79alex_action_80alex_action_81beginHombindspechomspliceHlCommitSummaryHlCommitMessage commitSummary spaceStyletabStyle HlInVariableHlInSubstRegex HlInPerldoc HlInHeredocHlInInterpHeredocNoIdentHlInInterpHeredocHlCollectHeredocIdentHlStartCollectHeredocIdent HlInStringHlInInterpStringHlInCodefromQuoteStateincreaseVarCastDepthdecreaseVarCastDepthexitVarIfZeroDepthcollectHeredocIdentheredoc interpHeredocinterpHeredocNoIdent interpStringperldocstartCollectHeredocIdentvariable