From ebd16cd644141d2adab635ad90a2d00229bb91e3 Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Sun, 18 Feb 2024 11:12:16 +0000 Subject: [PATCH] Basic snapshot tests --- build.sbt | 10 +- modules/lsp/src/main/scala/json.scala | 13 +- .../tests/request__textDocument_documentLink | 15 ++ .../request__textDocument_documentSymbol | 15 ++ .../tests/request__textDocument_foldingRange | 15 ++ .../tests/request__textDocument_references | 15 ++ .../tests/request__workspace_configuration | 15 ++ .../tests/response__textDocument_documentLink | 15 ++ .../response__textDocument_documentSymbol | 15 ++ .../tests/response__textDocument_foldingRange | 15 ++ .../tests/response__textDocument_references | 15 ++ .../tests/response__workspace_configuration | 15 ++ modules/tests/src/test/scala/CodecTest.scala | 128 ++++++++---------- .../scala/DeriveScalacheckArbitrary.scala | 46 ++++--- .../src/test/scala/SnapshotsIntegration.scala | 24 ++++ 15 files changed, 276 insertions(+), 95 deletions(-) create mode 100644 modules/tests/src/test/resources/snapshots/tests/request__textDocument_documentLink create mode 100644 modules/tests/src/test/resources/snapshots/tests/request__textDocument_documentSymbol create mode 100644 modules/tests/src/test/resources/snapshots/tests/request__textDocument_foldingRange create mode 100644 modules/tests/src/test/resources/snapshots/tests/request__textDocument_references create mode 100644 modules/tests/src/test/resources/snapshots/tests/request__workspace_configuration create mode 100644 modules/tests/src/test/resources/snapshots/tests/response__textDocument_documentLink create mode 100644 modules/tests/src/test/resources/snapshots/tests/response__textDocument_documentSymbol create mode 100644 modules/tests/src/test/resources/snapshots/tests/response__textDocument_foldingRange create mode 100644 modules/tests/src/test/resources/snapshots/tests/response__textDocument_references create mode 100644 modules/tests/src/test/resources/snapshots/tests/response__workspace_configuration create mode 100644 modules/tests/src/test/scala/SnapshotsIntegration.scala diff --git a/build.sbt b/build.sbt index 5efe5a806..fdbb79689 100644 --- a/build.sbt +++ b/build.sbt @@ -126,13 +126,11 @@ lazy val lsp = projectMatrix libraryDependencies += "com.lihaoyi" %%% "upickle" % V.upickle, libraryDependencies += "org.typelevel" %%% "cats-core" % V.cats, libraryDependencies += "tech.neander" %%% "jsonrpclib-core" % V.jsonrpclib, - test := {}, - snapshotsPackageName := "tests.core" + test := {} ) .jvmPlatform(V.scalaVersions) .jsPlatform(V.scalaVersions) .nativePlatform(V.scalaVersions) - .enablePlugins(SnapshotsPlugin) lazy val app = projectMatrix .in(file("modules/app")) @@ -194,10 +192,14 @@ lazy val tests = projectMatrix .settings( libraryDependencies += "org.http4s" %% "http4s-jdk-http-client" % V.http4sJdkClient % Test, libraryDependencies += "com.disneystreaming" %%% "weaver-cats" % V.weaver % Test, + libraryDependencies += "com.lihaoyi" %%% "pprint" % "0.7.0" % Test, libraryDependencies += "org.typelevel" %% "shapeless3-deriving" % "3.4.1" % Test, libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.17.0" % Test, - Test / fork := virtualAxes.value.contains(VirtualAxis.jvm) + Test / fork := virtualAxes.value.contains(VirtualAxis.jvm), + snapshotsPackageName := "tests.core", + snapshotsForceOverwrite := !sys.env.contains("CI") ) + .enablePlugins(SnapshotsPlugin) lazy val example = projectMatrix .in(file("modules/example")) diff --git a/modules/lsp/src/main/scala/json.scala b/modules/lsp/src/main/scala/json.scala index 87a94b474..a48a4f939 100644 --- a/modules/lsp/src/main/scala/json.scala +++ b/modules/lsp/src/main/scala/json.scala @@ -24,24 +24,25 @@ private[lsp] object json: val valueReader = upickle.default.readwriter[ujson.Value] def badMerge[T](r1: => Reader[?], rest: Reader[?]*): Reader[T] = valueReader.map { json => - var t: T | Null = null - val stack = Vector.newBuilder[Throwable] + var t = Option.empty[T] + val stack = Vector.newBuilder[Throwable] (r1 +: rest).foreach { reader => - if t == null then + if t.isEmpty then try - t = + t = Some( read[T](json, trace = true)(using reader.asInstanceOf[Reader[T]]) + ) catch case exc => stack += exc } - if t != null then t.nn - else + t.getOrElse( throw new LangoustineError.FailureParsing( json, stack.result().headOption.getOrElse(null) ) + ) } extension [T](r: Reader[T]) def widen[K >: T] = r.map(_.asInstanceOf[K]) diff --git a/modules/tests/src/test/resources/snapshots/tests/request__textDocument_documentLink b/modules/tests/src/test/resources/snapshots/tests/request__textDocument_documentLink new file mode 100644 index 000000000..7d4906e31 --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/request__textDocument_documentLink @@ -0,0 +1,15 @@ +DocumentLinkParams(TextDocumentIdentifier(file1),凇뙑엸䝡럓젨돟딖墦삭痚Ù㡦뒹氯‸й⮴Պ鱀俘ཀྵ궐봒餥⵹脑唔釖ۑ韆◭摯㢥莟犒秳剴觞萦ឱ鿨ᑬ뒀懥剽㏿ᐥ᳟Ᵹ㌂犤雁駒瞧嫼ꐽꈉꜶ拁ꈁ뻓蠈떯ૹ釡䓚屚뇣豐铹꤀脋뒔竟F,봮ࠗ짔暧貤ⅻ䄙ꨮ碡듘敒溷텛甚惙휙꺢뮷찾ⲁ㐐驩瞶죊湪祸⻎ⅶ䩸妖ꙋ栋ꯈ졮焼ᤝ릌씓〡跿薽) +{"textDocument":{"uri":"file1"},"workDoneToken":"凇뙑엸䝡럓젨돟딖墦삭痚Ù㡦뒹氯‸й⮴Պ鱀俘ཀྵ궐봒餥⵹脑唔釖ۑ韆◭摯㢥莟犒秳剴觞萦ឱ鿨ᑬ뒀懥剽㏿ᐥ᳟Ᵹ㌂犤雁駒瞧嫼ꐽꈉꜶ拁ꈁ뻓蠈떯ૹ釡䓚屚뇣豐铹꤀脋뒔竟F","partialResultToken":"봮ࠗ짔暧貤ⅻ䄙ꨮ碡듘敒溷텛甚惙휙꺢뮷찾ⲁ㐐驩瞶죊湪祸⻎ⅶ䩸妖ꙋ栋ꯈ졮焼ᤝ릌씓〡跿薽"} +--------------------- +DocumentLinkParams(TextDocumentIdentifier(file2),韵硠趣ꏱ黟滍떆੦혽㲰䬒↽Ṟᐫ꜀璬䍅뜝㻠・뒨뢾ᷓ,1534272523) +{"textDocument":{"uri":"file2"},"workDoneToken":"韵硠趣ꏱ黟滍떆੦혽㲰䬒↽Ṟᐫ꜀璬䍅뜝㻠・뒨뢾ᷓ","partialResultToken":1534272523} +--------------------- +DocumentLinkParams(TextDocumentIdentifier(file1),1346632011,-2147483648) +{"textDocument":{"uri":"file1"},"workDoneToken":1346632011,"partialResultToken":-2147483648} +--------------------- +DocumentLinkParams(TextDocumentIdentifier(file2),null,) +{"textDocument":{"uri":"file2"},"partialResultToken":""} +--------------------- +DocumentLinkParams(TextDocumentIdentifier(file1),null,null) +{"textDocument":{"uri":"file1"}} +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/request__textDocument_documentSymbol b/modules/tests/src/test/resources/snapshots/tests/request__textDocument_documentSymbol new file mode 100644 index 000000000..cfde67257 --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/request__textDocument_documentSymbol @@ -0,0 +1,15 @@ +DocumentSymbolParams(TextDocumentIdentifier(file2),null,⨩|훠뱟慻ি퇖∷㟿㣥ꅟ儵ꆂ糏粇흱凘ꨴ骿ᑜ훗뱗渐姕Ạኹ᝱渻⛱픦͛뢋ᝦ暯ꣲ燦拘ⴝ뺰) +{"textDocument":{"uri":"file2"},"partialResultToken":"⨩|훠뱟慻ি퇖∷㟿㣥ꅟ儵ꆂ糏粇흱凘ꨴ骿ᑜ훗뱗渐姕Ạኹ᝱渻⛱픦͛뢋ᝦ暯ꣲ燦拘ⴝ뺰"} +--------------------- +DocumentSymbolParams(TextDocumentIdentifier(file1),蕱흐퉖쵡⿷ሾ뚬䇹㰽Ղ惘횭捦顆른ꏧ䬂៯雚㻉뙻嫰說雄௯βי᧧㮳핅鏐暗쌦ᔇ䢩朓앾䴒ᔂ詻ش妉벩અ뻰ﲎ䤤歰荺㸩嬡䬾⫕兘蔄,null) +{"textDocument":{"uri":"file1"},"workDoneToken":"蕱흐퉖쵡⿷ሾ뚬䇹㰽Ղ惘횭捦顆른ꏧ䬂៯雚㻉뙻嫰說雄௯βי᧧㮳핅鏐暗쌦ᔇ䢩朓앾䴒ᔂ詻ش妉벩અ뻰ﲎ䤤歰荺㸩嬡䬾⫕兘蔄"} +--------------------- +DocumentSymbolParams(TextDocumentIdentifier(file2),2147483647,-429001240) +{"textDocument":{"uri":"file2"},"workDoneToken":2147483647,"partialResultToken":-429001240} +--------------------- +DocumentSymbolParams(TextDocumentIdentifier(file2),null,null) +{"textDocument":{"uri":"file2"}} +--------------------- +DocumentSymbolParams(TextDocumentIdentifier(file2),null,-275211255) +{"textDocument":{"uri":"file2"},"partialResultToken":-275211255} +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/request__textDocument_foldingRange b/modules/tests/src/test/resources/snapshots/tests/request__textDocument_foldingRange new file mode 100644 index 000000000..d7fb6b134 --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/request__textDocument_foldingRange @@ -0,0 +1,15 @@ +FoldingRangeParams(TextDocumentIdentifier(file1),null,null) +{"textDocument":{"uri":"file1"}} +--------------------- +FoldingRangeParams(TextDocumentIdentifier(file2),null,340346666) +{"textDocument":{"uri":"file2"},"partialResultToken":340346666} +--------------------- +FoldingRangeParams(TextDocumentIdentifier(file1),2002172247,릏炶걭皵ꭗ㆑㶳˓ᯓ᯻㘗ᴢᅩꢅଢ଼㤵侃ۅ풃罹襒乣蜧飻訤鿌Ἇ쯑놬쵪銡䪰ᄌ⭼䥥媚荾ᗲ繾쉴䂷壄擄䀯豫ꓛ沏韩洦⼝ꇩ䪀Ąగ䐊࠰驂띈刺) +{"textDocument":{"uri":"file1"},"workDoneToken":2002172247,"partialResultToken":"릏炶걭皵ꭗ㆑㶳˓ᯓ᯻㘗ᴢᅩꢅଢ଼㤵侃ۅ풃罹襒乣蜧飻訤鿌Ἇ쯑놬쵪銡䪰ᄌ⭼䥥媚荾ᗲ繾쉴䂷壄擄䀯豫ꓛ沏韩洦⼝ꇩ䪀Ąగ䐊࠰驂띈刺"} +--------------------- +FoldingRangeParams(TextDocumentIdentifier(file1),-2147483648,ҵ䭢罂ᒟⷒ竜툘揅ᄿ閥씾嘑쎼厱䧒䬠謔䲶钠蘔椹鑀鶒ﹺ愈滷꣧䧨୦এࣦ൞bޝࡖʩ縆檜삳㦺Ṅ鏀阊㋬衝躉繯⟊ᓺ䙞折많댮앵꜑Ľ꾃댪⯔4溡㬪ﳺ뺸⍵榴㌵研鴳羺䃹鐪鐍뙁ᘊ⫼㹫鋋酸ꗼ祺퇍甝䌍) +{"textDocument":{"uri":"file1"},"workDoneToken":-2147483648,"partialResultToken":"ҵ䭢罂ᒟⷒ竜툘揅ᄿ閥씾嘑쎼厱䧒䬠謔䲶钠蘔椹鑀鶒ﹺ愈滷꣧䧨୦এࣦ൞bޝࡖʩ縆檜삳㦺Ṅ鏀阊㋬衝躉繯⟊ᓺ䙞折많댮앵꜑Ľ꾃댪⯔4溡㬪ﳺ뺸⍵榴㌵研鴳羺䃹鐪鐍뙁ᘊ⫼㹫鋋酸ꗼ祺퇍甝䌍"} +--------------------- +FoldingRangeParams(TextDocumentIdentifier(file1),null,null) +{"textDocument":{"uri":"file1"}} +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/request__textDocument_references b/modules/tests/src/test/resources/snapshots/tests/request__textDocument_references new file mode 100644 index 000000000..2cda2a11e --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/request__textDocument_references @@ -0,0 +1,15 @@ +ReferenceParams(ReferenceContext(true),TextDocumentIdentifier(file2),Position(55,68),null,null) +{"context":{"includeDeclaration":true},"textDocument":{"uri":"file2"},"position":{"line":55,"character":68}} +--------------------- +ReferenceParams(ReferenceContext(true),TextDocumentIdentifier(file1),Position(14,63),자墿潵/埜ꀇ獾ᱡ爵Ἆ῁䦟掰໌ӟ魙ࣱ䐌椥樤髜ꜙﬤ췓矍Ώ왚舞⡠췢셖狛̒଱☲唸檽먥⪺춭刐景しᄚ沓琜쀭뺮᧡틆牅舩኿﷎적錤쎬ﴎ碚缭バܾ챶ᑟ埠,-720406641) +{"context":{"includeDeclaration":true},"textDocument":{"uri":"file1"},"position":{"line":14,"character":63},"workDoneToken":"자墿潵/埜ꀇ獾ᱡ爵Ἆ῁䦟掰໌ӟ魙ࣱ䐌椥樤髜ꜙﬤ췓矍Ώ왚舞⡠췢셖狛̒଱☲唸檽먥⪺춭刐景しᄚ沓琜쀭뺮᧡틆牅舩኿﷎적錤쎬ﴎ碚缭バܾ챶ᑟ埠","partialResultToken":-720406641} +--------------------- +ReferenceParams(ReferenceContext(true),TextDocumentIdentifier(file1),Position(18,50),-590955446,↺ퟶﺯࢊⷽ禚㑄劚韏졛䏠濍㬯ଇ類೉㪳圙黅汰檴㚜티랟鱛闃赀淶狼龒⏩ኙ䝕턇ꊚЉ湚皺㤖뎌ﴩ⮦앍⨿꟧樂낸㙲庑ꂂ榧ⓐ⑥趎Ǫ핾⬐럢⤛搰﯊ᴞ諍巧㛴䘜㰳䢹芍毂墖ꗶ둡ㅉ又䍡չ춃俓쿍쟺㏹ㄋካ婾딈) +{"context":{"includeDeclaration":true},"textDocument":{"uri":"file1"},"position":{"line":18,"character":50},"workDoneToken":-590955446,"partialResultToken":"↺ퟶﺯࢊⷽ禚㑄劚韏졛䏠濍㬯ଇ類೉㪳圙黅汰檴㚜티랟鱛闃赀淶狼龒⏩ኙ䝕턇ꊚЉ湚皺㤖뎌ﴩ⮦앍⨿꟧樂낸㙲庑ꂂ榧ⓐ⑥趎Ǫ핾⬐럢⤛搰﯊ᴞ諍巧㛴䘜㰳䢹芍毂墖ꗶ둡ㅉ又䍡չ춃俓쿍쟺㏹ㄋካ婾딈"} +--------------------- +ReferenceParams(ReferenceContext(false),TextDocumentIdentifier(file2),Position(35,78),-1788505416,null) +{"context":{"includeDeclaration":false},"textDocument":{"uri":"file2"},"position":{"line":35,"character":78},"workDoneToken":-1788505416} +--------------------- +ReferenceParams(ReferenceContext(false),TextDocumentIdentifier(file2),Position(85,93),null,null) +{"context":{"includeDeclaration":false},"textDocument":{"uri":"file2"},"position":{"line":85,"character":93}} +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/request__workspace_configuration b/modules/tests/src/test/resources/snapshots/tests/request__workspace_configuration new file mode 100644 index 000000000..58ae410bb --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/request__workspace_configuration @@ -0,0 +1,15 @@ +WorkspaceConfigurationInput(Vector(ConfigurationItem(null,7IV2jyhSa4fTlTV4RqnJdIS5Lf26oM94lLVDcTkdfUY4VqrEHEm8Z), ConfigurationItem(mVqdQfvUauUwDNYox10FoJ1jWuNI9ZuiAjF8nwKyFT47RmuXcYiRM0gVLRTD1Ps6nPOxUirvUJNZYWmmrcSHpwHzPPd,null), ConfigurationItem(null,null), ConfigurationItem(vNnbw2laZMu2x2Rzrpy0tLR7PYld6g9eU9jtaWD89InMPAg8,I4U8nPdKqIJLS6TIzmiLkOW9OCMPLhHEpZBNRXAaIYC), ConfigurationItem(null,NwzK8SAQcILpnP6Vz6812Khl5xJgriF), ConfigurationItem(null,null), ConfigurationItem(zQq2sbsH5CyAwr005bZ,N), ConfigurationItem(jwIpOwTmXRW2fTGS3h552Plbv7mm99uvWgl,null), ConfigurationItem(8tzPWcJ3uDbUrb24SKoRbXfo872kOA,pjpC778FLofQdMp), ConfigurationItem(2DrTTPVCiGLjzQ1Rs4ozUz26ji6t,plDpg1HcTD8aQAzEeeTk8pIoN6FKT3twNlIVUXsmRxDZmro8), ConfigurationItem(A1geBsutLFe,w6qMEbvbL0fiRRw7xagA3t5i3FD5cfnJuTtHF2y7AMJ4bilfmYIFEOdSc0GeiUuY), ConfigurationItem(gtWTD7zr3V4hSjumqhqxcb1HaSxkJqSIBGX4rC6UxNh3pAAd0suAtXMll2DxStReEfIhHkv8mPA,null), ConfigurationItem(pbOsvQQYeVbsvyYjojrhx0zXQ,M5), ConfigurationItem(null,E1wZ4lyR1J6NDv0CV1Cp3wyRArdFoj2Rx6E12Crz2jFA6NziOSZBkKwY3ts5DAYlpp), ConfigurationItem(YyOKwUUFgP0j7k8I73CXi8CX86h4LorTJUh47L6gV4FBxftqnh31g,null), ConfigurationItem(null,kpieSPhkSkUn7q056adVnZgligCyIxpJk1FjPLaoo7aqanz97fSPx53l), ConfigurationItem(null,P3APt39tpVLHcSLhn5htV5SwRIJiG1HVZg5kMzbiaB2jsmyd6belml1t3coiAVlNDU0WIM9ImcZS), ConfigurationItem(null,RnYuqdPhu7sm7tGvVDUOC), ConfigurationItem(RPwBALkqagVfS677KG3a,null), ConfigurationItem(EHfoFTs,2PDQ0gJQtghTquJmFt6ZpVC9x8FUgMt5QQfRqA9TcNa8wmiM1NjCtlsFof6shV43), ConfigurationItem(16wrAR8bxUGHaeoWanP7CJXyZmYB9c09jEGA0rbZaDzS3XLAIP1tJ0dhj,UEno37Xy4DGPE2555Lu78l7RYQ3qtwVVT9d4Q7HZWJz), ConfigurationItem(rdnRwoPl16Bc0YJZyKlj1bUx9kYeuy0zdsF7sp0iw7NRpoxDPPih7U,null), ConfigurationItem(null,null), ConfigurationItem(fix7pIaAYiZ,null), ConfigurationItem(mZrkdjg5qbPNko9t8NTQ6wTXEN,null), ConfigurationItem(m0f,null), ConfigurationItem(R6TPsF5aCYVTWYAoWBfXjc5wteIvSF5S72DQ,null), ConfigurationItem(null,hEGAnFrmtAwWBhvA8oCM3Qtx6jnmpR6H3), ConfigurationItem(KzVCuhA6A4,null), ConfigurationItem(null,null), ConfigurationItem(null,UqcUJ0PPVsKIosL4PAchhD28T4FpSM2o1hwLQ94LA6r), ConfigurationItem(null,null), ConfigurationItem(OEdNbGgchTyn2fLTAtXaF78lC,rE8syMBR), ConfigurationItem(null,GGHETYXHudSMODfV9XBcNtNP67S2ZUf2bxqfNMHT29Jd8b8M3EOYLDwOETTRXe7), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(NCKObFktpoeNwMbP5K3YntX7Or1cLOIL3JrisJDd6,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(45tyBIjcPKgkeyZDPEa15mK8uHKpyMee7ja3OH0628eE9R7k8,yAXtoyITcQ9oqexofKRm60SNKgc3PmIGVre2yDWCgj3x5u9JNjFhAJChBwyUuryjw9Rm1Heky3sO49krXUpUhiybGxNYPv), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,1773qzCOqHJt3XTvh7EQwk6VCvcgDXRfch7a8wHjAwtrT9bnVyvRdl1Ow6ErKuhMl9lJfNd), ConfigurationItem(null,0F4IvvJkafJE1Do8RlBdc4O68vDmsCmi9), ConfigurationItem(null,rmMTm6MTl1HgprkBrdpj01), ConfigurationItem(3wEJw,null), ConfigurationItem(null,2jUNvm8WI68jCWYjufJunqOg9ICxEZ5VR5cxT5JOPAGyeH1ZI67hJvYAH), ConfigurationItem(null,m7jNIbCtFKvgZThXywlLGbQJEMk5uo), ConfigurationItem(XsDTPzK5TfeXhP3bhexOZ5tjEOAzv3pJVj9x0dvWIZIACQYtPF8LRlv9uvwul,e1y9DyD81YgWfUJZhqcQYxricRVfTGcnqLiRQUnbUajo1wcomdpDAL20OcFqrZhrKukSUx2lQOtJPaNBQKrQLWfLbt9Je), ConfigurationItem(null,zYr), ConfigurationItem(null,null), ConfigurationItem(null,QmwSP7), ConfigurationItem(null,null), ConfigurationItem(M7q85tQqCSg5baciUSZV9eOYY6L8zSoNVhZokiu32s66Jj1GG2OMYvbk17WFpSsamTftQbB1lQf5tUxRqm5JL,null), ConfigurationItem(null,null), ConfigurationItem(umumb5PHKV20e4P,XoChGCZauPDkKTVEDsW2ziAaKX8u4mUpzQelg5WdNbWtjpYN59k8qX7uMUulQo1mrv7WsCQZDJ3UMSXphaYMz), ConfigurationItem(null,JOd09O), ConfigurationItem(null,v5suN4bIwmPv9O8ipV78p2b5fehpNtdeNTCbfWeE9Uucb6Q61eJXa7L5Ba2cqYeWGB), ConfigurationItem(IbNacqpTaGJs8DfnFM0xJ9J0PfmobB3OA3Zf4h3uSwiYvplaenMSI9p0o2W36Mvkoei,null), ConfigurationItem(,HaLZ7KSMc2SBJFZn7ZuujzZuZTI2w1qsDMz1jB7qQCwkVyt7EFCTMfpqHGvrewXCEgdduxeCc), ConfigurationItem(FapN8vJE7b4Gqsw50iI0imaZNTbcK5JasD1JY87JmQaePWrZ5721mt6JydU0g7Ylfi5uL1M,null), ConfigurationItem(GjtRJUhotgSBmGlrQQ3exqNbTlADHSLSWdF9BaEGHnNjy4b0oMBBnFcFn,JgLbLLjf85waaVqJlWvRYj52SDTJwyCE2uawh1D1uGECw2kcFoRdV5ODrJwrAfbcT4SvkTRGFOI6Md4u8s6), ConfigurationItem(null,w0m6Aq), ConfigurationItem(4YHFtj2sdu,mRDpuzDtrldMC), ConfigurationItem(null,null), ConfigurationItem(null,1j4QIPsgZoeHjLrkRGxnjbapTyDDc7JVTKDPHqsRUT8qVoRjcng), ConfigurationItem(null,null), ConfigurationItem(Uw5QQDmxOhpIMjPXw0qLLS9g4W4DTi9B6YGFUexETwPsgNrU5LNmU5Upe1RfoWQs3o4yE3M8FeaNKi5Nxx2HUg,null), ConfigurationItem(null,SYgvj8wObdc9Y0Lt), ConfigurationItem(9eWxSDtirPylzImMVia42F21pA8t5wrWPwNcH79vUr,XEw4pDGeMl8cflK6apQhOHRr9evgP8l0jx3FdT6znFP6h5nNnQL4J8mKgandFjXVOtBbVbIP6imC7pAG7GiQBxk), ConfigurationItem(lL7MzhVOE2AScH1S7xJSIpw4LpclwHobt7b1R0CaWR9RmpTqVwf4b2ZHhyw5vWstXmDdSqfBK5ucmf1FCXJ1,36SsI1YIjhOwA7acRQhSSiA2NPkp7UJ15STeb4qGKyD8yoZta9fK4njvZu06dRQfJtfKtdDBBr4eVyLirUTKVtwlogy)),乖園䥟஼润謀貇盋ス喆䷯ﯩ唙⾌췽ỡ㗩化⇓瑴ၨ뫤縂᩶즇啖ꗞ㯨㻕꽅ﶁ姁䙸㬟㏃揝慐겁껱耛㙤쐹眳∀翇ﭗ卧댷똂榖昖渧ơ⏕ᚖ陰䎽뀒忤⩣괟椓뷂ꭉጐꈀ) +{"items":[{"section":"7IV2jyhSa4fTlTV4RqnJdIS5Lf26oM94lLVDcTkdfUY4VqrEHEm8Z"},{"scopeUri":"mVqdQfvUauUwDNYox10FoJ1jWuNI9ZuiAjF8nwKyFT47RmuXcYiRM0gVLRTD1Ps6nPOxUirvUJNZYWmmrcSHpwHzPPd"},{},{"scopeUri":"vNnbw2laZMu2x2Rzrpy0tLR7PYld6g9eU9jtaWD89InMPAg8","section":"I4U8nPdKqIJLS6TIzmiLkOW9OCMPLhHEpZBNRXAaIYC"},{"section":"NwzK8SAQcILpnP6Vz6812Khl5xJgriF"},{},{"scopeUri":"zQq2sbsH5CyAwr005bZ","section":"N"},{"scopeUri":"jwIpOwTmXRW2fTGS3h552Plbv7mm99uvWgl"},{"scopeUri":"8tzPWcJ3uDbUrb24SKoRbXfo872kOA","section":"pjpC778FLofQdMp"},{"scopeUri":"2DrTTPVCiGLjzQ1Rs4ozUz26ji6t","section":"plDpg1HcTD8aQAzEeeTk8pIoN6FKT3twNlIVUXsmRxDZmro8"},{"scopeUri":"A1geBsutLFe","section":"w6qMEbvbL0fiRRw7xagA3t5i3FD5cfnJuTtHF2y7AMJ4bilfmYIFEOdSc0GeiUuY"},{"scopeUri":"gtWTD7zr3V4hSjumqhqxcb1HaSxkJqSIBGX4rC6UxNh3pAAd0suAtXMll2DxStReEfIhHkv8mPA"},{"scopeUri":"pbOsvQQYeVbsvyYjojrhx0zXQ","section":"M5"},{"section":"E1wZ4lyR1J6NDv0CV1Cp3wyRArdFoj2Rx6E12Crz2jFA6NziOSZBkKwY3ts5DAYlpp"},{"scopeUri":"YyOKwUUFgP0j7k8I73CXi8CX86h4LorTJUh47L6gV4FBxftqnh31g"},{"section":"kpieSPhkSkUn7q056adVnZgligCyIxpJk1FjPLaoo7aqanz97fSPx53l"},{"section":"P3APt39tpVLHcSLhn5htV5SwRIJiG1HVZg5kMzbiaB2jsmyd6belml1t3coiAVlNDU0WIM9ImcZS"},{"section":"RnYuqdPhu7sm7tGvVDUOC"},{"scopeUri":"RPwBALkqagVfS677KG3a"},{"scopeUri":"EHfoFTs","section":"2PDQ0gJQtghTquJmFt6ZpVC9x8FUgMt5QQfRqA9TcNa8wmiM1NjCtlsFof6shV43"},{"scopeUri":"16wrAR8bxUGHaeoWanP7CJXyZmYB9c09jEGA0rbZaDzS3XLAIP1tJ0dhj","section":"UEno37Xy4DGPE2555Lu78l7RYQ3qtwVVT9d4Q7HZWJz"},{"scopeUri":"rdnRwoPl16Bc0YJZyKlj1bUx9kYeuy0zdsF7sp0iw7NRpoxDPPih7U"},{},{"scopeUri":"fix7pIaAYiZ"},{"scopeUri":"mZrkdjg5qbPNko9t8NTQ6wTXEN"},{"scopeUri":"m0f"},{"scopeUri":"R6TPsF5aCYVTWYAoWBfXjc5wteIvSF5S72DQ"},{"section":"hEGAnFrmtAwWBhvA8oCM3Qtx6jnmpR6H3"},{"scopeUri":"KzVCuhA6A4"},{},{"section":"UqcUJ0PPVsKIosL4PAchhD28T4FpSM2o1hwLQ94LA6r"},{},{"scopeUri":"OEdNbGgchTyn2fLTAtXaF78lC","section":"rE8syMBR"},{"section":"GGHETYXHudSMODfV9XBcNtNP67S2ZUf2bxqfNMHT29Jd8b8M3EOYLDwOETTRXe7"},{},{},{"scopeUri":"NCKObFktpoeNwMbP5K3YntX7Or1cLOIL3JrisJDd6"},{},{},{"scopeUri":"45tyBIjcPKgkeyZDPEa15mK8uHKpyMee7ja3OH0628eE9R7k8","section":"yAXtoyITcQ9oqexofKRm60SNKgc3PmIGVre2yDWCgj3x5u9JNjFhAJChBwyUuryjw9Rm1Heky3sO49krXUpUhiybGxNYPv"},{},{},{"section":"1773qzCOqHJt3XTvh7EQwk6VCvcgDXRfch7a8wHjAwtrT9bnVyvRdl1Ow6ErKuhMl9lJfNd"},{"section":"0F4IvvJkafJE1Do8RlBdc4O68vDmsCmi9"},{"section":"rmMTm6MTl1HgprkBrdpj01"},{"scopeUri":"3wEJw"},{"section":"2jUNvm8WI68jCWYjufJunqOg9ICxEZ5VR5cxT5JOPAGyeH1ZI67hJvYAH"},{"section":"m7jNIbCtFKvgZThXywlLGbQJEMk5uo"},{"scopeUri":"XsDTPzK5TfeXhP3bhexOZ5tjEOAzv3pJVj9x0dvWIZIACQYtPF8LRlv9uvwul","section":"e1y9DyD81YgWfUJZhqcQYxricRVfTGcnqLiRQUnbUajo1wcomdpDAL20OcFqrZhrKukSUx2lQOtJPaNBQKrQLWfLbt9Je"},{"section":"zYr"},{},{"section":"QmwSP7"},{},{"scopeUri":"M7q85tQqCSg5baciUSZV9eOYY6L8zSoNVhZokiu32s66Jj1GG2OMYvbk17WFpSsamTftQbB1lQf5tUxRqm5JL"},{},{"scopeUri":"umumb5PHKV20e4P","section":"XoChGCZauPDkKTVEDsW2ziAaKX8u4mUpzQelg5WdNbWtjpYN59k8qX7uMUulQo1mrv7WsCQZDJ3UMSXphaYMz"},{"section":"JOd09O"},{"section":"v5suN4bIwmPv9O8ipV78p2b5fehpNtdeNTCbfWeE9Uucb6Q61eJXa7L5Ba2cqYeWGB"},{"scopeUri":"IbNacqpTaGJs8DfnFM0xJ9J0PfmobB3OA3Zf4h3uSwiYvplaenMSI9p0o2W36Mvkoei"},{"scopeUri":"","section":"HaLZ7KSMc2SBJFZn7ZuujzZuZTI2w1qsDMz1jB7qQCwkVyt7EFCTMfpqHGvrewXCEgdduxeCc"},{"scopeUri":"FapN8vJE7b4Gqsw50iI0imaZNTbcK5JasD1JY87JmQaePWrZ5721mt6JydU0g7Ylfi5uL1M"},{"scopeUri":"GjtRJUhotgSBmGlrQQ3exqNbTlADHSLSWdF9BaEGHnNjy4b0oMBBnFcFn","section":"JgLbLLjf85waaVqJlWvRYj52SDTJwyCE2uawh1D1uGECw2kcFoRdV5ODrJwrAfbcT4SvkTRGFOI6Md4u8s6"},{"section":"w0m6Aq"},{"scopeUri":"4YHFtj2sdu","section":"mRDpuzDtrldMC"},{},{"section":"1j4QIPsgZoeHjLrkRGxnjbapTyDDc7JVTKDPHqsRUT8qVoRjcng"},{},{"scopeUri":"Uw5QQDmxOhpIMjPXw0qLLS9g4W4DTi9B6YGFUexETwPsgNrU5LNmU5Upe1RfoWQs3o4yE3M8FeaNKi5Nxx2HUg"},{"section":"SYgvj8wObdc9Y0Lt"},{"scopeUri":"9eWxSDtirPylzImMVia42F21pA8t5wrWPwNcH79vUr","section":"XEw4pDGeMl8cflK6apQhOHRr9evgP8l0jx3FdT6znFP6h5nNnQL4J8mKgandFjXVOtBbVbIP6imC7pAG7GiQBxk"},{"scopeUri":"lL7MzhVOE2AScH1S7xJSIpw4LpclwHobt7b1R0CaWR9RmpTqVwf4b2ZHhyw5vWstXmDdSqfBK5ucmf1FCXJ1","section":"36SsI1YIjhOwA7acRQhSSiA2NPkp7UJ15STeb4qGKyD8yoZta9fK4njvZu06dRQfJtfKtdDBBr4eVyLirUTKVtwlogy"}],"partialResultToken":"乖園䥟஼润謀貇盋ス喆䷯ﯩ唙⾌췽ỡ㗩化⇓瑴ၨ뫤縂᩶즇啖ꗞ㯨㻕꽅ﶁ姁䙸㬟㏃揝慐겁껱耛㙤쐹眳∀翇ﭗ卧댷똂榖昖渧ơ⏕ᚖ陰䎽뀒忤⩣괟椓뷂ꭉጐꈀ"} +--------------------- +WorkspaceConfigurationInput(Vector(ConfigurationItem(null,pPP8HmApA3uK), ConfigurationItem(UYN4SeIIaxHnxycyt8GKHETq,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(5WJeXQUWTn6Rs9SQh4rKMvSugyb6AVTz1aOyyKgob4qSYG9dvOGfxTtXBGb93UqW32QRCHuBR9wESZK4FgwZadj6,Dajwh37gPf52), ConfigurationItem(null,fP4PAuWqgGvpWqCJDNC66q7ReSsEzr), ConfigurationItem(4aC,zYYGdZL6KRnHHXEgHQCgeuvzcaX62sqIDrqmrb4sSPvQjrltUhkYOKCeSAcN3WD8Xl4mLkws32), ConfigurationItem(ZGB8moPO0rNcm9lXomazTUuBKloaHHTXB8LK3kSuhN0uVKBZrzY6q4JAvErI5TLyb0rbKj,6qbZMc), ConfigurationItem(null,4J8IO6uN1O745OBp5Ucr7npjh), ConfigurationItem(OV5s3nXukqj7nGZtnICVIuMtChagmBMoq87KAphMzLi2t5VTBuMBav4d8AnL4ByUR5pZf8z,null), ConfigurationItem(YJDvQGcNO8ArTRgdjDKWbhBOFkGqk2rp1bkXPTAcWMnNIO8abj6uMQJ2gN4v7llJeyQsrC0glgMuPCrQZknJGoaG8mIdQrrrn,null), ConfigurationItem(null,GQs3oR54YJoYFL16vElLfaiL), ConfigurationItem(NoUdOtUz8McKmtRWsHVQCwUFzeAA5VWMLql1KieFgXcwvDFL1AP5u4sWGrqlsve7o3JfvQlQtyJ0J,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(TIEb96PiepPJ3DD2n3d,iS0zHA60ACr7P1SQPN56nsw4CnGKcqG6fWS21F3bKLjJ3iTWLYvYoHXPvwpcLRH0j), ConfigurationItem(null,Hee7J3uwPFfAUQhrcrGA92AO0qIRgBtY70e2wQJHcoe0opRlVdOZyJ), ConfigurationItem(null,null), ConfigurationItem(null,er8dvOc94CnPLy8rn8o3wHgPCG6gX6Q), ConfigurationItem(null,ndT5GNgpMU2hvfcW), ConfigurationItem(i8YWF0X3HF1llbapuf9eHGFbD2tODAJhAdjZQtwxCjYpO,M94mdG1ouaUrzcfWus3yIf), ConfigurationItem(fePmz6C,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(owkltVVCYPDEw2K45qW6tirPLJz8fQEc50aV1Fu8v,gfQbzD31XxT0DRtVaruyjPhtWkHNvVakFWTPd7T5uqvw38SZHbtlPYIZWxvBlKnRUQmcBGnEJM), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,yoe3xZrqb7j6V), ConfigurationItem(TOqrafN4dKB5mQHFOstoXdNWcDDSV,null), ConfigurationItem(null,VAMR3AgiZtN9P96OBj4p876tXpOK85hn64iBzhe), ConfigurationItem(null,null), ConfigurationItem(null,v4RIXjltHijMu5w8ChIZfQUTNr4zZHBW75OB), ConfigurationItem(null,null), ConfigurationItem(null,Ws7N2FHlU0qJYrWuXnRoQRs72bro5OCnzruaROoO3SDQh2YE0O0Dv5CbpwBo), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(NP0804vBeOoI1TlfoyU5myfgjk8l8P89wwxnQ1LiGGEPInL4L721D,null), ConfigurationItem(z1CuQzEiGiMl6n54YYFXPWNJGZnKJ0cqCaPAelRsIhp3jM9RYjT4EcFgzD,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(YfzII0sq1oDNZWC7J6SCiJHhbt2l3McCvwa2NKgPwcAP9MQWrfvxO7tECqyyDYR,null), ConfigurationItem(null,null), ConfigurationItem(null,cFwzkiWm), ConfigurationItem(FgstHZXiji2kbCVlnvoAUa15qUYcPwkyTtpbOUMU0Xa,65Mfgum5FdMibU0CrhNS1vlnEMXjpj8vscx8yX07cD6y5WiXw7nDbPZ8Jt409WY8YQ), ConfigurationItem(null,null), ConfigurationItem(null,HKNVCQduj4lVufeRT0vvHqygtVNWH7Cl0TYpfQDKXNTMHk7cakyeoyyLF6T1i3TtDt4abpmxi), ConfigurationItem(null,GM1sRasoHFlEyOJvGT71q2CX4C4aZTrAdERX2piUUBTqgV5N4283i7), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(VJshcxStf2e1XNcrA,null), ConfigurationItem(null,jgbfxH76I8xKePPX8AkvRsHIWzg), ConfigurationItem(ez2kpo1zhuze4xIGAcLZB,KXWZGGVyQ7DL8UomfgLoceO0JVNYhO2KuwS1LbcQ7LqfHkYBt), ConfigurationItem(null,IeC), ConfigurationItem(null,VThknqKSdnRyrzZrqEXE7), ConfigurationItem(GbxfnCQnzq22lZek7B5eTUwwZJLTZSvXoEhy,pKcV4nbqvuTYEHlMQZEK3CLjZPkvOy2JzoHVYKf4dHDujedgcKzQiuOD04RQAZW9g4d66PFunQ8jdNiMexj1KPI)),햺ݻ鈺䉾춠蹨鿰ᕻ챣㗜偾朕턆㗵Сⴹ唄卷쨰挝諚쪿컦▾℠袽⇩) +{"items":[{"section":"pPP8HmApA3uK"},{"scopeUri":"UYN4SeIIaxHnxycyt8GKHETq"},{},{},{},{"scopeUri":"5WJeXQUWTn6Rs9SQh4rKMvSugyb6AVTz1aOyyKgob4qSYG9dvOGfxTtXBGb93UqW32QRCHuBR9wESZK4FgwZadj6","section":"Dajwh37gPf52"},{"section":"fP4PAuWqgGvpWqCJDNC66q7ReSsEzr"},{"scopeUri":"4aC","section":"zYYGdZL6KRnHHXEgHQCgeuvzcaX62sqIDrqmrb4sSPvQjrltUhkYOKCeSAcN3WD8Xl4mLkws32"},{"scopeUri":"ZGB8moPO0rNcm9lXomazTUuBKloaHHTXB8LK3kSuhN0uVKBZrzY6q4JAvErI5TLyb0rbKj","section":"6qbZMc"},{"section":"4J8IO6uN1O745OBp5Ucr7npjh"},{"scopeUri":"OV5s3nXukqj7nGZtnICVIuMtChagmBMoq87KAphMzLi2t5VTBuMBav4d8AnL4ByUR5pZf8z"},{"scopeUri":"YJDvQGcNO8ArTRgdjDKWbhBOFkGqk2rp1bkXPTAcWMnNIO8abj6uMQJ2gN4v7llJeyQsrC0glgMuPCrQZknJGoaG8mIdQrrrn"},{"section":"GQs3oR54YJoYFL16vElLfaiL"},{"scopeUri":"NoUdOtUz8McKmtRWsHVQCwUFzeAA5VWMLql1KieFgXcwvDFL1AP5u4sWGrqlsve7o3JfvQlQtyJ0J"},{},{},{"scopeUri":"TIEb96PiepPJ3DD2n3d","section":"iS0zHA60ACr7P1SQPN56nsw4CnGKcqG6fWS21F3bKLjJ3iTWLYvYoHXPvwpcLRH0j"},{"section":"Hee7J3uwPFfAUQhrcrGA92AO0qIRgBtY70e2wQJHcoe0opRlVdOZyJ"},{},{"section":"er8dvOc94CnPLy8rn8o3wHgPCG6gX6Q"},{"section":"ndT5GNgpMU2hvfcW"},{"scopeUri":"i8YWF0X3HF1llbapuf9eHGFbD2tODAJhAdjZQtwxCjYpO","section":"M94mdG1ouaUrzcfWus3yIf"},{"scopeUri":"fePmz6C"},{},{},{"scopeUri":"owkltVVCYPDEw2K45qW6tirPLJz8fQEc50aV1Fu8v","section":"gfQbzD31XxT0DRtVaruyjPhtWkHNvVakFWTPd7T5uqvw38SZHbtlPYIZWxvBlKnRUQmcBGnEJM"},{},{},{"section":"yoe3xZrqb7j6V"},{"scopeUri":"TOqrafN4dKB5mQHFOstoXdNWcDDSV"},{"section":"VAMR3AgiZtN9P96OBj4p876tXpOK85hn64iBzhe"},{},{"section":"v4RIXjltHijMu5w8ChIZfQUTNr4zZHBW75OB"},{},{"section":"Ws7N2FHlU0qJYrWuXnRoQRs72bro5OCnzruaROoO3SDQh2YE0O0Dv5CbpwBo"},{},{},{},{"scopeUri":"NP0804vBeOoI1TlfoyU5myfgjk8l8P89wwxnQ1LiGGEPInL4L721D"},{"scopeUri":"z1CuQzEiGiMl6n54YYFXPWNJGZnKJ0cqCaPAelRsIhp3jM9RYjT4EcFgzD"},{},{},{"scopeUri":"YfzII0sq1oDNZWC7J6SCiJHhbt2l3McCvwa2NKgPwcAP9MQWrfvxO7tECqyyDYR"},{},{"section":"cFwzkiWm"},{"scopeUri":"FgstHZXiji2kbCVlnvoAUa15qUYcPwkyTtpbOUMU0Xa","section":"65Mfgum5FdMibU0CrhNS1vlnEMXjpj8vscx8yX07cD6y5WiXw7nDbPZ8Jt409WY8YQ"},{},{"section":"HKNVCQduj4lVufeRT0vvHqygtVNWH7Cl0TYpfQDKXNTMHk7cakyeoyyLF6T1i3TtDt4abpmxi"},{"section":"GM1sRasoHFlEyOJvGT71q2CX4C4aZTrAdERX2piUUBTqgV5N4283i7"},{},{},{"scopeUri":"VJshcxStf2e1XNcrA"},{"section":"jgbfxH76I8xKePPX8AkvRsHIWzg"},{"scopeUri":"ez2kpo1zhuze4xIGAcLZB","section":"KXWZGGVyQ7DL8UomfgLoceO0JVNYhO2KuwS1LbcQ7LqfHkYBt"},{"section":"IeC"},{"section":"VThknqKSdnRyrzZrqEXE7"},{"scopeUri":"GbxfnCQnzq22lZek7B5eTUwwZJLTZSvXoEhy","section":"pKcV4nbqvuTYEHlMQZEK3CLjZPkvOy2JzoHVYKf4dHDujedgcKzQiuOD04RQAZW9g4d66PFunQ8jdNiMexj1KPI"}],"partialResultToken":"햺ݻ鈺䉾춠蹨鿰ᕻ챣㗜偾朕턆㗵Сⴹ唄卷쨰挝諚쪿컦▾℠袽⇩"} +--------------------- +WorkspaceConfigurationInput(Vector(ConfigurationItem(null,tZPVre1YzaKXcn2GUMM1CuenW), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(pu8pdvFfdVAc9yRZmL4w1,ncvYAAvALJ9Fm3vwgbzddtwMHRUIxvUDedf), ConfigurationItem(null,null), ConfigurationItem(rxWwx1EQjdRSZWi93GTVC,null), ConfigurationItem(tIPiHQqu0WbnkHz9v7dtesplB5UZ8Rkn8098BKHlyFPsPVpViBCYnKObpFQ3bU0Ddn6PVtMJZezapa,mo53zmoe)),2147483647) +{"items":[{"section":"tZPVre1YzaKXcn2GUMM1CuenW"},{},{},{},{"scopeUri":"pu8pdvFfdVAc9yRZmL4w1","section":"ncvYAAvALJ9Fm3vwgbzddtwMHRUIxvUDedf"},{},{"scopeUri":"rxWwx1EQjdRSZWi93GTVC"},{"scopeUri":"tIPiHQqu0WbnkHz9v7dtesplB5UZ8Rkn8098BKHlyFPsPVpViBCYnKObpFQ3bU0Ddn6PVtMJZezapa","section":"mo53zmoe"}],"partialResultToken":2147483647} +--------------------- +WorkspaceConfigurationInput(Vector(ConfigurationItem(nCA2ucEwZMY1jyhoudRhJH1lV9h8vDJ9GDGoIAf4aBXOWELorcfcpvmeysiLHMFv1S1Ix3z,null), ConfigurationItem(null,null), ConfigurationItem(hBW5eTu14JGFgcOsfB47lJhVv1gOBFQwIu,null), ConfigurationItem(2D2joJMSnNSReyYLbJBxO7ETLbr0fozsiiOs3cnhId4SfpIrOIvbI6NBdcZ631gmz1uNQN9tUpS2NgjgKN0ptDwgUeoCE5vk3,null), ConfigurationItem(null,FNw6), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(p7z2t1gNsuIneFLlKpTwcKm,null), ConfigurationItem(null,rtxeqPRO3DYa2FV3B), ConfigurationItem(null,null), ConfigurationItem(null,WihwdQIUdvXxlzbCdD2zmFRBr), ConfigurationItem(cZXNJGVKga0yKppuFpPN2DxEGcKvFQlRhfJ43DoCmgSRisPBuXV7,null), ConfigurationItem(VxYT3bH0Kt4HdFGjK9nuk3PcErJGzm5xAHvzPnKHZoy3gbg4cDNC2lt45,null), ConfigurationItem(szn6gJzxPeHI7QjpW,null), ConfigurationItem(Yh6bgn2n8yEHGMrerrBwff8CgPbD7s3g1TR7eFVKLjb0EuoHkY0l0iMwuIYvRRLMH670d6,fDgD6ytKOFFNMWVx8R8opEgVi35aBCtPMHGATGCWayWmIA5RNKHB), ConfigurationItem(null,ExYx7GIJKNX2aLZfjLIoZVsBQd6SoOHPAjv7d6goUw83pczTUjS1jVtVNzvGK4B8TRdYbZFSY1kqTj4XsN9uFyKoJZ9xIUq), ConfigurationItem(6WenR9QsJhRRQPUc,null), ConfigurationItem(null,null), ConfigurationItem(null,MhwWppERfLIryHFfTELKnfVQixG5VVZVa), ConfigurationItem(null,2MwLIxubqUbd3unPJ6WLYfsHmttMhvrj35fSJPdTNdmM6MyrF8UJ1AA4kNs2AGNoyuDrDwO6PJw8RA7Sj), ConfigurationItem(null,Xbh69AxHI4zxHG2RZ7njMesBGVLSFINQbevP5Rz0RWGpAYbhZ9yODz4), ConfigurationItem(null,NcJHJHhxjnVBnPYBBtnRtsGO0W), ConfigurationItem(null,1srJtMqxMcvJ5U8pHDo3PJchkMRtTlJGYm1DgA0HBeSylzh6MiW2C5utOUFFEfR13ArZUSPaCPw09Uf7DFvUGBNIFxOVhqVkI7MC), ConfigurationItem(null,null), ConfigurationItem(SXZgZaRKaEbiY0QsE0t2qMFC0VfL,7rNNvddRirmgJGZJRYGNAnyO4CVwOXsp4tGEz2q6FT46kw5r6PkZPfxvkdbnWWG0wDgMvE6HiNvwDfc6k6yeWgIX), ConfigurationItem(null,null), ConfigurationItem(null,yEgitco6xGieYtTi6Fbyt3PCMWGqrxjBQd2jhW7cETjf5oyTvT5JdYowJblizaPENtnNZ0qh4rQq5), ConfigurationItem(null,null), ConfigurationItem(sD4faMOdcCZXHM,1txlRwuYOzuJzmvP3SdQJe), ConfigurationItem(lpwlyznRAHscXmLi1tjSHv9VaA1nf4sKz8xaxW0VbvL2sTUpnzYmNwv3F8CF,null), ConfigurationItem(Oqd9HsMU9NsqATDHyXjYSN2MgBpqmn2tgLOErLXBZThyixQy3XTTWX2YtvWKqv5sMBvwcusSTWylbaS9BAcL832zJB3,null), ConfigurationItem(d4TMGkVX5Eqy,null), ConfigurationItem(NEcyD5AxVcTAhBq4fPOBDxociOYJuR3uatqkzKE2JEEiikaqUH6pgMMKZV3uv94tPEGgHbCwddVuI8GzKdo7k6,PHNoh0PAia8LuwhchCpZpP5kxrYDN6Ddccp5vZHXnQ10oXI7rr0080lvMKS), ConfigurationItem(AwQUEizrfQA3Z2PilnRdt8Jqi2mnIK4rkS,null), ConfigurationItem(null,null), ConfigurationItem(null,f3vwGYQYrUBQeObvDQKzg6XRe8Cw4RRyJ5sPTdDh3), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(2s,null), ConfigurationItem(null,xOpYmipVZ80MRoBYN3D5dtmJC5YcJCg6slWRGdL8FYVkh1iM0RWXlHP), ConfigurationItem(null,null), ConfigurationItem(No4unlrNNbtWHrsSVDL8k84vSILq33LFhMvbSi6kkwDRdSVky27IGVgS4akqDniiu,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(wYZDj0xHCWvwkN3LEPMDC5PPbmj26uI1IZkfq9QVnL7X0wd77mqD2dwzNVfXfu9pyxn6J4UChMe8,AgTRK1D6KzQlxSq5TdpTuaLDrSBFRkvzQUo2UbnRChA0rGrgTCafYLOBIO2Wtmw), ConfigurationItem(0r0KK5vnQ87SxrLlCGnXBvK1uHgmiA1ORy,5sZORs1QPmLOY9iSBb5Mdv4kJVgQ5uSlYT), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(laE8iOuBuueRfr84CLLA3uFqoIZLbqFAuEs8MMYJetk7zqUsaPOT,null), ConfigurationItem(null,null), ConfigurationItem(JV3FhS10ZbMLxHl21JDqgqfuy8yEUNkTxRTNF5o1MTN5yZjl9PjSsWGtz6k7,null), ConfigurationItem(null,null), ConfigurationItem(gO4wUovyMu1WPoyUpL21iwVnddCjDRxGtJYkrUhfekHCCbzQ8K,0reeCjBJdDY9uENOJiY0Z8GpLIclohSIwSmkCjwEe5blhCT), ConfigurationItem(null,puFo7a2NMm219THrEpHfRLnYLHVz5RNhH1N9cZ2TZVJURu0sEP7jODbaKx9nJ4xrSQ2fFeW1iXqTN84wf6QX), ConfigurationItem(NzT95Va1xaotC,EPWAXKvCAAiU4lNiFYXMnPWpmwytVqjVeuelXfdN6KrQQhDcqVFuCwYqyG8a38Tnd), ConfigurationItem(GTsiRVVrmbEEjTi7Js2uWF32vqcKHetEpd,null), ConfigurationItem(null,null), ConfigurationItem(EZccJPJ7EOj6gufb1Ko5ZAEY1Y2eS1J8fb283YWzqJYnU1L9h5crTrtUmc6zpl8yUQSLDz,null), ConfigurationItem(null,null), ConfigurationItem(null,99wymoCwFOSM4bhp1JzWGDC7mGYaM1mHOOs3x4apJ7Zm8eDs), ConfigurationItem(devBScXjXFgICUHWSAzFyKfftMUxxcTXlDNylcrIMzLO7,5vMmSU4qwxMUvn0iYmPT55GfNbXOysplYdmwu15GfZTbwVglW2cHH5K5UEqR1yAY2z5gzDfaFZS2eYNpztZyACAN72dRtaW), ConfigurationItem(MeFCqCS9w,CZsMhIsRdUam9YS18PpitHlddX5tvEuiWorWUnSf1DLi00uaJRWGXQl), ConfigurationItem(null,null), ConfigurationItem(7S,null), ConfigurationItem(null,MWBMX8fwE7pps087iKv6byscuAviTtTCswMglcNtXPdIrrnaEExC0IuDhW4CupMS32MX1BPjrCg2G1vsTkULOmQ65JHtUdgj3), ConfigurationItem(null,nSak3IarB3dWRhDn5yMU7f43x8PxuVdUCi9EqGAw9EX5MrExWQZb4FWYhjxZK0F4Se1XMStPcyzhFMG6OugvQbWvn), ConfigurationItem(null,null), ConfigurationItem(null,S9AC1FIZXByOs50hkty1KGTsDrX1NAqAOriRGIF1QtKG2qfpVDtNir7Qyt1f5NlO46hx7dfsYT0yBjMVImWqBZwJqgv), ConfigurationItem(null,vM0PNP9bhqU47ukir7NSCniVae0JoKhrtXxp6skDK4ktM), ConfigurationItem(osoJbLDrcSKvCOc207p0ZHgG6oNMyzZl7jMxN214GHVfzMRoX54kOYf6tA8NKtRuyZOxb9Ngb2MXBUrfmL0OcsY,null), ConfigurationItem(mAEYRKwVy,jwreuEVeEzF3zcYzLb2ISuyYxHhA1l6axCnkrSFejT), ConfigurationItem(gx00Nx9F1c1ZS85vXS32UR4tft8o1UCi6DACMxFc2DgIhNVTXvz,0uIB2WGxyUJ31bcrn2inUOPTrLWtJ9XJWaAaJK0LqxWMI8xgnCmJ9mGieu1Juy1dyZYt3eEY8rTr2QU7nxVz), ConfigurationItem(null,CaZ7K8Hce6agpD2m8WPsRGMN4DUWswVtEjHrysDDRM9pkGNggQFcAoHffrVPsZnftLGzu3MZ0fdt6jQvr8XjGtMrGLbJ5poVh7), ConfigurationItem(null,null), ConfigurationItem(1v8E5XulC2MPUfcGfmyTOQQczBIQsh0ioSsFukq9hpytyIJmZCJYuIW,null), ConfigurationItem(nIQIPHIqqlleMx6s4MwLo6CuyML92pArNhSQ64n,null), ConfigurationItem(5LBNxbnA7al0cyG7RK4HSUGkw5xaTfbu7fksbw33frRdBO2ObyMH11NC0,a7qvWEHdQbJAhvo9XsBMAvflzt3SD9SPPhxOradZDJgBmhphYcgPTXo4Zhb5JOiUom2xDJqhuFpon61Bf4TF), ConfigurationItem(rvKtFz55haOCxxjkXnEdZTnU67EMTczDIlQQl07IpfjVBNm,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,Iss0cxCrF2nEjkvdy3hPjdXKHkIAqprg33En7PFCWYzq1ZJ9r8OfPwMO26zizilIpHPI1zRDin9oJM2TC6J9), ConfigurationItem(sjKeoVcI0ZCqmR7IZDo2VgsHN75RNqZsap8LcFcDF6njC8ps5I24ac909NnfET3Pjqo8bzHcEJHHkTrinGDNrr1uT72A,null), ConfigurationItem(cTwqU31eJ2yF2MObyUfMw1MBsAPxeszt1390HcwK0K,null), ConfigurationItem(BDjYrAjjF69WdNtuJsfC5QFml6ZhPM0pSs4iyMfXNfV,JgH3nASV2XYZil7B0p10xpf9FIDqdyEEFyGfloJXUfcopZ6JfleNtgdllhF4I5p87nazHM), ConfigurationItem(null,iVrzL), ConfigurationItem(FM7z6e5bttsUh7wdS3PLOfck0x1MGxov8SJa7AE2BAwo1F5xYoVcmjMfKNPvAVEY3eEPmVgSNWgf25wJtlFRE,xL3bYu), ConfigurationItem(null,UCogy3VSYXPSd), ConfigurationItem(qaYSq5RXRQ89AV3nbI,xzCln), ConfigurationItem(iT,Zd4R35cnCao7Cl5zGP6bVeL2pKJwDCvyz0zwRkTXKHkU6wL8Gq5K1vd7QNRk8bTfFUINwwsGC7ut3eGEt4zWbbbwcX), ConfigurationItem(null,VhSIZR5T02nNW78w4QynUZlNtBKDTTmW4ueXV2dajmY9bGtKTUPf2MUgdnGXQenkbmgZxlRg), ConfigurationItem(null,null), ConfigurationItem(N9AOR13NI90J0iasUVT6jWZdMPazI9oqsyplpoWr5n9FHYbG5w6c6cZ4IbwLx,null), ConfigurationItem(null,nqrsxMIqlp1xC8bKxqn1wrbXvw8mERnLwpBdp9wmNwJFRSZscbrAuTPs4aVqAtunHCSlfRMQYpvyBbFNV0Ow7cSLp), ConfigurationItem(null,yKYYwlm0KEdI5POVC)),闹ိ렝敌㮈ꎥ䟥䨋亓髢ཱ▙ꛦ̈́曇턟錮ꥭ똭᢭ᙊ닺鞔摮뎿軣꺳덹뱉❩ፑ䳫큪힕좳誁ͩ፻皆䂸鮗‶㗋僸遉㉀紱띅『쁍顈뗣Ꮣ潗篝庍︣⾙習妜⿙牚붩闠쎘⤺鿠畟祊隬뼝㜴绱絚燎ꏏ) +{"items":[{"scopeUri":"nCA2ucEwZMY1jyhoudRhJH1lV9h8vDJ9GDGoIAf4aBXOWELorcfcpvmeysiLHMFv1S1Ix3z"},{},{"scopeUri":"hBW5eTu14JGFgcOsfB47lJhVv1gOBFQwIu"},{"scopeUri":"2D2joJMSnNSReyYLbJBxO7ETLbr0fozsiiOs3cnhId4SfpIrOIvbI6NBdcZ631gmz1uNQN9tUpS2NgjgKN0ptDwgUeoCE5vk3"},{"section":"FNw6"},{},{},{"scopeUri":"p7z2t1gNsuIneFLlKpTwcKm"},{"section":"rtxeqPRO3DYa2FV3B"},{},{"section":"WihwdQIUdvXxlzbCdD2zmFRBr"},{"scopeUri":"cZXNJGVKga0yKppuFpPN2DxEGcKvFQlRhfJ43DoCmgSRisPBuXV7"},{"scopeUri":"VxYT3bH0Kt4HdFGjK9nuk3PcErJGzm5xAHvzPnKHZoy3gbg4cDNC2lt45"},{"scopeUri":"szn6gJzxPeHI7QjpW"},{"scopeUri":"Yh6bgn2n8yEHGMrerrBwff8CgPbD7s3g1TR7eFVKLjb0EuoHkY0l0iMwuIYvRRLMH670d6","section":"fDgD6ytKOFFNMWVx8R8opEgVi35aBCtPMHGATGCWayWmIA5RNKHB"},{"section":"ExYx7GIJKNX2aLZfjLIoZVsBQd6SoOHPAjv7d6goUw83pczTUjS1jVtVNzvGK4B8TRdYbZFSY1kqTj4XsN9uFyKoJZ9xIUq"},{"scopeUri":"6WenR9QsJhRRQPUc"},{},{"section":"MhwWppERfLIryHFfTELKnfVQixG5VVZVa"},{"section":"2MwLIxubqUbd3unPJ6WLYfsHmttMhvrj35fSJPdTNdmM6MyrF8UJ1AA4kNs2AGNoyuDrDwO6PJw8RA7Sj"},{"section":"Xbh69AxHI4zxHG2RZ7njMesBGVLSFINQbevP5Rz0RWGpAYbhZ9yODz4"},{"section":"NcJHJHhxjnVBnPYBBtnRtsGO0W"},{"section":"1srJtMqxMcvJ5U8pHDo3PJchkMRtTlJGYm1DgA0HBeSylzh6MiW2C5utOUFFEfR13ArZUSPaCPw09Uf7DFvUGBNIFxOVhqVkI7MC"},{},{"scopeUri":"SXZgZaRKaEbiY0QsE0t2qMFC0VfL","section":"7rNNvddRirmgJGZJRYGNAnyO4CVwOXsp4tGEz2q6FT46kw5r6PkZPfxvkdbnWWG0wDgMvE6HiNvwDfc6k6yeWgIX"},{},{"section":"yEgitco6xGieYtTi6Fbyt3PCMWGqrxjBQd2jhW7cETjf5oyTvT5JdYowJblizaPENtnNZ0qh4rQq5"},{},{"scopeUri":"sD4faMOdcCZXHM","section":"1txlRwuYOzuJzmvP3SdQJe"},{"scopeUri":"lpwlyznRAHscXmLi1tjSHv9VaA1nf4sKz8xaxW0VbvL2sTUpnzYmNwv3F8CF"},{"scopeUri":"Oqd9HsMU9NsqATDHyXjYSN2MgBpqmn2tgLOErLXBZThyixQy3XTTWX2YtvWKqv5sMBvwcusSTWylbaS9BAcL832zJB3"},{"scopeUri":"d4TMGkVX5Eqy"},{"scopeUri":"NEcyD5AxVcTAhBq4fPOBDxociOYJuR3uatqkzKE2JEEiikaqUH6pgMMKZV3uv94tPEGgHbCwddVuI8GzKdo7k6","section":"PHNoh0PAia8LuwhchCpZpP5kxrYDN6Ddccp5vZHXnQ10oXI7rr0080lvMKS"},{"scopeUri":"AwQUEizrfQA3Z2PilnRdt8Jqi2mnIK4rkS"},{},{"section":"f3vwGYQYrUBQeObvDQKzg6XRe8Cw4RRyJ5sPTdDh3"},{},{},{},{"scopeUri":"2s"},{"section":"xOpYmipVZ80MRoBYN3D5dtmJC5YcJCg6slWRGdL8FYVkh1iM0RWXlHP"},{},{"scopeUri":"No4unlrNNbtWHrsSVDL8k84vSILq33LFhMvbSi6kkwDRdSVky27IGVgS4akqDniiu"},{},{},{"scopeUri":"wYZDj0xHCWvwkN3LEPMDC5PPbmj26uI1IZkfq9QVnL7X0wd77mqD2dwzNVfXfu9pyxn6J4UChMe8","section":"AgTRK1D6KzQlxSq5TdpTuaLDrSBFRkvzQUo2UbnRChA0rGrgTCafYLOBIO2Wtmw"},{"scopeUri":"0r0KK5vnQ87SxrLlCGnXBvK1uHgmiA1ORy","section":"5sZORs1QPmLOY9iSBb5Mdv4kJVgQ5uSlYT"},{},{},{},{},{},{},{"scopeUri":"laE8iOuBuueRfr84CLLA3uFqoIZLbqFAuEs8MMYJetk7zqUsaPOT"},{},{"scopeUri":"JV3FhS10ZbMLxHl21JDqgqfuy8yEUNkTxRTNF5o1MTN5yZjl9PjSsWGtz6k7"},{},{"scopeUri":"gO4wUovyMu1WPoyUpL21iwVnddCjDRxGtJYkrUhfekHCCbzQ8K","section":"0reeCjBJdDY9uENOJiY0Z8GpLIclohSIwSmkCjwEe5blhCT"},{"section":"puFo7a2NMm219THrEpHfRLnYLHVz5RNhH1N9cZ2TZVJURu0sEP7jODbaKx9nJ4xrSQ2fFeW1iXqTN84wf6QX"},{"scopeUri":"NzT95Va1xaotC","section":"EPWAXKvCAAiU4lNiFYXMnPWpmwytVqjVeuelXfdN6KrQQhDcqVFuCwYqyG8a38Tnd"},{"scopeUri":"GTsiRVVrmbEEjTi7Js2uWF32vqcKHetEpd"},{},{"scopeUri":"EZccJPJ7EOj6gufb1Ko5ZAEY1Y2eS1J8fb283YWzqJYnU1L9h5crTrtUmc6zpl8yUQSLDz"},{},{"section":"99wymoCwFOSM4bhp1JzWGDC7mGYaM1mHOOs3x4apJ7Zm8eDs"},{"scopeUri":"devBScXjXFgICUHWSAzFyKfftMUxxcTXlDNylcrIMzLO7","section":"5vMmSU4qwxMUvn0iYmPT55GfNbXOysplYdmwu15GfZTbwVglW2cHH5K5UEqR1yAY2z5gzDfaFZS2eYNpztZyACAN72dRtaW"},{"scopeUri":"MeFCqCS9w","section":"CZsMhIsRdUam9YS18PpitHlddX5tvEuiWorWUnSf1DLi00uaJRWGXQl"},{},{"scopeUri":"7S"},{"section":"MWBMX8fwE7pps087iKv6byscuAviTtTCswMglcNtXPdIrrnaEExC0IuDhW4CupMS32MX1BPjrCg2G1vsTkULOmQ65JHtUdgj3"},{"section":"nSak3IarB3dWRhDn5yMU7f43x8PxuVdUCi9EqGAw9EX5MrExWQZb4FWYhjxZK0F4Se1XMStPcyzhFMG6OugvQbWvn"},{},{"section":"S9AC1FIZXByOs50hkty1KGTsDrX1NAqAOriRGIF1QtKG2qfpVDtNir7Qyt1f5NlO46hx7dfsYT0yBjMVImWqBZwJqgv"},{"section":"vM0PNP9bhqU47ukir7NSCniVae0JoKhrtXxp6skDK4ktM"},{"scopeUri":"osoJbLDrcSKvCOc207p0ZHgG6oNMyzZl7jMxN214GHVfzMRoX54kOYf6tA8NKtRuyZOxb9Ngb2MXBUrfmL0OcsY"},{"scopeUri":"mAEYRKwVy","section":"jwreuEVeEzF3zcYzLb2ISuyYxHhA1l6axCnkrSFejT"},{"scopeUri":"gx00Nx9F1c1ZS85vXS32UR4tft8o1UCi6DACMxFc2DgIhNVTXvz","section":"0uIB2WGxyUJ31bcrn2inUOPTrLWtJ9XJWaAaJK0LqxWMI8xgnCmJ9mGieu1Juy1dyZYt3eEY8rTr2QU7nxVz"},{"section":"CaZ7K8Hce6agpD2m8WPsRGMN4DUWswVtEjHrysDDRM9pkGNggQFcAoHffrVPsZnftLGzu3MZ0fdt6jQvr8XjGtMrGLbJ5poVh7"},{},{"scopeUri":"1v8E5XulC2MPUfcGfmyTOQQczBIQsh0ioSsFukq9hpytyIJmZCJYuIW"},{"scopeUri":"nIQIPHIqqlleMx6s4MwLo6CuyML92pArNhSQ64n"},{"scopeUri":"5LBNxbnA7al0cyG7RK4HSUGkw5xaTfbu7fksbw33frRdBO2ObyMH11NC0","section":"a7qvWEHdQbJAhvo9XsBMAvflzt3SD9SPPhxOradZDJgBmhphYcgPTXo4Zhb5JOiUom2xDJqhuFpon61Bf4TF"},{"scopeUri":"rvKtFz55haOCxxjkXnEdZTnU67EMTczDIlQQl07IpfjVBNm"},{},{},{"section":"Iss0cxCrF2nEjkvdy3hPjdXKHkIAqprg33En7PFCWYzq1ZJ9r8OfPwMO26zizilIpHPI1zRDin9oJM2TC6J9"},{"scopeUri":"sjKeoVcI0ZCqmR7IZDo2VgsHN75RNqZsap8LcFcDF6njC8ps5I24ac909NnfET3Pjqo8bzHcEJHHkTrinGDNrr1uT72A"},{"scopeUri":"cTwqU31eJ2yF2MObyUfMw1MBsAPxeszt1390HcwK0K"},{"scopeUri":"BDjYrAjjF69WdNtuJsfC5QFml6ZhPM0pSs4iyMfXNfV","section":"JgH3nASV2XYZil7B0p10xpf9FIDqdyEEFyGfloJXUfcopZ6JfleNtgdllhF4I5p87nazHM"},{"section":"iVrzL"},{"scopeUri":"FM7z6e5bttsUh7wdS3PLOfck0x1MGxov8SJa7AE2BAwo1F5xYoVcmjMfKNPvAVEY3eEPmVgSNWgf25wJtlFRE","section":"xL3bYu"},{"section":"UCogy3VSYXPSd"},{"scopeUri":"qaYSq5RXRQ89AV3nbI","section":"xzCln"},{"scopeUri":"iT","section":"Zd4R35cnCao7Cl5zGP6bVeL2pKJwDCvyz0zwRkTXKHkU6wL8Gq5K1vd7QNRk8bTfFUINwwsGC7ut3eGEt4zWbbbwcX"},{"section":"VhSIZR5T02nNW78w4QynUZlNtBKDTTmW4ueXV2dajmY9bGtKTUPf2MUgdnGXQenkbmgZxlRg"},{},{"scopeUri":"N9AOR13NI90J0iasUVT6jWZdMPazI9oqsyplpoWr5n9FHYbG5w6c6cZ4IbwLx"},{"section":"nqrsxMIqlp1xC8bKxqn1wrbXvw8mERnLwpBdp9wmNwJFRSZscbrAuTPs4aVqAtunHCSlfRMQYpvyBbFNV0Ow7cSLp"},{"section":"yKYYwlm0KEdI5POVC"}],"partialResultToken":"闹ိ렝敌㮈ꎥ䟥䨋亓髢ཱ▙ꛦ̈́曇턟錮ꥭ똭᢭ᙊ닺鞔摮뎿軣꺳덹뱉❩ፑ䳫큪힕좳誁ͩ፻皆䂸鮗‶㗋僸遉㉀紱띅『쁍顈뗣Ꮣ潗篝庍︣⾙習妜⿙牚붩闠쎘⤺鿠畟祊隬뼝㜴绱絚燎ꏏ"} +--------------------- +WorkspaceConfigurationInput(Vector(ConfigurationItem(Mxym2xXKflZpD9lAsJ6V85GvpfGgKIky0WvP,null), ConfigurationItem(null,WFs0EISvbIuHsNOYk364vnqHjaRIVm6jd0uGSiJWkfLgopxFd3X8S08EcnubycTQFTRtTu7XREoH7k1FTt6zl6zr), ConfigurationItem(null,silWNL1Dbw6aYuFIeloArB8O0IE), ConfigurationItem(ezvzKECu7RWvlrEhP8yLZNMYGZk5JXH,M1vub3RC09c3pwupj9GTOQLeMDJ7BAD5uHJql6IIWy0ALN0jyzQPCF0WFL2ZhJuI0gKMrgaZgH6nolg), ConfigurationItem(null,AYI4NR5aNwN2nJYOVg7jU9r2GwfaUOvFy4qDJfxdOOT6rNGFS0ibyzj95vHJIqtxqD3r7hb1IxDchRqpxz3N3zl5aow7FD), ConfigurationItem(null,YJPUtCemT6UeTvBM4LZI9SMiSjcc0dIcQio0S6ElTaJvvAQFTcslWKUKNVLEII26Db3g83Kdn3NQv6nkt92S6jLcrNJo7o4xOB), ConfigurationItem(1MMzs3Tty6AFeMNyBQ95xm4MZ0pM0IPnKSpRO,null), ConfigurationItem(XIVDI2miL82bIDxnnginpgBSFnPxIsV44AA0wq2gflqFkiowdIRzx6SvTe,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(JtgaxIDw1XgiyXOtdoC4RxS0VK,yBACdMmgv4QhP1Kl1d2oZuhC6YmcdUAqSaJ07fQdQJc4TJ), ConfigurationItem(iOiBhanxPvkMR0ArJaSVYhmF2XKZunZK6yU3gl19C,null), ConfigurationItem(ch0b6qNXlsOBIFMkN3gbvl17a3KEOM2L6ilgofARmIYIs7icM4fZVBkxTmVxFCi,EtLlcHCpdQQlobrBNfy07lGCrgTcAdrJOdsJ33YMtjTdmVMqkwfcpy2ncTdl1MxzsyuVqlA1Itjb4zgBCwV3ef2b2), ConfigurationItem(null,9huB2Xo0GEKaLhgFZA6UKMX6L321vyxb9nsXKrjQ), ConfigurationItem(null,L24cDSWy3hF1VZ2EG), ConfigurationItem(null,null), ConfigurationItem(KvPsY5dHYjZyJpekAJkfGyHNzvFNtLcNWWRtfCzNq3birVVHExCsY2RVBpeQxO30t2Gs3J6TL4e6U8DuYakgPp,null), ConfigurationItem(OmVYWL2tFG5ov14y0wFQgJaJ2sMZA8X04a3M,null), ConfigurationItem(null,Cn1V7MS865PjPEmmClGNY0D), ConfigurationItem(WnwKespplBFhwbxaMUAoaVvLWPYCv4G6zrq,null), ConfigurationItem(null,null), ConfigurationItem(U88kypH1evYSCjpJjDnlmatMcq2lFDaW3UuEIdopmPPHe4JfaxAse2l7Db0PKPnAOw9n,rPr5SLwvhuUKbTbzQjXGZbAsSeE0IEjOJFhnFRwVuWxe), ConfigurationItem(dm6va35ecXxKvHKYYbnol6qajQM13ZtxczVq5azWjjq0e3xrrMOzzc7enqJKEAwMQpsjumaXgN,null), ConfigurationItem(s,Oqa6iceDp6r6JzT1fbXcq2L56q5stWN5BLJ2lpQ2lQxfBfgnhavf3puORaIsqDuPcrs4bqYuAUnlnH82fcW), ConfigurationItem(iMFFBGgoMT,w2WN), ConfigurationItem(9lxDTC8T0o9er2KiuTmrZbSo38063fczulBwjuYAUW9,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(Ud5eCyfNg3yNubEXxwJ08qVyLcQ6bqd3MkkYJLOwz98,null), ConfigurationItem(null,null), ConfigurationItem(Rh8gwbyaKAb1WprTmhe4Eg0RguEMePCxGCo1rzGWiGXjNnNIxm1DgVaY,cCG8eWVvuXR89QdVMlGfXdujyMkcgDcGm8QFY), ConfigurationItem(,64njGVhagbxYrxz8hvoRwCy9hwSmLnziLZdGJwMgMhM5txycvTDnmXpLOn4ViPTlkGin), ConfigurationItem(KK8B7LUhT5wGKH,null), ConfigurationItem(R9Jgs0iM6L07ItYRVtdgEOslCehVldKRExLSZFn2xRVcKKvZlEiY5sk2bRKFEAih0pBAnSxou1VNOeb5slmthj5jLtgtQlp,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(YcSOXb1VuWOzEazz5Lb,null), ConfigurationItem(null,syKjUYoVzs9A606Tt), ConfigurationItem(gkNeSrUROmQyD,null), ConfigurationItem(null,null), ConfigurationItem(tJNdooDjcWEk5bL9E895rswfT0Ge5IZe7rBMJHnGrdULnM44i7h50UP3jgEdxCvMpi,QPAHcWNdx7wuUK), ConfigurationItem(null,null), ConfigurationItem(aVMmOQkwD8OccwWLiPiVnA2RDBRIU,null), ConfigurationItem(TgcIPVqAYjCv7dpb1DYko8UIOuNuaF1EiqH1r0PunsQ7Dw6b9NTo,null), ConfigurationItem(null,6hjUFaX1SvjkYTHR4DrUh2iJiBvFYJATfXHzlyAt7CCgehdKK0lOegYqEjhgiQLlYZjODLkrMxr), ConfigurationItem(null,Bb9B5i), ConfigurationItem(09E0jwbI358vQWsxs6VlhTKotCKyGAsy6eVlVJH7TiORn6,null), ConfigurationItem(2WrDI62xpMkBHHMNFIHVtoBMve1Sl0zPz9Y6B2WnW4Db0J4gFkSTAVtnrzBXCyWuUmRvJxFBvAQaLH7VGaKP,null), ConfigurationItem(ZkzzLIvrU,K8EYLwREdojaRWfCkf689gODopUCAmzQsGTy2B855q8MFbou0QxLdB8q3SFVIQAl92pKSLqa1RNzRwP), ConfigurationItem(null,null), ConfigurationItem(null,MCsAHwlX6DQJpRox8Vpl4c5lVLQ7w6yAWLc5G), ConfigurationItem(uLpYN9EJUhI8ZbRANzMYDwTAmi,null), ConfigurationItem(null,GSAOHkvMwpVSTmfkeqcrzA0MJpdMiZ1c), ConfigurationItem(null,dS40inNQEF6nluFNcv1pbnSsqZm4KUv7HaqhoYny7IkwR2Z), ConfigurationItem(null,dOHzHN6EUeRps9jVgotVJL), ConfigurationItem(null,null), ConfigurationItem(null,null), ConfigurationItem(D6xhYPvi673FHb8phy90ZENBsiGrKKF6hZVh8r4xs9sUVQTeOh56Jf8Si3XBPVhKngLUoJ9gl,null), ConfigurationItem(null,JzXYFz0KYJbfuZ3jRI4U0bfYOIv0VU8I3ZrMg6CmnzOuV0TiCxiznKLNc271YZOJXcYFq4iUWXrsQOWOfqkVT6), ConfigurationItem(khscFT1U3GSPm50K7gmizv1FEL,6lLKWiUdH30gcTCSRAalVCWAUDHXEijdSMuIxEbx), ConfigurationItem(WkED9fzDu0ESPlb0PpljhkOVe9qyRDfxt3IXRiGLH2h6,null), ConfigurationItem(1s8S4MNj7N0KXYEz2vaWMLmcpK4JX3d6ZTLCbw6JxJAN382vigHe6WGdxp6cSw3mRiHt7,re07WZnqVLL4Ge85sia9G3daW2pTwShY6mbY), ConfigurationItem(null,glPd9o9dQgN2JmaEU1GcMoGmmefYNXA), ConfigurationItem(5WuCYndnAumgk9fnBUuJWS,null), ConfigurationItem(null,null)),ኞ鯚엳╖ⵛ즊䴸础똺秶ɸ韢燲㟕Вꅨᐧ粑ᖞ) +{"items":[{"scopeUri":"Mxym2xXKflZpD9lAsJ6V85GvpfGgKIky0WvP"},{"section":"WFs0EISvbIuHsNOYk364vnqHjaRIVm6jd0uGSiJWkfLgopxFd3X8S08EcnubycTQFTRtTu7XREoH7k1FTt6zl6zr"},{"section":"silWNL1Dbw6aYuFIeloArB8O0IE"},{"scopeUri":"ezvzKECu7RWvlrEhP8yLZNMYGZk5JXH","section":"M1vub3RC09c3pwupj9GTOQLeMDJ7BAD5uHJql6IIWy0ALN0jyzQPCF0WFL2ZhJuI0gKMrgaZgH6nolg"},{"section":"AYI4NR5aNwN2nJYOVg7jU9r2GwfaUOvFy4qDJfxdOOT6rNGFS0ibyzj95vHJIqtxqD3r7hb1IxDchRqpxz3N3zl5aow7FD"},{"section":"YJPUtCemT6UeTvBM4LZI9SMiSjcc0dIcQio0S6ElTaJvvAQFTcslWKUKNVLEII26Db3g83Kdn3NQv6nkt92S6jLcrNJo7o4xOB"},{"scopeUri":"1MMzs3Tty6AFeMNyBQ95xm4MZ0pM0IPnKSpRO"},{"scopeUri":"XIVDI2miL82bIDxnnginpgBSFnPxIsV44AA0wq2gflqFkiowdIRzx6SvTe"},{},{},{"scopeUri":"JtgaxIDw1XgiyXOtdoC4RxS0VK","section":"yBACdMmgv4QhP1Kl1d2oZuhC6YmcdUAqSaJ07fQdQJc4TJ"},{"scopeUri":"iOiBhanxPvkMR0ArJaSVYhmF2XKZunZK6yU3gl19C"},{"scopeUri":"ch0b6qNXlsOBIFMkN3gbvl17a3KEOM2L6ilgofARmIYIs7icM4fZVBkxTmVxFCi","section":"EtLlcHCpdQQlobrBNfy07lGCrgTcAdrJOdsJ33YMtjTdmVMqkwfcpy2ncTdl1MxzsyuVqlA1Itjb4zgBCwV3ef2b2"},{"section":"9huB2Xo0GEKaLhgFZA6UKMX6L321vyxb9nsXKrjQ"},{"section":"L24cDSWy3hF1VZ2EG"},{},{"scopeUri":"KvPsY5dHYjZyJpekAJkfGyHNzvFNtLcNWWRtfCzNq3birVVHExCsY2RVBpeQxO30t2Gs3J6TL4e6U8DuYakgPp"},{"scopeUri":"OmVYWL2tFG5ov14y0wFQgJaJ2sMZA8X04a3M"},{"section":"Cn1V7MS865PjPEmmClGNY0D"},{"scopeUri":"WnwKespplBFhwbxaMUAoaVvLWPYCv4G6zrq"},{},{"scopeUri":"U88kypH1evYSCjpJjDnlmatMcq2lFDaW3UuEIdopmPPHe4JfaxAse2l7Db0PKPnAOw9n","section":"rPr5SLwvhuUKbTbzQjXGZbAsSeE0IEjOJFhnFRwVuWxe"},{"scopeUri":"dm6va35ecXxKvHKYYbnol6qajQM13ZtxczVq5azWjjq0e3xrrMOzzc7enqJKEAwMQpsjumaXgN"},{"scopeUri":"s","section":"Oqa6iceDp6r6JzT1fbXcq2L56q5stWN5BLJ2lpQ2lQxfBfgnhavf3puORaIsqDuPcrs4bqYuAUnlnH82fcW"},{"scopeUri":"iMFFBGgoMT","section":"w2WN"},{"scopeUri":"9lxDTC8T0o9er2KiuTmrZbSo38063fczulBwjuYAUW9"},{},{},{"scopeUri":"Ud5eCyfNg3yNubEXxwJ08qVyLcQ6bqd3MkkYJLOwz98"},{},{"scopeUri":"Rh8gwbyaKAb1WprTmhe4Eg0RguEMePCxGCo1rzGWiGXjNnNIxm1DgVaY","section":"cCG8eWVvuXR89QdVMlGfXdujyMkcgDcGm8QFY"},{"scopeUri":"","section":"64njGVhagbxYrxz8hvoRwCy9hwSmLnziLZdGJwMgMhM5txycvTDnmXpLOn4ViPTlkGin"},{"scopeUri":"KK8B7LUhT5wGKH"},{"scopeUri":"R9Jgs0iM6L07ItYRVtdgEOslCehVldKRExLSZFn2xRVcKKvZlEiY5sk2bRKFEAih0pBAnSxou1VNOeb5slmthj5jLtgtQlp"},{},{},{},{"scopeUri":"YcSOXb1VuWOzEazz5Lb"},{"section":"syKjUYoVzs9A606Tt"},{"scopeUri":"gkNeSrUROmQyD"},{},{"scopeUri":"tJNdooDjcWEk5bL9E895rswfT0Ge5IZe7rBMJHnGrdULnM44i7h50UP3jgEdxCvMpi","section":"QPAHcWNdx7wuUK"},{},{"scopeUri":"aVMmOQkwD8OccwWLiPiVnA2RDBRIU"},{"scopeUri":"TgcIPVqAYjCv7dpb1DYko8UIOuNuaF1EiqH1r0PunsQ7Dw6b9NTo"},{"section":"6hjUFaX1SvjkYTHR4DrUh2iJiBvFYJATfXHzlyAt7CCgehdKK0lOegYqEjhgiQLlYZjODLkrMxr"},{"section":"Bb9B5i"},{"scopeUri":"09E0jwbI358vQWsxs6VlhTKotCKyGAsy6eVlVJH7TiORn6"},{"scopeUri":"2WrDI62xpMkBHHMNFIHVtoBMve1Sl0zPz9Y6B2WnW4Db0J4gFkSTAVtnrzBXCyWuUmRvJxFBvAQaLH7VGaKP"},{"scopeUri":"ZkzzLIvrU","section":"K8EYLwREdojaRWfCkf689gODopUCAmzQsGTy2B855q8MFbou0QxLdB8q3SFVIQAl92pKSLqa1RNzRwP"},{},{"section":"MCsAHwlX6DQJpRox8Vpl4c5lVLQ7w6yAWLc5G"},{"scopeUri":"uLpYN9EJUhI8ZbRANzMYDwTAmi"},{"section":"GSAOHkvMwpVSTmfkeqcrzA0MJpdMiZ1c"},{"section":"dS40inNQEF6nluFNcv1pbnSsqZm4KUv7HaqhoYny7IkwR2Z"},{"section":"dOHzHN6EUeRps9jVgotVJL"},{},{},{"scopeUri":"D6xhYPvi673FHb8phy90ZENBsiGrKKF6hZVh8r4xs9sUVQTeOh56Jf8Si3XBPVhKngLUoJ9gl"},{"section":"JzXYFz0KYJbfuZ3jRI4U0bfYOIv0VU8I3ZrMg6CmnzOuV0TiCxiznKLNc271YZOJXcYFq4iUWXrsQOWOfqkVT6"},{"scopeUri":"khscFT1U3GSPm50K7gmizv1FEL","section":"6lLKWiUdH30gcTCSRAalVCWAUDHXEijdSMuIxEbx"},{"scopeUri":"WkED9fzDu0ESPlb0PpljhkOVe9qyRDfxt3IXRiGLH2h6"},{"scopeUri":"1s8S4MNj7N0KXYEz2vaWMLmcpK4JX3d6ZTLCbw6JxJAN382vigHe6WGdxp6cSw3mRiHt7","section":"re07WZnqVLL4Ge85sia9G3daW2pTwShY6mbY"},{"section":"glPd9o9dQgN2JmaEU1GcMoGmmefYNXA"},{"scopeUri":"5WuCYndnAumgk9fnBUuJWS"},{}],"partialResultToken":"ኞ鯚엳╖ⵛ즊䴸础똺秶ɸ韢燲㟕Вꅨᐧ粑ᖞ"} +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/response__textDocument_documentLink b/modules/tests/src/test/resources/snapshots/tests/response__textDocument_documentLink new file mode 100644 index 000000000..e39d23144 --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/response__textDocument_documentLink @@ -0,0 +1,15 @@ +Opt.empty +null +--------------------- +Vector(DocumentLink(Range(Position(85,98),Position(47,23)),null,heBhJRTdLJPYA,"I'm json lol"), DocumentLink(Range(Position(34,38),Position(46,21)),null,8d2kcKZElqGEaY8AgJEOVO50VW0Yaj,"I'm json lol"), DocumentLink(Range(Position(99,51),Position(34,83)),null,null,null), DocumentLink(Range(Position(76,85),Position(16,3)),Ob0um7C3VYXrgkWzEd3sDuAYD,null,"I'm json lol"), DocumentLink(Range(Position(56,62),Position(58,80)),null,null,null), DocumentLink(Range(Position(32,37),Position(35,83)),null,pVFmjt15lk2kSLXGnzWVFsbp7FIggmmeNq0mhMjZJahS9T,"I'm json lol"), DocumentLink(Range(Position(68,67),Position(78,64)),QLhPh57yUqqE3RIu1qGv1Jn2oDOv5PwAlpcT51stPYTyNsI5jXyKpiRHi0RRnULKOxo,null,"I'm json lol"), DocumentLink(Range(Position(42,40),Position(99,84)),null,CwJaHpDzk7A0rEamaFVU6,null), DocumentLink(Range(Position(91,46),Position(71,35)),null,,null), DocumentLink(Range(Position(51,73),Position(73,3)),T4A2Lxehdrl2hRR12loFRwLRrRrn71dpqu,null,null), DocumentLink(Range(Position(8,11),Position(4,14)),null,null,"I'm json lol"), DocumentLink(Range(Position(83,87),Position(100,72)),null,sgg2dqXDF0WQsPGWVUf7veuSw4UE3wlUqrTR1yKUMODDNf9NXROaIkhvA4bO4mg0EjqcCtpggouCmTuzL8kJJIHKpaY3pI2,"I'm json lol"), DocumentLink(Range(Position(85,50),Position(10,14)),ItHoIL2OXqVYh0yKMGYmBYnG2Jv7cjUyJG7G168pXUubp7z,Qxf7jypf9JZiNdAlTk3cSDIWt9h8JGrCpraLRpPRCp2LKy2nzupoobfLn7JWvogx4l,"I'm json lol"), DocumentLink(Range(Position(46,54),Position(82,31)),vrKZ8OCQH8GGnpVvQul46GyQpt53nOCWGO7ceawxfYSeRasZPESqE4bZmVTgbqfpo3P9CdpA0fGidqepzfiCh,null,"I'm json lol"), DocumentLink(Range(Position(26,65),Position(37,21)),uHXjZf2FmjaNKfnK16CTA4lmNarIIoZliQD7joiQW70bENgXk6MEhFVCm1fbE4YLlQPDa4RVskMBTT8c4zkPJQWyshSZ5Zb,null,null), DocumentLink(Range(Position(99,52),Position(80,55)),PSgqcaoidXMHv0uGyx9Xzv9vEA,null,"I'm json lol"), DocumentLink(Range(Position(86,22),Position(10,66)),null,L6hAbZdhohkUj8Lyatpq,"I'm json lol"), DocumentLink(Range(Position(78,72),Position(44,20)),null,null,null), DocumentLink(Range(Position(20,97),Position(17,10)),ZuG92awXSLmMlECGyAheAJA5jxCvKMMSEg3R8HjPSm,j7rusi7jhr8UXKYb8etGPnqZiATZzgLFUufbXucKGce5Eeo0,null), DocumentLink(Range(Position(10,12),Position(97,68)),null,vvqT3Zf9eT6Lr8IO2hObKR4EqENo5bn3A5IyjEK5ccY771IxGKJ0dov8YDMyLzjXdP0TqpBSkZAqBMpWmP,null), DocumentLink(Range(Position(87,69),Position(95,83)),null,m,null), DocumentLink(Range(Position(47,67),Position(17,75)),unLPtI40OwkZHCq6NtXRB3VHwWlJfuRelHe2Pzw9NEszd6KLeQsRYc8NK4wX4UBfZ9Ob0gBJODnxIalg1bq4R8o12Zub,4ZkbXWtkXSQ6FUDJqjc1GssE8jxTJlTmual7X6BfNmeICrHpdXUwRozyiCShK8UDt2V7E9yQu5x,null), DocumentLink(Range(Position(26,5),Position(84,74)),vC8fnWwSVsTLHTWQMbz5TBLFvb3UML3HyDKIhx7rGYpZYkwsv9hJJh6odL5v92OFoVEidhqcIqsvLQhDkP,null,"I'm json lol"), DocumentLink(Range(Position(53,80),Position(21,73)),jAu38jRt1H1cVD97sWgADICW5YsLSXr1gfzOD0L31HLxJ1D3Rdxpqyccuu2GKUTIGiJd,null,null), DocumentLink(Range(Position(47,79),Position(99,8)),null,null,null), DocumentLink(Range(Position(96,41),Position(88,42)),null,DTX9ssSemyPnylB3u4ABfpb4fdfR7pRwauHvV4pS2tiS1ziBKzn6FoKW3tJBLzZB01,"I'm json lol"), DocumentLink(Range(Position(11,80),Position(35,93)),YDRfs,null,"I'm json lol"), DocumentLink(Range(Position(96,73),Position(59,86)),a6mSIOJpFLcgckhyGygIIZQHzN,null,"I'm json lol"), DocumentLink(Range(Position(83,76),Position(10,13)),null,null,null), DocumentLink(Range(Position(50,35),Position(100,1)),null,zCwM43ZfjrTMUQ9sH2PKo2ovX541X4,null), DocumentLink(Range(Position(41,39),Position(38,11)),null,null,null), DocumentLink(Range(Position(95,48),Position(86,82)),CYsgM2Onl9JhqIVqzmOtiSfO3CworVhotZMxM9t0O5e5bF5pFbaEyWs6o4LgKmOP9eeRkGpDmRdnk89g9P1jpEcaE704PRx8O,null,null)) +[{"range":{"start":{"line":85,"character":98},"end":{"line":47,"character":23}},"tooltip":"heBhJRTdLJPYA","data":"I'm json lol"},{"range":{"start":{"line":34,"character":38},"end":{"line":46,"character":21}},"tooltip":"8d2kcKZElqGEaY8AgJEOVO50VW0Yaj","data":"I'm json lol"},{"range":{"start":{"line":99,"character":51},"end":{"line":34,"character":83}}},{"range":{"start":{"line":76,"character":85},"end":{"line":16,"character":3}},"target":"Ob0um7C3VYXrgkWzEd3sDuAYD","data":"I'm json lol"},{"range":{"start":{"line":56,"character":62},"end":{"line":58,"character":80}}},{"range":{"start":{"line":32,"character":37},"end":{"line":35,"character":83}},"tooltip":"pVFmjt15lk2kSLXGnzWVFsbp7FIggmmeNq0mhMjZJahS9T","data":"I'm json lol"},{"range":{"start":{"line":68,"character":67},"end":{"line":78,"character":64}},"target":"QLhPh57yUqqE3RIu1qGv1Jn2oDOv5PwAlpcT51stPYTyNsI5jXyKpiRHi0RRnULKOxo","data":"I'm json lol"},{"range":{"start":{"line":42,"character":40},"end":{"line":99,"character":84}},"tooltip":"CwJaHpDzk7A0rEamaFVU6"},{"range":{"start":{"line":91,"character":46},"end":{"line":71,"character":35}},"tooltip":""},{"range":{"start":{"line":51,"character":73},"end":{"line":73,"character":3}},"target":"T4A2Lxehdrl2hRR12loFRwLRrRrn71dpqu"},{"range":{"start":{"line":8,"character":11},"end":{"line":4,"character":14}},"data":"I'm json lol"},{"range":{"start":{"line":83,"character":87},"end":{"line":100,"character":72}},"tooltip":"sgg2dqXDF0WQsPGWVUf7veuSw4UE3wlUqrTR1yKUMODDNf9NXROaIkhvA4bO4mg0EjqcCtpggouCmTuzL8kJJIHKpaY3pI2","data":"I'm json lol"},{"range":{"start":{"line":85,"character":50},"end":{"line":10,"character":14}},"target":"ItHoIL2OXqVYh0yKMGYmBYnG2Jv7cjUyJG7G168pXUubp7z","tooltip":"Qxf7jypf9JZiNdAlTk3cSDIWt9h8JGrCpraLRpPRCp2LKy2nzupoobfLn7JWvogx4l","data":"I'm json lol"},{"range":{"start":{"line":46,"character":54},"end":{"line":82,"character":31}},"target":"vrKZ8OCQH8GGnpVvQul46GyQpt53nOCWGO7ceawxfYSeRasZPESqE4bZmVTgbqfpo3P9CdpA0fGidqepzfiCh","data":"I'm json lol"},{"range":{"start":{"line":26,"character":65},"end":{"line":37,"character":21}},"target":"uHXjZf2FmjaNKfnK16CTA4lmNarIIoZliQD7joiQW70bENgXk6MEhFVCm1fbE4YLlQPDa4RVskMBTT8c4zkPJQWyshSZ5Zb"},{"range":{"start":{"line":99,"character":52},"end":{"line":80,"character":55}},"target":"PSgqcaoidXMHv0uGyx9Xzv9vEA","data":"I'm json lol"},{"range":{"start":{"line":86,"character":22},"end":{"line":10,"character":66}},"tooltip":"L6hAbZdhohkUj8Lyatpq","data":"I'm json lol"},{"range":{"start":{"line":78,"character":72},"end":{"line":44,"character":20}}},{"range":{"start":{"line":20,"character":97},"end":{"line":17,"character":10}},"target":"ZuG92awXSLmMlECGyAheAJA5jxCvKMMSEg3R8HjPSm","tooltip":"j7rusi7jhr8UXKYb8etGPnqZiATZzgLFUufbXucKGce5Eeo0"},{"range":{"start":{"line":10,"character":12},"end":{"line":97,"character":68}},"tooltip":"vvqT3Zf9eT6Lr8IO2hObKR4EqENo5bn3A5IyjEK5ccY771IxGKJ0dov8YDMyLzjXdP0TqpBSkZAqBMpWmP"},{"range":{"start":{"line":87,"character":69},"end":{"line":95,"character":83}},"tooltip":"m"},{"range":{"start":{"line":47,"character":67},"end":{"line":17,"character":75}},"target":"unLPtI40OwkZHCq6NtXRB3VHwWlJfuRelHe2Pzw9NEszd6KLeQsRYc8NK4wX4UBfZ9Ob0gBJODnxIalg1bq4R8o12Zub","tooltip":"4ZkbXWtkXSQ6FUDJqjc1GssE8jxTJlTmual7X6BfNmeICrHpdXUwRozyiCShK8UDt2V7E9yQu5x"},{"range":{"start":{"line":26,"character":5},"end":{"line":84,"character":74}},"target":"vC8fnWwSVsTLHTWQMbz5TBLFvb3UML3HyDKIhx7rGYpZYkwsv9hJJh6odL5v92OFoVEidhqcIqsvLQhDkP","data":"I'm json lol"},{"range":{"start":{"line":53,"character":80},"end":{"line":21,"character":73}},"target":"jAu38jRt1H1cVD97sWgADICW5YsLSXr1gfzOD0L31HLxJ1D3Rdxpqyccuu2GKUTIGiJd"},{"range":{"start":{"line":47,"character":79},"end":{"line":99,"character":8}}},{"range":{"start":{"line":96,"character":41},"end":{"line":88,"character":42}},"tooltip":"DTX9ssSemyPnylB3u4ABfpb4fdfR7pRwauHvV4pS2tiS1ziBKzn6FoKW3tJBLzZB01","data":"I'm json lol"},{"range":{"start":{"line":11,"character":80},"end":{"line":35,"character":93}},"target":"YDRfs","data":"I'm json lol"},{"range":{"start":{"line":96,"character":73},"end":{"line":59,"character":86}},"target":"a6mSIOJpFLcgckhyGygIIZQHzN","data":"I'm json lol"},{"range":{"start":{"line":83,"character":76},"end":{"line":10,"character":13}}},{"range":{"start":{"line":50,"character":35},"end":{"line":100,"character":1}},"tooltip":"zCwM43ZfjrTMUQ9sH2PKo2ovX541X4"},{"range":{"start":{"line":41,"character":39},"end":{"line":38,"character":11}}},{"range":{"start":{"line":95,"character":48},"end":{"line":86,"character":82}},"target":"CYsgM2Onl9JhqIVqzmOtiSfO3CworVhotZMxM9t0O5e5bF5pFbaEyWs6o4LgKmOP9eeRkGpDmRdnk89g9P1jpEcaE704PRx8O"}] +--------------------- +Vector(DocumentLink(Range(Position(8,74),Position(36,81)),null,O,null), DocumentLink(Range(Position(32,51),Position(8,32)),null,null,null), DocumentLink(Range(Position(21,13),Position(23,42)),null,null,"I'm json lol"), DocumentLink(Range(Position(62,81),Position(85,28)),null,AJMy6zdFVkWd5SPBY9oxigWeufQDM482ufSgujDtEd5ZttpjSVqqUxeMUGQBOy,"I'm json lol"), DocumentLink(Range(Position(33,85),Position(24,20)),mu0Mo2VHfNEXDxzvMz3O3S94SnwZwSt3byW8ABbZwtp8gGMndkflluFA5oQbpAVFyhOAUTrzi7cbjhkHVP,null,"I'm json lol"), DocumentLink(Range(Position(51,53),Position(39,52)),null,M0str9QGK2E7YWu2JNS6Ux4h,null), DocumentLink(Range(Position(52,53),Position(67,6)),MVP4mrBIP216O6y9LMNs8jz2gBi2UK7nbUZfmZlBk8dBuMeXwHcNfWjzbhDKJUN36opNjRMltBYx8ocplSQhFUOcm4s39yP,WZtAa9ltlZOMYfAa8cyTYEPGFFIGuG8kofPn8kvdAmhoDuMnAqoJifA5Ax5FQ0bDo4Azfo7ySSH3fBkCmSUfwp9WQA6WlvrLrxe,null), DocumentLink(Range(Position(61,10),Position(86,10)),isezqjYQzYPXwDvu0,r4oie1vIZdUGj0r8QycMMVHrjY46dm6fRUZNNdKuf4L4UR9GGsZOVNOLGZZi646XXmQt3Kt2uOPetTmtp93BfReta9OrzrrFrHQ,null), DocumentLink(Range(Position(27,50),Position(23,56)),dAMMdDZfQOaThPVxIx101MizzB6o1ZRf0PttUlOnQZVRRMCIJbWadfQl17zLj7R,null,"I'm json lol"), DocumentLink(Range(Position(95,16),Position(65,21)),31oOQHqzytjsNFoX4sslZ81HfSwZfTeZyvX0HLWZvuy6rsLf771KbVLxhUn00xmY1towjTL4,iRxVYddrssIXuizSb1niBw,null), DocumentLink(Range(Position(73,88),Position(23,66)),null,null,null), DocumentLink(Range(Position(63,55),Position(38,92)),NomntlwDKY2dcwHKqqZGafeSv1erFfudN9YwLrXsJBcDsvNKWHkfUKKg0sDiCM0uiJZwlq0z9StkqKkRoUbO0tGLGqo8ih,YgKX6vNx5Oh5ATjCIIr6BsFQzB,"I'm json lol"), DocumentLink(Range(Position(93,44),Position(78,75)),7oWXAh8LchpIvfeLeVSr1CITm8x7JU5i5T2VtltduLb3IpgnKGYMehXsDUo9F,null,null), DocumentLink(Range(Position(3,43),Position(74,47)),Xa977M8PX9DYTNTOSUXqKxSD3xHGkLfN6EXs5UvijwP6lDJiaTtiK841cAyR450Ks1,null,"I'm json lol"), DocumentLink(Range(Position(33,44),Position(36,84)),null,null,null), DocumentLink(Range(Position(93,27),Position(37,23)),null,Fn2O4BqJL0SALr5GF0xBjV9ajgnnvIVQi8D7n2aTIHcW5E2VU8FXmOqwbkj2ITsZgoyIIDz2j3U1RQL6,null), DocumentLink(Range(Position(52,9),Position(3,5)),Fb,null,"I'm json lol"), DocumentLink(Range(Position(2,77),Position(69,54)),N1kgelSWxBWoE7kYv0J8gGuJlE1OSBrBxpL07cvz4Gh6RTBU1j5WfIzTnZj0JRTfmKIMYQivyCKNifd09dTiIgFCGCK77Zigx,DUVHcZiLYJQrHnIVdoAFsiYT2iqELd7H7,"I'm json lol"), DocumentLink(Range(Position(59,88),Position(19,39)),TsDxluC0ZzDbQFhs9aBuHsgok7DAZB68SH5jpNQIG7Wa0fvAaLL03GtRlapuMxX,y24762ARAFMv6lbseqVLWwmq8Ims6,"I'm json lol"), DocumentLink(Range(Position(5,69),Position(58,70)),cq,ASGbdhQyNP7YOJzA3d076Ic4TYBTRZ0Z,null), DocumentLink(Range(Position(78,27),Position(21,62)),WiZJZnEqFliaTj3pls9PoJ75S6bBCkKT73nRxg5J7abnDSVsizYREN0JogcZc3aRv2a7K0glG0awrNKH8NPQrUI2g,9Ha15hkI4Xn6MX6UxruqUHHZ3ok4gYydEe80KX4nNCB9wZ8HEwO93665MBemO3RitjsPMx64enIOyw49mcwu3,"I'm json lol"), DocumentLink(Range(Position(75,42),Position(58,5)),null,null,"I'm json lol"), DocumentLink(Range(Position(85,71),Position(94,65)),EnhwpbsLHHSm77iKsJJm4ZDuAhiRG2OjMDzQfksG,e58X1QReiUgbEY1mNrf1Wa,"I'm json lol"), DocumentLink(Range(Position(67,40),Position(45,93)),null,UOkyBGkYsEeCvlgnE9WhVXP9HTf08DWVB,null), DocumentLink(Range(Position(84,92),Position(45,36)),lx6pPGpXButFU7AO7nyezMmCAALyha4TLoSIY2OsqHocrLuxYUqnp18dYPuWxidwMbDe0idbPCQGCRIJ,j7lWdKyTFDDAOmHAjlFeGnIl7tmw9i6xs2Uy9VpmJrL13yE2PkC6J4R7il48pxV8Bibu8VNLuDEruAZYNeQT,"I'm json lol"), DocumentLink(Range(Position(99,20),Position(38,31)),null,null,null), DocumentLink(Range(Position(98,4),Position(69,50)),5tsEsUSVCchuZyEFP2UUIddDl3KBRQt5WeIm4sCIx4NYvGaS012WUaAGmWnpdNWL6388NaFJAZ9eyjD3u7uMogmFc,null,"I'm json lol"), DocumentLink(Range(Position(24,78),Position(10,11)),tB2k7eS8ClwlfAbq3sIQ111bxTvdW6JWtQuP5syeGU0FTmgVgGPM3,null,"I'm json lol"), DocumentLink(Range(Position(53,85),Position(88,67)),null,null,"I'm json lol"), DocumentLink(Range(Position(76,25),Position(78,65)),null,jQRw4XW498Oo6053tuhmGInKXfZ187ZKakRUwPpxWbTcThy,"I'm json lol"), DocumentLink(Range(Position(5,65),Position(77,67)),yIKPuRXvQB8DIgaGoxGa1r8xTEYs9wWJSAovpMzJFjyF5LB3FkoxiaSL4DBBEx1LRsW2Hwq,L9w94hcHwqEqPgnG,"I'm json lol"), DocumentLink(Range(Position(77,46),Position(6,46)),z09UBJwhtyREUPFr8eNhr2wOOrGG555MaoDq2UnNLabj7bHm6XOQAS59tm4PrX4tEJhRB,NHmPpKzHGUeiP63xSlQUF2kCrD,null), DocumentLink(Range(Position(40,18),Position(51,42)),s1nUQEzLp11OnGSbW6KQXryg5Pw5xLnuK7LJJrmtROCjCS1yDMWMEaZIOhKOnz7QtfoZBLg5ep,null,"I'm json lol"), DocumentLink(Range(Position(10,38),Position(84,58)),d7szdOkvagXN,null,null), DocumentLink(Range(Position(64,3),Position(69,26)),null,24GhmEwRiHStzN2WmLAzhJCp,null), DocumentLink(Range(Position(27,62),Position(64,55)),EMnpHrNHJlOCcNHkXy5TM5Z2vtKbEG9nOaJd1vurf5Rovr7MY3Jupa2P7lGFRV6EvkyGmTRVe2Ctze4srjDE99TEMAVa1q,null,null), DocumentLink(Range(Position(79,75),Position(69,83)),null,null,"I'm json lol"), DocumentLink(Range(Position(85,7),Position(4,70)),P1DXKpIxjbj77zMSCdcz4,ZkMLo6bzhTjQuJsEmvxhiBhRe73wahKQ7B4CdurU6gewi5Dx,null), DocumentLink(Range(Position(50,9),Position(63,48)),null,lYz1Bj76BMKE1IJdSYgKtNkW9gcjAtIiz5gHdv6n9FGaDBtlCGyOLEsEeqRZ5QJCwdpyU,"I'm json lol"), DocumentLink(Range(Position(93,8),Position(29,44)),null,Dc1mlgVnWE2BAvVRAicJxS7CFRhRun5LF8JxHsbtSx2gmXxPeZZwOZyStr0Gdi5oSoEd82NlnDDc1dtxeYpWvgF,null), DocumentLink(Range(Position(20,36),Position(47,99)),null,null,"I'm json lol"), DocumentLink(Range(Position(21,41),Position(48,15)),lK2UMtzkTCNeeZbYYsEDs1iv5Zyc1JDnHax2M27oAWmHcolVF1WPV6m76UV0X7i,3Ns6YJTjPne4f14Al14Pp18Z2IexycsGyx2hPUCRksiFCvthH1IOzZI0a,"I'm json lol"), DocumentLink(Range(Position(59,32),Position(46,50)),aCPRlz,kXoXoqMCohmMPZxy5UKx2SHoa3TI6WIjvcAZVk8,"I'm json lol"), DocumentLink(Range(Position(74,97),Position(6,44)),null,7NG2pLWHQzvIDYN0EI7u7jK9AyQQVK,null), DocumentLink(Range(Position(12,56),Position(26,25)),null,null,"I'm json lol"), DocumentLink(Range(Position(17,37),Position(35,51)),null,n9jmbS77LY1qXGGcnDutFWwyu3WhCw3FbZdm7ZsE3D7WN7nMp8M,null), DocumentLink(Range(Position(38,57),Position(56,25)),null,null,"I'm json lol"), DocumentLink(Range(Position(91,90),Position(33,3)),RYOKHq2Gfo1vgKkMACoB9KTPqIBUNM6zjWF3zWQjNxjlfgaPl7rW0Hz2ERVHraituZq42H702MvgloYABtM8umuSAPyAyFsj,null,"I'm json lol"), DocumentLink(Range(Position(95,100),Position(37,82)),XPgLMWtnarXMiodnxvK5LWsOu6qZa43LE1VvJ8lN0oKpqZ,null,null), DocumentLink(Range(Position(28,56),Position(99,58)),null,null,"I'm json lol"), DocumentLink(Range(Position(6,57),Position(26,31)),9bXyetan,MqhtZ8y3t,"I'm json lol"), DocumentLink(Range(Position(3,12),Position(12,36)),null,null,"I'm json lol"), DocumentLink(Range(Position(93,84),Position(59,9)),null,htegCnPy19DLYhUmVoNkqCDKiwJHaJePsPXzMeJb2pgs0fYOt,null), DocumentLink(Range(Position(64,63),Position(65,27)),jMuEwTtou33tvwSVfu3onZc40BqmEFiJQNuhhzuz299GdDlnOtdB,aF53tGYwphBeXPkgyhF5NpYr0T5uFF4Hg6ogwJxAEwNzCf1c0U3n4n8e46BQMb1UIhJpMaiWAmi,null), DocumentLink(Range(Position(19,98),Position(57,20)),MIkFYUKgOc71L3Nkk9UqCKcBmeeJotBZsWrcG8XrSYdR7TlscRPMvZgKis8q5S9,null,"I'm json lol"), DocumentLink(Range(Position(53,29),Position(38,79)),null,null,"I'm json lol"), DocumentLink(Range(Position(64,5),Position(53,52)),null,RK2245cS7IDfPI7glbGfYWmY48,"I'm json lol"), DocumentLink(Range(Position(90,42),Position(25,48)),qeif4vpS5gXbUIaPXiFlpsSuYDGaNzsqStIrzrQ6qAeqEedRHtrBBwPzHEA3j0am79HDeuVbxJRQce3cQU1,null,"I'm json lol"), DocumentLink(Range(Position(77,36),Position(41,29)),Lgr8UmYefVP5KFgEe75LifT,null,null)) +[{"range":{"start":{"line":8,"character":74},"end":{"line":36,"character":81}},"tooltip":"O"},{"range":{"start":{"line":32,"character":51},"end":{"line":8,"character":32}}},{"range":{"start":{"line":21,"character":13},"end":{"line":23,"character":42}},"data":"I'm json lol"},{"range":{"start":{"line":62,"character":81},"end":{"line":85,"character":28}},"tooltip":"AJMy6zdFVkWd5SPBY9oxigWeufQDM482ufSgujDtEd5ZttpjSVqqUxeMUGQBOy","data":"I'm json lol"},{"range":{"start":{"line":33,"character":85},"end":{"line":24,"character":20}},"target":"mu0Mo2VHfNEXDxzvMz3O3S94SnwZwSt3byW8ABbZwtp8gGMndkflluFA5oQbpAVFyhOAUTrzi7cbjhkHVP","data":"I'm json lol"},{"range":{"start":{"line":51,"character":53},"end":{"line":39,"character":52}},"tooltip":"M0str9QGK2E7YWu2JNS6Ux4h"},{"range":{"start":{"line":52,"character":53},"end":{"line":67,"character":6}},"target":"MVP4mrBIP216O6y9LMNs8jz2gBi2UK7nbUZfmZlBk8dBuMeXwHcNfWjzbhDKJUN36opNjRMltBYx8ocplSQhFUOcm4s39yP","tooltip":"WZtAa9ltlZOMYfAa8cyTYEPGFFIGuG8kofPn8kvdAmhoDuMnAqoJifA5Ax5FQ0bDo4Azfo7ySSH3fBkCmSUfwp9WQA6WlvrLrxe"},{"range":{"start":{"line":61,"character":10},"end":{"line":86,"character":10}},"target":"isezqjYQzYPXwDvu0","tooltip":"r4oie1vIZdUGj0r8QycMMVHrjY46dm6fRUZNNdKuf4L4UR9GGsZOVNOLGZZi646XXmQt3Kt2uOPetTmtp93BfReta9OrzrrFrHQ"},{"range":{"start":{"line":27,"character":50},"end":{"line":23,"character":56}},"target":"dAMMdDZfQOaThPVxIx101MizzB6o1ZRf0PttUlOnQZVRRMCIJbWadfQl17zLj7R","data":"I'm json lol"},{"range":{"start":{"line":95,"character":16},"end":{"line":65,"character":21}},"target":"31oOQHqzytjsNFoX4sslZ81HfSwZfTeZyvX0HLWZvuy6rsLf771KbVLxhUn00xmY1towjTL4","tooltip":"iRxVYddrssIXuizSb1niBw"},{"range":{"start":{"line":73,"character":88},"end":{"line":23,"character":66}}},{"range":{"start":{"line":63,"character":55},"end":{"line":38,"character":92}},"target":"NomntlwDKY2dcwHKqqZGafeSv1erFfudN9YwLrXsJBcDsvNKWHkfUKKg0sDiCM0uiJZwlq0z9StkqKkRoUbO0tGLGqo8ih","tooltip":"YgKX6vNx5Oh5ATjCIIr6BsFQzB","data":"I'm json lol"},{"range":{"start":{"line":93,"character":44},"end":{"line":78,"character":75}},"target":"7oWXAh8LchpIvfeLeVSr1CITm8x7JU5i5T2VtltduLb3IpgnKGYMehXsDUo9F"},{"range":{"start":{"line":3,"character":43},"end":{"line":74,"character":47}},"target":"Xa977M8PX9DYTNTOSUXqKxSD3xHGkLfN6EXs5UvijwP6lDJiaTtiK841cAyR450Ks1","data":"I'm json lol"},{"range":{"start":{"line":33,"character":44},"end":{"line":36,"character":84}}},{"range":{"start":{"line":93,"character":27},"end":{"line":37,"character":23}},"tooltip":"Fn2O4BqJL0SALr5GF0xBjV9ajgnnvIVQi8D7n2aTIHcW5E2VU8FXmOqwbkj2ITsZgoyIIDz2j3U1RQL6"},{"range":{"start":{"line":52,"character":9},"end":{"line":3,"character":5}},"target":"Fb","data":"I'm json lol"},{"range":{"start":{"line":2,"character":77},"end":{"line":69,"character":54}},"target":"N1kgelSWxBWoE7kYv0J8gGuJlE1OSBrBxpL07cvz4Gh6RTBU1j5WfIzTnZj0JRTfmKIMYQivyCKNifd09dTiIgFCGCK77Zigx","tooltip":"DUVHcZiLYJQrHnIVdoAFsiYT2iqELd7H7","data":"I'm json lol"},{"range":{"start":{"line":59,"character":88},"end":{"line":19,"character":39}},"target":"TsDxluC0ZzDbQFhs9aBuHsgok7DAZB68SH5jpNQIG7Wa0fvAaLL03GtRlapuMxX","tooltip":"y24762ARAFMv6lbseqVLWwmq8Ims6","data":"I'm json lol"},{"range":{"start":{"line":5,"character":69},"end":{"line":58,"character":70}},"target":"cq","tooltip":"ASGbdhQyNP7YOJzA3d076Ic4TYBTRZ0Z"},{"range":{"start":{"line":78,"character":27},"end":{"line":21,"character":62}},"target":"WiZJZnEqFliaTj3pls9PoJ75S6bBCkKT73nRxg5J7abnDSVsizYREN0JogcZc3aRv2a7K0glG0awrNKH8NPQrUI2g","tooltip":"9Ha15hkI4Xn6MX6UxruqUHHZ3ok4gYydEe80KX4nNCB9wZ8HEwO93665MBemO3RitjsPMx64enIOyw49mcwu3","data":"I'm json lol"},{"range":{"start":{"line":75,"character":42},"end":{"line":58,"character":5}},"data":"I'm json lol"},{"range":{"start":{"line":85,"character":71},"end":{"line":94,"character":65}},"target":"EnhwpbsLHHSm77iKsJJm4ZDuAhiRG2OjMDzQfksG","tooltip":"e58X1QReiUgbEY1mNrf1Wa","data":"I'm json lol"},{"range":{"start":{"line":67,"character":40},"end":{"line":45,"character":93}},"tooltip":"UOkyBGkYsEeCvlgnE9WhVXP9HTf08DWVB"},{"range":{"start":{"line":84,"character":92},"end":{"line":45,"character":36}},"target":"lx6pPGpXButFU7AO7nyezMmCAALyha4TLoSIY2OsqHocrLuxYUqnp18dYPuWxidwMbDe0idbPCQGCRIJ","tooltip":"j7lWdKyTFDDAOmHAjlFeGnIl7tmw9i6xs2Uy9VpmJrL13yE2PkC6J4R7il48pxV8Bibu8VNLuDEruAZYNeQT","data":"I'm json lol"},{"range":{"start":{"line":99,"character":20},"end":{"line":38,"character":31}}},{"range":{"start":{"line":98,"character":4},"end":{"line":69,"character":50}},"target":"5tsEsUSVCchuZyEFP2UUIddDl3KBRQt5WeIm4sCIx4NYvGaS012WUaAGmWnpdNWL6388NaFJAZ9eyjD3u7uMogmFc","data":"I'm json lol"},{"range":{"start":{"line":24,"character":78},"end":{"line":10,"character":11}},"target":"tB2k7eS8ClwlfAbq3sIQ111bxTvdW6JWtQuP5syeGU0FTmgVgGPM3","data":"I'm json lol"},{"range":{"start":{"line":53,"character":85},"end":{"line":88,"character":67}},"data":"I'm json lol"},{"range":{"start":{"line":76,"character":25},"end":{"line":78,"character":65}},"tooltip":"jQRw4XW498Oo6053tuhmGInKXfZ187ZKakRUwPpxWbTcThy","data":"I'm json lol"},{"range":{"start":{"line":5,"character":65},"end":{"line":77,"character":67}},"target":"yIKPuRXvQB8DIgaGoxGa1r8xTEYs9wWJSAovpMzJFjyF5LB3FkoxiaSL4DBBEx1LRsW2Hwq","tooltip":"L9w94hcHwqEqPgnG","data":"I'm json lol"},{"range":{"start":{"line":77,"character":46},"end":{"line":6,"character":46}},"target":"z09UBJwhtyREUPFr8eNhr2wOOrGG555MaoDq2UnNLabj7bHm6XOQAS59tm4PrX4tEJhRB","tooltip":"NHmPpKzHGUeiP63xSlQUF2kCrD"},{"range":{"start":{"line":40,"character":18},"end":{"line":51,"character":42}},"target":"s1nUQEzLp11OnGSbW6KQXryg5Pw5xLnuK7LJJrmtROCjCS1yDMWMEaZIOhKOnz7QtfoZBLg5ep","data":"I'm json lol"},{"range":{"start":{"line":10,"character":38},"end":{"line":84,"character":58}},"target":"d7szdOkvagXN"},{"range":{"start":{"line":64,"character":3},"end":{"line":69,"character":26}},"tooltip":"24GhmEwRiHStzN2WmLAzhJCp"},{"range":{"start":{"line":27,"character":62},"end":{"line":64,"character":55}},"target":"EMnpHrNHJlOCcNHkXy5TM5Z2vtKbEG9nOaJd1vurf5Rovr7MY3Jupa2P7lGFRV6EvkyGmTRVe2Ctze4srjDE99TEMAVa1q"},{"range":{"start":{"line":79,"character":75},"end":{"line":69,"character":83}},"data":"I'm json lol"},{"range":{"start":{"line":85,"character":7},"end":{"line":4,"character":70}},"target":"P1DXKpIxjbj77zMSCdcz4","tooltip":"ZkMLo6bzhTjQuJsEmvxhiBhRe73wahKQ7B4CdurU6gewi5Dx"},{"range":{"start":{"line":50,"character":9},"end":{"line":63,"character":48}},"tooltip":"lYz1Bj76BMKE1IJdSYgKtNkW9gcjAtIiz5gHdv6n9FGaDBtlCGyOLEsEeqRZ5QJCwdpyU","data":"I'm json lol"},{"range":{"start":{"line":93,"character":8},"end":{"line":29,"character":44}},"tooltip":"Dc1mlgVnWE2BAvVRAicJxS7CFRhRun5LF8JxHsbtSx2gmXxPeZZwOZyStr0Gdi5oSoEd82NlnDDc1dtxeYpWvgF"},{"range":{"start":{"line":20,"character":36},"end":{"line":47,"character":99}},"data":"I'm json lol"},{"range":{"start":{"line":21,"character":41},"end":{"line":48,"character":15}},"target":"lK2UMtzkTCNeeZbYYsEDs1iv5Zyc1JDnHax2M27oAWmHcolVF1WPV6m76UV0X7i","tooltip":"3Ns6YJTjPne4f14Al14Pp18Z2IexycsGyx2hPUCRksiFCvthH1IOzZI0a","data":"I'm json lol"},{"range":{"start":{"line":59,"character":32},"end":{"line":46,"character":50}},"target":"aCPRlz","tooltip":"kXoXoqMCohmMPZxy5UKx2SHoa3TI6WIjvcAZVk8","data":"I'm json lol"},{"range":{"start":{"line":74,"character":97},"end":{"line":6,"character":44}},"tooltip":"7NG2pLWHQzvIDYN0EI7u7jK9AyQQVK"},{"range":{"start":{"line":12,"character":56},"end":{"line":26,"character":25}},"data":"I'm json lol"},{"range":{"start":{"line":17,"character":37},"end":{"line":35,"character":51}},"tooltip":"n9jmbS77LY1qXGGcnDutFWwyu3WhCw3FbZdm7ZsE3D7WN7nMp8M"},{"range":{"start":{"line":38,"character":57},"end":{"line":56,"character":25}},"data":"I'm json lol"},{"range":{"start":{"line":91,"character":90},"end":{"line":33,"character":3}},"target":"RYOKHq2Gfo1vgKkMACoB9KTPqIBUNM6zjWF3zWQjNxjlfgaPl7rW0Hz2ERVHraituZq42H702MvgloYABtM8umuSAPyAyFsj","data":"I'm json lol"},{"range":{"start":{"line":95,"character":100},"end":{"line":37,"character":82}},"target":"XPgLMWtnarXMiodnxvK5LWsOu6qZa43LE1VvJ8lN0oKpqZ"},{"range":{"start":{"line":28,"character":56},"end":{"line":99,"character":58}},"data":"I'm json lol"},{"range":{"start":{"line":6,"character":57},"end":{"line":26,"character":31}},"target":"9bXyetan","tooltip":"MqhtZ8y3t","data":"I'm json lol"},{"range":{"start":{"line":3,"character":12},"end":{"line":12,"character":36}},"data":"I'm json lol"},{"range":{"start":{"line":93,"character":84},"end":{"line":59,"character":9}},"tooltip":"htegCnPy19DLYhUmVoNkqCDKiwJHaJePsPXzMeJb2pgs0fYOt"},{"range":{"start":{"line":64,"character":63},"end":{"line":65,"character":27}},"target":"jMuEwTtou33tvwSVfu3onZc40BqmEFiJQNuhhzuz299GdDlnOtdB","tooltip":"aF53tGYwphBeXPkgyhF5NpYr0T5uFF4Hg6ogwJxAEwNzCf1c0U3n4n8e46BQMb1UIhJpMaiWAmi"},{"range":{"start":{"line":19,"character":98},"end":{"line":57,"character":20}},"target":"MIkFYUKgOc71L3Nkk9UqCKcBmeeJotBZsWrcG8XrSYdR7TlscRPMvZgKis8q5S9","data":"I'm json lol"},{"range":{"start":{"line":53,"character":29},"end":{"line":38,"character":79}},"data":"I'm json lol"},{"range":{"start":{"line":64,"character":5},"end":{"line":53,"character":52}},"tooltip":"RK2245cS7IDfPI7glbGfYWmY48","data":"I'm json lol"},{"range":{"start":{"line":90,"character":42},"end":{"line":25,"character":48}},"target":"qeif4vpS5gXbUIaPXiFlpsSuYDGaNzsqStIrzrQ6qAeqEedRHtrBBwPzHEA3j0am79HDeuVbxJRQce3cQU1","data":"I'm json lol"},{"range":{"start":{"line":77,"character":36},"end":{"line":41,"character":29}},"target":"Lgr8UmYefVP5KFgEe75LifT"}] +--------------------- +Opt.empty +null +--------------------- +Vector(DocumentLink(Range(Position(83,1),Position(71,48)),null,null,null), DocumentLink(Range(Position(48,91),Position(22,99)),7CI,MHkzuv7lvA1vxdQsA4TEuhjqmCp7YnJrF3VHcwnRGqc6SpzWAeAVfrapLhjUaLGfCBwBEPj4m8ND90nYNoSCnTHTKK2JLOTp0i,"I'm json lol"), DocumentLink(Range(Position(60,46),Position(52,85)),GGzmY,4JZw9a6j8pl0CETlfebLwpq3S8TY961qVPQzmNGVbaqVgIJB5FP,null), DocumentLink(Range(Position(89,51),Position(63,14)),null,null,null), DocumentLink(Range(Position(87,63),Position(90,9)),DBYP7cgw18MLzdjaATGIN5Wtfxm,qImOewzc8hmghb6VjC8exO4qpFz4oU,"I'm json lol"), DocumentLink(Range(Position(59,91),Position(8,17)),r,null,null), DocumentLink(Range(Position(3,30),Position(51,61)),VBOmXeJmQtPG9NUQP04v2JK2lA3nptY3kj3oerz6HOK6PDEOXT2j85zFzyt6N,null,null), DocumentLink(Range(Position(61,13),Position(51,13)),b,8fG2POIL2Z3pbTXSpUijGgrpkL8PIsheUP55Cp7wilRUIOgORgGl8ped1IgSRIJbZjGUDdqFYge2M,"I'm json lol"), DocumentLink(Range(Position(38,12),Position(82,90)),null,null,null), DocumentLink(Range(Position(76,50),Position(49,62)),FCgZlabG9BUtvW2F9qwbHcoUmHoRwT,null,null), DocumentLink(Range(Position(6,19),Position(55,21)),TxcvawW,null,null), DocumentLink(Range(Position(36,67),Position(10,1)),null,gcwtJEE3uknI2f2BR3V5q3jYXAOig4inddfTFr7doqUHDQWHWaq2WFz6S4QLGXqVgkvElpbD4osqoO2YwYwEXFUk,"I'm json lol"), DocumentLink(Range(Position(55,57),Position(19,76)),yL5Vizq1P8LGgkJz7IMnD7bJRPNYQcHChiKyusWQ7FiCyj4swvbMRJ8,null,"I'm json lol"), DocumentLink(Range(Position(8,48),Position(7,65)),W1P9k17V8rDoIsk73npPrAfu86g8WS3FRsTHi2noY0kepyeRkm32b4MXSflNItKBQpYdMdkWwDnZ,null,null), DocumentLink(Range(Position(31,72),Position(7,44)),null,lTbAEHu9yocs9tCrrIBlQizMAzGRbi9nAz9PP4ihmHQYTkSoz4mRyEdvKCkUj0tazzk8cmjIwq38c1KdOvDY,"I'm json lol"), DocumentLink(Range(Position(27,1),Position(19,26)),pDUIoMYfmEevIQNIdjki5xPrHcUNjsiMTTTCstseD1jNKMKAQBicHdOwzQBCExkJo2S2i649572Y7rlU2F0bk,null,null), DocumentLink(Range(Position(98,85),Position(57,91)),null,L1SK9vLL5LzKgVAWEJqsXvcvVjlGIf5ClS0eakzOJXqCKm8QiFJiEBcsVBGB1schlsBpQz6,"I'm json lol"), DocumentLink(Range(Position(14,18),Position(21,49)),null,null,"I'm json lol"), DocumentLink(Range(Position(94,52),Position(43,38)),null,null,"I'm json lol"), DocumentLink(Range(Position(60,3),Position(80,26)),IqqW2yAAb1mKp0F12j0T3VcE0sPRbheqZiFxn0wiI9p,gL6hO6rXS8c7STKtcylS8z48Yt12SztrsIQQrRQYAl3XM4cBT5VuL6k0IYe5jmIraO2Tf26M1ckesnj0Gn,"I'm json lol"), DocumentLink(Range(Position(77,83),Position(73,33)),null,3khsvOXQ73bRbG2mVJGx0ZxBFtcdbVoAz6MoyOom0bppgp8v6i5xpmXpvmj01jMvCpVA77ub,null), DocumentLink(Range(Position(24,60),Position(20,22)),H5KyNpIxzxpTESlmRbNFst8Ht,null,null), DocumentLink(Range(Position(86,5),Position(63,79)),null,null,"I'm json lol"), DocumentLink(Range(Position(65,8),Position(51,5)),HQbxcRJm9asUbZGxE9iOKuXHwBA1SIXwnqzU57gctfsdfa0xFVOYWHATHfp4NzrErObtWXDgq8gVe8iWPhSYQySfv95priQVNJyj,opCdOgmNXS5kRWtz0,"I'm json lol"), DocumentLink(Range(Position(20,9),Position(5,71)),flpaLLfiJh0MF30djRaqclRNmM6R2MFrTRtYdjiJ7qKpDdNw6G4lHA43yFk496ehwILd7QCLh6hcGYMAvwJOid,91ft5PzDdpb6TD6KEMHMY0OeTqYZaW8jnDWiJ2HVBUrpIjq0UZKUnY0DqKbV6tZ,"I'm json lol"), DocumentLink(Range(Position(8,94),Position(83,26)),kbR4T3oOYQpilLLDsC9B8hiGg0VPWd8w6XpISDOSD93qaGa5cIrinQCwC,z67xj6pPM3ANGMWLtK91wUf9n88yVPO8MZ0PQ9sGf8hXBkvjwQ8kr,null), DocumentLink(Range(Position(60,61),Position(25,73)),null,null,null), DocumentLink(Range(Position(78,55),Position(89,13)),IZde4IrFxFx2OgTsbUBAqg4sYiI747sTh7WeB3X0QjNjbskur5e0,null,null), DocumentLink(Range(Position(37,12),Position(83,69)),null,null,"I'm json lol"), DocumentLink(Range(Position(15,1),Position(19,66)),null,we5Fqe5Nv3cNkaPrnfNGf8dCtXJ6O62YDrG7321axMh4TeA5RUC3tbEi6rYOfhznE3qyMwqqxFxkqAttwFp0T1RblU7BtHb4,null), DocumentLink(Range(Position(15,72),Position(53,27)),RaRGO2e9owBSoRl7sGczNb53CacZrTES4YMIqe61NU0WB2BO4iIOuYzkQo16DOf486EJulQz9S,UbxMu7Gj7LrOxYEwQ5nNvLDU9R1I7PNRCamIZI02PspW63yLFfA3iCVOopXoh8HW,"I'm json lol"), DocumentLink(Range(Position(22,12),Position(86,13)),YlBxPAODqWAW42BD,null,"I'm json lol"), DocumentLink(Range(Position(15,66),Position(63,92)),ScMkEHOG8DisEM7kdUvEjOUrAQcvYCIu4vSamzwOdB6TEM,rNs2xghP5YdBOsslVRY2Q6czyhN7O0UQqUlWbKvSfaAKYwxbtODhlzuaO0XijNFfDo9u,"I'm json lol"), DocumentLink(Range(Position(20,93),Position(78,22)),null,null,null), DocumentLink(Range(Position(39,85),Position(83,86)),7bvXLg92tu32v75RGrqDNjnvP7CTLRaYtGHrjuO1o8uIZA9yUbJ9luk7k,icr978wsHkHjKzSaHwaWGitITAuDcMBfushYPTvd24MS4ux905YGYg3WeAT,null), DocumentLink(Range(Position(33,79),Position(90,10)),null,null,"I'm json lol"), DocumentLink(Range(Position(36,96),Position(78,41)),2x1jp7VJYcGTWvRnmoewM,0nBBD4MCXJQ81GvMQAJWrCdrdoqJiX91,null), DocumentLink(Range(Position(56,76),Position(40,8)),null,null,null), DocumentLink(Range(Position(71,28),Position(67,49)),null,null,"I'm json lol"), DocumentLink(Range(Position(95,90),Position(69,8)),null,null,null), DocumentLink(Range(Position(8,21),Position(81,90)),null,null,"I'm json lol"), DocumentLink(Range(Position(18,46),Position(27,16)),rM7K3Czz1lvy3UmBJWngVejQaeW01Dsv9tOeaVW5LKZP9aa15zYXxnuoEpWL0PwaA4MFcKOYrLtFZp,CoZOaSGvvWbNMSvW88pMVlZ8cd5TbDLItY6sc5o36uvpNph4ddEc8mqG4vyipO06x1lAUP3E5YQQegPXyqJq7Gda,"I'm json lol"), DocumentLink(Range(Position(80,6),Position(85,47)),t29GPlwTtsk5lsy1wcgTN1Xm1898KVHs7D9ilpfYMHAy5oTNgRLuygasPE15GKHeuuMSEvJ5AQ,null,"I'm json lol"), DocumentLink(Range(Position(88,39),Position(66,77)),null,eo3vC2rhJ7AQYvB6AzFCOqGSO6uONzNohUUtypXfUwKVOYwo4CQMDQZ3mBlSjGUJ,"I'm json lol"), DocumentLink(Range(Position(95,88),Position(64,48)),rGnCKl0XphsDanaujSg8XpRDq2B,null,"I'm json lol"), DocumentLink(Range(Position(39,24),Position(21,54)),slnDAJLYyY3y2uj9VGdBPMn2OpfNqlEVk,null,"I'm json lol"), DocumentLink(Range(Position(49,50),Position(77,18)),cttX36kAvxkNzcQEdyJoBV3Wi5o5Ob0YYJDwnWAILrxIiN5Ha0,roOBFBLtyBiU04d,null), DocumentLink(Range(Position(80,88),Position(37,34)),cvTLNRMAPv70L7Tr,null,null), DocumentLink(Range(Position(42,9),Position(62,30)),XjN2aoRNfmgvtCikXwvHUXpFLs1tXdalS,null,"I'm json lol"), DocumentLink(Range(Position(95,17),Position(4,16)),null,null,"I'm json lol"), DocumentLink(Range(Position(51,25),Position(43,72)),null,null,"I'm json lol"), DocumentLink(Range(Position(65,4),Position(77,70)),null,null,"I'm json lol"), DocumentLink(Range(Position(49,27),Position(2,8)),null,F,"I'm json lol"), DocumentLink(Range(Position(29,55),Position(58,29)),null,tX1jAIopcfzjFKnDcAxEUXVJSXJyv7CSkzYiKfKIPEuxZCOPz,null), DocumentLink(Range(Position(61,94),Position(64,52)),null,null,"I'm json lol"), DocumentLink(Range(Position(78,14),Position(89,57)),null,null,null), DocumentLink(Range(Position(64,77),Position(17,93)),null,m5U4rOwuZJYSGcpH8KsHdkkL5cgHNquBCSzo5UntoNEsXLcPJkw2,null), DocumentLink(Range(Position(75,96),Position(29,62)),5v47nnlsrvJVMPObyrfWoYdES7kGJBufn0yEx98e5Msh1UJXimMcJe8qFb7w8iYIxlUmBWx7QIwyQRQtsc0ZeBszMX,PE7Nx0qS3ywUZF3uC,"I'm json lol"), DocumentLink(Range(Position(98,82),Position(56,28)),null,null,"I'm json lol"), DocumentLink(Range(Position(53,65),Position(29,19)),null,null,null), DocumentLink(Range(Position(31,19),Position(40,78)),null,TuME1CamLGkd7gMSZkAK9IWtdB3NixVa7hSyqUMPR3wWIwEb2uwAFj9SH3mAORyAcasbXCvlfnvGs1Ebd008W9zIYJcMYiDr,null), DocumentLink(Range(Position(63,21),Position(10,26)),null,IWPW5F1QzPVxjPLKShrBf5InGDrQCpjhn5Pu82O2n7L5dRnSjKfcwpDk8vbvlTcuUTqQY,null), DocumentLink(Range(Position(44,17),Position(64,41)),null,5q2aHrEWBKUtQlvLUWRiOAediSnrWI5PKVfMpfSQydnSEClSvM43Rie6TPxirRVGUlyZB2IEZRmrMWmSsBt9roD2Ex3f,"I'm json lol"), DocumentLink(Range(Position(26,51),Position(22,31)),null,null,null), DocumentLink(Range(Position(98,43),Position(73,15)),null,Uc8hZpDFDO1GjbFJTl1TVAefHM,"I'm json lol"), DocumentLink(Range(Position(69,2),Position(50,29)),null,null,null), DocumentLink(Range(Position(43,58),Position(54,27)),kirJD6KLMzlMlRMUGt424PMMQ3a1As636,null,"I'm json lol"), DocumentLink(Range(Position(96,47),Position(16,98)),o5tNrXbs5iCkC2e2zC4Dc1y,iFWyJg4NxQCWUkd2gAVmBUIPB7B6Q9KKUPz2y3MXrMNLOG1XXgfFJcCUFHsTgC7sFt9D3D2id2vi1cxvllZWK,null), DocumentLink(Range(Position(67,36),Position(13,42)),k0vyxqyZeiMQ5dwExVMiXSnme2gKkr4kKI7czeStAyt9cGqAqQJmwZcwStcPXXio,null,null), DocumentLink(Range(Position(16,37),Position(49,55)),null,null,null), DocumentLink(Range(Position(18,23),Position(30,28)),null,Soqciv4UgtgoUW3OwyOB2HbXcj0fh5VlJCYccvfj8HRGhjJ3YsQBqVtx,null), DocumentLink(Range(Position(46,2),Position(58,21)),null,qwMM4hcz17gpOOriEKF90,"I'm json lol"), DocumentLink(Range(Position(3,11),Position(56,9)),V5tMra4xKtIuEFoQqIAxiTe96QEe5IAcuw8R9cbUKSiEyLQCGRYIuBcaEFKAkTXLIh0JCRCOjiku7lX0hmqVZPjHUES75y,pbage1fO7x4ogvy8HQu3mEsXyWKJxGtHWOooqaqBnTZRAic,"I'm json lol"), DocumentLink(Range(Position(55,18),Position(57,43)),null,null,null), DocumentLink(Range(Position(98,88),Position(42,78)),CA7eFWR9Svktc75t80p2XsToWKq72gKjIjT3Dsf0ajh2EvWwrq9tKuRBDD7,null,"I'm json lol"), DocumentLink(Range(Position(77,73),Position(39,4)),4DTdUIc1fBtzfd2G6No0ERnfrvySEk7lJcWjD6XSYDAhvkb8kPr3VVmdtPPMbCec0mpGuUVLbARIKCywng6HWVvm,F,null), DocumentLink(Range(Position(70,98),Position(19,35)),null,null,null), DocumentLink(Range(Position(14,89),Position(55,95)),vVpuxVCdsN8d6R4bu2xO8iAwv4U3NvJUjZT,nNKlXFLz9f283P5pGr6Mz5krIBDL3J8KDFMb4lA8DpfMa98tKhlcOfi7FGwxNYclpBsPOdkHZxgNtWzb,null), DocumentLink(Range(Position(92,88),Position(32,7)),zPZ0zpIyxNNZOqLrZbpoLEcdf5u2zWGl1i84aP2VFdAl0tMzr7moOJRx4zbmv3ZsOn,null,"I'm json lol"), DocumentLink(Range(Position(29,24),Position(64,76)),kidum2rHzDHRiUBJ78d78zpxNalVj,null,"I'm json lol"), DocumentLink(Range(Position(85,9),Position(46,75)),null,null,null), DocumentLink(Range(Position(89,42),Position(20,31)),3CJqOIIEGvY5WzYKh3egiUv9V7S3NQMUHilfDUyG3ih7UFOieNFXlSZ2KKBTKK3Q6A,9eNNMIjxasLoRnI9Qm3UVHnjp4B21f5R8z0D,"I'm json lol"), DocumentLink(Range(Position(100,47),Position(81,43)),nacin92BbBXxCIzAyN,null,"I'm json lol"), DocumentLink(Range(Position(40,51),Position(83,40)),null,null,"I'm json lol"), DocumentLink(Range(Position(82,77),Position(84,78)),kxCAR3sVej3zvM9sPnSzEBvzChV68o1IDVG9V8wkfu5HoN4NAhSiTdenXH6toNNDBb6yWOu2SCCtkZ25PINdZcvq,null,null), DocumentLink(Range(Position(23,53),Position(95,70)),ssINLEIaqAdpNag4vIcxqIQrZEoumbPbHNyKNJpORu8qZvCSEK8FWH25355cNwFqA4Koul4wdUyik835,T5eNcevzmdmgEPZJurIUoU5Tw4Gre49fQVNI,"I'm json lol"), DocumentLink(Range(Position(54,97),Position(15,55)),Q8jpkhIcbp,1541fq5lwMTyVDBP4nAO8oKRDhT04arbRJeaFGzKGnJ,null), DocumentLink(Range(Position(79,36),Position(29,2)),T6OTG6qILX8jnWHyBDgCNSOGN89F0AYFWGd4TakTYgs9WDuhiqPuwria7LymiTP,5LhxjcdfxqwSIDbGWuEHaYM5AC8YLDY7EbUKurNbHdlrNLhqIJXQ54iognN6ZjGeS74aIqwh4kyfrjYZbs0,null), DocumentLink(Range(Position(15,63),Position(68,49)),null,17KEMNSbj8pgqEhPL1HydUNOKh,null), DocumentLink(Range(Position(52,33),Position(17,55)),QoPCYMpzdbxuNSzhSk8L5R3nVBMlqh8XkU4b5WvqxARvjGdk9s7amA9hIa2,WRmUUpFLTgb6SIEJUu6vtWIubdyaDa5opFKpA4bYFFZ2fTQJgKuWlnQeHp5D0nkDAoRXB,null), DocumentLink(Range(Position(6,6),Position(17,10)),null,SgqjwCFlb3uheL3XEXCq54NqJiqMVGEBknfQoupAkhX0pgppFopWoHuo3C0RA0fXZMpsi1VTXEA2kQydeazD5KVsK,"I'm json lol"), DocumentLink(Range(Position(55,83),Position(21,57)),xLXvr37ioygflDR4kYcOz4UCW8S98xezu7IIJbWBVzP2P4jgGt07TYfzXFdEfnOjS1RWoeR,null,"I'm json lol"), DocumentLink(Range(Position(75,16),Position(30,25)),fOOXYi1wTOcPnaYt11qwaIggFwFaEd9PuBaO74uTy5zLiqTTnjXZ7z4XTyg,YTso06mhYnInqY5GwFPoTLEP41EuKkhDKjekS2neyaDt5YngPGlUcvVxyqKIybMedlJcucNFW03P,null), DocumentLink(Range(Position(32,63),Position(48,16)),UUKFtTW6eE5U6RIYVPBrY9AzdWhX4aaEEVih4BWSiTOKm5HnkJL,vD2cC6ZxmvEeZjGhoW64NTBh2BApTlBYxiRmCiEd3HztZQUCR9TnegWv,null), DocumentLink(Range(Position(37,91),Position(26,48)),8mDkZsslxPFvWRVe82TKUnMA88jpRUdug9BBfwLJa4ux,KzbRE0EHKBuWSZu0PqFDwBGERKB6xg7hZDucJkmQlEMBwDI9XX5t6k5EbX1Xefn,"I'm json lol"), DocumentLink(Range(Position(79,4),Position(55,97)),lSHbwhKiiwI2do50zBDwfyq78vsTicKjjiRYkGousa0cclYpVzpMYAmys6wTNpfXCI7mjRBt7KeLtE0bmf,null,null), DocumentLink(Range(Position(55,33),Position(14,7)),null,2WhZVpNuLdlMHFacroeHHdcFqYFG6rzuVHPKGDRBTx5UvGndS6LoKrAlBLsIsOZrpMImgGiXp8z0VwLOdBst9S86UwY,null), DocumentLink(Range(Position(40,11),Position(82,11)),null,DatuOnM4uX3NzUbKAx9ZFJ5c,null)) +[{"range":{"start":{"line":83,"character":1},"end":{"line":71,"character":48}}},{"range":{"start":{"line":48,"character":91},"end":{"line":22,"character":99}},"target":"7CI","tooltip":"MHkzuv7lvA1vxdQsA4TEuhjqmCp7YnJrF3VHcwnRGqc6SpzWAeAVfrapLhjUaLGfCBwBEPj4m8ND90nYNoSCnTHTKK2JLOTp0i","data":"I'm json lol"},{"range":{"start":{"line":60,"character":46},"end":{"line":52,"character":85}},"target":"GGzmY","tooltip":"4JZw9a6j8pl0CETlfebLwpq3S8TY961qVPQzmNGVbaqVgIJB5FP"},{"range":{"start":{"line":89,"character":51},"end":{"line":63,"character":14}}},{"range":{"start":{"line":87,"character":63},"end":{"line":90,"character":9}},"target":"DBYP7cgw18MLzdjaATGIN5Wtfxm","tooltip":"qImOewzc8hmghb6VjC8exO4qpFz4oU","data":"I'm json lol"},{"range":{"start":{"line":59,"character":91},"end":{"line":8,"character":17}},"target":"r"},{"range":{"start":{"line":3,"character":30},"end":{"line":51,"character":61}},"target":"VBOmXeJmQtPG9NUQP04v2JK2lA3nptY3kj3oerz6HOK6PDEOXT2j85zFzyt6N"},{"range":{"start":{"line":61,"character":13},"end":{"line":51,"character":13}},"target":"b","tooltip":"8fG2POIL2Z3pbTXSpUijGgrpkL8PIsheUP55Cp7wilRUIOgORgGl8ped1IgSRIJbZjGUDdqFYge2M","data":"I'm json lol"},{"range":{"start":{"line":38,"character":12},"end":{"line":82,"character":90}}},{"range":{"start":{"line":76,"character":50},"end":{"line":49,"character":62}},"target":"FCgZlabG9BUtvW2F9qwbHcoUmHoRwT"},{"range":{"start":{"line":6,"character":19},"end":{"line":55,"character":21}},"target":"TxcvawW"},{"range":{"start":{"line":36,"character":67},"end":{"line":10,"character":1}},"tooltip":"gcwtJEE3uknI2f2BR3V5q3jYXAOig4inddfTFr7doqUHDQWHWaq2WFz6S4QLGXqVgkvElpbD4osqoO2YwYwEXFUk","data":"I'm json lol"},{"range":{"start":{"line":55,"character":57},"end":{"line":19,"character":76}},"target":"yL5Vizq1P8LGgkJz7IMnD7bJRPNYQcHChiKyusWQ7FiCyj4swvbMRJ8","data":"I'm json lol"},{"range":{"start":{"line":8,"character":48},"end":{"line":7,"character":65}},"target":"W1P9k17V8rDoIsk73npPrAfu86g8WS3FRsTHi2noY0kepyeRkm32b4MXSflNItKBQpYdMdkWwDnZ"},{"range":{"start":{"line":31,"character":72},"end":{"line":7,"character":44}},"tooltip":"lTbAEHu9yocs9tCrrIBlQizMAzGRbi9nAz9PP4ihmHQYTkSoz4mRyEdvKCkUj0tazzk8cmjIwq38c1KdOvDY","data":"I'm json lol"},{"range":{"start":{"line":27,"character":1},"end":{"line":19,"character":26}},"target":"pDUIoMYfmEevIQNIdjki5xPrHcUNjsiMTTTCstseD1jNKMKAQBicHdOwzQBCExkJo2S2i649572Y7rlU2F0bk"},{"range":{"start":{"line":98,"character":85},"end":{"line":57,"character":91}},"tooltip":"L1SK9vLL5LzKgVAWEJqsXvcvVjlGIf5ClS0eakzOJXqCKm8QiFJiEBcsVBGB1schlsBpQz6","data":"I'm json lol"},{"range":{"start":{"line":14,"character":18},"end":{"line":21,"character":49}},"data":"I'm json lol"},{"range":{"start":{"line":94,"character":52},"end":{"line":43,"character":38}},"data":"I'm json lol"},{"range":{"start":{"line":60,"character":3},"end":{"line":80,"character":26}},"target":"IqqW2yAAb1mKp0F12j0T3VcE0sPRbheqZiFxn0wiI9p","tooltip":"gL6hO6rXS8c7STKtcylS8z48Yt12SztrsIQQrRQYAl3XM4cBT5VuL6k0IYe5jmIraO2Tf26M1ckesnj0Gn","data":"I'm json lol"},{"range":{"start":{"line":77,"character":83},"end":{"line":73,"character":33}},"tooltip":"3khsvOXQ73bRbG2mVJGx0ZxBFtcdbVoAz6MoyOom0bppgp8v6i5xpmXpvmj01jMvCpVA77ub"},{"range":{"start":{"line":24,"character":60},"end":{"line":20,"character":22}},"target":"H5KyNpIxzxpTESlmRbNFst8Ht"},{"range":{"start":{"line":86,"character":5},"end":{"line":63,"character":79}},"data":"I'm json lol"},{"range":{"start":{"line":65,"character":8},"end":{"line":51,"character":5}},"target":"HQbxcRJm9asUbZGxE9iOKuXHwBA1SIXwnqzU57gctfsdfa0xFVOYWHATHfp4NzrErObtWXDgq8gVe8iWPhSYQySfv95priQVNJyj","tooltip":"opCdOgmNXS5kRWtz0","data":"I'm json lol"},{"range":{"start":{"line":20,"character":9},"end":{"line":5,"character":71}},"target":"flpaLLfiJh0MF30djRaqclRNmM6R2MFrTRtYdjiJ7qKpDdNw6G4lHA43yFk496ehwILd7QCLh6hcGYMAvwJOid","tooltip":"91ft5PzDdpb6TD6KEMHMY0OeTqYZaW8jnDWiJ2HVBUrpIjq0UZKUnY0DqKbV6tZ","data":"I'm json lol"},{"range":{"start":{"line":8,"character":94},"end":{"line":83,"character":26}},"target":"kbR4T3oOYQpilLLDsC9B8hiGg0VPWd8w6XpISDOSD93qaGa5cIrinQCwC","tooltip":"z67xj6pPM3ANGMWLtK91wUf9n88yVPO8MZ0PQ9sGf8hXBkvjwQ8kr"},{"range":{"start":{"line":60,"character":61},"end":{"line":25,"character":73}}},{"range":{"start":{"line":78,"character":55},"end":{"line":89,"character":13}},"target":"IZde4IrFxFx2OgTsbUBAqg4sYiI747sTh7WeB3X0QjNjbskur5e0"},{"range":{"start":{"line":37,"character":12},"end":{"line":83,"character":69}},"data":"I'm json lol"},{"range":{"start":{"line":15,"character":1},"end":{"line":19,"character":66}},"tooltip":"we5Fqe5Nv3cNkaPrnfNGf8dCtXJ6O62YDrG7321axMh4TeA5RUC3tbEi6rYOfhznE3qyMwqqxFxkqAttwFp0T1RblU7BtHb4"},{"range":{"start":{"line":15,"character":72},"end":{"line":53,"character":27}},"target":"RaRGO2e9owBSoRl7sGczNb53CacZrTES4YMIqe61NU0WB2BO4iIOuYzkQo16DOf486EJulQz9S","tooltip":"UbxMu7Gj7LrOxYEwQ5nNvLDU9R1I7PNRCamIZI02PspW63yLFfA3iCVOopXoh8HW","data":"I'm json lol"},{"range":{"start":{"line":22,"character":12},"end":{"line":86,"character":13}},"target":"YlBxPAODqWAW42BD","data":"I'm json lol"},{"range":{"start":{"line":15,"character":66},"end":{"line":63,"character":92}},"target":"ScMkEHOG8DisEM7kdUvEjOUrAQcvYCIu4vSamzwOdB6TEM","tooltip":"rNs2xghP5YdBOsslVRY2Q6czyhN7O0UQqUlWbKvSfaAKYwxbtODhlzuaO0XijNFfDo9u","data":"I'm json lol"},{"range":{"start":{"line":20,"character":93},"end":{"line":78,"character":22}}},{"range":{"start":{"line":39,"character":85},"end":{"line":83,"character":86}},"target":"7bvXLg92tu32v75RGrqDNjnvP7CTLRaYtGHrjuO1o8uIZA9yUbJ9luk7k","tooltip":"icr978wsHkHjKzSaHwaWGitITAuDcMBfushYPTvd24MS4ux905YGYg3WeAT"},{"range":{"start":{"line":33,"character":79},"end":{"line":90,"character":10}},"data":"I'm json lol"},{"range":{"start":{"line":36,"character":96},"end":{"line":78,"character":41}},"target":"2x1jp7VJYcGTWvRnmoewM","tooltip":"0nBBD4MCXJQ81GvMQAJWrCdrdoqJiX91"},{"range":{"start":{"line":56,"character":76},"end":{"line":40,"character":8}}},{"range":{"start":{"line":71,"character":28},"end":{"line":67,"character":49}},"data":"I'm json lol"},{"range":{"start":{"line":95,"character":90},"end":{"line":69,"character":8}}},{"range":{"start":{"line":8,"character":21},"end":{"line":81,"character":90}},"data":"I'm json lol"},{"range":{"start":{"line":18,"character":46},"end":{"line":27,"character":16}},"target":"rM7K3Czz1lvy3UmBJWngVejQaeW01Dsv9tOeaVW5LKZP9aa15zYXxnuoEpWL0PwaA4MFcKOYrLtFZp","tooltip":"CoZOaSGvvWbNMSvW88pMVlZ8cd5TbDLItY6sc5o36uvpNph4ddEc8mqG4vyipO06x1lAUP3E5YQQegPXyqJq7Gda","data":"I'm json lol"},{"range":{"start":{"line":80,"character":6},"end":{"line":85,"character":47}},"target":"t29GPlwTtsk5lsy1wcgTN1Xm1898KVHs7D9ilpfYMHAy5oTNgRLuygasPE15GKHeuuMSEvJ5AQ","data":"I'm json lol"},{"range":{"start":{"line":88,"character":39},"end":{"line":66,"character":77}},"tooltip":"eo3vC2rhJ7AQYvB6AzFCOqGSO6uONzNohUUtypXfUwKVOYwo4CQMDQZ3mBlSjGUJ","data":"I'm json lol"},{"range":{"start":{"line":95,"character":88},"end":{"line":64,"character":48}},"target":"rGnCKl0XphsDanaujSg8XpRDq2B","data":"I'm json lol"},{"range":{"start":{"line":39,"character":24},"end":{"line":21,"character":54}},"target":"slnDAJLYyY3y2uj9VGdBPMn2OpfNqlEVk","data":"I'm json lol"},{"range":{"start":{"line":49,"character":50},"end":{"line":77,"character":18}},"target":"cttX36kAvxkNzcQEdyJoBV3Wi5o5Ob0YYJDwnWAILrxIiN5Ha0","tooltip":"roOBFBLtyBiU04d"},{"range":{"start":{"line":80,"character":88},"end":{"line":37,"character":34}},"target":"cvTLNRMAPv70L7Tr"},{"range":{"start":{"line":42,"character":9},"end":{"line":62,"character":30}},"target":"XjN2aoRNfmgvtCikXwvHUXpFLs1tXdalS","data":"I'm json lol"},{"range":{"start":{"line":95,"character":17},"end":{"line":4,"character":16}},"data":"I'm json lol"},{"range":{"start":{"line":51,"character":25},"end":{"line":43,"character":72}},"data":"I'm json lol"},{"range":{"start":{"line":65,"character":4},"end":{"line":77,"character":70}},"data":"I'm json lol"},{"range":{"start":{"line":49,"character":27},"end":{"line":2,"character":8}},"tooltip":"F","data":"I'm json lol"},{"range":{"start":{"line":29,"character":55},"end":{"line":58,"character":29}},"tooltip":"tX1jAIopcfzjFKnDcAxEUXVJSXJyv7CSkzYiKfKIPEuxZCOPz"},{"range":{"start":{"line":61,"character":94},"end":{"line":64,"character":52}},"data":"I'm json lol"},{"range":{"start":{"line":78,"character":14},"end":{"line":89,"character":57}}},{"range":{"start":{"line":64,"character":77},"end":{"line":17,"character":93}},"tooltip":"m5U4rOwuZJYSGcpH8KsHdkkL5cgHNquBCSzo5UntoNEsXLcPJkw2"},{"range":{"start":{"line":75,"character":96},"end":{"line":29,"character":62}},"target":"5v47nnlsrvJVMPObyrfWoYdES7kGJBufn0yEx98e5Msh1UJXimMcJe8qFb7w8iYIxlUmBWx7QIwyQRQtsc0ZeBszMX","tooltip":"PE7Nx0qS3ywUZF3uC","data":"I'm json lol"},{"range":{"start":{"line":98,"character":82},"end":{"line":56,"character":28}},"data":"I'm json lol"},{"range":{"start":{"line":53,"character":65},"end":{"line":29,"character":19}}},{"range":{"start":{"line":31,"character":19},"end":{"line":40,"character":78}},"tooltip":"TuME1CamLGkd7gMSZkAK9IWtdB3NixVa7hSyqUMPR3wWIwEb2uwAFj9SH3mAORyAcasbXCvlfnvGs1Ebd008W9zIYJcMYiDr"},{"range":{"start":{"line":63,"character":21},"end":{"line":10,"character":26}},"tooltip":"IWPW5F1QzPVxjPLKShrBf5InGDrQCpjhn5Pu82O2n7L5dRnSjKfcwpDk8vbvlTcuUTqQY"},{"range":{"start":{"line":44,"character":17},"end":{"line":64,"character":41}},"tooltip":"5q2aHrEWBKUtQlvLUWRiOAediSnrWI5PKVfMpfSQydnSEClSvM43Rie6TPxirRVGUlyZB2IEZRmrMWmSsBt9roD2Ex3f","data":"I'm json lol"},{"range":{"start":{"line":26,"character":51},"end":{"line":22,"character":31}}},{"range":{"start":{"line":98,"character":43},"end":{"line":73,"character":15}},"tooltip":"Uc8hZpDFDO1GjbFJTl1TVAefHM","data":"I'm json lol"},{"range":{"start":{"line":69,"character":2},"end":{"line":50,"character":29}}},{"range":{"start":{"line":43,"character":58},"end":{"line":54,"character":27}},"target":"kirJD6KLMzlMlRMUGt424PMMQ3a1As636","data":"I'm json lol"},{"range":{"start":{"line":96,"character":47},"end":{"line":16,"character":98}},"target":"o5tNrXbs5iCkC2e2zC4Dc1y","tooltip":"iFWyJg4NxQCWUkd2gAVmBUIPB7B6Q9KKUPz2y3MXrMNLOG1XXgfFJcCUFHsTgC7sFt9D3D2id2vi1cxvllZWK"},{"range":{"start":{"line":67,"character":36},"end":{"line":13,"character":42}},"target":"k0vyxqyZeiMQ5dwExVMiXSnme2gKkr4kKI7czeStAyt9cGqAqQJmwZcwStcPXXio"},{"range":{"start":{"line":16,"character":37},"end":{"line":49,"character":55}}},{"range":{"start":{"line":18,"character":23},"end":{"line":30,"character":28}},"tooltip":"Soqciv4UgtgoUW3OwyOB2HbXcj0fh5VlJCYccvfj8HRGhjJ3YsQBqVtx"},{"range":{"start":{"line":46,"character":2},"end":{"line":58,"character":21}},"tooltip":"qwMM4hcz17gpOOriEKF90","data":"I'm json lol"},{"range":{"start":{"line":3,"character":11},"end":{"line":56,"character":9}},"target":"V5tMra4xKtIuEFoQqIAxiTe96QEe5IAcuw8R9cbUKSiEyLQCGRYIuBcaEFKAkTXLIh0JCRCOjiku7lX0hmqVZPjHUES75y","tooltip":"pbage1fO7x4ogvy8HQu3mEsXyWKJxGtHWOooqaqBnTZRAic","data":"I'm json lol"},{"range":{"start":{"line":55,"character":18},"end":{"line":57,"character":43}}},{"range":{"start":{"line":98,"character":88},"end":{"line":42,"character":78}},"target":"CA7eFWR9Svktc75t80p2XsToWKq72gKjIjT3Dsf0ajh2EvWwrq9tKuRBDD7","data":"I'm json lol"},{"range":{"start":{"line":77,"character":73},"end":{"line":39,"character":4}},"target":"4DTdUIc1fBtzfd2G6No0ERnfrvySEk7lJcWjD6XSYDAhvkb8kPr3VVmdtPPMbCec0mpGuUVLbARIKCywng6HWVvm","tooltip":"F"},{"range":{"start":{"line":70,"character":98},"end":{"line":19,"character":35}}},{"range":{"start":{"line":14,"character":89},"end":{"line":55,"character":95}},"target":"vVpuxVCdsN8d6R4bu2xO8iAwv4U3NvJUjZT","tooltip":"nNKlXFLz9f283P5pGr6Mz5krIBDL3J8KDFMb4lA8DpfMa98tKhlcOfi7FGwxNYclpBsPOdkHZxgNtWzb"},{"range":{"start":{"line":92,"character":88},"end":{"line":32,"character":7}},"target":"zPZ0zpIyxNNZOqLrZbpoLEcdf5u2zWGl1i84aP2VFdAl0tMzr7moOJRx4zbmv3ZsOn","data":"I'm json lol"},{"range":{"start":{"line":29,"character":24},"end":{"line":64,"character":76}},"target":"kidum2rHzDHRiUBJ78d78zpxNalVj","data":"I'm json lol"},{"range":{"start":{"line":85,"character":9},"end":{"line":46,"character":75}}},{"range":{"start":{"line":89,"character":42},"end":{"line":20,"character":31}},"target":"3CJqOIIEGvY5WzYKh3egiUv9V7S3NQMUHilfDUyG3ih7UFOieNFXlSZ2KKBTKK3Q6A","tooltip":"9eNNMIjxasLoRnI9Qm3UVHnjp4B21f5R8z0D","data":"I'm json lol"},{"range":{"start":{"line":100,"character":47},"end":{"line":81,"character":43}},"target":"nacin92BbBXxCIzAyN","data":"I'm json lol"},{"range":{"start":{"line":40,"character":51},"end":{"line":83,"character":40}},"data":"I'm json lol"},{"range":{"start":{"line":82,"character":77},"end":{"line":84,"character":78}},"target":"kxCAR3sVej3zvM9sPnSzEBvzChV68o1IDVG9V8wkfu5HoN4NAhSiTdenXH6toNNDBb6yWOu2SCCtkZ25PINdZcvq"},{"range":{"start":{"line":23,"character":53},"end":{"line":95,"character":70}},"target":"ssINLEIaqAdpNag4vIcxqIQrZEoumbPbHNyKNJpORu8qZvCSEK8FWH25355cNwFqA4Koul4wdUyik835","tooltip":"T5eNcevzmdmgEPZJurIUoU5Tw4Gre49fQVNI","data":"I'm json lol"},{"range":{"start":{"line":54,"character":97},"end":{"line":15,"character":55}},"target":"Q8jpkhIcbp","tooltip":"1541fq5lwMTyVDBP4nAO8oKRDhT04arbRJeaFGzKGnJ"},{"range":{"start":{"line":79,"character":36},"end":{"line":29,"character":2}},"target":"T6OTG6qILX8jnWHyBDgCNSOGN89F0AYFWGd4TakTYgs9WDuhiqPuwria7LymiTP","tooltip":"5LhxjcdfxqwSIDbGWuEHaYM5AC8YLDY7EbUKurNbHdlrNLhqIJXQ54iognN6ZjGeS74aIqwh4kyfrjYZbs0"},{"range":{"start":{"line":15,"character":63},"end":{"line":68,"character":49}},"tooltip":"17KEMNSbj8pgqEhPL1HydUNOKh"},{"range":{"start":{"line":52,"character":33},"end":{"line":17,"character":55}},"target":"QoPCYMpzdbxuNSzhSk8L5R3nVBMlqh8XkU4b5WvqxARvjGdk9s7amA9hIa2","tooltip":"WRmUUpFLTgb6SIEJUu6vtWIubdyaDa5opFKpA4bYFFZ2fTQJgKuWlnQeHp5D0nkDAoRXB"},{"range":{"start":{"line":6,"character":6},"end":{"line":17,"character":10}},"tooltip":"SgqjwCFlb3uheL3XEXCq54NqJiqMVGEBknfQoupAkhX0pgppFopWoHuo3C0RA0fXZMpsi1VTXEA2kQydeazD5KVsK","data":"I'm json lol"},{"range":{"start":{"line":55,"character":83},"end":{"line":21,"character":57}},"target":"xLXvr37ioygflDR4kYcOz4UCW8S98xezu7IIJbWBVzP2P4jgGt07TYfzXFdEfnOjS1RWoeR","data":"I'm json lol"},{"range":{"start":{"line":75,"character":16},"end":{"line":30,"character":25}},"target":"fOOXYi1wTOcPnaYt11qwaIggFwFaEd9PuBaO74uTy5zLiqTTnjXZ7z4XTyg","tooltip":"YTso06mhYnInqY5GwFPoTLEP41EuKkhDKjekS2neyaDt5YngPGlUcvVxyqKIybMedlJcucNFW03P"},{"range":{"start":{"line":32,"character":63},"end":{"line":48,"character":16}},"target":"UUKFtTW6eE5U6RIYVPBrY9AzdWhX4aaEEVih4BWSiTOKm5HnkJL","tooltip":"vD2cC6ZxmvEeZjGhoW64NTBh2BApTlBYxiRmCiEd3HztZQUCR9TnegWv"},{"range":{"start":{"line":37,"character":91},"end":{"line":26,"character":48}},"target":"8mDkZsslxPFvWRVe82TKUnMA88jpRUdug9BBfwLJa4ux","tooltip":"KzbRE0EHKBuWSZu0PqFDwBGERKB6xg7hZDucJkmQlEMBwDI9XX5t6k5EbX1Xefn","data":"I'm json lol"},{"range":{"start":{"line":79,"character":4},"end":{"line":55,"character":97}},"target":"lSHbwhKiiwI2do50zBDwfyq78vsTicKjjiRYkGousa0cclYpVzpMYAmys6wTNpfXCI7mjRBt7KeLtE0bmf"},{"range":{"start":{"line":55,"character":33},"end":{"line":14,"character":7}},"tooltip":"2WhZVpNuLdlMHFacroeHHdcFqYFG6rzuVHPKGDRBTx5UvGndS6LoKrAlBLsIsOZrpMImgGiXp8z0VwLOdBst9S86UwY"},{"range":{"start":{"line":40,"character":11},"end":{"line":82,"character":11}},"tooltip":"DatuOnM4uX3NzUbKAx9ZFJ5c"}] +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/response__textDocument_documentSymbol b/modules/tests/src/test/resources/snapshots/tests/response__textDocument_documentSymbol new file mode 100644 index 000000000..546296abe --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/response__textDocument_documentSymbol @@ -0,0 +1,15 @@ +Opt.empty +null +--------------------- +Opt.empty +null +--------------------- +Opt.empty +null +--------------------- +Opt.empty +null +--------------------- +Opt.empty +null +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/response__textDocument_foldingRange b/modules/tests/src/test/resources/snapshots/tests/response__textDocument_foldingRange new file mode 100644 index 000000000..6b506dd83 --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/response__textDocument_foldingRange @@ -0,0 +1,15 @@ +Opt.empty +null +--------------------- +Opt.empty +null +--------------------- +Opt.empty +null +--------------------- +Opt.empty +null +--------------------- +Vector(FoldingRange(32,77,9,null,null,G68), FoldingRange(75,null,41,72,comment,null), FoldingRange(17,22,6,94,null,null), FoldingRange(73,null,64,34,null,HpPdXqsagSbYBAIclCK0tPY), FoldingRange(15,14,45,null,null,null), FoldingRange(94,null,45,99,null,s8hrZxck1qQWaqVWZ2gXyJ9TwQbbIhkzRz6wdbPckW2iCGRJVxqE0aa2Xe6ik7h6ybILVc1dVs5X8uNE4iL45), FoldingRange(23,31,33,null,null,EZ7EBPpNvm4p7DpKfhXYWlXbigfD4Syyotnqa5ky31IAuA5wocnMRSZPfGwyzWYRpPytHLtb0I8v), FoldingRange(33,76,42,null,region,K8CYy25CeBdnegZwQK5MP9l1dW3788nYQ55eRgKFJDybqh0YJzMGvJFmt), FoldingRange(12,null,13,13,comment,null), FoldingRange(57,79,68,61,comment,SQPgMvsNHF7AnT3JPVLyZo0WCUelOq8WcJoQTUYjlrgaZPbifAUhj3RY6jUB94oBQONe46tRopdEkvidwRkOqbMMAemiVAU3nC), FoldingRange(19,null,97,16,null,null), FoldingRange(60,4,83,36,region,null), FoldingRange(31,29,86,67,region,8o85aP8YzJjlYRSKH0Gx19fpfpMnOcFmN0BGnDeejnGy), FoldingRange(94,70,44,null,imports,null), FoldingRange(64,null,62,76,null,null), FoldingRange(50,null,46,null,comment,null), FoldingRange(58,25,8,null,null,null), FoldingRange(48,63,61,32,null,GLnDvqCy5zWkI0ey3ze3t1EaVhnAnWCvffYjCGJHE199dyXsBToWbGOqWzzMke7I6lLFbMotHb2oxAgyD), FoldingRange(94,null,65,null,comment,null), FoldingRange(90,null,29,null,null,null), FoldingRange(3,91,4,null,imports,null), FoldingRange(91,null,46,24,imports,xz6QX9JzZA2269P8AXYA9GuOyzsi5YUsXSbDX8BTtit6wDYQE6b), FoldingRange(31,null,97,null,null,null), FoldingRange(25,12,84,null,imports,CWMMHutccgPKoDt5yygm7JwgEOzsyhEqs5gjuDUwh0LdOQoISBlRBM0W1NOunBAklSDzb9bRrZsNKMuRrwp), FoldingRange(84,null,66,71,null,null), FoldingRange(97,84,42,73,comment,LDsCKI1ObRAlNT4Ke6CKFP1n7iqz3NJKhtBbKN), FoldingRange(42,null,76,null,region,IzURJWN6mKd0fzjH6Vj5PHCKfJSs0YxphZYRomLOVXt7HXf6aJKytUfj04YcahdGk4xVBJPupOG5YgeRQZkgQ1p1YSmdeZs8), FoldingRange(37,null,47,70,region,reJM2Nf9vZGsG7qzttos), FoldingRange(31,null,48,null,imports,O0LbXK5Wo5BA4bEdR3uzfPRJIzMOz5CPdvV49vCHh1tu4eMSDGjKgrp6gvGJUGWI6tbori7odgPp6esRUBO), FoldingRange(50,null,98,71,region,9OondSVtJ8ERDsT7uL8JZiMtL4tzpm), FoldingRange(68,null,43,87,null,tS9uoDYZJ0t3JtbERs), FoldingRange(56,80,19,null,region,null), FoldingRange(47,45,99,17,imports,AufwYkZ64Ie), FoldingRange(24,null,4,55,comment,null), FoldingRange(12,null,27,null,comment,null), FoldingRange(53,87,81,null,imports,null), FoldingRange(46,96,76,87,region,), FoldingRange(54,null,77,null,region,null), FoldingRange(88,null,74,null,imports,9PdUgQFuyKhTicpOH70g9v7b7Phta522x1zm8KT3vLIAIcN6HUy4c9KK86iISqX5fYm9TbC5), FoldingRange(43,null,43,38,comment,null), FoldingRange(88,49,95,74,region,null), FoldingRange(98,61,62,null,comment,null), FoldingRange(76,null,32,31,comment,null), FoldingRange(13,null,57,null,region,hYFLGwgBy6W3vYytowRg6aJt), FoldingRange(11,null,23,null,imports,null), FoldingRange(88,51,25,null,null,3oW9SQMATaxZsZ03CUkMJt9QpnvglX6wuo5bdAbctrL2jQn2uQzLZfm60hrqNlrF8Fuxk7Rc1vRlIOEjMnCxYXuetYuAg1wSOm), FoldingRange(84,74,59,null,null,7TOGLMFRxbc7ple4qI5hRznbv), FoldingRange(66,null,6,73,region,7CvR57gOGDitUmrvxV7oEWxe3EXMiQ4ttn), FoldingRange(21,40,8,51,null,null), FoldingRange(79,4,96,100,imports,null), FoldingRange(55,null,38,40,null,Jc5zZODpFR41q1KpzyUhr1Lc10OxYM2RI1GYl7rbNny5M6JTmekb4BOgwTEJhd8UDI9SjTLi83rR0iE2X5XUPZZVLRQ6Yf), FoldingRange(72,null,48,null,null,null), FoldingRange(51,35,96,null,comment,gNog), FoldingRange(54,null,69,null,null,null), FoldingRange(86,88,75,70,null,0gC4DJdbeZiAVboaPN), FoldingRange(14,29,87,14,comment,null), FoldingRange(68,81,8,null,comment,byDsMv0yQeA1BMbl8UZFpG3otsPVabxswPKG0bI7CHqh41J8LCE9dU4pIrNyHhnc4ZSn0FHW5l6KhgI5j6DCWshQ3mN), FoldingRange(56,null,3,2,region,HnZGUD7fFzWyc0LqbJzRsSLsBR02TORkwY36gYi), FoldingRange(25,14,96,82,null,IxabG1EvB4bEjWVVjbUfyHeNJiLr0XlFqFSSMvnQisyYvnhDaJw), FoldingRange(44,17,66,null,null,ggPByk2AnXrBIEkkGqUYnQxTkDuwfQcIk4i988MHFSA72TN19qUM0lbSKNdSpw2Dm), FoldingRange(57,96,71,null,region,T5WQ), FoldingRange(48,67,74,null,null,null), FoldingRange(28,null,58,34,null,Gu6qZjKXPNTVsVA0sZ), FoldingRange(34,29,36,24,imports,null), FoldingRange(33,null,41,null,region,null), FoldingRange(7,null,64,33,comment,null), FoldingRange(31,13,94,null,null,YJ7RbQPcT26Puv1zHeljF91q01UwHJal7eYP0peIUsVQIX4qjqIZAIcTcIT4SzkQQmzv), FoldingRange(82,2,46,34,region,null), FoldingRange(21,null,80,35,null,mxoPWIKx8m09q0bGXz2E2wGEEF95OtG1bfvCXalqhCD81D90xp4RQIpO4pxvPKtjZtSqh5W5ertRPfupB36HK), FoldingRange(77,null,100,29,null,null), FoldingRange(22,83,98,null,comment,null), FoldingRange(30,65,37,null,imports,null), FoldingRange(12,null,4,null,null,null), FoldingRange(20,24,47,81,region,null), FoldingRange(51,null,94,32,null,ZIbeC5KumGsn42J8VjNlO8pQd0U), FoldingRange(46,87,93,null,region,null), FoldingRange(38,null,92,31,imports,null)) +[{"startLine":32,"startCharacter":77,"endLine":9,"collapsedText":"G68"},{"startLine":75,"endLine":41,"endCharacter":72,"kind":"comment"},{"startLine":17,"startCharacter":22,"endLine":6,"endCharacter":94},{"startLine":73,"endLine":64,"endCharacter":34,"collapsedText":"HpPdXqsagSbYBAIclCK0tPY"},{"startLine":15,"startCharacter":14,"endLine":45},{"startLine":94,"endLine":45,"endCharacter":99,"collapsedText":"s8hrZxck1qQWaqVWZ2gXyJ9TwQbbIhkzRz6wdbPckW2iCGRJVxqE0aa2Xe6ik7h6ybILVc1dVs5X8uNE4iL45"},{"startLine":23,"startCharacter":31,"endLine":33,"collapsedText":"EZ7EBPpNvm4p7DpKfhXYWlXbigfD4Syyotnqa5ky31IAuA5wocnMRSZPfGwyzWYRpPytHLtb0I8v"},{"startLine":33,"startCharacter":76,"endLine":42,"kind":"region","collapsedText":"K8CYy25CeBdnegZwQK5MP9l1dW3788nYQ55eRgKFJDybqh0YJzMGvJFmt"},{"startLine":12,"endLine":13,"endCharacter":13,"kind":"comment"},{"startLine":57,"startCharacter":79,"endLine":68,"endCharacter":61,"kind":"comment","collapsedText":"SQPgMvsNHF7AnT3JPVLyZo0WCUelOq8WcJoQTUYjlrgaZPbifAUhj3RY6jUB94oBQONe46tRopdEkvidwRkOqbMMAemiVAU3nC"},{"startLine":19,"endLine":97,"endCharacter":16},{"startLine":60,"startCharacter":4,"endLine":83,"endCharacter":36,"kind":"region"},{"startLine":31,"startCharacter":29,"endLine":86,"endCharacter":67,"kind":"region","collapsedText":"8o85aP8YzJjlYRSKH0Gx19fpfpMnOcFmN0BGnDeejnGy"},{"startLine":94,"startCharacter":70,"endLine":44,"kind":"imports"},{"startLine":64,"endLine":62,"endCharacter":76},{"startLine":50,"endLine":46,"kind":"comment"},{"startLine":58,"startCharacter":25,"endLine":8},{"startLine":48,"startCharacter":63,"endLine":61,"endCharacter":32,"collapsedText":"GLnDvqCy5zWkI0ey3ze3t1EaVhnAnWCvffYjCGJHE199dyXsBToWbGOqWzzMke7I6lLFbMotHb2oxAgyD"},{"startLine":94,"endLine":65,"kind":"comment"},{"startLine":90,"endLine":29},{"startLine":3,"startCharacter":91,"endLine":4,"kind":"imports"},{"startLine":91,"endLine":46,"endCharacter":24,"kind":"imports","collapsedText":"xz6QX9JzZA2269P8AXYA9GuOyzsi5YUsXSbDX8BTtit6wDYQE6b"},{"startLine":31,"endLine":97},{"startLine":25,"startCharacter":12,"endLine":84,"kind":"imports","collapsedText":"CWMMHutccgPKoDt5yygm7JwgEOzsyhEqs5gjuDUwh0LdOQoISBlRBM0W1NOunBAklSDzb9bRrZsNKMuRrwp"},{"startLine":84,"endLine":66,"endCharacter":71},{"startLine":97,"startCharacter":84,"endLine":42,"endCharacter":73,"kind":"comment","collapsedText":"LDsCKI1ObRAlNT4Ke6CKFP1n7iqz3NJKhtBbKN"},{"startLine":42,"endLine":76,"kind":"region","collapsedText":"IzURJWN6mKd0fzjH6Vj5PHCKfJSs0YxphZYRomLOVXt7HXf6aJKytUfj04YcahdGk4xVBJPupOG5YgeRQZkgQ1p1YSmdeZs8"},{"startLine":37,"endLine":47,"endCharacter":70,"kind":"region","collapsedText":"reJM2Nf9vZGsG7qzttos"},{"startLine":31,"endLine":48,"kind":"imports","collapsedText":"O0LbXK5Wo5BA4bEdR3uzfPRJIzMOz5CPdvV49vCHh1tu4eMSDGjKgrp6gvGJUGWI6tbori7odgPp6esRUBO"},{"startLine":50,"endLine":98,"endCharacter":71,"kind":"region","collapsedText":"9OondSVtJ8ERDsT7uL8JZiMtL4tzpm"},{"startLine":68,"endLine":43,"endCharacter":87,"collapsedText":"tS9uoDYZJ0t3JtbERs"},{"startLine":56,"startCharacter":80,"endLine":19,"kind":"region"},{"startLine":47,"startCharacter":45,"endLine":99,"endCharacter":17,"kind":"imports","collapsedText":"AufwYkZ64Ie"},{"startLine":24,"endLine":4,"endCharacter":55,"kind":"comment"},{"startLine":12,"endLine":27,"kind":"comment"},{"startLine":53,"startCharacter":87,"endLine":81,"kind":"imports"},{"startLine":46,"startCharacter":96,"endLine":76,"endCharacter":87,"kind":"region","collapsedText":""},{"startLine":54,"endLine":77,"kind":"region"},{"startLine":88,"endLine":74,"kind":"imports","collapsedText":"9PdUgQFuyKhTicpOH70g9v7b7Phta522x1zm8KT3vLIAIcN6HUy4c9KK86iISqX5fYm9TbC5"},{"startLine":43,"endLine":43,"endCharacter":38,"kind":"comment"},{"startLine":88,"startCharacter":49,"endLine":95,"endCharacter":74,"kind":"region"},{"startLine":98,"startCharacter":61,"endLine":62,"kind":"comment"},{"startLine":76,"endLine":32,"endCharacter":31,"kind":"comment"},{"startLine":13,"endLine":57,"kind":"region","collapsedText":"hYFLGwgBy6W3vYytowRg6aJt"},{"startLine":11,"endLine":23,"kind":"imports"},{"startLine":88,"startCharacter":51,"endLine":25,"collapsedText":"3oW9SQMATaxZsZ03CUkMJt9QpnvglX6wuo5bdAbctrL2jQn2uQzLZfm60hrqNlrF8Fuxk7Rc1vRlIOEjMnCxYXuetYuAg1wSOm"},{"startLine":84,"startCharacter":74,"endLine":59,"collapsedText":"7TOGLMFRxbc7ple4qI5hRznbv"},{"startLine":66,"endLine":6,"endCharacter":73,"kind":"region","collapsedText":"7CvR57gOGDitUmrvxV7oEWxe3EXMiQ4ttn"},{"startLine":21,"startCharacter":40,"endLine":8,"endCharacter":51},{"startLine":79,"startCharacter":4,"endLine":96,"endCharacter":100,"kind":"imports"},{"startLine":55,"endLine":38,"endCharacter":40,"collapsedText":"Jc5zZODpFR41q1KpzyUhr1Lc10OxYM2RI1GYl7rbNny5M6JTmekb4BOgwTEJhd8UDI9SjTLi83rR0iE2X5XUPZZVLRQ6Yf"},{"startLine":72,"endLine":48},{"startLine":51,"startCharacter":35,"endLine":96,"kind":"comment","collapsedText":"gNog"},{"startLine":54,"endLine":69},{"startLine":86,"startCharacter":88,"endLine":75,"endCharacter":70,"collapsedText":"0gC4DJdbeZiAVboaPN"},{"startLine":14,"startCharacter":29,"endLine":87,"endCharacter":14,"kind":"comment"},{"startLine":68,"startCharacter":81,"endLine":8,"kind":"comment","collapsedText":"byDsMv0yQeA1BMbl8UZFpG3otsPVabxswPKG0bI7CHqh41J8LCE9dU4pIrNyHhnc4ZSn0FHW5l6KhgI5j6DCWshQ3mN"},{"startLine":56,"endLine":3,"endCharacter":2,"kind":"region","collapsedText":"HnZGUD7fFzWyc0LqbJzRsSLsBR02TORkwY36gYi"},{"startLine":25,"startCharacter":14,"endLine":96,"endCharacter":82,"collapsedText":"IxabG1EvB4bEjWVVjbUfyHeNJiLr0XlFqFSSMvnQisyYvnhDaJw"},{"startLine":44,"startCharacter":17,"endLine":66,"collapsedText":"ggPByk2AnXrBIEkkGqUYnQxTkDuwfQcIk4i988MHFSA72TN19qUM0lbSKNdSpw2Dm"},{"startLine":57,"startCharacter":96,"endLine":71,"kind":"region","collapsedText":"T5WQ"},{"startLine":48,"startCharacter":67,"endLine":74},{"startLine":28,"endLine":58,"endCharacter":34,"collapsedText":"Gu6qZjKXPNTVsVA0sZ"},{"startLine":34,"startCharacter":29,"endLine":36,"endCharacter":24,"kind":"imports"},{"startLine":33,"endLine":41,"kind":"region"},{"startLine":7,"endLine":64,"endCharacter":33,"kind":"comment"},{"startLine":31,"startCharacter":13,"endLine":94,"collapsedText":"YJ7RbQPcT26Puv1zHeljF91q01UwHJal7eYP0peIUsVQIX4qjqIZAIcTcIT4SzkQQmzv"},{"startLine":82,"startCharacter":2,"endLine":46,"endCharacter":34,"kind":"region"},{"startLine":21,"endLine":80,"endCharacter":35,"collapsedText":"mxoPWIKx8m09q0bGXz2E2wGEEF95OtG1bfvCXalqhCD81D90xp4RQIpO4pxvPKtjZtSqh5W5ertRPfupB36HK"},{"startLine":77,"endLine":100,"endCharacter":29},{"startLine":22,"startCharacter":83,"endLine":98,"kind":"comment"},{"startLine":30,"startCharacter":65,"endLine":37,"kind":"imports"},{"startLine":12,"endLine":4},{"startLine":20,"startCharacter":24,"endLine":47,"endCharacter":81,"kind":"region"},{"startLine":51,"endLine":94,"endCharacter":32,"collapsedText":"ZIbeC5KumGsn42J8VjNlO8pQd0U"},{"startLine":46,"startCharacter":87,"endLine":93,"kind":"region"},{"startLine":38,"endLine":92,"endCharacter":31,"kind":"imports"}] +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/response__textDocument_references b/modules/tests/src/test/resources/snapshots/tests/response__textDocument_references new file mode 100644 index 000000000..96c24ca4f --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/response__textDocument_references @@ -0,0 +1,15 @@ +Opt.empty +null +--------------------- +Vector(Location(file2,Range(Position(62,75),Position(73,7))), Location(file1,Range(Position(79,45),Position(55,10))), Location(file2,Range(Position(18,33),Position(95,81))), Location(file1,Range(Position(42,15),Position(55,78))), Location(file1,Range(Position(28,50),Position(36,27))), Location(file1,Range(Position(18,86),Position(1,43))), Location(file1,Range(Position(67,1),Position(98,46))), Location(file1,Range(Position(36,34),Position(14,56))), Location(file1,Range(Position(58,10),Position(68,97))), Location(file2,Range(Position(37,79),Position(89,18))), Location(file2,Range(Position(67,22),Position(99,62))), Location(file1,Range(Position(26,55),Position(14,44))), Location(file1,Range(Position(36,89),Position(26,55))), Location(file1,Range(Position(50,10),Position(88,76))), Location(file1,Range(Position(66,68),Position(28,32))), Location(file1,Range(Position(63,72),Position(53,83))), Location(file2,Range(Position(4,57),Position(38,90))), Location(file2,Range(Position(90,34),Position(54,22))), Location(file2,Range(Position(88,74),Position(83,73))), Location(file2,Range(Position(63,75),Position(53,3))), Location(file1,Range(Position(3,32),Position(14,53))), Location(file1,Range(Position(96,2),Position(93,3))), Location(file1,Range(Position(50,49),Position(37,10))), Location(file1,Range(Position(27,17),Position(34,65))), Location(file1,Range(Position(5,7),Position(70,52))), Location(file1,Range(Position(94,18),Position(50,27))), Location(file1,Range(Position(53,17),Position(50,95))), Location(file1,Range(Position(94,56),Position(25,97))), Location(file1,Range(Position(11,12),Position(88,47))), Location(file2,Range(Position(71,40),Position(49,41))), Location(file2,Range(Position(24,9),Position(76,9))), Location(file1,Range(Position(13,12),Position(5,23))), Location(file2,Range(Position(44,64),Position(1,34))), Location(file2,Range(Position(21,94),Position(82,12))), Location(file1,Range(Position(70,47),Position(69,18))), Location(file2,Range(Position(74,92),Position(45,43))), Location(file1,Range(Position(94,25),Position(52,22))), Location(file2,Range(Position(50,100),Position(96,62))), Location(file2,Range(Position(20,21),Position(88,52))), Location(file2,Range(Position(92,70),Position(57,82))), Location(file2,Range(Position(90,93),Position(77,75))), Location(file2,Range(Position(25,8),Position(76,17))), Location(file1,Range(Position(59,88),Position(52,87))), Location(file1,Range(Position(89,76),Position(82,53))), Location(file2,Range(Position(44,81),Position(72,91))), Location(file1,Range(Position(13,78),Position(71,42))), Location(file1,Range(Position(2,95),Position(6,55))), Location(file1,Range(Position(16,66),Position(64,4))), Location(file2,Range(Position(7,77),Position(22,20))), Location(file2,Range(Position(77,13),Position(47,47))), Location(file1,Range(Position(36,97),Position(96,62))), Location(file2,Range(Position(91,67),Position(96,75))), Location(file1,Range(Position(43,51),Position(90,32))), Location(file1,Range(Position(13,63),Position(56,99))), Location(file1,Range(Position(13,9),Position(36,80))), Location(file2,Range(Position(98,38),Position(85,89))), Location(file2,Range(Position(57,66),Position(18,41))), Location(file1,Range(Position(10,22),Position(44,42))), Location(file2,Range(Position(30,91),Position(5,1))), Location(file1,Range(Position(13,28),Position(89,83))), Location(file2,Range(Position(68,19),Position(3,11))), Location(file1,Range(Position(45,75),Position(35,96))), Location(file2,Range(Position(40,4),Position(14,38))), Location(file2,Range(Position(88,18),Position(14,69))), Location(file1,Range(Position(77,41),Position(55,34))), Location(file1,Range(Position(24,10),Position(71,65))), Location(file2,Range(Position(36,69),Position(51,2))), Location(file1,Range(Position(80,58),Position(24,24))), Location(file1,Range(Position(4,82),Position(85,10))), Location(file1,Range(Position(65,38),Position(63,86))), Location(file2,Range(Position(81,78),Position(59,23))), Location(file1,Range(Position(74,84),Position(34,95))), Location(file1,Range(Position(38,10),Position(49,96))), Location(file1,Range(Position(92,29),Position(6,22))), Location(file1,Range(Position(54,65),Position(7,97))), Location(file2,Range(Position(58,89),Position(21,10))), Location(file1,Range(Position(43,78),Position(59,5))), Location(file2,Range(Position(11,60),Position(96,84))), Location(file1,Range(Position(82,18),Position(77,52))), Location(file1,Range(Position(33,40),Position(93,55))), Location(file1,Range(Position(49,98),Position(74,100))), Location(file1,Range(Position(56,97),Position(92,87))), Location(file2,Range(Position(66,58),Position(23,57))), Location(file1,Range(Position(80,48),Position(40,26))), Location(file2,Range(Position(96,37),Position(2,52))), Location(file2,Range(Position(96,87),Position(37,18))), Location(file1,Range(Position(9,81),Position(58,72))), Location(file1,Range(Position(22,73),Position(88,7))), Location(file2,Range(Position(24,33),Position(15,91))), Location(file2,Range(Position(44,95),Position(90,67))), Location(file2,Range(Position(50,2),Position(35,74))), Location(file1,Range(Position(72,12),Position(64,99))), Location(file2,Range(Position(2,93),Position(57,32))), Location(file1,Range(Position(62,73),Position(98,66))), Location(file1,Range(Position(80,83),Position(33,1))), Location(file1,Range(Position(35,77),Position(94,94))), Location(file1,Range(Position(83,22),Position(84,16))), Location(file1,Range(Position(63,70),Position(79,55)))) +[{"uri":"file2","range":{"start":{"line":62,"character":75},"end":{"line":73,"character":7}}},{"uri":"file1","range":{"start":{"line":79,"character":45},"end":{"line":55,"character":10}}},{"uri":"file2","range":{"start":{"line":18,"character":33},"end":{"line":95,"character":81}}},{"uri":"file1","range":{"start":{"line":42,"character":15},"end":{"line":55,"character":78}}},{"uri":"file1","range":{"start":{"line":28,"character":50},"end":{"line":36,"character":27}}},{"uri":"file1","range":{"start":{"line":18,"character":86},"end":{"line":1,"character":43}}},{"uri":"file1","range":{"start":{"line":67,"character":1},"end":{"line":98,"character":46}}},{"uri":"file1","range":{"start":{"line":36,"character":34},"end":{"line":14,"character":56}}},{"uri":"file1","range":{"start":{"line":58,"character":10},"end":{"line":68,"character":97}}},{"uri":"file2","range":{"start":{"line":37,"character":79},"end":{"line":89,"character":18}}},{"uri":"file2","range":{"start":{"line":67,"character":22},"end":{"line":99,"character":62}}},{"uri":"file1","range":{"start":{"line":26,"character":55},"end":{"line":14,"character":44}}},{"uri":"file1","range":{"start":{"line":36,"character":89},"end":{"line":26,"character":55}}},{"uri":"file1","range":{"start":{"line":50,"character":10},"end":{"line":88,"character":76}}},{"uri":"file1","range":{"start":{"line":66,"character":68},"end":{"line":28,"character":32}}},{"uri":"file1","range":{"start":{"line":63,"character":72},"end":{"line":53,"character":83}}},{"uri":"file2","range":{"start":{"line":4,"character":57},"end":{"line":38,"character":90}}},{"uri":"file2","range":{"start":{"line":90,"character":34},"end":{"line":54,"character":22}}},{"uri":"file2","range":{"start":{"line":88,"character":74},"end":{"line":83,"character":73}}},{"uri":"file2","range":{"start":{"line":63,"character":75},"end":{"line":53,"character":3}}},{"uri":"file1","range":{"start":{"line":3,"character":32},"end":{"line":14,"character":53}}},{"uri":"file1","range":{"start":{"line":96,"character":2},"end":{"line":93,"character":3}}},{"uri":"file1","range":{"start":{"line":50,"character":49},"end":{"line":37,"character":10}}},{"uri":"file1","range":{"start":{"line":27,"character":17},"end":{"line":34,"character":65}}},{"uri":"file1","range":{"start":{"line":5,"character":7},"end":{"line":70,"character":52}}},{"uri":"file1","range":{"start":{"line":94,"character":18},"end":{"line":50,"character":27}}},{"uri":"file1","range":{"start":{"line":53,"character":17},"end":{"line":50,"character":95}}},{"uri":"file1","range":{"start":{"line":94,"character":56},"end":{"line":25,"character":97}}},{"uri":"file1","range":{"start":{"line":11,"character":12},"end":{"line":88,"character":47}}},{"uri":"file2","range":{"start":{"line":71,"character":40},"end":{"line":49,"character":41}}},{"uri":"file2","range":{"start":{"line":24,"character":9},"end":{"line":76,"character":9}}},{"uri":"file1","range":{"start":{"line":13,"character":12},"end":{"line":5,"character":23}}},{"uri":"file2","range":{"start":{"line":44,"character":64},"end":{"line":1,"character":34}}},{"uri":"file2","range":{"start":{"line":21,"character":94},"end":{"line":82,"character":12}}},{"uri":"file1","range":{"start":{"line":70,"character":47},"end":{"line":69,"character":18}}},{"uri":"file2","range":{"start":{"line":74,"character":92},"end":{"line":45,"character":43}}},{"uri":"file1","range":{"start":{"line":94,"character":25},"end":{"line":52,"character":22}}},{"uri":"file2","range":{"start":{"line":50,"character":100},"end":{"line":96,"character":62}}},{"uri":"file2","range":{"start":{"line":20,"character":21},"end":{"line":88,"character":52}}},{"uri":"file2","range":{"start":{"line":92,"character":70},"end":{"line":57,"character":82}}},{"uri":"file2","range":{"start":{"line":90,"character":93},"end":{"line":77,"character":75}}},{"uri":"file2","range":{"start":{"line":25,"character":8},"end":{"line":76,"character":17}}},{"uri":"file1","range":{"start":{"line":59,"character":88},"end":{"line":52,"character":87}}},{"uri":"file1","range":{"start":{"line":89,"character":76},"end":{"line":82,"character":53}}},{"uri":"file2","range":{"start":{"line":44,"character":81},"end":{"line":72,"character":91}}},{"uri":"file1","range":{"start":{"line":13,"character":78},"end":{"line":71,"character":42}}},{"uri":"file1","range":{"start":{"line":2,"character":95},"end":{"line":6,"character":55}}},{"uri":"file1","range":{"start":{"line":16,"character":66},"end":{"line":64,"character":4}}},{"uri":"file2","range":{"start":{"line":7,"character":77},"end":{"line":22,"character":20}}},{"uri":"file2","range":{"start":{"line":77,"character":13},"end":{"line":47,"character":47}}},{"uri":"file1","range":{"start":{"line":36,"character":97},"end":{"line":96,"character":62}}},{"uri":"file2","range":{"start":{"line":91,"character":67},"end":{"line":96,"character":75}}},{"uri":"file1","range":{"start":{"line":43,"character":51},"end":{"line":90,"character":32}}},{"uri":"file1","range":{"start":{"line":13,"character":63},"end":{"line":56,"character":99}}},{"uri":"file1","range":{"start":{"line":13,"character":9},"end":{"line":36,"character":80}}},{"uri":"file2","range":{"start":{"line":98,"character":38},"end":{"line":85,"character":89}}},{"uri":"file2","range":{"start":{"line":57,"character":66},"end":{"line":18,"character":41}}},{"uri":"file1","range":{"start":{"line":10,"character":22},"end":{"line":44,"character":42}}},{"uri":"file2","range":{"start":{"line":30,"character":91},"end":{"line":5,"character":1}}},{"uri":"file1","range":{"start":{"line":13,"character":28},"end":{"line":89,"character":83}}},{"uri":"file2","range":{"start":{"line":68,"character":19},"end":{"line":3,"character":11}}},{"uri":"file1","range":{"start":{"line":45,"character":75},"end":{"line":35,"character":96}}},{"uri":"file2","range":{"start":{"line":40,"character":4},"end":{"line":14,"character":38}}},{"uri":"file2","range":{"start":{"line":88,"character":18},"end":{"line":14,"character":69}}},{"uri":"file1","range":{"start":{"line":77,"character":41},"end":{"line":55,"character":34}}},{"uri":"file1","range":{"start":{"line":24,"character":10},"end":{"line":71,"character":65}}},{"uri":"file2","range":{"start":{"line":36,"character":69},"end":{"line":51,"character":2}}},{"uri":"file1","range":{"start":{"line":80,"character":58},"end":{"line":24,"character":24}}},{"uri":"file1","range":{"start":{"line":4,"character":82},"end":{"line":85,"character":10}}},{"uri":"file1","range":{"start":{"line":65,"character":38},"end":{"line":63,"character":86}}},{"uri":"file2","range":{"start":{"line":81,"character":78},"end":{"line":59,"character":23}}},{"uri":"file1","range":{"start":{"line":74,"character":84},"end":{"line":34,"character":95}}},{"uri":"file1","range":{"start":{"line":38,"character":10},"end":{"line":49,"character":96}}},{"uri":"file1","range":{"start":{"line":92,"character":29},"end":{"line":6,"character":22}}},{"uri":"file1","range":{"start":{"line":54,"character":65},"end":{"line":7,"character":97}}},{"uri":"file2","range":{"start":{"line":58,"character":89},"end":{"line":21,"character":10}}},{"uri":"file1","range":{"start":{"line":43,"character":78},"end":{"line":59,"character":5}}},{"uri":"file2","range":{"start":{"line":11,"character":60},"end":{"line":96,"character":84}}},{"uri":"file1","range":{"start":{"line":82,"character":18},"end":{"line":77,"character":52}}},{"uri":"file1","range":{"start":{"line":33,"character":40},"end":{"line":93,"character":55}}},{"uri":"file1","range":{"start":{"line":49,"character":98},"end":{"line":74,"character":100}}},{"uri":"file1","range":{"start":{"line":56,"character":97},"end":{"line":92,"character":87}}},{"uri":"file2","range":{"start":{"line":66,"character":58},"end":{"line":23,"character":57}}},{"uri":"file1","range":{"start":{"line":80,"character":48},"end":{"line":40,"character":26}}},{"uri":"file2","range":{"start":{"line":96,"character":37},"end":{"line":2,"character":52}}},{"uri":"file2","range":{"start":{"line":96,"character":87},"end":{"line":37,"character":18}}},{"uri":"file1","range":{"start":{"line":9,"character":81},"end":{"line":58,"character":72}}},{"uri":"file1","range":{"start":{"line":22,"character":73},"end":{"line":88,"character":7}}},{"uri":"file2","range":{"start":{"line":24,"character":33},"end":{"line":15,"character":91}}},{"uri":"file2","range":{"start":{"line":44,"character":95},"end":{"line":90,"character":67}}},{"uri":"file2","range":{"start":{"line":50,"character":2},"end":{"line":35,"character":74}}},{"uri":"file1","range":{"start":{"line":72,"character":12},"end":{"line":64,"character":99}}},{"uri":"file2","range":{"start":{"line":2,"character":93},"end":{"line":57,"character":32}}},{"uri":"file1","range":{"start":{"line":62,"character":73},"end":{"line":98,"character":66}}},{"uri":"file1","range":{"start":{"line":80,"character":83},"end":{"line":33,"character":1}}},{"uri":"file1","range":{"start":{"line":35,"character":77},"end":{"line":94,"character":94}}},{"uri":"file1","range":{"start":{"line":83,"character":22},"end":{"line":84,"character":16}}},{"uri":"file1","range":{"start":{"line":63,"character":70},"end":{"line":79,"character":55}}}] +--------------------- +Vector(Location(file1,Range(Position(66,39),Position(22,6))), Location(file2,Range(Position(89,61),Position(3,38))), Location(file1,Range(Position(54,44),Position(14,45))), Location(file1,Range(Position(3,81),Position(81,88))), Location(file2,Range(Position(47,38),Position(3,26))), Location(file2,Range(Position(15,7),Position(91,9))), Location(file2,Range(Position(58,40),Position(56,30))), Location(file1,Range(Position(14,50),Position(85,49))), Location(file2,Range(Position(24,21),Position(84,19))), Location(file1,Range(Position(44,6),Position(32,36))), Location(file1,Range(Position(33,86),Position(81,24))), Location(file1,Range(Position(59,50),Position(64,8))), Location(file2,Range(Position(64,77),Position(54,15))), Location(file2,Range(Position(69,56),Position(43,39))), Location(file2,Range(Position(18,18),Position(47,29))), Location(file1,Range(Position(94,57),Position(100,15))), Location(file2,Range(Position(57,87),Position(3,73))), Location(file1,Range(Position(32,17),Position(9,41))), Location(file2,Range(Position(48,1),Position(77,36))), Location(file1,Range(Position(53,73),Position(56,82))), Location(file1,Range(Position(94,11),Position(30,75))), Location(file1,Range(Position(61,22),Position(26,57))), Location(file1,Range(Position(21,21),Position(88,42))), Location(file2,Range(Position(4,71),Position(24,5))), Location(file1,Range(Position(33,12),Position(93,85))), Location(file2,Range(Position(27,35),Position(26,71))), Location(file2,Range(Position(49,1),Position(72,40))), Location(file2,Range(Position(34,30),Position(68,4))), Location(file1,Range(Position(89,39),Position(79,77))), Location(file2,Range(Position(36,76),Position(84,67))), Location(file2,Range(Position(92,73),Position(67,56))), Location(file1,Range(Position(23,68),Position(20,26))), Location(file2,Range(Position(78,90),Position(25,52))), Location(file2,Range(Position(68,80),Position(68,22))), Location(file2,Range(Position(67,30),Position(66,58))), Location(file2,Range(Position(5,99),Position(43,21))), Location(file2,Range(Position(72,19),Position(36,60))), Location(file2,Range(Position(30,52),Position(61,36))), Location(file1,Range(Position(45,23),Position(74,79))), Location(file2,Range(Position(97,18),Position(83,54))), Location(file2,Range(Position(9,99),Position(69,15))), Location(file1,Range(Position(38,3),Position(91,76))), Location(file2,Range(Position(34,85),Position(95,36))), Location(file2,Range(Position(98,47),Position(67,24))), Location(file1,Range(Position(35,43),Position(20,1))), Location(file1,Range(Position(87,25),Position(7,1))), Location(file1,Range(Position(59,16),Position(41,64))), Location(file1,Range(Position(49,10),Position(6,84))), Location(file1,Range(Position(26,73),Position(33,4))), Location(file1,Range(Position(40,24),Position(68,80))), Location(file1,Range(Position(63,26),Position(78,3))), Location(file1,Range(Position(34,41),Position(13,88))), Location(file2,Range(Position(82,95),Position(69,62))), Location(file2,Range(Position(39,37),Position(5,16))), Location(file2,Range(Position(75,28),Position(8,63))), Location(file1,Range(Position(93,10),Position(93,80))), Location(file1,Range(Position(11,13),Position(93,24))), Location(file1,Range(Position(59,52),Position(40,36))), Location(file2,Range(Position(9,85),Position(93,40))), Location(file1,Range(Position(54,90),Position(52,17))), Location(file1,Range(Position(82,23),Position(83,29))), Location(file2,Range(Position(86,83),Position(59,62))), Location(file2,Range(Position(22,81),Position(40,81))), Location(file1,Range(Position(47,71),Position(11,72))), Location(file2,Range(Position(25,92),Position(44,4))), Location(file1,Range(Position(11,94),Position(50,90))), Location(file1,Range(Position(65,31),Position(50,76))), Location(file2,Range(Position(99,22),Position(48,40))), Location(file2,Range(Position(74,55),Position(19,21))), Location(file1,Range(Position(57,27),Position(55,85))), Location(file1,Range(Position(20,95),Position(78,11))), Location(file2,Range(Position(48,64),Position(51,64))), Location(file1,Range(Position(82,82),Position(73,53))), Location(file2,Range(Position(58,74),Position(73,5))), Location(file1,Range(Position(28,4),Position(72,93))), Location(file2,Range(Position(6,31),Position(81,2))), Location(file2,Range(Position(18,82),Position(1,22))), Location(file1,Range(Position(99,64),Position(12,66))), Location(file1,Range(Position(59,60),Position(79,50))), Location(file2,Range(Position(80,23),Position(74,99))), Location(file1,Range(Position(77,79),Position(75,69))), Location(file1,Range(Position(25,5),Position(7,47))), Location(file2,Range(Position(55,8),Position(89,54)))) +[{"uri":"file1","range":{"start":{"line":66,"character":39},"end":{"line":22,"character":6}}},{"uri":"file2","range":{"start":{"line":89,"character":61},"end":{"line":3,"character":38}}},{"uri":"file1","range":{"start":{"line":54,"character":44},"end":{"line":14,"character":45}}},{"uri":"file1","range":{"start":{"line":3,"character":81},"end":{"line":81,"character":88}}},{"uri":"file2","range":{"start":{"line":47,"character":38},"end":{"line":3,"character":26}}},{"uri":"file2","range":{"start":{"line":15,"character":7},"end":{"line":91,"character":9}}},{"uri":"file2","range":{"start":{"line":58,"character":40},"end":{"line":56,"character":30}}},{"uri":"file1","range":{"start":{"line":14,"character":50},"end":{"line":85,"character":49}}},{"uri":"file2","range":{"start":{"line":24,"character":21},"end":{"line":84,"character":19}}},{"uri":"file1","range":{"start":{"line":44,"character":6},"end":{"line":32,"character":36}}},{"uri":"file1","range":{"start":{"line":33,"character":86},"end":{"line":81,"character":24}}},{"uri":"file1","range":{"start":{"line":59,"character":50},"end":{"line":64,"character":8}}},{"uri":"file2","range":{"start":{"line":64,"character":77},"end":{"line":54,"character":15}}},{"uri":"file2","range":{"start":{"line":69,"character":56},"end":{"line":43,"character":39}}},{"uri":"file2","range":{"start":{"line":18,"character":18},"end":{"line":47,"character":29}}},{"uri":"file1","range":{"start":{"line":94,"character":57},"end":{"line":100,"character":15}}},{"uri":"file2","range":{"start":{"line":57,"character":87},"end":{"line":3,"character":73}}},{"uri":"file1","range":{"start":{"line":32,"character":17},"end":{"line":9,"character":41}}},{"uri":"file2","range":{"start":{"line":48,"character":1},"end":{"line":77,"character":36}}},{"uri":"file1","range":{"start":{"line":53,"character":73},"end":{"line":56,"character":82}}},{"uri":"file1","range":{"start":{"line":94,"character":11},"end":{"line":30,"character":75}}},{"uri":"file1","range":{"start":{"line":61,"character":22},"end":{"line":26,"character":57}}},{"uri":"file1","range":{"start":{"line":21,"character":21},"end":{"line":88,"character":42}}},{"uri":"file2","range":{"start":{"line":4,"character":71},"end":{"line":24,"character":5}}},{"uri":"file1","range":{"start":{"line":33,"character":12},"end":{"line":93,"character":85}}},{"uri":"file2","range":{"start":{"line":27,"character":35},"end":{"line":26,"character":71}}},{"uri":"file2","range":{"start":{"line":49,"character":1},"end":{"line":72,"character":40}}},{"uri":"file2","range":{"start":{"line":34,"character":30},"end":{"line":68,"character":4}}},{"uri":"file1","range":{"start":{"line":89,"character":39},"end":{"line":79,"character":77}}},{"uri":"file2","range":{"start":{"line":36,"character":76},"end":{"line":84,"character":67}}},{"uri":"file2","range":{"start":{"line":92,"character":73},"end":{"line":67,"character":56}}},{"uri":"file1","range":{"start":{"line":23,"character":68},"end":{"line":20,"character":26}}},{"uri":"file2","range":{"start":{"line":78,"character":90},"end":{"line":25,"character":52}}},{"uri":"file2","range":{"start":{"line":68,"character":80},"end":{"line":68,"character":22}}},{"uri":"file2","range":{"start":{"line":67,"character":30},"end":{"line":66,"character":58}}},{"uri":"file2","range":{"start":{"line":5,"character":99},"end":{"line":43,"character":21}}},{"uri":"file2","range":{"start":{"line":72,"character":19},"end":{"line":36,"character":60}}},{"uri":"file2","range":{"start":{"line":30,"character":52},"end":{"line":61,"character":36}}},{"uri":"file1","range":{"start":{"line":45,"character":23},"end":{"line":74,"character":79}}},{"uri":"file2","range":{"start":{"line":97,"character":18},"end":{"line":83,"character":54}}},{"uri":"file2","range":{"start":{"line":9,"character":99},"end":{"line":69,"character":15}}},{"uri":"file1","range":{"start":{"line":38,"character":3},"end":{"line":91,"character":76}}},{"uri":"file2","range":{"start":{"line":34,"character":85},"end":{"line":95,"character":36}}},{"uri":"file2","range":{"start":{"line":98,"character":47},"end":{"line":67,"character":24}}},{"uri":"file1","range":{"start":{"line":35,"character":43},"end":{"line":20,"character":1}}},{"uri":"file1","range":{"start":{"line":87,"character":25},"end":{"line":7,"character":1}}},{"uri":"file1","range":{"start":{"line":59,"character":16},"end":{"line":41,"character":64}}},{"uri":"file1","range":{"start":{"line":49,"character":10},"end":{"line":6,"character":84}}},{"uri":"file1","range":{"start":{"line":26,"character":73},"end":{"line":33,"character":4}}},{"uri":"file1","range":{"start":{"line":40,"character":24},"end":{"line":68,"character":80}}},{"uri":"file1","range":{"start":{"line":63,"character":26},"end":{"line":78,"character":3}}},{"uri":"file1","range":{"start":{"line":34,"character":41},"end":{"line":13,"character":88}}},{"uri":"file2","range":{"start":{"line":82,"character":95},"end":{"line":69,"character":62}}},{"uri":"file2","range":{"start":{"line":39,"character":37},"end":{"line":5,"character":16}}},{"uri":"file2","range":{"start":{"line":75,"character":28},"end":{"line":8,"character":63}}},{"uri":"file1","range":{"start":{"line":93,"character":10},"end":{"line":93,"character":80}}},{"uri":"file1","range":{"start":{"line":11,"character":13},"end":{"line":93,"character":24}}},{"uri":"file1","range":{"start":{"line":59,"character":52},"end":{"line":40,"character":36}}},{"uri":"file2","range":{"start":{"line":9,"character":85},"end":{"line":93,"character":40}}},{"uri":"file1","range":{"start":{"line":54,"character":90},"end":{"line":52,"character":17}}},{"uri":"file1","range":{"start":{"line":82,"character":23},"end":{"line":83,"character":29}}},{"uri":"file2","range":{"start":{"line":86,"character":83},"end":{"line":59,"character":62}}},{"uri":"file2","range":{"start":{"line":22,"character":81},"end":{"line":40,"character":81}}},{"uri":"file1","range":{"start":{"line":47,"character":71},"end":{"line":11,"character":72}}},{"uri":"file2","range":{"start":{"line":25,"character":92},"end":{"line":44,"character":4}}},{"uri":"file1","range":{"start":{"line":11,"character":94},"end":{"line":50,"character":90}}},{"uri":"file1","range":{"start":{"line":65,"character":31},"end":{"line":50,"character":76}}},{"uri":"file2","range":{"start":{"line":99,"character":22},"end":{"line":48,"character":40}}},{"uri":"file2","range":{"start":{"line":74,"character":55},"end":{"line":19,"character":21}}},{"uri":"file1","range":{"start":{"line":57,"character":27},"end":{"line":55,"character":85}}},{"uri":"file1","range":{"start":{"line":20,"character":95},"end":{"line":78,"character":11}}},{"uri":"file2","range":{"start":{"line":48,"character":64},"end":{"line":51,"character":64}}},{"uri":"file1","range":{"start":{"line":82,"character":82},"end":{"line":73,"character":53}}},{"uri":"file2","range":{"start":{"line":58,"character":74},"end":{"line":73,"character":5}}},{"uri":"file1","range":{"start":{"line":28,"character":4},"end":{"line":72,"character":93}}},{"uri":"file2","range":{"start":{"line":6,"character":31},"end":{"line":81,"character":2}}},{"uri":"file2","range":{"start":{"line":18,"character":82},"end":{"line":1,"character":22}}},{"uri":"file1","range":{"start":{"line":99,"character":64},"end":{"line":12,"character":66}}},{"uri":"file1","range":{"start":{"line":59,"character":60},"end":{"line":79,"character":50}}},{"uri":"file2","range":{"start":{"line":80,"character":23},"end":{"line":74,"character":99}}},{"uri":"file1","range":{"start":{"line":77,"character":79},"end":{"line":75,"character":69}}},{"uri":"file1","range":{"start":{"line":25,"character":5},"end":{"line":7,"character":47}}},{"uri":"file2","range":{"start":{"line":55,"character":8},"end":{"line":89,"character":54}}}] +--------------------- +Opt.empty +null +--------------------- +Vector(Location(file2,Range(Position(59,87),Position(8,73))), Location(file2,Range(Position(5,73),Position(1,59))), Location(file2,Range(Position(56,92),Position(21,4))), Location(file1,Range(Position(74,74),Position(32,9))), Location(file2,Range(Position(88,98),Position(69,3))), Location(file2,Range(Position(67,9),Position(5,87))), Location(file1,Range(Position(64,99),Position(23,83))), Location(file2,Range(Position(73,77),Position(36,68))), Location(file2,Range(Position(40,91),Position(7,68))), Location(file2,Range(Position(16,46),Position(25,76))), Location(file1,Range(Position(96,36),Position(82,41))), Location(file1,Range(Position(22,99),Position(71,32))), Location(file2,Range(Position(42,17),Position(37,60))), Location(file2,Range(Position(88,28),Position(55,96))), Location(file1,Range(Position(1,58),Position(63,75))), Location(file2,Range(Position(94,56),Position(27,66))), Location(file1,Range(Position(89,8),Position(61,10))), Location(file2,Range(Position(53,85),Position(36,74))), Location(file1,Range(Position(25,35),Position(97,63))), Location(file1,Range(Position(94,84),Position(87,91))), Location(file2,Range(Position(15,39),Position(66,22))), Location(file1,Range(Position(94,92),Position(40,69))), Location(file1,Range(Position(40,64),Position(11,1))), Location(file1,Range(Position(50,81),Position(29,31))), Location(file1,Range(Position(34,81),Position(39,30))), Location(file1,Range(Position(43,61),Position(23,5))), Location(file1,Range(Position(17,2),Position(71,100))), Location(file2,Range(Position(9,68),Position(63,19))), Location(file1,Range(Position(90,76),Position(100,14))), Location(file2,Range(Position(17,63),Position(14,54))), Location(file2,Range(Position(63,54),Position(3,35))), Location(file2,Range(Position(50,6),Position(12,10))), Location(file2,Range(Position(43,7),Position(71,47))), Location(file2,Range(Position(69,78),Position(84,4))), Location(file2,Range(Position(45,88),Position(12,60))), Location(file1,Range(Position(84,52),Position(18,92))), Location(file1,Range(Position(22,68),Position(61,69))), Location(file2,Range(Position(31,35),Position(87,45))), Location(file1,Range(Position(25,25),Position(59,39))), Location(file2,Range(Position(58,63),Position(37,99))), Location(file2,Range(Position(31,65),Position(8,50))), Location(file1,Range(Position(30,44),Position(59,34))), Location(file2,Range(Position(54,94),Position(23,13)))) +[{"uri":"file2","range":{"start":{"line":59,"character":87},"end":{"line":8,"character":73}}},{"uri":"file2","range":{"start":{"line":5,"character":73},"end":{"line":1,"character":59}}},{"uri":"file2","range":{"start":{"line":56,"character":92},"end":{"line":21,"character":4}}},{"uri":"file1","range":{"start":{"line":74,"character":74},"end":{"line":32,"character":9}}},{"uri":"file2","range":{"start":{"line":88,"character":98},"end":{"line":69,"character":3}}},{"uri":"file2","range":{"start":{"line":67,"character":9},"end":{"line":5,"character":87}}},{"uri":"file1","range":{"start":{"line":64,"character":99},"end":{"line":23,"character":83}}},{"uri":"file2","range":{"start":{"line":73,"character":77},"end":{"line":36,"character":68}}},{"uri":"file2","range":{"start":{"line":40,"character":91},"end":{"line":7,"character":68}}},{"uri":"file2","range":{"start":{"line":16,"character":46},"end":{"line":25,"character":76}}},{"uri":"file1","range":{"start":{"line":96,"character":36},"end":{"line":82,"character":41}}},{"uri":"file1","range":{"start":{"line":22,"character":99},"end":{"line":71,"character":32}}},{"uri":"file2","range":{"start":{"line":42,"character":17},"end":{"line":37,"character":60}}},{"uri":"file2","range":{"start":{"line":88,"character":28},"end":{"line":55,"character":96}}},{"uri":"file1","range":{"start":{"line":1,"character":58},"end":{"line":63,"character":75}}},{"uri":"file2","range":{"start":{"line":94,"character":56},"end":{"line":27,"character":66}}},{"uri":"file1","range":{"start":{"line":89,"character":8},"end":{"line":61,"character":10}}},{"uri":"file2","range":{"start":{"line":53,"character":85},"end":{"line":36,"character":74}}},{"uri":"file1","range":{"start":{"line":25,"character":35},"end":{"line":97,"character":63}}},{"uri":"file1","range":{"start":{"line":94,"character":84},"end":{"line":87,"character":91}}},{"uri":"file2","range":{"start":{"line":15,"character":39},"end":{"line":66,"character":22}}},{"uri":"file1","range":{"start":{"line":94,"character":92},"end":{"line":40,"character":69}}},{"uri":"file1","range":{"start":{"line":40,"character":64},"end":{"line":11,"character":1}}},{"uri":"file1","range":{"start":{"line":50,"character":81},"end":{"line":29,"character":31}}},{"uri":"file1","range":{"start":{"line":34,"character":81},"end":{"line":39,"character":30}}},{"uri":"file1","range":{"start":{"line":43,"character":61},"end":{"line":23,"character":5}}},{"uri":"file1","range":{"start":{"line":17,"character":2},"end":{"line":71,"character":100}}},{"uri":"file2","range":{"start":{"line":9,"character":68},"end":{"line":63,"character":19}}},{"uri":"file1","range":{"start":{"line":90,"character":76},"end":{"line":100,"character":14}}},{"uri":"file2","range":{"start":{"line":17,"character":63},"end":{"line":14,"character":54}}},{"uri":"file2","range":{"start":{"line":63,"character":54},"end":{"line":3,"character":35}}},{"uri":"file2","range":{"start":{"line":50,"character":6},"end":{"line":12,"character":10}}},{"uri":"file2","range":{"start":{"line":43,"character":7},"end":{"line":71,"character":47}}},{"uri":"file2","range":{"start":{"line":69,"character":78},"end":{"line":84,"character":4}}},{"uri":"file2","range":{"start":{"line":45,"character":88},"end":{"line":12,"character":60}}},{"uri":"file1","range":{"start":{"line":84,"character":52},"end":{"line":18,"character":92}}},{"uri":"file1","range":{"start":{"line":22,"character":68},"end":{"line":61,"character":69}}},{"uri":"file2","range":{"start":{"line":31,"character":35},"end":{"line":87,"character":45}}},{"uri":"file1","range":{"start":{"line":25,"character":25},"end":{"line":59,"character":39}}},{"uri":"file2","range":{"start":{"line":58,"character":63},"end":{"line":37,"character":99}}},{"uri":"file2","range":{"start":{"line":31,"character":65},"end":{"line":8,"character":50}}},{"uri":"file1","range":{"start":{"line":30,"character":44},"end":{"line":59,"character":34}}},{"uri":"file2","range":{"start":{"line":54,"character":94},"end":{"line":23,"character":13}}}] +--------------------- diff --git a/modules/tests/src/test/resources/snapshots/tests/response__workspace_configuration b/modules/tests/src/test/resources/snapshots/tests/response__workspace_configuration new file mode 100644 index 000000000..3ec1c70ab --- /dev/null +++ b/modules/tests/src/test/resources/snapshots/tests/response__workspace_configuration @@ -0,0 +1,15 @@ +Vector("I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol") +["I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol"] +--------------------- +Vector("I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol") +["I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol"] +--------------------- +Vector("I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol") +["I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol"] +--------------------- +Vector("I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol") +["I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol"] +--------------------- +Vector("I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol", "I'm json lol") +["I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol","I'm json lol"] +--------------------- diff --git a/modules/tests/src/test/scala/CodecTest.scala b/modules/tests/src/test/scala/CodecTest.scala index d17b98584..3b41a8d96 100644 --- a/modules/tests/src/test/scala/CodecTest.scala +++ b/modules/tests/src/test/scala/CodecTest.scala @@ -12,86 +12,78 @@ import cats.Monad import jsonrpclib.* import org.scalacheck.* -object CodecTest extends weaver.FunSuite: +object CodecTest extends weaver.FunSuite, WeaverSnapshotsIntegration: + + given Arbitrary[String] = Arbitrary(Gen.alphaNumStr) + + requestSnapshotTest(langoustine.lsp.requests.textDocument.documentLink) + // requestSnapshotTest(langoustine.lsp.requests.textDocument.documentSymbol) + requestSnapshotTest(langoustine.lsp.requests.textDocument.foldingRange) + requestSnapshotTest(langoustine.lsp.requests.workspace.configuration) + requestSnapshotTest(langoustine.lsp.requests.textDocument.references) def requestSnapshotTest[T <: LSPRequest](x: T)(using arbReq: Arbitrary[x.In], arbResp: Arbitrary[x.Out] ) = + def safeToString[T](x: T | Null) = + x match + case Opt.empty => "Opt.empty" + case _ => x.toString() + test(x.requestMethod + " request roundtrip") { - val request = arbReq.arbitrary.sample.get - val response = arbResp.arbitrary.sample.get + val requests = List.fill(5)(arbReq.arbitrary.sample).flatten - val requestRoundtrip = - read[x.In](write(request)) + forEach(requests): request => + val requestRoundtrip = + read[x.In](write[x.In](request)) - val responseRoundtrip = - read[x.Out](write(response)) + expect.same(requestRoundtrip, request) + } + test(x.requestMethod + " response roundtrip") { + + val requests = List.fill(5)(arbReq.arbitrary.sample).flatten - expect.same(requestRoundtrip, request) && - expect.same(responseRoundtrip, response) + forEach(requests): request => + val requestRoundtrip = + read[x.In](write[x.In](request)) + expect.same(requestRoundtrip, request) } - requestSnapshotTest(langoustine.lsp.requests.textDocument.documentLink) + def sampleN[T](n: Int, arb: Arbitrary[T]) = + Gen + .listOfN(5, arb.arbitrary) + .sample + .toList + .flatten + + test(x.requestMethod + " request snapshot") { + val bld = StringBuilder() + + sampleN(5, arbReq) + .foreach: request => + val requestJson = write[x.In](request) + val printed = safeToString(request) + bld.append( + printed + "\n" + requestJson + "\n" + "---------------------" + "\n" + ) + expectSnapshot("request: " + x.requestMethod, bld.result()) + } - test("documentSymbol codec") { - - val out1 = Opt( - Vector( - SymbolInformation( - deprecated = Opt(true), - name = "Howdy1", - kind = SymbolKind.Method, - location = Location( - DocumentUri(""), - Range(Position.documentBeginning, Position.documentBeginning) + test(x.requestMethod + " response snapshot") { + val bld = StringBuilder() + + sampleN(5, arbResp) + .foreach: response => + val requestJson = write[x.Out](response) + val printed = safeToString(response) + bld.append( + printed + "\n" + requestJson + "\n" + "---------------------" + "\n" ) - ) - ) - ) - - val out2 = Opt( - Vector( - DocumentSymbol( - name = "Howdy", - kind = SymbolKind.Class, - range = Range( - Position.documentBeginning, - Position.documentBeginning - ), - selectionRange = - Range(Position.documentBeginning, Position.documentBeginning) - ) - ) - ) - - val unionWriter = textDocument.documentSymbol.outputWriter - val unionReader = textDocument.documentSymbol.outputReader - - import upickle.default.* - - val written1 = write(out1)(using unionWriter) - val written2 = write(out2)(using unionWriter) - - val read1 = read(written1)(using unionReader) - val read2 = read(written2)(using unionReader) - - expect.same(read1, out1) and - expect.same(read2, out2) - } - - test("workspace/configuration codec (and types construction)") { - val req = workspace.configuration - val in = workspace.configuration.WorkspaceConfigurationInput( - items = Vector(ConfigurationItem(Opt("hello"))), - partialResultToken = Opt(ProgressToken("helllooooo")) - ) - - import req.WorkspaceConfigurationInput - - expect.same(read[WorkspaceConfigurationInput](write(in)), in) - - } -end CodecTest + expectSnapshot("response: " + x.requestMethod, bld.result()) + } + end requestSnapshotTest + +end CodecTest diff --git a/modules/tests/src/test/scala/DeriveScalacheckArbitrary.scala b/modules/tests/src/test/scala/DeriveScalacheckArbitrary.scala index 42a91a5cc..f68a38920 100644 --- a/modules/tests/src/test/scala/DeriveScalacheckArbitrary.scala +++ b/modules/tests/src/test/scala/DeriveScalacheckArbitrary.scala @@ -1,20 +1,27 @@ package tests.core -import org.scalacheck.* -import shapeless3.deriving.* - import langoustine.lsp.runtime.* import langoustine.lsp.Bijection import langoustine.lsp.aliases.* +import langoustine.lsp.structures.* + +import org.scalacheck.* +import shapeless3.deriving.* -given [A](using inst: K0.ProductInstances[Arbitrary, A]): Arbitrary[A] = - Arbitrary( +given [A](using inst: => K0.ProductInstances[Arbitrary, A]): Arbitrary[A] = + lazy val x: Gen[A] = Gen.delay( inst.construct([t] => (ma: Arbitrary[t]) => ma.arbitrary.sample.get) ) -given [A](using inst: Arbitrary[A]): Arbitrary[Opt[A]] = Arbitrary( - inst.arbitrary.flatMap: value => - Gen.oneOf(Opt.empty, Opt(value)) + Arbitrary(x) +end given + +given optGen[A](using inst: => Arbitrary[A]): Arbitrary[Opt[A]] = Arbitrary( + Gen + .oneOf(true, false) + .flatMap: + case true => inst.arbitrary.map(Opt.apply) + case false => Gen.const(Opt.empty) ) given Arbitrary[DocumentUri] = Arbitrary( @@ -23,8 +30,6 @@ given Arbitrary[DocumentUri] = Arbitrary( given Arbitrary[uinteger] = Arbitrary(Gen.posNum[Int].map(uinteger.apply)) -// given bla[T](using bi: Bijection[S, String]) = (Gen.oneOf("what")) - given deriveStringEnum[A](using bi: Bijection[A, String]): Arbitrary[A] = Arbitrary(Gen.oneOf(bi.domain)) @@ -34,14 +39,21 @@ given deriveUintegerEnum[A](using bi: Bijection[A, uinteger]): Arbitrary[A] = given deriveIntegerEnum[A](using bi: Bijection[A, Int]): Arbitrary[A] = Arbitrary(Gen.oneOf(bi.domain)) - -given Arbitrary[ProgressToken] = +given Arbitrary[ProgressToken] = Arbitrary: - for - someString <- Arbitrary.arbitrary[String].map(ProgressToken.apply) - someInt <- Arbitrary.arbitrary[Int].map(ProgressToken.apply) + for + someString <- Arbitrary.arbitrary[String].map(ProgressToken.apply) + someInt <- Arbitrary.arbitrary[Int].map(ProgressToken.apply) - progressToken <- Gen.oneOf(someString, someInt) - yield progressToken + progressToken <- Gen.oneOf(someString, someInt) + yield progressToken given Arbitrary[ujson.Value] = Arbitrary(ujson.Str("I'm json lol")) + +given Arbitrary[Vector[SymbolInformation] | Vector[DocumentSymbol]] = + val l1 = + Gen.listOfN(5, Arbitrary.arbitrary[SymbolInformation]).map(_.toVector) + val l2 = Gen.listOfN(5, Arbitrary.arbitrary[DocumentSymbol]).map(_.toVector) + val either: Gen[Vector[SymbolInformation] | Vector[DocumentSymbol]] = + Gen.oneOf(l1, l2) + Arbitrary(either) diff --git a/modules/tests/src/test/scala/SnapshotsIntegration.scala b/modules/tests/src/test/scala/SnapshotsIntegration.scala new file mode 100644 index 000000000..30e8c9509 --- /dev/null +++ b/modules/tests/src/test/scala/SnapshotsIntegration.scala @@ -0,0 +1,24 @@ +package tests.core + +// This is a sample integration for Weaver +trait WeaverSnapshotsIntegration: + self: weaver.FunSuite => + + def expectSnapshot(name: String, contents: String) = + Snapshots.read(name) match + case None => + Snapshots.write(name, contents) + success + + case Some(value) => + if contents != value then + if !Snapshots.forceOverwrite then + Snapshots.recordChanges(name, contents, "") + failure("Snapshots had different contents") + else + Snapshots.write(name, contents) + success + else + Snapshots.clearChanges(name) + success +end WeaverSnapshotsIntegration