From 7cc13cf2323a3899c9389fdd3b6ab33c299b425a Mon Sep 17 00:00:00 2001 From: Maxime Mangel Date: Tue, 26 Apr 2022 19:01:16 +0200 Subject: [PATCH] Add support for F# package reference + Fix CommentPreproc detection (#631) --- lexers/embedded/fsharp.xml | 8 +- lexers/testdata/fsharp/fsharp.actual | 700 ++ lexers/testdata/fsharp/fsharp.expected | 6825 +++++++++++++++++ .../fsharp/fsharp_package_reference.actual | 1 + .../fsharp/fsharp_package_reference.expected | 6 + 5 files changed, 7536 insertions(+), 4 deletions(-) create mode 100644 lexers/testdata/fsharp/fsharp.actual create mode 100644 lexers/testdata/fsharp/fsharp.expected create mode 100644 lexers/testdata/fsharp/fsharp_package_reference.actual create mode 100644 lexers/testdata/fsharp/fsharp_package_reference.expected diff --git a/lexers/embedded/fsharp.xml b/lexers/embedded/fsharp.xml index f1601bcd4..f60897977 100644 --- a/lexers/embedded/fsharp.xml +++ b/lexers/embedded/fsharp.xml @@ -169,6 +169,9 @@ + + + @@ -181,9 +184,6 @@ - - - @@ -242,4 +242,4 @@ - \ No newline at end of file + diff --git a/lexers/testdata/fsharp/fsharp.actual b/lexers/testdata/fsharp/fsharp.actual new file mode 100644 index 000000000..e289c1102 --- /dev/null +++ b/lexers/testdata/fsharp/fsharp.actual @@ -0,0 +1,700 @@ +(** +# First-level heading +Some more documentation using `Markdown`. +*) +module SampleCode.SimpleTypes + +(** +This comments was making the whole file render as a comment. +**) + +// Compiler directives + +#if true +#elif false +#elseif false +#endif +#light "on" +#nowarn +#nowarn "9" "40" + +open System.Text// check that comments are handled correctly +open System.Text // check that comments are handled correctly +open System.Text.RegularExpressions(* check that comments are handled correctly *) +open System.Text.RegularExpressions (* check that comments are handled correctly *) + +module Test = + + (** **Check** that this line isn't capture for the markdown grammar **) + let a = "" + + (** + This is an edge case, because in early implementation this is commented the whilte file + + Line with indentation isn't colorized because markdown can't set up his context. + *) + let b = "" + + (** +This block is colorized becasue markdown can set up his context. + +# First-level heading +This should be parsed as `markdown`. +This is an edge case, because in early implementation this is parser the whole +file as markdown + *) + let c = "" + + (* Comments with nested (* (* *) *) works + + This line should be shown commented. + class should not be colored + *) + let d = "" + + let e = (* comment// *) "not a comment" + +/// **Description** +/// +/// **Parameters** +/// * `arg1` - parameter of type `string` +/// * `arg2` - parameter of type `string` +/// +/// **Output Type** +/// * `string` +/// +/// **Exceptions** +/// +let markdownDemo (arg1 : string) (arg2 : string) = + "" + +/// **Checking that markdown is really working on single line** +let markdownDemo2 (arg1 : string) (arg2 : string) = + "" + +// **This comment isn't formatted** + +(* Neither this one *) + +exception UndefinedValueException of string + +type Alias = int + +type Alpha = class end + +type LightDU = + | CaseA + | CaseB + +type EgalNewLine + = CaseA + | CaseB + +type Underscore_Name = | Underscore_Name of string + +let i32 = typeof +let list = typedefof<_ list> + +type Accentué = int + +type Class1() = + member this.X = "F#" + +// Check accessibility modifier coloring +type R = private { X : int } +type U = private | X of int + +let private getArgResults, private removeArgResults, private setArgResults = "", "", "" + +// Check builder detection (based on a whitelist) +let a = promise { } +let b = pipeline { } +let c = noColor { } + +// Check that known builder names aren't captured as builders when a +// value name begins with one of them (e.g. `asyncResult`) +// Also see ionide/ionide-vscode-fsharp#836 +let d = + let asyncF = async { } + asyncF + +// Whitespace between builder and opening brace is optional +let e = async{ return 0 } + +type FancyClass(thing:int, var2 : string -> string, ``ddzdz``: string list, extra) as xxx = + + let pf() = xxx.Test() + let mutable myInternalValue = null + + member xxx.Test() = "F#" + + // A read-only property. + member __.MyReadOnlyProperty = myInternalValue + // A write-only property. + member __.MyWriteOnlyProperty with set (value) = myInternalValue <- value + // A read-write property. + member __.MyReadWriteProperty + with get () = myInternalValue + and set (value) = myInternalValue <- value + + member __.ReadAndWriteWithSignature + with get (count : int) : string = string count + and set (value : int) : unit = failwith "" + + member __.MyReadWriteProperty with get () = myInternalValue + member __.MyReadWriteProperty with set (value) = myInternalValue <- value + + abstract Update : int * string * string option * obj -> FancyClass + default this.Update (thing:int, var2 : string, ``name withh spaces``: string option, extra) = this + + member val Property1 = thing + member val Property2 = "" with get, set + + /// The typo in withh is intentional, because with is one of the `end` possibility + /// We consider it ok, because there is a low chance that a person will use `with` in a quoted variable + member __.Test2(thing:int, var2 : string, ``name withh spaces``: string option, extra) = "" + + static member (>) (v1 : int, v2 : int) = v1 > v2 + static member (<) (v1 : int, v2 : int) = v2 < v2 + static member (< ) (v1 : int, v2 : int) = v2 < v2 + static member (<|>) (v1 : int, v2 : int) = v2 < v2 + +let inline internal (<) (x : int) ys = x + ys +let (< ) (x : int) ys = x + ys +let (<<.) a = 1 +let inline internal (<==) (x : int) ys = x + ys +let inline internal (<==) x ys = x + ys + +// Check that this `get` and `set` methods are not messing the colourisation +let get = ignore +get ("maxime") +let set = ignore +set("maxime") + +// Arrow should be colored as a keyword and int as type definition +let exec (buildOptions: int -> int -> int -> int) args = "" + +// This line is to check that member_declaration isn't propagate output of declaration scopes +let p value = System.Int32.Parse(value) + +type TestGeneric<'arg, 'model, 'msg, 'view> private (*comments test*) (a: 'arg, model: 'model, msg: 'msg, view: 'view, notify : string -> unit ) as xxx = + class end + +type ``Program with spaces``<'arg, 'model, 'msg, 'view> = + class end + +type Program<'arg, 'model, 'msg, 'view> = + { Arg : 'arg + Model : 'model + Msg : 'msg + View : 'view } + + +type Decoder<'a> = + class end + +let keyValuePairs (decoder : Decoder<'value>) : Decoder<(string * 'value) list> = failwith "" +let keyValuePairs (decoder : Decoder<'value>) : Decoder<(string * 'value) list -> obj> = failwith "" +let tuple2 (decoder1: Decoder<'T1>) (decoder2: Decoder<'T2>) : Decoder<'T1 * 'T2> = failwith "" + +let run (program : Program<'arg, 'model, 'msg, 'view>) = "" +let run2 (program : unit -> Program<'arg, 'model, 'msg, 'view>) = "" + +type T = + abstract Item: selector: string -> string with get, set + abstract icon: width : int * height : int with get, set + abstract member Name: string option with get, set + abstract member NameTestComment: string (*I am a comments*) option with get, set + abstract member NameTestComment2: string //option with get, set + abstract member Keys: unit -> Program<'arg, 'model, 'msg, array>>> + abstract Run : program : Program<'arg, 'model, 'msg, array>>> -> unit + abstract ``open``: cacheName: string -> obj + abstract DrawElementsInstancedANGLE: mode: float * count: float * ``type with spaces``: float * offset: float * primcount: float + abstract Test : Result + abstract Test2 : mode: float * test : (Result, string>, string> list, int array> * int) + abstract TupleOfTuples : (int * (int * (Result, string>, string> list, int array> * int))) + +type FancyClass with + member __.Run (program : Program<'arg, 'model, 'msg, array<'view>>) = () + +type FancyClass1(?thing:int) = + class end + +type private FancyClass2 (?thing:int) = + class end + +type FancyClass3 private (?thing:int) = + class end + +let foo = + { new System.IDisposable with + member __.Dispose() = + failwith "do nothing" } +let bar = + use foo = new System.Threading.CancellationTokenSource() + () + +let paramsColorWorksHereToo (client : obj, extraParam) (name : unit -> obj) : string = "" + +let endOfThisLineShouldBeCommented// (client : obj, extraParam) = "" + : string = "" + +// Fixed width comments also works and coloration is still correct after it +let endOfThisLineShouldBeCommented2 (*(client : obj, extraParam) = ""*) (name: int) = "" + +// Fixed width comments also works even in tuples parameters +// and coloration is still correct after it +let private _emitLetBinding (il:int, (*methods:MethodSymbolTable, locals:LocalsSymbolTable,*) binding:obj) = + "" + +type EndOfThisLineShouldBe //Commented (a:int, b:int) + (a: int, b: int) = + class end + +let (name : string, age) = "", 0 + +type NameRecord = + { Firstname : string + Surname : string } + +type NestedRecord = + { Nested : NestedRecord + PropB : string } + + +// Test signature coloration +let primitive : int = 0 + +let tupleOfPrimitives : int * string list = 0, [] +let tupleOfPrimitives : (int * string) = 0, "" +let tupleOfTuples : (int * (int * (int * int))) = failwith "" +let tupleOfTuples : int * (int * (Result, string>, string> list, int array> * int)) = failwith "" +let tupleOfTuples : (int * (int * (Result, string>, string> list, int array> * int))) = failwith "" +let listOfTuples + (files : (string * string) list) + (files2 : (string * string) list) + : (int * (int * (Result list, int array> * int))) list = [] +let generics : Result = Ok [] + +let tupleWithGenerics : Result * int = Ok [], 0 +let tupleWithAListOfGenerics (p1 : int * Map list) (p2 : int * Map list) : int * Map list = 1, [] +let tupleWithAListOfGenerics : int * Map list = 1, [] +let tupleWithAListOrArrayOfGenerics2 : int * Map list * Map array = 1, [], [||] + +// Really complexe nested generic type +let tupleWithGenerics2 : (Result, string>, string> list, int array> * int) = Ok [], 0 + +let lambda : int -> unit = ignore +let lambda : (int -> unit) = ignore +let lambda : (int -> unit) -> unit = ignore +let lambda : (Result -> (string * int)) -> unit = ignore +let lambda : (Result, string>, string> list, int array> -> Result list, int array> * int) -> unit = ignore +let lambda ( x : (Result, string>, string> list, int array> + -> Result, string>, string> list, int array> * int) + -> unit) : ('T -> unit ) = ignore + +let inline isLoadingTime<'a> = "" +let inline isLoadingTime<'a, 'b, 'c> = "" +let inline method<'a> prefix chunck dzd zd = promise { + let! dzdz = "" + } + + +let v ``var with spaces``= "" + +let printFullName { Firstname = firstname; Surname = surname } : string = firstname + " " + surname +let printFirstName { Firstname = firstname } : string = firstname +let printFirstName ({ Firstname = ``var with spaces`` } : NameRecord) ( _ : obj) : string = ``var with spaces`` + + +let ``test multiple backticks`` = row.``maxime``.Trim(), row.``Last Update`` // Test multiple backticks on the same line + +let nestedRecords ({ Nested = { Nested = { Nested = { Nested = value }; PropB = _ } }; PropB = propB } : NestedRecord) : string = value.PropB + " " + propB + +let variable = "value" + +// Check that style is apply even when declaration is on multiple lines +let func arg1 arg2 = "" + +let func + arg1 arg2 = "" + +let func + arg1 + arg2 = "" + +// Check that option is also colored as part of the type definition +let debounce (debounce : int option) = "" + +// Check output type coloration +let mutable timeoutID : float = 0. +let test2 test (timeoutID : float option) : int option = None + +module test = + let t = 1 + +module accentué = + let t = 1 + +open test + +type MutableMembersTest = { + mutable test: string +} + +// Test that variable named like: keyword' isn't colored in a match statement +let test match' = + match match' with + | CaseA -> "" + | CaseB -> "" + +let test2 return' = + match return' with + | CaseA -> "" + | CaseB -> "" + +type RequestData = + { Params : string } + +type Client () = + member this.Request (req : RequestData) = "" + +let res (client : Client, extraParam) = client.Request { Params = "" } + +[] +type kg + +let forLoop = + [ for index = 0 to 1 do + yield index ] + +type GenType<'a> = 'a + +type ``type with spaces`` = obj + +let t : ``type with spaces`` = null +let t2 : obj = null + +type TestDUTypeColoration = + | CaseA + | CaseB of int + | CaseC of (int * (string * string) list) + | CaseD of name :string * age:int + | CaseE of client: Client + | CaseF of client: Client (*comment tests*) * (*comment tests*) string * port : int + | CaseG of (obj -> unit) + | CaseH of string * (obj -> unit) + // Check multiple declaration on one line + | CaseI of int | CaseJ of int + | CaseF2 of client: Client // * string * port : int + | FetchDomainsSuccess of Result + | CaseK of ``var with spaces``: string + | CaseL of ``var with spaces``: ``type with spaces`` + | CaseM of v1 : ``type with spaces`` + | CaseN of ``type with spaces`` + +type TestRecordColoration<'a> = + { Firstname : string + Lastname : string + /// Test docs comments works with `markdown` + Age : (*comment tests*) int + Notify : string -> unit + Notify2 : string ->unit + Notify3 : string-> unit + Notify4 : string -> unit + Callback : (string * int) -> GenType<'a> -> Client // Comments tests + TypeWithSpace : ``type with spaces`` + Nested : ((string * int) -> (*comment tests*) RequestData) -> Client + mutable Mutable : obj } + +let testRecordColoration = + { Firstname = "string" // Comments should work here + Lastname = "string" + Age = 10 + Notify = fun _ -> () + Notify2 = fun s -> () + Notify3 = fun _ -> () + Notify4 = fun _ -> () + Callback = fun (a, (*b) comments should works here too*) b) -> unbox null + TypeWithSpace = null + Nested = fun func -> unbox null + Mutable = null } + +type CheckSingleLineRecord = + { Param1 : string; (*comment tests*) Param2 : obj } + +// Check that compression expression aren't mess up by the record coloration +let a = + async { + let! a = async { + (*comment tests*) + return 0 + } + return a + } + +// Test case for: https://github.com/ionide/ionide-fsgrammar/issues/147 +let testVariableWithModuleKeyword test_module = + if test_module then // This is the line where the problem is + () + +// Edge cases provided by @selketjah +// In this code some of the `type` word where colored in purple +type Example = + { Type : int + SType : int + Stype : int + STypeT : int + StypeT : int // comments tests + TypeS : int (*comment tests*) + typeTest : int + stype : int + stypes : int + s_type : int } + +// Edge cases provided by @selketjah +// `type` was colored as keyword +// `with` as a Type declaration +let temp (s : Example) = + match s.stype with + | 0 -> "whatever" + | 1 -> "" + +// Edge case when there is something after } the next type is not colored +type One = + { Id : string } // test + +type Two = + { Id : int } + +// Support for anonymous records + +type Employee = + | Engineer of {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : {| Prop1 : GenType>; Prop2 : {| Prop1 : int; Prop2 : List |} |} |} |} + | Manager of {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : List |} |} + +let private standardIntInput (props : {| Dispatch : GenType> + Disabled : {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : List |} |} + Errors : GenType<'Msg> list |}) = "" + +let test = fun (props : {| Dispatch : GenType> + Disabled : {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : List |} |} + Errors : GenType<'Msg> list |}) -> "" + +type AR_Class () = + member this.Method1 (props : {| Dispatch : GenType> + Disabled : {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : List |} |} + Errors : GenType<'Msg> list |}) = "" + +// Check anonymous function type signature +let tx = fun (t : ``type with spaces``) (``var with spaces`` : Result) -> () + +let private mixedArray msg (decoders: string []) (path: string) (values: obj[]): Result = + Ok [] + +type Auto() = + static let (color, message) = failwith "" + + static let (color : Result<'T, string>) = failwith "" + + // Here `<`& `>` not in purple + static member GenerateDecoder<'T> (?isCamelCase : bool): GenType<'T> = failwith "" + + // Here generics not colored + static member FromString<'T>(json: string, ?isCamelCase : bool): 'T = failwith "" + + +type Example1 = { Test : int list } +let test = { Test = [ 1;2;3 ] } +// test.test shouldn't be colored +let temp = { test with Test = 3 :: test.Test } + +type EitherBuilder() = + member __.Bind(x) = x + member __.Return(x) = x + +let either = EitherBuilder() + +let test x = + // Ensure coloration is working correctly in custom computation expressions + either { + let x = x + let! c = "" + + return 0 + } + +open System + +type QueueTrigger(msg : string, b : bool) = + inherit Attribute() + +type [] AppState2() = + class end + +type [] AppState<'a, 'b>() = + class end + +let run ([] content:string) = failwith "" + +type [] TestInlineAttributeGenerics<'a, 'b>(content:string) = + class end + +type [] TestInlineAttribute(content:string) = + class end + +[] +type TestAttribue2(content:string) = + class end + +// // Make sure coloration support SRTP synthax +// // The next code has been copied from +// // https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/statically-resolved-type-parameters + +let inline konst x _ = x + +type CFunctor() = + static member inline fmap (f: ^a -> ^b, a: ^a list) = List.map f a + static member inline fmap (f: ^a -> ^b, a: ^a option) = + match a with + | None -> None + | Some x -> Some (f x) + + // default implementation of replace + static member inline replace< ^a, ^b, ^c, ^d, ^e when ^a :> CFunctor and (^a or ^d): (static member fmap: (^b -> ^c) * ^d -> ^e) > (a, f) = + ((^a or ^d) : (static member fmap : (^b -> ^c) * ^d -> ^e) (konst a, f)) + + // call overridden replace if present + static member inline replace< ^a, ^b, ^c when ^b: (static member replace: ^a * ^b -> ^c)>(a: ^a, f: ^b) = + (^b : (static member replace: ^a * ^b -> ^c) (a, f)) + +let inline replace_instance< ^a, ^b, ^c, ^d when (^a or ^c): (static member replace: ^b * ^c -> ^d)> (a: ^b, f: ^c) = + ((^a or ^c): (static member replace: ^b * ^c -> ^d) (a, f)) + +// Note the concrete type 'CFunctor' specified in the signature +let inline replace (a: ^a) (f: ^b): ^a0 when (CFunctor or ^b): (static member replace: ^a * ^b -> ^a0) = + replace_instance (a, f) + +// End of SRTP synthax + +// Make sure constraints are correctly colored +// https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/constraints + +// Base Type Constraint +type Class1<'T when 'T :> System.Exception> = + class end + +// Interface Type Constraint +type Class2<'T when 'T :> System.IComparable> = + class end + +// Null constraint +type Class3<'T when 'T : null> = + class end + +// Member constraint with static member +type Class4<'T when 'T : (static member staticMethod1 : unit -> 'T) > = + class end + +// Member constraint with instance member +type Class5<'T when 'T : (member Method1 : 'T -> int)> = + class end + +// Member constraint with property +type Class6<'T when 'T : (member Property1 : int)> = + class end + +// Constructor constraint +type Class7<'T when 'T : (new : unit -> 'T)>(thing:int, var2 : string -> string, ``ddzdz``: string list, extra) as xxx = + member val Field = new 'T() + +// Reference type constraint +type Class8<'T when 'T : not struct> = + class end + +// Enumeration constraint with underlying value specified +type Class9<'T when 'T : enum> = + class end + +// 'T must implement IComparable, or be an array type with comparable +// elements, or be System.IntPtr or System.UIntPtr. Also, 'T must not have +// the NoComparison attribute. +type Class10<'T when 'T : comparison> = + class end + +// 'T must support equality. This is true for any type that does not +// have the NoEquality attribute. +type Class11<'T when 'T : equality> = + class end + +type Class12<'T when 'T : delegate> = + class end + +type Class13<'T when 'T : unmanaged> = + class end + +// Member constraints with two type parameters +// Most often used with static type parameters in inline functions + +// Test that we are correctly detecting the end of the STRP syntahx when there is only one argument +let inline doNothing(_value1 : ^T when ^T : (static member (+) : ^T * ^T -> ^T)) = + "" + +let inline doNothing(_value1 : ^Word when ^Word : (static member toJson : ^Word * ^Word -> ^Word)) = + "" + +let inline add2(value1 : ^T, value2: ^T when ^T : (static member (+) : ^T * ^T -> ^T)) = + value1 + value2 + +let inline add(value1 : ^T when ^T : (static member (+) : ^T * ^T -> ^T), value2: ^T) = + value1 + value2 + +// ^T and ^U must support operator + +let inline heterogenousAdd(value1 : ^T when (^T or ^U) : (static member (+) : ^T * ^U -> ^T), value2 : ^U) = + value1 + value2 + +let inline heterogenousAdd(value1 : ^Word when (^Word or ^U) : (static member (+) : ^Word * ^U -> ^Word), value2 : ^U) = + value1 + value2 + +// If there are multiple constraints, use the and keyword to separate them. +type Class14<'T,'U when 'T : equality and 'U : equality> = + class end + +type Class15<'``generic type with space`` when '``generic type with space`` :> System.Exception> = + class end + +// Type constrainst coloration also works in the constructor +type Class16(value1 : ^T when (^T or ^U) : (static member (+) : ^T * ^U -> ^T), value2 : ^U) = + class end + +// Make sure that `:>` isn't closing the current generic tag +let inline create<'a, 'b when 'a :> obj and 'a: (new: unit -> 'a)> () : 'b = failwith "" + +// Explicit Fields +// Adapted from: https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/explicit-fields-the-val-keyword +// And : https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/let-bindings-in-classes + +type MyType<'``Generic type with spaces``, 'T>() = + let mutable myInt1 = 10 + static let mutable myInt3 = 3 + [] static val mutable private myInt2 : int + [] val mutable myString : '``Generic type with spaces`` + [] val mutable myString2 : 'T + +type MyClass = + val a : int + val b : int + // The following version of the constructor is an error + // because b is not initialized. + // new (a0, b0) = { a = a0; } + // The following version is acceptable because all fields are initialized. + new(a0, b0) = { a = a0; b = b0; } + +// Check that SRTP do not break standard syntax between `(` & `)` +let incorrect = + (fun loadedModel -> + let temp = async { + return 0 + } + let loadedModel = { loadedModel with FormState = Form.setWaiting false loadedModel.FormState } + ()) diff --git a/lexers/testdata/fsharp/fsharp.expected b/lexers/testdata/fsharp/fsharp.expected new file mode 100644 index 000000000..626b7f03e --- /dev/null +++ b/lexers/testdata/fsharp/fsharp.expected @@ -0,0 +1,6825 @@ +[ + {"type":"Comment","value":"(**\n# First-level heading\nSome more documentation using `Markdown`.\n*)"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"module"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"SampleCode.SimpleTypes"}, + {"type":"Text","value":"\n\n"}, + {"type":"Comment","value":"(**\nThis comments was making the whole file render as a comment.\n**)"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Compiler directives\n"}, + {"type":"Text","value":"\n"}, + {"type":"CommentPreproc","value":"#if"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"true"}, + {"type":"Text","value":"\n"}, + {"type":"Operator","value":"#"}, + {"type":"Keyword","value":"elif"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Text","value":"\n"}, + {"type":"Operator","value":"#"}, + {"type":"Name","value":"elseif"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Text","value":"\n"}, + {"type":"CommentPreproc","value":"#endif"}, + {"type":"Text","value":"\n"}, + {"type":"CommentPreproc","value":"#light"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"on\""}, + {"type":"Text","value":"\n"}, + {"type":"CommentPreproc","value":"#nowarn"}, + {"type":"Text","value":"\n"}, + {"type":"CommentPreproc","value":"#nowarn"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"9\""}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"40\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"open"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System.Text"}, + {"type":"CommentSingle","value":"// check that comments are handled correctly\n"}, + {"type":"Keyword","value":"open"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System.Text"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// check that comments are handled correctly\n"}, + {"type":"Keyword","value":"open"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System.Text.RegularExpressions"}, + {"type":"Comment","value":"(* check that comments are handled correctly *)"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"open"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System.Text.RegularExpressions"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(* check that comments are handled correctly *)"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"module"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"Test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n\n "}, + {"type":"Comment","value":"(** **Check** that this line isn't capture for the markdown grammar **)"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"Comment","value":"(**\n This is an edge case, because in early implementation this is commented the whilte file\n\n Line with indentation isn't colorized because markdown can't set up his context.\n *)"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"Comment","value":"(**\nThis block is colorized becasue markdown can set up his context.\n\n# First-level heading\nThis should be parsed as `markdown`.\nThis is an edge case, because in early implementation this is parser the whole\nfile as markdown\n *)"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"Comment","value":"(* Comments with nested (* (* *) *) works\n\n This line should be shown commented.\n class should not be colored\n *)"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"d"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(* comment// *)"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"not a comment\""}, + {"type":"Text","value":"\n\n"}, + {"type":"LiteralStringDoc","value":"/// **Description**\n///\n/// **Parameters**\n/// * `arg1` - parameter of type `string`\n/// * `arg2` - parameter of type `string`\n///\n/// **Output Type**\n/// * `string`\n///\n/// **Exceptions**\n///\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"markdownDemo"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"arg1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"arg2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"LiteralStringDoc","value":"/// **Checking that markdown is really working on single line**\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"markdownDemo2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"arg1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"arg2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// **This comment isn't formatted**\n"}, + {"type":"Text","value":"\n"}, + {"type":"Comment","value":"(* Neither this one *)"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"exception"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"UndefinedValueException"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Alias"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Alpha"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"LightDU"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseA"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseB"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"EgalNewLine"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseA"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseB"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Underscore_Name"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Underscore_Name"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"i32"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"typeof"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"typedefof"}, + {"type":"Operator","value":"\u003c_"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Accentué"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class1"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"this"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"X"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"F#\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check accessibility modifier coloring\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"R"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"X"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"U"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"X"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"getArgResults"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"removeArgResults"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"setArgResults"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check builder detection (based on a whitelist)\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"promise"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"pipeline"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"noColor"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check that known builder names aren't captured as builders when a\n// value name begins with one of them (e.g. `asyncResult`)\n// Also see ionide/ionide-vscode-fsharp#836\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"d"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"asyncF"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"async"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"asyncF"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Whitespace between builder and opening brace is optional\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"async"}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"return"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"FancyClass"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"thing"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"var2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``ddzdz``"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"extra"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"as"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"xxx"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"pf"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"xxx"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"Test"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInternalValue"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"null"}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"xxx"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"Test"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"F#\""}, + {"type":"Text","value":"\n\n "}, + {"type":"CommentSingle","value":"// A read-only property.\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"MyReadOnlyProperty"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInternalValue"}, + {"type":"Text","value":"\n "}, + {"type":"CommentSingle","value":"// A write-only property.\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"MyWriteOnlyProperty"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInternalValue"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003c-"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value"}, + {"type":"Text","value":"\n "}, + {"type":"CommentSingle","value":"// A read-write property.\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"MyReadWriteProperty"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"get"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInternalValue"}, + {"type":"Text","value":"\n "}, + {"type":"OperatorWord","value":"and"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInternalValue"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003c-"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value"}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"ReadAndWriteWithSignature"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"get"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"count"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"count"}, + {"type":"Text","value":"\n "}, + {"type":"OperatorWord","value":"and"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"MyReadWriteProperty"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"get"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInternalValue"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"MyReadWriteProperty"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInternalValue"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003c-"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value"}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Update"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"FancyClass"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"default"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"this"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"Update"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"thing"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"var2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``name withh spaces``"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"extra"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"this"}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"val"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Property1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"thing"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"val"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Property2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"get"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":"\n\n "}, + {"type":"LiteralStringDoc","value":"/// The typo in withh is intentional, because with is one of the `end` possibility\n"}, + {"type":"Text","value":" "}, + {"type":"LiteralStringDoc","value":"/// We consider it ok, because there is a low chance that a person will use `with` in a quoted variable\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"Test2"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"thing"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"var2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``name withh spaces``"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"extra"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"v1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003c)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"v1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003c"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"v1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003c"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003c|\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"v1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003c"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v2"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"internal"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003c)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ys"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ys"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ys"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ys"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003c\u003c.)"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"internal"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003c==)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ys"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ys"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"internal"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(\u003c==)"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ys"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ys"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check that this `get` and `set` methods are not messing the colourisation\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"get"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ignore"}, + {"type":"Text","value":"\n"}, + {"type":"Name","value":"get"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"LiteralString","value":"\"maxime\""}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"set"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ignore"}, + {"type":"Text","value":"\n"}, + {"type":"Name","value":"set"}, + {"type":"Operator","value":"("}, + {"type":"LiteralString","value":"\"maxime\""}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Arrow should be colored as a keyword and int as type definition\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"exec"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"buildOptions"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"args"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// This line is to check that member_declaration isn't propagate output of declaration scopes\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"p"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System"}, + {"type":"Punctuation","value":"."}, + {"type":"NameNamespace","value":"Int32"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"Parse"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"TestGeneric"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*comments test*)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"notify"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"as"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"xxx"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``Program with spaces``"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Program"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Arg"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Model"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Msg"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"View"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Decoder"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"keyValuePairs"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"decoder"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Decoder"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":"\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Decoder"}, + {"type":"Operator","value":"\u003c("}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"keyValuePairs"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"decoder"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Decoder"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":"\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Decoder"}, + {"type":"Operator","value":"\u003c("}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tuple2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"decoder1"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Decoder"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T1"}, + {"type":"Operator","value":"\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"decoder2"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Decoder"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T2"}, + {"type":"Operator","value":"\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Decoder"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T2"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"run"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"program"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Program"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":"\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"run2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"program"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Program"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":"\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Item"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"selector"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"get"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"icon"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"width"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"height"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"get"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Name"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"get"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"NameTestComment"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*I am a comments*)"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"get"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"set"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"NameTestComment2"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"//option with get, set\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Keys"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Program"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":"\u003e\u003e\u003e\u003e"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Run"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"program"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Program"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":"\u003e\u003e\u003e\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``open``"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"cacheName"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"DrawElementsInstancedANGLE"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"mode"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"float"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"count"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"float"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"float"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"offset"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"float"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"primcount"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"float"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Test2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"mode"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"float"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"abstract"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"TupleOfTuples"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")))"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"FancyClass"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"Run"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"program"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Program"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"arg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"model"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"msg"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"view"}, + {"type":"Operator","value":"\u003e\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"FancyClass1"}, + {"type":"Operator","value":"(?"}, + {"type":"Name","value":"thing"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"FancyClass2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(?"}, + {"type":"Name","value":"thing"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"FancyClass3"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(?"}, + {"type":"Name","value":"thing"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"foo"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"new"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"IDisposable"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"Dispose"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"do nothing\""}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"bar"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"use"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"foo"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"new"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System"}, + {"type":"Punctuation","value":"."}, + {"type":"NameNamespace","value":"Threading"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"CancellationTokenSource"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"paramsColorWorksHereToo"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"client"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"extraParam"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"name"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"endOfThisLineShouldBeCommented"}, + {"type":"CommentSingle","value":"// (client : obj, extraParam) = \"\"\n"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Fixed width comments also works and coloration is still correct after it\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"endOfThisLineShouldBeCommented2"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*(client : obj, extraParam) = "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Comment","value":"*)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"name"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Fixed width comments also works even in tuples parameters\n// and coloration is still correct after it\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_"}, + {"type":"Name","value":"emitLetBinding"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"il"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*methods:MethodSymbolTable, locals:LocalsSymbolTable,*)"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"binding"}, + {"type":"Operator","value":":"}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"EndOfThisLineShouldBe"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"//Commented (a:int, b:int)\n"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"name"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"age"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"NameRecord"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Firstname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Surname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"NestedRecord"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Nested"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"NestedRecord"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"PropB"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n\n"}, + {"type":"CommentSingle","value":"// Test signature coloration\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"primitive"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleOfPrimitives"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleOfPrimitives"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleOfTuples"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")))"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleOfTuples"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"))"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleOfTuples"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")))"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"listOfTuples"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"files"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"files2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")))"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"generics"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Ok"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleWithGenerics"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Ok"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleWithAListOfGenerics"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"p1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Map"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"p2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Map"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Map"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleWithAListOfGenerics"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Map"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleWithAListOrArrayOfGenerics2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Map"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Map"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"[||]"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Really complexe nested generic type\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tupleWithGenerics2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Ok"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"lambda"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ignore"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"lambda"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ignore"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"lambda"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ignore"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"lambda"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"))"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ignore"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"lambda"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ignore"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"lambda"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e,"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"array"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"ignore"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"isLoadingTime"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"isLoadingTime"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"method"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"prefix"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"chunck"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"dzd"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"zd"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"promise"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let!"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"dzdz"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"v"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``var with spaces``"}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"printFullName"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Firstname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"firstname"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Surname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"surname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"firstname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\" \""}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"surname"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"printFirstName"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Firstname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"firstname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"firstname"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"printFirstName"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"({"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Firstname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``var with spaces``"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"NameRecord"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``var with spaces``"}, + {"type":"Text","value":"\n\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``test multiple backticks``"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"row"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"``maxime``"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"Trim"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"row"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"``Last Update``"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// Test multiple backticks on the same line\n"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"nestedRecords"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"({"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Nested"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Nested"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Nested"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Nested"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"};"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"PropB"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"};"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"PropB"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"propB"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"NestedRecord"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"PropB"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\" \""}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"propB"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"variable"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"value\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check that style is apply even when declaration is on multiple lines\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"func"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"arg1"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"arg2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"func"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"arg1"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"arg2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"func"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"arg1"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"arg2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check that option is also colored as part of the type definition\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"debounce"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"debounce"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check output type coloration\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"timeoutID"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"float"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Operator","value":"."}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"test2"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"timeoutID"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"float"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"None"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"module"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"t"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"module"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"accentué"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"t"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"open"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"test"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"MutableMembersTest"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"test"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":"\n"}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Test that variable named like: keyword' isn't colored in a match statement\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"test"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"match'"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"match"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"match'"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseA"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseB"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"test2"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"return'"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"match"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"return'"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseA"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseB"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"RequestData"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Params"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Client"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"this"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"Request"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"req"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"RequestData"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"res"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"client"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Client"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"extraParam"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"client"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"Request"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Params"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"Measure"}, + {"type":"Operator","value":"\u003e]"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"kg"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"forLoop"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"["}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"for"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"index"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"to"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"do"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"yield"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"index"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"]"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"t"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"null"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"t2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"null"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"TestDUTypeColoration"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseA"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseB"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseC"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseD"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"name"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"age"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseE"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"client"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Client"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseF"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"client"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Client"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*comment tests*)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*comment tests*)"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"port"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseG"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseH"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n "}, + {"type":"CommentSingle","value":"// Check multiple declaration on one line\n"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseI"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseJ"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseF2"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"client"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Client"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// * string * port : int\n"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"FetchDomainsSuccess"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseK"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``var with spaces``"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseL"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``var with spaces``"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseM"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"v1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CaseN"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"TestRecordColoration"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Firstname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Lastname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":"\n "}, + {"type":"LiteralStringDoc","value":"/// Test docs comments works with `markdown`\n"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Age"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*comment tests*)"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Notify"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Notify2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Notify3"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Notify4"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Callback"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Client"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// Comments tests\n"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"TypeWithSpace"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Nested"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(("}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*comment tests*)"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"RequestData"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Client"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Mutable"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"testRecordColoration"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Firstname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"string\""}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// Comments should work here\n"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Lastname"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"string\""}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Age"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"10"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Notify"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Notify2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"s"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Notify3"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Notify4"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Callback"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*b) comments should works here too*)"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"unbox"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"null"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"TypeWithSpace"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"null"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Nested"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"func"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"unbox"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"null"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Mutable"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"null"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"CheckSingleLineRecord"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Param1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*comment tests*)"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Param2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check that compression expression aren't mess up by the record coloration\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"async"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let!"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"async"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":"\n "}, + {"type":"Comment","value":"(*comment tests*)"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"return"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"return"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Test case for: https://github.com/ionide/ionide-fsgrammar/issues/147\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"testVariableWithModuleKeyword"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"test_module"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"if"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"test_module"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"then"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// This is the line where the problem is\n"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Edge cases provided by @selketjah\n// In this code some of the `type` word where colored in purple\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Example"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Type"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"SType"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Stype"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"STypeT"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"StypeT"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// comments tests\n"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"TypeS"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Comment","value":"(*comment tests*)"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"typeTest"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"stype"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"stypes"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"s_type"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Edge cases provided by @selketjah\n// `type` was colored as keyword\n// `with` as a Type declaration\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"temp"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"s"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Example"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"match"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"s"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"stype"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"whatever\""}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Edge case when there is something after } the next type is not colored\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"One"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Id"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// test\n"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Two"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Id"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Support for anonymous records\n"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Employee"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Engineer"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":"\u003e\u003e;"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"List"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Manager"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"of"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"List"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"standardIntInput"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"props"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Dispatch"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":"\u003e\u003e"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Disabled"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"List"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Errors"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"Msg"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|})"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"props"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Dispatch"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":"\u003e\u003e"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Disabled"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"List"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Errors"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"Msg"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|})"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"AR_Class"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"this"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"Method1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"props"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Dispatch"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"obj"}, + {"type":"Operator","value":"\u003e\u003e"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Disabled"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Prop2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"List"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|}"}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Errors"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"Msg"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"|})"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check anonymous function type signature\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"tx"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"t"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``type with spaces``"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"``var with spaces``"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"mixedArray"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"msg"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"decoders"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"path"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"values"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Operator","value":"):"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"Ok"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"[]"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Auto"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"color"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"message"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"color"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Result"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":"\u003e)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"CommentSingle","value":"// Here `\u003c`\u0026 `\u003e` not in purple\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenerateDecoder"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(?"}, + {"type":"Name","value":"isCamelCase"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"bool"}, + {"type":"Operator","value":"):"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"GenType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"CommentSingle","value":"// Here generics not colored\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"FromString"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"\u003e("}, + {"type":"Name","value":"json"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"?"}, + {"type":"Name","value":"isCamelCase"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"bool"}, + {"type":"Operator","value":"):"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Example1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"["}, + {"type":"Text","value":" "}, + {"type":"Name","value":"1"}, + {"type":"Operator","value":";"}, + {"type":"Name","value":"2"}, + {"type":"Operator","value":";"}, + {"type":"Name","value":"3"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"]"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n"}, + {"type":"CommentSingle","value":"// test.test shouldn't be colored\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"temp"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"test"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"3"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"::"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"test"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"Test"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"EitherBuilder"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"Bind"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"x"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"__"}, + {"type":"Punctuation","value":"."}, + {"type":"NameFunction","value":"Return"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"x"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"either"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"EitherBuilder"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"test"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"CommentSingle","value":"// Ensure coloration is working correctly in custom computation expressions\n"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"either"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let!"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n "}, + {"type":"Keyword","value":"return"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"open"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"QueueTrigger"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"msg"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"bool"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"inherit"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Attribute"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"AllowNullLiteral"}, + {"type":"Operator","value":"\u003e]"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"AppState2"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"AllowNullLiteral"}, + {"type":"Operator","value":"\u003e]"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"AppState"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":"\u003e"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"run"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"([\u003c"}, + {"type":"Name","value":"QueueTrigger"}, + {"type":"Operator","value":"("}, + {"type":"LiteralString","value":"\"something\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Operator","value":");"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"QueueTrigger"}, + {"type":"Operator","value":"("}, + {"type":"LiteralString","value":"\"something\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Operator","value":")\u003e]"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"content"}, + {"type":"Operator","value":":"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"QueueTrigger"}, + {"type":"Operator","value":"("}, + {"type":"LiteralString","value":"\"something\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Operator","value":")\u003e]"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"TestInlineAttributeGenerics"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":"\u003e("}, + {"type":"Name","value":"content"}, + {"type":"Operator","value":":"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"QueueTrigger"}, + {"type":"Operator","value":"("}, + {"type":"LiteralString","value":"\"something\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Operator","value":")\u003e]"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"TestInlineAttribute"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"content"}, + {"type":"Operator","value":":"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"QueueTrigger"}, + {"type":"Operator","value":"("}, + {"type":"LiteralString","value":"\"something\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Operator","value":");"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"QueueTrigger"}, + {"type":"Operator","value":"("}, + {"type":"LiteralString","value":"\"something\""}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Operator","value":")\u003e]"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"TestAttribue2"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"content"}, + {"type":"Operator","value":":"}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// // Make sure coloration support SRTP synthax\n// // The next code has been copied from\n// // https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/statically-resolved-type-parameters\n"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"konst"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"CFunctor"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"fmap"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"List"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"map"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"f"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"fmap"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"option"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"match"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"None"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"None"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"|"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Some"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Some"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"f"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"x"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n\n "}, + {"type":"CommentSingle","value":"// default implementation of replace\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"d"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"e"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"CFunctor"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"and"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"or"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"d"}, + {"type":"Operator","value":"):"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"fmap"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(^"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"d"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"e"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"((^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"or"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"d"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"fmap"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(^"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"d"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"e"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"konst"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":"))"}, + {"type":"Text","value":"\n\n "}, + {"type":"CommentSingle","value":"// call overridden replace if present\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":")\u003e("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"(^"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":"))"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace_instance"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"d"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"or"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":"):"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"d"}, + {"type":"Operator","value":")\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"((^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"or"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Operator","value":"):"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"c"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"d"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":"))"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Note the concrete type 'CFunctor' specified in the signature\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":"):"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a0"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"CFunctor"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"or"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Operator","value":"):"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"replace"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"a0"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"replace_instance"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Name","value":"CFunctor"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_,"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_,"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"_\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"f"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// End of SRTP synthax\n"}, + {"type":"Text","value":"\n"}, + {"type":"CommentSingle","value":"// Make sure constraints are correctly colored\n// https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/constraints\n"}, + {"type":"Text","value":"\n"}, + {"type":"CommentSingle","value":"// Base Type Constraint\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class1"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"Exception"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Interface Type Constraint\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class2"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"IComparable"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Null constraint\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class3"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"null"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Member constraint with static member\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class4"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"staticMethod1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Member constraint with instance member\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class5"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Method1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Member constraint with property\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class6"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Property1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":")\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Constructor constraint\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class7"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"new"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":")\u003e("}, + {"type":"Name","value":"thing"}, + {"type":"Operator","value":":"}, + {"type":"Name","value":"int"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"var2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"``ddzdz``"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"string"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"list"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"extra"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"as"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"xxx"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"val"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"Field"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"new"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Reference type constraint\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class8"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"not"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"struct"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Enumeration constraint with underlying value specified\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class9"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"enum"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"uint32"}, + {"type":"Operator","value":"\u003e\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// 'T must implement IComparable, or be an array type with comparable\n// elements, or be System.IntPtr or System.UIntPtr. Also, 'T must not have\n// the NoComparison attribute.\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class10"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"comparison"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// 'T must support equality. This is true for any type that does not\n// have the NoEquality attribute.\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class11"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"equality"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class12"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"delegate"}, + {"type":"Operator","value":"\u003c"}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"EventArgs"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Operator","value":"\u003e\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class13"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"unmanaged"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Member constraints with two type parameters\n// Most often used with static type parameters in inline functions\n"}, + {"type":"Text","value":"\n"}, + {"type":"CommentSingle","value":"// Test that we are correctly detecting the end of the STRP syntahx when there is only one argument\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"doNothing"}, + {"type":"Operator","value":"(_"}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(+)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"))"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"doNothing"}, + {"type":"Operator","value":"(_"}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"Word"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"Word"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"toJson"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"Word"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"Word"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"Word"}, + {"type":"Operator","value":"))"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"add2"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(+)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"))"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"add"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(+)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"),"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// ^T and ^U must support operator +\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"heterogenousAdd"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"or"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(+)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"),"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"heterogenousAdd"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"Word"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(^"}, + {"type":"Name","value":"Word"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"or"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(+)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"Word"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"Word"}, + {"type":"Operator","value":"),"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"+"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// If there are multiple constraints, use the and keyword to separate them.\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class14"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":","}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"U"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"equality"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"and"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"U"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"equality"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class15"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"``generic type with space``"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"``generic type with space``"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"System"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"Exception"}, + {"type":"Operator","value":"\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Type constrainst coloration also works in the constructor\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"Class16"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"value1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"or"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"member"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"(+)"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"),"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"value2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"^"}, + {"type":"Name","value":"U"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"class"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"end"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Make sure that `:\u003e` isn't closing the current generic tag\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"inline"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"create"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"when"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":\u003e"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"obj"}, + {"type":"Text","value":" "}, + {"type":"OperatorWord","value":"and"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"new"}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"KeywordType","value":"unit"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"a"}, + {"type":"Operator","value":")\u003e"}, + {"type":"Text","value":" "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"failwith"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"\""}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Explicit Fields\n// Adapted from: https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/explicit-fields-the-val-keyword\n// And : https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/let-bindings-in-classes\n"}, + {"type":"Text","value":"\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"MyType"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"``Generic type with spaces``"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Operator","value":"\u003e"}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInt1"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"10"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInt3"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"3"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"DefaultValue"}, + {"type":"Operator","value":"\u003e]"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"static"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"val"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"private"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myInt2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"DefaultValue"}, + {"type":"Operator","value":"\u003e]"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"val"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myString"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"``Generic type with spaces``"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"[\u003c"}, + {"type":"Name","value":"DefaultValue"}, + {"type":"Operator","value":"\u003e]"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"val"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"mutable"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"myString2"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"'"}, + {"type":"Name","value":"T"}, + {"type":"Text","value":"\n\n"}, + {"type":"Keyword","value":"type"}, + {"type":"Text","value":" "}, + {"type":"NameClass","value":"MyClass"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"val"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"val"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":":"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"int"}, + {"type":"Text","value":"\n "}, + {"type":"CommentSingle","value":"// The following version of the constructor is an error\n"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// because b is not initialized.\n"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// new (a0, b0) = { a = a0; }\n"}, + {"type":"Text","value":" "}, + {"type":"CommentSingle","value":"// The following version is acceptable because all fields are initialized.\n"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"new"}, + {"type":"Operator","value":"("}, + {"type":"Name","value":"a0"}, + {"type":"Operator","value":","}, + {"type":"Text","value":" "}, + {"type":"Name","value":"b0"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"a0"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"b"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"b0"}, + {"type":"Operator","value":";"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n\n"}, + {"type":"CommentSingle","value":"// Check that SRTP do not break standard syntax between `(` \u0026 `)`\n"}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"incorrect"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"("}, + {"type":"Keyword","value":"fun"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"loadedModel"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"-\u003e"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"temp"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Name","value":"async"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"return"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"0"}, + {"type":"Text","value":"\n "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n "}, + {"type":"Keyword","value":"let"}, + {"type":"Text","value":" "}, + {"type":"NameVariable","value":"loadedModel"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"{"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"loadedModel"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"with"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"FormState"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"Text","value":" "}, + {"type":"NameNamespace","value":"Form"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"setWaiting"}, + {"type":"Text","value":" "}, + {"type":"Keyword","value":"false"}, + {"type":"Text","value":" "}, + {"type":"Name","value":"loadedModel"}, + {"type":"Operator","value":"."}, + {"type":"Name","value":"FormState"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"}"}, + {"type":"Text","value":"\n "}, + {"type":"NameBuiltinPseudo","value":"()"}, + {"type":"Operator","value":")"}, + {"type":"Text","value":"\n"} +] diff --git a/lexers/testdata/fsharp/fsharp_package_reference.actual b/lexers/testdata/fsharp/fsharp_package_reference.actual new file mode 100644 index 000000000..8d406785d --- /dev/null +++ b/lexers/testdata/fsharp/fsharp_package_reference.actual @@ -0,0 +1 @@ +#r "nuget: Newtonsoft.Json" diff --git a/lexers/testdata/fsharp/fsharp_package_reference.expected b/lexers/testdata/fsharp/fsharp_package_reference.expected new file mode 100644 index 000000000..62736786e --- /dev/null +++ b/lexers/testdata/fsharp/fsharp_package_reference.expected @@ -0,0 +1,6 @@ +[ + {"type":"CommentPreproc","value":"#r"}, + {"type":"Text","value":" "}, + {"type":"LiteralString","value":"\"nuget: Newtonsoft.Json\""}, + {"type":"Text","value":"\n"} +]