From bb284630d5ccf81bd23afdfe3bed85c8dc20449c Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 16:56:45 +0100 Subject: [PATCH 01/12] Update the vendored parser to the latest version. There are a bunch of changes that one needs to look into. --- .../src/expected/BrokenParserCases.res.txt | 5 +- .../tests/src/expected/Completion.res.txt | 3360 +++++- .../expected/CompletionExpressions.res.txt | 46 +- .../CompletionFunctionArguments.res.txt | 5992 ++++++++++- .../tests/src/expected/CompletionJsx.res.txt | 15 +- .../src/expected/CompletionJsxProps.res.txt | 6059 ++++++++++- .../tests/src/expected/Destructuring.res.txt | 6 +- analysis/tests/src/expected/Div.res.txt | 2879 +++++- analysis/tests/src/expected/Jsx2.res.txt | 9141 ++++++++++++++++- analysis/tests/src/expected/JsxV4.res.txt | 23 +- .../tests/src/expected/RecoveryOnProp.res.txt | 2889 +++++- .../tests/src/expected/SignatureHelp.res.txt | 65 +- analysis/tests/src/expected/Xform.res.txt | 16 +- .../res_outcome_printer/reactjs_jsx_ppx_v3.ml | 1233 --- .../reactjs_jsx_ppx_v3.mli | 39 - .../res_outcome_printer/res_ast_conversion.ml | 100 +- .../res_ast_conversion.mli | 6 - .../res_outcome_printer/res_comments_table.ml | 116 +- .../vendor/res_outcome_printer/res_core.ml | 549 +- .../vendor/res_outcome_printer/res_doc.ml | 9 + .../vendor/res_outcome_printer/res_doc.mli | 3 + .../vendor/res_outcome_printer/res_driver.mli | 2 + .../vendor/res_outcome_printer/res_js_ffi.ml | 121 - .../res_outcome_printer.ml | 26 +- .../vendor/res_outcome_printer/res_parens.ml | 33 +- .../vendor/res_outcome_printer/res_parens.mli | 5 +- .../vendor/res_outcome_printer/res_parser.ml | 4 + .../vendor/res_outcome_printer/res_parser.mli | 1 + .../res_parsetree_viewer.ml | 176 +- .../res_parsetree_viewer.mli | 14 +- .../vendor/res_outcome_printer/res_printer.ml | 2059 ++-- .../res_outcome_printer/res_uncurried.ml | 17 + 32 files changed, 31563 insertions(+), 3446 deletions(-) delete mode 100644 analysis/vendor/res_outcome_printer/reactjs_jsx_ppx_v3.ml delete mode 100644 analysis/vendor/res_outcome_printer/reactjs_jsx_ppx_v3.mli delete mode 100644 analysis/vendor/res_outcome_printer/res_js_ffi.ml create mode 100644 analysis/vendor/res_outcome_printer/res_uncurried.ml diff --git a/analysis/tests/src/expected/BrokenParserCases.res.txt b/analysis/tests/src/expected/BrokenParserCases.res.txt index 1c1134ac2..939e776a3 100644 --- a/analysis/tests/src/expected/BrokenParserCases.res.txt +++ b/analysis/tests/src/expected/BrokenParserCases.res.txt @@ -1,7 +1,8 @@ Complete src/BrokenParserCases.res 2:24 posCursor:[2:24] posNoWhite:[2:23] Found expr:[2:11->2:30] -Pexp_apply ...[2:11->2:17] (~isOff2:19->2:24=...[2:27->2:29]) -Completable: CnamedArg(Value[someFn], isOff, [isOff]) +Pexp_apply ...[2:11->2:17] () +Attribute id:res.namedArgLoc:[2:19->2:24] label:isOff +Completable: Cexpression CArgument Value[someFn]($0) [] Complete src/BrokenParserCases.res 6:17 diff --git a/analysis/tests/src/expected/Completion.res.txt b/analysis/tests/src/expected/Completion.res.txt index c98e1a2c8..fe058b8aa 100644 --- a/analysis/tests/src/expected/Completion.res.txt +++ b/analysis/tests/src/expected/Completion.res.txt @@ -462,26 +462,63 @@ Completable: Cpath Value[Js, Dict, u] Complete src/Completion.res 59:30 posCursor:[59:30] posNoWhite:[59:29] Found expr:[59:15->59:30] -JSX 59:21] second[59:22->59:28]=...[59:29->59:30]> _children:None -Completable: Cexpression CJsxPropValue [O, Comp] second=z +JSX 59:21] > _children:None +Completable: Cjsx([O, Comp], "", []) [{ - "label": "zzz", - "kind": 12, + "label": "first", + "kind": 4, "tags": [], - "detail": "int", + "detail": "option", + "documentation": null + }, { + "label": "second", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoo", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", "documentation": null }] Complete src/Completion.res 62:23 posCursor:[62:23] posNoWhite:[62:22] Found expr:[62:15->62:23] -JSX 62:21] z[62:22->62:23]=...[62:22->62:23]> _children:None -Completable: Cjsx([O, Comp], z, [z]) +JSX 62:21] > _children:None +Attribute id:res.namedArgLoc:[62:22->62:23] label:z +Completable: Cjsx([O, Comp], "", []) [{ + "label": "first", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "second", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { "label": "zoo", "kind": 4, "tags": [], "detail": "option", "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] Complete src/Completion.res 65:8 @@ -510,8 +547,8 @@ Completable: Cdecorator(react.) Complete src/Completion.res 71:27 posCursor:[71:27] posNoWhite:[71:26] Found expr:[71:11->71:27] -Pexp_apply ...[71:11->71:18] (~name71:20->71:24=...[71:20->71:24]) -Completable: CnamedArg(Value[Lib, foo], "", [name]) +Pexp_apply ...[71:11->71:18] () +Completable: CnamedArg(Value[Lib, foo], "", []) Found type for function (~age: int, ~name: string) => string [{ "label": "age", @@ -519,14 +556,26 @@ Found type for function (~age: int, ~name: string) => string "tags": [], "detail": "int", "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] Complete src/Completion.res 74:26 posCursor:[74:26] posNoWhite:[74:25] Found expr:[74:11->74:26] -Pexp_apply ...[74:11->74:18] (~age74:20->74:23=...[74:20->74:23]) -Completable: CnamedArg(Value[Lib, foo], "", [age]) +Pexp_apply ...[74:11->74:18] () +Completable: CnamedArg(Value[Lib, foo], "", []) Found type for function (~age: int, ~name: string) => string [{ + "label": "age", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { "label": "name", "kind": 4, "tags": [], @@ -536,10 +585,16 @@ Found type for function (~age: int, ~name: string) => string Complete src/Completion.res 77:32 posCursor:[77:32] posNoWhite:[77:31] Found expr:[77:11->77:32] -Pexp_apply ...[77:11->77:18] (~age77:20->77:23=...[77:25->77:28]) -Completable: CnamedArg(Value[Lib, foo], "", [age]) +Pexp_apply ...[77:11->77:18] () +Completable: CnamedArg(Value[Lib, foo], "", []) Found type for function (~age: int, ~name: string) => string [{ + "label": "age", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { "label": "name", "kind": 4, "tags": [], @@ -549,10 +604,22 @@ Found type for function (~age: int, ~name: string) => string Complete src/Completion.res 82:5 posCursor:[82:5] posNoWhite:[82:4] Found expr:[80:8->86:1] -Pexp_apply ...[80:8->80:15] (~age84:3->84:6=...[84:7->84:8], ~name85:3->85:7=...[85:8->85:10]) -Completable: CnamedArg(Value[Lib, foo], "", [age, name]) +Pexp_apply ...[80:8->80:15] () +Completable: CnamedArg(Value[Lib, foo], "", []) Found type for function (~age: int, ~name: string) => string -[] +[{ + "label": "age", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] Complete src/Completion.res 90:13 posCursor:[90:13] posNoWhite:[90:12] Found expr:[90:3->93:18] @@ -653,16 +720,9 @@ Completable: Cpath Value[Object, Rec, recordVal]."" Complete src/Completion.res 120:7 posCursor:[120:7] posNoWhite:[120:6] Found expr:[119:11->123:1] posCursor:[120:7] posNoWhite:[120:6] Found expr:[120:5->122:5] -posCursor:[120:7] posNoWhite:[120:6] Found expr:[120:5->120:7] -Pexp_ident my:[120:5->120:7] -Completable: Cpath Value[my] -[{ - "label": "myAmazingFunction", - "kind": 12, - "tags": [], - "detail": "(int, int) => int", - "documentation": null - }] +Attribute id:res.braces:[119:17->123:1] label:{ +Completable: Cdecorator({) +[] Complete src/Completion.res 125:18 posCursor:[125:18] posNoWhite:[125:17] Found expr:[125:3->145:32] @@ -1356,226 +1416,3085 @@ Found type for function (~a: int) => int Complete src/Completion.res 336:26 posCursor:[336:26] posNoWhite:[336:25] Found expr:[333:3->346:23] -JSX 333:6] onClick[334:4->334:11]=...[334:13->346:23]> _children:None -posCursor:[336:26] posNoWhite:[336:25] Found expr:[334:13->346:23] -posCursor:[336:26] posNoWhite:[336:25] Found expr:[334:13->338:6] -posCursor:[336:26] posNoWhite:[336:25] Found expr:[335:6->338:5] -posCursor:[336:26] posNoWhite:[336:25] Found expr:[336:16->338:5] +JSX 333:6] > _children:None +Attribute id:res.braces:[334:12->346:23] label:{_ +Attribute id:res.braces:[334:18->338:6] label:{ posCursor:[336:26] posNoWhite:[336:25] Found pattern:[336:20->338:5] posCursor:[336:26] posNoWhite:[336:25] Found type:[336:23->338:5] Ptyp_constr Res:[336:23->338:5] -Completable: Cpath Type[Res] +Completable: Cjsx([div], "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res [{ - "label": "RescriptReactErrorBoundary", - "kind": 9, + "label": "ariaDetails", + "kind": 4, "tags": [], - "detail": "file module", + "detail": "string", "documentation": null }, { - "label": "RescriptReactRouter", - "kind": 9, + "label": "ariaDisabled", + "kind": 4, "tags": [], - "detail": "file module", + "detail": "bool", "documentation": null - }] - -Complete src/Completion.res 343:57 -posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:10->346:23] -posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:53->346:23] -posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:53->343:57] -Pexp_ident this:[343:53->343:57] -Completable: Cpath Value[this] -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -[{ - "label": "thisIsNotSaved", - "kind": 12, + }, { + "label": "ariaHidden", + "kind": 4, "tags": [], - "detail": "\\\"Type Not Known\"", + "detail": "bool", "documentation": null - }] - -Hover src/Completion.res 346:14 -Nothing at that position. Now trying to use completion. -posCursor:[346:14] posNoWhite:[346:13] Found expr:[346:9->346:23] -JSX 346:12] name[346:13->346:17]=...[346:18->346:20]> _children:346:21 -Completable: Cjsx([div], name, [name]) -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -{"contents": {"kind": "markdown", "value": "```rescript\nstring\n```"}} - -Hover src/Completion.res 349:17 -Nothing at that position. Now trying to use completion. -posCursor:[349:17] posNoWhite:[349:16] Found expr:[349:11->349:35] -Pexp_send age[349:30->349:33] e:[349:11->349:28] -posCursor:[349:17] posNoWhite:[349:16] Found expr:[349:11->349:28] -Pexp_ident FAO.forAutoObject:[349:11->349:28] -Completable: Cpath Value[FAO, forAutoObject] -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -{"contents": {"kind": "markdown", "value": "```rescript\n{\"age\": int, \"forAutoLabel\": FAR.forAutoRecord}\n```"}} - -Hover src/Completion.res 352:17 -Nothing at that position. Now trying to use completion. -posCursor:[352:17] posNoWhite:[352:16] Found expr:[352:11->352:22] -Pexp_apply ...[352:11->352:13] (~opt1352:15->352:19=...[352:20->352:21]) -Completable: CnamedArg(Value[ff], opt1, [opt1]) -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -Found type for function ( - ~opt1: int=?, - ~a: int, - ~b: int, - unit, - ~opt2: int=?, - unit, - ~c: int, -) => int -{"contents": {"kind": "markdown", "value": "```rescript\noption\n```"}} - -Complete src/Completion.res 355:23 -posCursor:[355:23] posNoWhite:[355:22] Found expr:[0:-1->355:23] -posCursor:[355:23] posNoWhite:[355:22] Found expr:[355:12->355:23] -[] - -Complete src/Completion.res 362:8 -posCursor:[362:8] posNoWhite:[362:7] Found expr:[360:8->365:3] -posCursor:[362:8] posNoWhite:[362:7] Found expr:[361:2->365:3] -posCursor:[362:8] posNoWhite:[362:7] Found pattern:[362:7->364:5] -posCursor:[362:8] posNoWhite:[362:7] Found pattern:[362:7->362:8] -Ppat_construct T:[362:7->362:8] -Completable: Cpattern Value[x]=T -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -[{ - "label": "That", + }, { + "label": "ariaKeyshortcuts", "kind": 4, "tags": [], - "detail": "That\n\ntype v = This | That", + "detail": "string", "documentation": null }, { - "label": "This", + "label": "ariaLabel", "kind": 4, "tags": [], - "detail": "This\n\ntype v = This | That", + "detail": "string", "documentation": null }, { - "label": "TableclothMap", - "kind": 9, + "label": "ariaRoledescription", + "kind": 4, "tags": [], - "detail": "file module", + "detail": "string", "documentation": null }, { - "label": "TypeDefinition", - "kind": 9, + "label": "ariaExpanded", + "kind": 4, "tags": [], - "detail": "file module", + "detail": "bool", "documentation": null - }] - -Complete src/Completion.res 373:21 -posCursor:[373:21] posNoWhite:[373:20] Found expr:[371:8->376:3] -posCursor:[373:21] posNoWhite:[373:20] Found expr:[372:2->376:3] -posCursor:[373:21] posNoWhite:[373:20] Found pattern:[373:7->375:5] -posCursor:[373:21] posNoWhite:[373:20] Found pattern:[373:7->373:21] -Ppat_construct AndThatOther.T:[373:7->373:21] -Completable: Cpath Value[AndThatOther, T] -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -[{ - "label": "ThatOther", + }, { + "label": "ariaLevel", "kind": 4, "tags": [], - "detail": "ThatOther\n\ntype v = And | ThatOther", + "detail": "int", "documentation": null - }] - -Complete src/Completion.res 378:24 -posCursor:[378:24] posNoWhite:[378:23] Found expr:[378:12->378:26] -Pexp_apply ...__ghost__[0:-1->0:-1] (...[378:12->378:24], ...[378:24->378:25]) -posCursor:[378:24] posNoWhite:[378:23] Found expr:[378:12->378:24] -Pexp_apply ...__ghost__[0:-1->0:-1] (...[378:12->378:14], ...[378:16->378:24]) -posCursor:[378:24] posNoWhite:[378:23] Found expr:[378:16->378:24] -Pexp_ident ForAuto.:[378:16->378:24] -Completable: Cpath Value[ForAuto, ""] -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -[{ - "label": "abc", - "kind": 12, + }, { + "label": "ariaModal", + "kind": 4, "tags": [], - "detail": "(t, int) => t", + "detail": "bool", "documentation": null }, { - "label": "abd", - "kind": 12, + "label": "ariaMultiline", + "kind": 4, "tags": [], - "detail": "(t, int) => t", + "detail": "bool", "documentation": null - }] - -Complete src/Completion.res 381:38 -posCursor:[381:38] posNoWhite:[381:37] Found expr:[381:12->381:41] -Pexp_apply ...__ghost__[0:-1->0:-1] (...[381:12->381:39], ...[381:39->381:40]) -posCursor:[381:38] posNoWhite:[381:37] Found expr:[381:12->381:39] -Pexp_apply ...__ghost__[0:-1->0:-1] (...[381:12->381:17], ...[381:19->381:39]) -posCursor:[381:38] posNoWhite:[381:37] Found expr:[381:19->381:39] -Pexp_send [381:38->381:38] e:[381:19->381:36] -Completable: Cpath Value[FAO, forAutoObject][""] -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -[{ - "label": "age", + }, { + "label": "ariaMultiselectable", "kind": 4, "tags": [], - "detail": "int", + "detail": "bool", "documentation": null }, { - "label": "forAutoLabel", + "label": "ariaPlaceholder", "kind": 4, "tags": [], - "detail": "FAR.forAutoRecord", + "detail": "string", "documentation": null - }] - -Complete src/Completion.res 384:24 -posCursor:[384:24] posNoWhite:[384:23] Found expr:[384:11->384:26] -Pexp_apply ...__ghost__[0:-1->0:-1] (...[384:11->384:24], ...[384:24->384:25]) -posCursor:[384:24] posNoWhite:[384:23] Found expr:[384:11->384:24] -Pexp_apply ...__ghost__[0:-1->0:-1] (...[384:11->384:12], ...[384:14->384:24]) -posCursor:[384:24] posNoWhite:[384:23] Found expr:[384:14->384:24] -Pexp_field [384:14->384:23] _:[384:24->384:24] -Completable: Cpath Value[funRecord]."" -Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res -[{ - "label": "someFun", - "kind": 5, + }, { + "label": "ariaReadonly", + "kind": 4, "tags": [], - "detail": "someFun: (~name: string) => unit\n\ntype funRecord = {\n someFun: (~name: string) => unit,\n stuff: string,\n}", + "detail": "bool", "documentation": null }, { - "label": "stuff", - "kind": 5, + "label": "ariaRequired", + "kind": 4, "tags": [], - "detail": "stuff: string\n\ntype funRecord = {\n someFun: (~name: string) => unit,\n stuff: string,\n}", + "detail": "bool", "documentation": null - }] - -Complete src/Completion.res 389:12 -posCursor:[389:12] posNoWhite:[389:11] Found expr:[387:8->392:1] -posCursor:[389:12] posNoWhite:[389:11] Found expr:[388:2->391:4] -posCursor:[389:12] posNoWhite:[389:11] Found expr:[389:6->391:4] -posCursor:[389:12] posNoWhite:[389:11] Found expr:[389:6->389:12] -Completable: Cpath array->ma -Raw opens: 3 Js.place holder ... Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 3 Completion.res Completion.res js.ml -[{ - "label": "Array2.mapi", + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/Completion.res 343:57 +posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:10->346:23] +posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:53->346:23] +posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:53->343:57] +Pexp_ident this:[343:53->343:57] +Completable: Cpath Value[this] +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +[{ + "label": "thisIsNotSaved", + "kind": 12, + "tags": [], + "detail": "\\\"Type Not Known\"", + "documentation": null + }] + +Hover src/Completion.res 346:14 +Nothing at that position. Now trying to use completion. +posCursor:[346:14] posNoWhite:[346:13] Found expr:[346:9->346:23] +JSX 346:12] > _children:346:21 +Attribute id:res.namedArgLoc:[346:13->346:17] label:name +Completable: Cjsx([div], "", []) +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +{"contents": {"kind": "markdown", "value": "```rescript\nstring\n```"}} + +Hover src/Completion.res 349:17 +Nothing at that position. Now trying to use completion. +posCursor:[349:17] posNoWhite:[349:16] Found expr:[349:11->349:35] +Pexp_send age[349:30->349:33] e:[349:11->349:28] +posCursor:[349:17] posNoWhite:[349:16] Found expr:[349:11->349:28] +Pexp_ident FAO.forAutoObject:[349:11->349:28] +Completable: Cpath Value[FAO, forAutoObject] +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +{"contents": {"kind": "markdown", "value": "```rescript\n{\"age\": int, \"forAutoLabel\": FAR.forAutoRecord}\n```"}} + +Hover src/Completion.res 352:17 +Nothing at that position. Now trying to use completion. +posCursor:[352:17] posNoWhite:[352:16] Found expr:[352:11->352:22] +Pexp_apply ...[352:11->352:13] () +Attribute id:res.namedArgLoc:[352:15->352:19] label:opt1 +Completable: Cexpression CArgument Value[ff]($0) +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +null + +Complete src/Completion.res 355:23 +posCursor:[355:23] posNoWhite:[355:22] Found expr:[0:-1->355:23] +posCursor:[355:23] posNoWhite:[355:22] Found expr:[355:12->355:23] +[] + +Complete src/Completion.res 362:8 +posCursor:[362:8] posNoWhite:[362:7] Found expr:[360:8->365:3] +posCursor:[362:8] posNoWhite:[362:7] Found expr:[361:2->365:3] +posCursor:[362:8] posNoWhite:[362:7] Found pattern:[362:7->364:5] +posCursor:[362:8] posNoWhite:[362:7] Found pattern:[362:7->362:8] +Ppat_construct T:[362:7->362:8] +Completable: Cpattern Value[x]=T +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +[{ + "label": "That", + "kind": 4, + "tags": [], + "detail": "That\n\ntype v = This | That", + "documentation": null + }, { + "label": "This", + "kind": 4, + "tags": [], + "detail": "This\n\ntype v = This | That", + "documentation": null + }, { + "label": "TableclothMap", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null + }, { + "label": "TypeDefinition", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null + }] + +Complete src/Completion.res 373:21 +posCursor:[373:21] posNoWhite:[373:20] Found expr:[371:8->376:3] +posCursor:[373:21] posNoWhite:[373:20] Found expr:[372:2->376:3] +posCursor:[373:21] posNoWhite:[373:20] Found pattern:[373:7->375:5] +posCursor:[373:21] posNoWhite:[373:20] Found pattern:[373:7->373:21] +Ppat_construct AndThatOther.T:[373:7->373:21] +Completable: Cpath Value[AndThatOther, T] +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +[{ + "label": "ThatOther", + "kind": 4, + "tags": [], + "detail": "ThatOther\n\ntype v = And | ThatOther", + "documentation": null + }] + +Complete src/Completion.res 378:24 +posCursor:[378:24] posNoWhite:[378:23] Found expr:[378:12->378:26] +Pexp_apply ...__ghost__[0:-1->0:-1] (...[378:12->378:24], ...[378:24->378:25]) +posCursor:[378:24] posNoWhite:[378:23] Found expr:[378:12->378:24] +Pexp_apply ...__ghost__[0:-1->0:-1] (...[378:12->378:14], ...[378:16->378:24]) +posCursor:[378:24] posNoWhite:[378:23] Found expr:[378:16->378:24] +Pexp_ident ForAuto.:[378:16->378:24] +Completable: Cpath Value[ForAuto, ""] +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +[{ + "label": "abc", + "kind": 12, + "tags": [], + "detail": "(t, int) => t", + "documentation": null + }, { + "label": "abd", + "kind": 12, + "tags": [], + "detail": "(t, int) => t", + "documentation": null + }] + +Complete src/Completion.res 381:38 +posCursor:[381:38] posNoWhite:[381:37] Found expr:[381:12->381:41] +Pexp_apply ...__ghost__[0:-1->0:-1] (...[381:12->381:39], ...[381:39->381:40]) +posCursor:[381:38] posNoWhite:[381:37] Found expr:[381:12->381:39] +Pexp_apply ...__ghost__[0:-1->0:-1] (...[381:12->381:17], ...[381:19->381:39]) +posCursor:[381:38] posNoWhite:[381:37] Found expr:[381:19->381:39] +Pexp_send [381:38->381:38] e:[381:19->381:36] +Completable: Cpath Value[FAO, forAutoObject][""] +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +[{ + "label": "age", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "forAutoLabel", + "kind": 4, + "tags": [], + "detail": "FAR.forAutoRecord", + "documentation": null + }] + +Complete src/Completion.res 384:24 +posCursor:[384:24] posNoWhite:[384:23] Found expr:[384:11->384:26] +Pexp_apply ...__ghost__[0:-1->0:-1] (...[384:11->384:24], ...[384:24->384:25]) +posCursor:[384:24] posNoWhite:[384:23] Found expr:[384:11->384:24] +Pexp_apply ...__ghost__[0:-1->0:-1] (...[384:11->384:12], ...[384:14->384:24]) +posCursor:[384:24] posNoWhite:[384:23] Found expr:[384:14->384:24] +Pexp_field [384:14->384:23] _:[384:24->384:24] +Completable: Cpath Value[funRecord]."" +Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 2 Completion.res Completion.res +[{ + "label": "someFun", + "kind": 5, + "tags": [], + "detail": "someFun: (~name: string) => unit\n\ntype funRecord = {\n someFun: (~name: string) => unit,\n stuff: string,\n}", + "documentation": null + }, { + "label": "stuff", + "kind": 5, + "tags": [], + "detail": "stuff: string\n\ntype funRecord = {\n someFun: (~name: string) => unit,\n stuff: string,\n}", + "documentation": null + }] + +Complete src/Completion.res 389:12 +posCursor:[389:12] posNoWhite:[389:11] Found expr:[387:8->392:1] +posCursor:[389:12] posNoWhite:[389:11] Found expr:[388:2->391:4] +posCursor:[389:12] posNoWhite:[389:11] Found expr:[389:6->391:4] +posCursor:[389:12] posNoWhite:[389:11] Found expr:[389:6->389:12] +Completable: Cpath array->ma +Raw opens: 3 Js.place holder ... Shadow.B.place holder ... Shadow.A.place holder +Resolved opens 3 Completion.res Completion.res js.ml +[{ + "label": "Array2.mapi", "kind": 12, "tags": [], "detail": "(t<'a>, ('a, int) => 'b) => t<'b>", @@ -1658,49 +4577,20 @@ Resolved opens 2 Completion.res Completion.res Complete src/Completion.res 409:21 posCursor:[409:21] posNoWhite:[409:20] Found expr:[408:14->415:1] posCursor:[409:21] posNoWhite:[409:20] Found expr:[409:5->414:17] -posCursor:[409:21] posNoWhite:[409:20] Found expr:[409:5->411:42] -posCursor:[409:21] posNoWhite:[409:20] Found expr:[409:5->411:5] -Pexp_ident SomeLocalModule.:[409:5->411:5] -Completable: Cpath Value[SomeLocalModule, ""] +Attribute id:res.braces:[408:21->415:1] label:{ +Completable: Cdecorator({) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res -[{ - "label": "bb", - "kind": 12, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "aa", - "kind": 12, - "tags": [], - "detail": "int", - "documentation": null - }] +[] Complete src/Completion.res 412:21 posCursor:[412:21] posNoWhite:[412:20] Found expr:[408:14->415:1] posCursor:[412:21] posNoWhite:[412:20] Found expr:[411:2->414:17] -posCursor:[412:21] posNoWhite:[412:20] Found expr:[412:5->414:17] -Pexp_apply ...[412:5->414:8] (...[414:9->414:16]) -posCursor:[412:21] posNoWhite:[412:20] Found expr:[412:5->414:8] -Pexp_ident SomeLocalModule.:[412:5->414:8] -Completable: Cpath Value[SomeLocalModule, ""] +Attribute id:res.braces:[408:21->415:1] label:{ +Completable: Cdecorator({) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res -[{ - "label": "bb", - "kind": 12, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "aa", - "kind": 12, - "tags": [], - "detail": "int", - "documentation": null - }] +[] Complete src/Completion.res 417:17 posCursor:[417:17] posNoWhite:[417:16] Found expr:[417:11->417:17] diff --git a/analysis/tests/src/expected/CompletionExpressions.res.txt b/analysis/tests/src/expected/CompletionExpressions.res.txt index 5f3324514..3917a5dc9 100644 --- a/analysis/tests/src/expected/CompletionExpressions.res.txt +++ b/analysis/tests/src/expected/CompletionExpressions.res.txt @@ -56,14 +56,9 @@ Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordBody Complete src/CompletionExpressions.res 29:28 posCursor:[29:28] posNoWhite:[29:27] Found expr:[29:11->29:30] Pexp_apply ...[29:11->29:25] (...[29:27->29:28]) -Completable: Cexpression CArgument Value[fnTakingRecord]($0)=n->recordBody -[{ - "label": "nested", - "kind": 5, - "tags": [], - "detail": "nested: option\n\nsomeRecord", - "documentation": null - }] +Attribute id:res.braces:[29:26->29:29] label:{n} +Completable: Cexpression CArgument Value[fnTakingRecord]($0)=n +[] Complete src/CompletionExpressions.res 32:35 posCursor:[32:35] posNoWhite:[32:34] Found expr:[32:11->32:38] @@ -476,13 +471,27 @@ posCursor:[108:57] posNoWhite:[108:56] Found expr:[108:11->108:60] Pexp_apply ...[108:11->108:42] (...[108:43->108:60]) Completable: Cexpression CArgument Value[fnTakingRecordWithOptionalField]($0)->recordField(someOptField) [{ - "label": "true", + "label": "None", "kind": 4, "tags": [], "detail": "bool", "documentation": null }, { - "label": "false", + "label": "Some(_)", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null, + "insertText": "Some(${1:_})", + "insertTextFormat": 2 + }, { + "label": "Some(true)", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "Some(false)", "kind": 4, "tags": [], "detail": "bool", @@ -575,12 +584,19 @@ Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)->variantPaylo Complete src/CompletionExpressions.res 132:51 posCursor:[132:51] posNoWhite:[132:50] Found expr:[132:11->132:54] Pexp_apply ...[132:11->132:31] (...[132:32->132:53]) -Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)=s->variantPayload::WithInlineRecord($0), recordBody +Attribute id:res.braces:[132:49->132:52] label:{s} +Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)=s->variantPayload::WithInlineRecord($0) [{ - "label": "someBoolField", - "kind": 4, + "label": "someBoolVar", + "kind": 12, "tags": [], - "detail": "Inline record", + "detail": "bool", + "documentation": null + }, { + "label": "s", + "kind": 12, + "tags": [], + "detail": "bool", "documentation": null }] @@ -755,7 +771,7 @@ Completable: Cpath Value[fff].someOpt "label": "someOptField", "kind": 5, "tags": [], - "detail": "someOptField?: bool\n\ntype recordWithOptionalField = {\n someField: int,\n someOptField?: bool,\n}", + "detail": "someOptField: option\n\ntype recordWithOptionalField = {\n someField: int,\n someOptField?: bool,\n}", "documentation": null }] diff --git a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt index a2b6236f6..e3b64e185 100644 --- a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt +++ b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt @@ -1,79 +1,27 @@ Complete src/CompletionFunctionArguments.res 10:24 posCursor:[10:24] posNoWhite:[10:23] Found expr:[10:11->10:25] -Pexp_apply ...[10:11->10:17] (~isOn10:19->10:23=...__ghost__[0:-1->0:-1]) -Completable: Cexpression CArgument Value[someFn](~isOn) -[{ - "label": "true", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "false", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }] +Pexp_apply ...[10:11->10:17] () +Completable: Cexpression CArgument Value[someFn]($0) +[] Complete src/CompletionFunctionArguments.res 13:25 posCursor:[13:25] posNoWhite:[13:24] Found expr:[13:11->13:26] -Pexp_apply ...[13:11->13:17] (~isOn13:19->13:23=...[13:24->13:25]) -Completable: Cexpression CArgument Value[someFn](~isOn)=t -[{ - "label": "true", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null, - "sortText": "A true" - }, { - "label": "tLocalVar", - "kind": 12, - "tags": [], - "detail": "bool", - "documentation": null - }] +Pexp_apply ...[13:11->13:17] () +Completable: Cexpression CArgument Value[someFn]($0) +[] Complete src/CompletionFunctionArguments.res 16:25 posCursor:[16:25] posNoWhite:[16:24] Found expr:[16:11->16:26] -Pexp_apply ...[16:11->16:17] (~isOff16:19->16:24=...__ghost__[0:-1->0:-1]) -Completable: Cexpression CArgument Value[someFn](~isOff) -[{ - "label": "true", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "false", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }] +Pexp_apply ...[16:11->16:17] () +Completable: Cexpression CArgument Value[someFn]($0) +[] Complete src/CompletionFunctionArguments.res 21:27 posCursor:[21:27] posNoWhite:[21:26] Found expr:[19:8->25:1] -Pexp_apply ...[19:8->19:14] (~isOn20:3->20:7=...[21:7->23:8]) -posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:7->23:8] -posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:7->21:28] -posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:14->21:28] -Pexp_apply ...[21:14->21:20] (~isOn21:22->21:26=...__ghost__[0:-1->0:-1]) -Completable: Cexpression CArgument Value[someFn](~isOn) -[{ - "label": "true", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "false", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }] +Pexp_apply ...[19:8->19:14] () +Attribute id:res.braces:[20:8->24:3] label:{ +Completable: Cexpression CArgument Value[someFn]($0) +[] Complete src/CompletionFunctionArguments.res 34:24 posCursor:[34:24] posNoWhite:[34:23] Found expr:[34:11->34:25] @@ -89,65 +37,90 @@ Completable: Cexpression CArgument Value[someOtherFn]($0)=f Complete src/CompletionFunctionArguments.res 51:39 posCursor:[51:39] posNoWhite:[51:38] Found expr:[51:11->51:40] -Pexp_apply ...[51:11->51:30] (~config51:32->51:38=...__ghost__[0:-1->0:-1]) -Completable: Cexpression CArgument Value[someFnTakingVariant](~config) +Pexp_apply ...[51:11->51:30] () +Completable: Cexpression CArgument Value[someFnTakingVariant]($0) [{ - "label": "One", + "label": "None", + "kind": 4, + "tags": [], + "detail": "type someVariant = One | Two | Three(int, string)", + "documentation": null + }, { + "label": "Some(_)", + "kind": 4, + "tags": [], + "detail": "type someVariant = One | Two | Three(int, string)", + "documentation": null, + "insertText": "Some(${1:_})", + "insertTextFormat": 2 + }, { + "label": "Some(One)", "kind": 4, "tags": [], "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", "documentation": null, - "insertText": "One", + "insertText": "Some(One)", "insertTextFormat": 2 }, { - "label": "Two", + "label": "Some(Two)", "kind": 4, "tags": [], "detail": "Two\n\ntype someVariant = One | Two | Three(int, string)", "documentation": null, - "insertText": "Two", + "insertText": "Some(Two)", "insertTextFormat": 2 }, { - "label": "Three(_, _)", + "label": "Some(Three(_, _))", "kind": 4, "tags": [], "detail": "Three(int, string)\n\ntype someVariant = One | Two | Three(int, string)", "documentation": null, - "insertText": "Three(${1:_}, ${2:_})", + "insertText": "Some(Three(${1:_}, ${2:_}))", "insertTextFormat": 2 }] Complete src/CompletionFunctionArguments.res 54:40 posCursor:[54:40] posNoWhite:[54:39] Found expr:[54:11->54:41] -Pexp_apply ...[54:11->54:30] (~config54:32->54:38=...[54:39->54:40]) -Completable: Cexpression CArgument Value[someFnTakingVariant](~config)=O +Pexp_apply ...[54:11->54:30] () +Completable: Cexpression CArgument Value[someFnTakingVariant]($0) [{ - "label": "One", + "label": "None", "kind": 4, "tags": [], - "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", + "detail": "type someVariant = One | Two | Three(int, string)", + "documentation": null + }, { + "label": "Some(_)", + "kind": 4, + "tags": [], + "detail": "type someVariant = One | Two | Three(int, string)", "documentation": null, - "sortText": "A One", - "insertText": "One", + "insertText": "Some(${1:_})", "insertTextFormat": 2 }, { - "label": "OIncludeMeInCompletions", - "kind": 9, + "label": "Some(One)", + "kind": 4, "tags": [], - "detail": "module", - "documentation": null + "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", + "documentation": null, + "insertText": "Some(One)", + "insertTextFormat": 2 }, { - "label": "Obj", - "kind": 9, + "label": "Some(Two)", + "kind": 4, "tags": [], - "detail": "file module", - "documentation": null + "detail": "Two\n\ntype someVariant = One | Two | Three(int, string)", + "documentation": null, + "insertText": "Some(Two)", + "insertTextFormat": 2 }, { - "label": "Object", - "kind": 9, + "label": "Some(Three(_, _))", + "kind": 4, "tags": [], - "detail": "file module", - "documentation": null + "detail": "Three(int, string)\n\ntype someVariant = One | Two | Three(int, string)", + "documentation": null, + "insertText": "Some(Three(${1:_}, ${2:_}))", + "insertTextFormat": 2 }] Complete src/CompletionFunctionArguments.res 57:33 @@ -173,35 +146,46 @@ Completable: Cexpression CArgument Value[someFnTakingVariant]($0)=So Complete src/CompletionFunctionArguments.res 60:44 posCursor:[60:44] posNoWhite:[60:43] Found expr:[60:11->60:45] -Pexp_apply ...[60:11->60:30] (~configOpt260:32->60:42=...[60:43->60:44]) -Completable: Cexpression CArgument Value[someFnTakingVariant](~configOpt2)=O +Pexp_apply ...[60:11->60:30] () +Completable: Cexpression CArgument Value[someFnTakingVariant]($0) [{ - "label": "One", + "label": "None", "kind": 4, "tags": [], - "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", + "detail": "type someVariant = One | Two | Three(int, string)", + "documentation": null + }, { + "label": "Some(_)", + "kind": 4, + "tags": [], + "detail": "type someVariant = One | Two | Three(int, string)", "documentation": null, - "sortText": "A One", - "insertText": "One", + "insertText": "Some(${1:_})", "insertTextFormat": 2 }, { - "label": "OIncludeMeInCompletions", - "kind": 9, + "label": "Some(One)", + "kind": 4, "tags": [], - "detail": "module", - "documentation": null + "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", + "documentation": null, + "insertText": "Some(One)", + "insertTextFormat": 2 }, { - "label": "Obj", - "kind": 9, + "label": "Some(Two)", + "kind": 4, "tags": [], - "detail": "file module", - "documentation": null + "detail": "Two\n\ntype someVariant = One | Two | Three(int, string)", + "documentation": null, + "insertText": "Some(Two)", + "insertTextFormat": 2 }, { - "label": "Object", - "kind": 9, + "label": "Some(Three(_, _))", + "kind": 4, "tags": [], - "detail": "file module", - "documentation": null + "detail": "Three(int, string)\n\ntype someVariant = One | Two | Three(int, string)", + "documentation": null, + "insertText": "Some(Three(${1:_}, ${2:_}))", + "insertTextFormat": 2 }] Complete src/CompletionFunctionArguments.res 63:23 @@ -298,33 +282,5777 @@ Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordBody Complete src/CompletionFunctionArguments.res 109:29 posCursor:[109:29] posNoWhite:[109:28] Found expr:[105:3->114:4] -JSX 105:6] onMouseDown[106:4->106:15]=...[106:35->113:5]> _children:114:2 -posCursor:[109:29] posNoWhite:[109:28] Found expr:[106:35->113:5] -posCursor:[109:29] posNoWhite:[109:28] Found expr:[107:6->109:29] -posCursor:[109:29] posNoWhite:[109:28] Found expr:[108:6->109:29] -posCursor:[109:29] posNoWhite:[109:28] Found expr:[109:9->109:29] -Completable: Cpath Value[thisGetsBrokenLoc]->a <> +JSX 105:6] > _children:114:2 +Attribute id:res.braces:[106:16->113:6] label:{thisGetsBrokenLoc +Attribute id:res.braces:[106:38->113:5] label:{ +Completable: Cjsx([div], "", []) [{ - "label": "ReactEvent.Mouse.altKey", - "kind": 12, + "label": "ariaDetails", + "kind": 4, "tags": [], - "detail": "t => bool", + "detail": "string", "documentation": null - }] - -Complete src/CompletionFunctionArguments.res 111:27 -posCursor:[111:27] posNoWhite:[111:26] Found expr:[105:3->114:4] -JSX 105:6] onMouseDown[106:4->106:15]=...[106:35->113:5]> _children:114:2 -posCursor:[111:27] posNoWhite:[111:26] Found expr:[106:35->113:5] -posCursor:[111:27] posNoWhite:[111:26] Found expr:[107:6->111:27] -posCursor:[111:27] posNoWhite:[111:26] Found expr:[108:6->111:27] -posCursor:[111:27] posNoWhite:[111:26] Found expr:[111:9->111:27] -Completable: Cpath Value[reassignedWorks]->a <> -[{ - "label": "ReactEvent.Mouse.altKey", - "kind": 12, + }, { + "label": "ariaDisabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaHidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/CompletionFunctionArguments.res 111:27 +posCursor:[111:27] posNoWhite:[111:26] Found expr:[105:3->114:4] +JSX 105:6] > _children:114:2 +Attribute id:res.braces:[106:16->113:6] label:{thisGetsBrokenLoc +Attribute id:res.braces:[106:38->113:5] label:{ +Completable: Cjsx([div], "", []) +[{ + "label": "ariaDetails", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDisabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaHidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, "tags": [], - "detail": "t => bool", + "detail": "string", "documentation": null }] diff --git a/analysis/tests/src/expected/CompletionJsx.res.txt b/analysis/tests/src/expected/CompletionJsx.res.txt index aae7edac3..770189f06 100644 --- a/analysis/tests/src/expected/CompletionJsx.res.txt +++ b/analysis/tests/src/expected/CompletionJsx.res.txt @@ -64,6 +64,7 @@ posCursor:[18:24] posNoWhite:[18:23] Found expr:[18:10->32:4] Pexp_construct :::[18:10->32:4] [18:10->32:4] posCursor:[18:24] posNoWhite:[18:23] Found expr:[18:10->32:4] posCursor:[18:24] posNoWhite:[18:23] Found expr:[18:10->18:24] +Attribute id:res.braces:[18:9->18:25] label:{someString->st} Completable: Cpath Value[someString]->st <> [{ "label": "React.string", @@ -105,6 +106,7 @@ posCursor:[20:27] posNoWhite:[20:26] Found expr:[20:10->32:4] Pexp_construct :::[20:10->32:4] [20:10->32:4] posCursor:[20:27] posNoWhite:[20:26] Found expr:[20:10->32:4] posCursor:[20:27] posNoWhite:[20:26] Found expr:[20:10->20:27] +Attribute id:res.braces:[20:9->20:28] label:{"Some Completable: Cpath string->st <> [{ "label": "React.string", @@ -146,6 +148,7 @@ posCursor:[22:44] posNoWhite:[22:43] Found expr:[22:10->32:4] Pexp_construct :::[22:10->32:4] [22:10->32:4] posCursor:[22:44] posNoWhite:[22:43] Found expr:[22:10->32:4] posCursor:[22:44] posNoWhite:[22:43] Found expr:[22:10->22:44] +Attribute id:res.braces:[22:9->22:45] label:{"Some Completable: Cpath Value[Js, String2, trim](Nolabel)->st <> [{ "label": "React.string", @@ -341,6 +344,7 @@ posCursor:[28:20] posNoWhite:[28:19] Found expr:[28:10->32:4] Pexp_construct :::[28:10->32:4] [28:10->32:4] posCursor:[28:20] posNoWhite:[28:19] Found expr:[28:10->32:4] posCursor:[28:20] posNoWhite:[28:19] Found expr:[28:10->28:20] +Attribute id:res.braces:[28:9->28:21] label:{someArr->a} Completable: Cpath Value[someArr]->a <> [{ "label": "React.array", @@ -403,13 +407,20 @@ Completable: ChtmlElement 45:23] -JSX 45:21] n[45:22->45:23]=...[45:22->45:23]> _children:None -Completable: Cjsx([CompWithoutJsxPpx], n, [n]) +JSX 45:21] > _children:None +Attribute id:res.namedArgLoc:[45:22->45:23] label:n +Completable: Cjsx([CompWithoutJsxPpx], "", []) [{ "label": "name", "kind": 4, "tags": [], "detail": "string", "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] diff --git a/analysis/tests/src/expected/CompletionJsxProps.res.txt b/analysis/tests/src/expected/CompletionJsxProps.res.txt index 45885f535..75bb99c40 100644 --- a/analysis/tests/src/expected/CompletionJsxProps.res.txt +++ b/analysis/tests/src/expected/CompletionJsxProps.res.txt @@ -1,212 +1,6025 @@ Complete src/CompletionJsxProps.res 0:47 posCursor:[0:47] posNoWhite:[0:46] Found expr:[0:12->0:47] -JSX 0:43] on[0:44->0:46]=...__ghost__[0:-1->0:-1]> _children:None -Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] on +JSX 0:43] > _children:None +Completable: Cjsx([CompletionSupport, TestComponent], "", []) [{ - "label": "true", + "label": "on", "kind": 4, "tags": [], "detail": "bool", "documentation": null }, { - "label": "false", + "label": "polyArg", "kind": 4, "tags": [], - "detail": "bool", + "detail": "option<[#one | #three(int, bool) | #two | #two2]>", + "documentation": null + }, { + "label": "test", + "kind": 4, + "tags": [], + "detail": "testVariant", + "documentation": null + }, { + "label": "testArr", + "kind": 4, + "tags": [], + "detail": "array", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", "documentation": null }] Complete src/CompletionJsxProps.res 3:48 posCursor:[3:48] posNoWhite:[3:47] Found expr:[3:12->3:48] -JSX 3:43] on[3:44->3:46]=...[3:47->3:48]> _children:None -Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] on=t +JSX 3:43] > _children:None +Completable: Cjsx([CompletionSupport, TestComponent], "", []) [{ - "label": "true", + "label": "on", "kind": 4, "tags": [], "detail": "bool", "documentation": null + }, { + "label": "polyArg", + "kind": 4, + "tags": [], + "detail": "option<[#one | #three(int, bool) | #two | #two2]>", + "documentation": null + }, { + "label": "test", + "kind": 4, + "tags": [], + "detail": "testVariant", + "documentation": null + }, { + "label": "testArr", + "kind": 4, + "tags": [], + "detail": "array", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] Complete src/CompletionJsxProps.res 6:50 posCursor:[6:50] posNoWhite:[6:49] Found expr:[6:12->6:50] -JSX 6:43] test[6:44->6:48]=...[6:49->6:50]> _children:None -Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] test=T +JSX 6:43] > _children:None +Completable: Cjsx([CompletionSupport, TestComponent], "", []) [{ - "label": "Two", + "label": "on", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "polyArg", "kind": 4, "tags": [], - "detail": "Two\n\ntype testVariant = One | Two | Three(int)", - "documentation": null, - "sortText": "A Two", - "insertText": "{Two}", - "insertTextFormat": 2 + "detail": "option<[#one | #three(int, bool) | #two | #two2]>", + "documentation": null }, { - "label": "Three(_)", + "label": "test", "kind": 4, "tags": [], - "detail": "Three(int)\n\ntype testVariant = One | Two | Three(int)", - "documentation": null, - "sortText": "A Three(_)", - "insertText": "{Three(${1:_})}", - "insertTextFormat": 2 + "detail": "testVariant", + "documentation": null }, { - "label": "TableclothMap", - "kind": 9, + "label": "testArr", + "kind": 4, "tags": [], - "detail": "file module", + "detail": "array", "documentation": null }, { - "label": "TypeDefinition", - "kind": 9, + "label": "key", + "kind": 4, "tags": [], - "detail": "file module", + "detail": "string", "documentation": null }] Complete src/CompletionJsxProps.res 9:52 posCursor:[9:52] posNoWhite:[9:51] Found expr:[9:12->9:52] -JSX 9:43] polyArg[9:44->9:51]=...__ghost__[0:-1->0:-1]> _children:None -Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] polyArg +JSX 9:43] > _children:None +Completable: Cjsx([CompletionSupport, TestComponent], "", []) [{ - "label": "#one", + "label": "on", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "polyArg", "kind": 4, "tags": [], - "detail": "#one\n\n[#one | #three(int, bool) | #two | #two2]", - "documentation": null, - "insertText": "{#one}", - "insertTextFormat": 2 + "detail": "option<[#one | #three(int, bool) | #two | #two2]>", + "documentation": null }, { - "label": "#three(_, _)", + "label": "test", "kind": 4, "tags": [], - "detail": "#three(int, bool)\n\n[#one | #three(int, bool) | #two | #two2]", - "documentation": null, - "insertText": "{#three(${1:_}, ${2:_})}", - "insertTextFormat": 2 + "detail": "testVariant", + "documentation": null }, { - "label": "#two", + "label": "testArr", "kind": 4, "tags": [], - "detail": "#two\n\n[#one | #three(int, bool) | #two | #two2]", - "documentation": null, - "insertText": "{#two}", - "insertTextFormat": 2 + "detail": "array", + "documentation": null }, { - "label": "#two2", + "label": "key", "kind": 4, "tags": [], - "detail": "#two2\n\n[#one | #three(int, bool) | #two | #two2]", - "documentation": null, - "insertText": "{#two2}", - "insertTextFormat": 2 + "detail": "string", + "documentation": null }] Complete src/CompletionJsxProps.res 12:54 posCursor:[12:54] posNoWhite:[12:53] Found expr:[12:12->12:54] -JSX 12:43] polyArg[12:44->12:51]=...[12:52->12:54]> _children:None -Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] polyArg=#t +JSX 12:43] > _children:None +Completable: Cjsx([CompletionSupport, TestComponent], "", []) [{ - "label": "#three(_, _)", + "label": "on", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "polyArg", + "kind": 4, + "tags": [], + "detail": "option<[#one | #three(int, bool) | #two | #two2]>", + "documentation": null + }, { + "label": "test", "kind": 4, "tags": [], - "detail": "#three(int, bool)\n\n[#one | #three(int, bool) | #two | #two2]", - "documentation": null, - "insertText": "{three(${1:_}, ${2:_})}", - "insertTextFormat": 2 + "detail": "testVariant", + "documentation": null }, { - "label": "#two", + "label": "testArr", "kind": 4, "tags": [], - "detail": "#two\n\n[#one | #three(int, bool) | #two | #two2]", - "documentation": null, - "insertText": "{two}", - "insertTextFormat": 2 + "detail": "array", + "documentation": null }, { - "label": "#two2", + "label": "key", "kind": 4, "tags": [], - "detail": "#two2\n\n[#one | #three(int, bool) | #two | #two2]", - "documentation": null, - "insertText": "{two2}", - "insertTextFormat": 2 + "detail": "string", + "documentation": null }] Complete src/CompletionJsxProps.res 15:22 posCursor:[15:22] posNoWhite:[15:21] Found expr:[15:12->15:25] -JSX 15:15] muted[15:16->15:21]=...__ghost__[0:-1->0:-1]> _children:15:23 -Completable: Cexpression CJsxPropValue [div] muted +JSX 15:15] > _children:15:23 +Completable: Cjsx([div], "", []) [{ - "label": "true", + "label": "ariaDetails", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDisabled", "kind": 4, "tags": [], "detail": "bool", "documentation": null }, { - "label": "false", + "label": "ariaHidden", "kind": 4, "tags": [], "detail": "bool", "documentation": null - }] - -Complete src/CompletionJsxProps.res 18:29 -posCursor:[18:29] posNoWhite:[18:28] Found expr:[18:12->18:32] -JSX 18:15] onMouseEnter[18:16->18:28]=...__ghost__[0:-1->0:-1]> _children:18:30 -Completable: Cexpression CJsxPropValue [div] onMouseEnter -[{ - "label": "event => {}", - "kind": 12, - "tags": [], - "detail": "JsxEvent.Mouse.t => unit", - "documentation": null, - "sortText": "A", - "insertText": "{${1:event} => {$0}}", - "insertTextFormat": 2 - }] - -Complete src/CompletionJsxProps.res 22:52 -posCursor:[22:52] posNoWhite:[22:51] Found expr:[22:12->22:52] -JSX 22:43] testArr[22:44->22:51]=...__ghost__[0:-1->0:-1]> _children:None -Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] testArr -[{ - "label": "[]", - "kind": 12, - "tags": [], - "detail": "type testVariant = One | Two | Three(int)", - "documentation": null, - "sortText": "A", - "insertText": "{[$0]}", - "insertTextFormat": 2 - }] - -Complete src/CompletionJsxProps.res 26:54 -posCursor:[26:54] posNoWhite:[26:53] Found expr:[26:12->26:56] -JSX 26:43] testArr[26:44->26:51]=...[26:53->26:55]> _children:None -Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] testArr->array -[{ - "label": "One", + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", "kind": 4, "tags": [], - "detail": "One\n\ntype testVariant = One | Two | Three(int)", - "documentation": null, - "insertText": "One", - "insertTextFormat": 2 + "detail": "bool", + "documentation": null }, { - "label": "Two", + "label": "contextMenu", "kind": 4, "tags": [], - "detail": "Two\n\ntype testVariant = One | Two | Three(int)", - "documentation": null, - "insertText": "Two", - "insertTextFormat": 2 + "detail": "string", + "documentation": null }, { - "label": "Three(_)", + "label": "dir", "kind": 4, "tags": [], - "detail": "Three(int)\n\ntype testVariant = One | Two | Three(int)", - "documentation": null, - "insertText": "Three(${1:_})", - "insertTextFormat": 2 + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/CompletionJsxProps.res 18:29 +posCursor:[18:29] posNoWhite:[18:28] Found expr:[18:12->18:32] +JSX 18:15] > _children:18:30 +Completable: Cjsx([div], "", []) +[{ + "label": "ariaDetails", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDisabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaHidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/CompletionJsxProps.res 22:52 +posCursor:[22:52] posNoWhite:[22:51] Found expr:[22:12->22:52] +JSX 22:43] > _children:None +Completable: Cjsx([CompletionSupport, TestComponent], "", []) +[{ + "label": "on", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "polyArg", + "kind": 4, + "tags": [], + "detail": "option<[#one | #three(int, bool) | #two | #two2]>", + "documentation": null + }, { + "label": "test", + "kind": 4, + "tags": [], + "detail": "testVariant", + "documentation": null + }, { + "label": "testArr", + "kind": 4, + "tags": [], + "detail": "array", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/CompletionJsxProps.res 26:54 +posCursor:[26:54] posNoWhite:[26:53] Found expr:[26:12->26:56] +JSX 26:43] > _children:None +Attribute id:res.braces:[26:52->26:56] label:{[]} +Completable: Cjsx([CompletionSupport, TestComponent], "", []) +[{ + "label": "on", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "polyArg", + "kind": 4, + "tags": [], + "detail": "option<[#one | #three(int, bool) | #two | #two2]>", + "documentation": null + }, { + "label": "test", + "kind": 4, + "tags": [], + "detail": "testVariant", + "documentation": null + }, { + "label": "testArr", + "kind": 4, + "tags": [], + "detail": "array", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] diff --git a/analysis/tests/src/expected/Destructuring.res.txt b/analysis/tests/src/expected/Destructuring.res.txt index 867586806..642032258 100644 --- a/analysis/tests/src/expected/Destructuring.res.txt +++ b/analysis/tests/src/expected/Destructuring.res.txt @@ -68,10 +68,10 @@ Completable: Cpattern Value[x]->recordBody "detail": "someField: int\n\nrecordWithOptField", "documentation": null }, { - "label": "?someOptField", + "label": "someOptField", "kind": 5, "tags": [], - "detail": "?someOptField: option\n\nrecordWithOptField", - "documentation": {"kind": "markdown", "value": "someOptField is an optional field, and needs to be destructured using '?'."} + "detail": "someOptField: option\n\nrecordWithOptField", + "documentation": null }] diff --git a/analysis/tests/src/expected/Div.res.txt b/analysis/tests/src/expected/Div.res.txt index 9e09ba202..a2dcccfd4 100644 --- a/analysis/tests/src/expected/Div.res.txt +++ b/analysis/tests/src/expected/Div.res.txt @@ -4,13 +4,2888 @@ getLocItem #3: heuristic for
Complete src/Div.res 3:17 posCursor:[3:17] posNoWhite:[3:16] Found expr:[3:4->3:17] -JSX 3:7] dangerous[3:8->3:17]=...[3:8->3:17]> _children:None -Completable: Cjsx([div], dangerous, [dangerous]) +JSX 3:7] > _children:None +Attribute id:res.namedArgLoc:[3:8->3:17] label:dangerous +Completable: Cjsx([div], "", []) [{ + "label": "ariaDetails", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDisabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaHidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { "label": "dangerouslySetInnerHTML", "kind": 4, "tags": [], "detail": "{\"__html\": string}", "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] diff --git a/analysis/tests/src/expected/Jsx2.res.txt b/analysis/tests/src/expected/Jsx2.res.txt index 5cd54d307..56c3b9f4a 100644 --- a/analysis/tests/src/expected/Jsx2.res.txt +++ b/analysis/tests/src/expected/Jsx2.res.txt @@ -5,15 +5,46 @@ the type is not great but jump to definition works Complete src/Jsx2.res 8:15 posCursor:[8:15] posNoWhite:[8:14] Found expr:[8:4->8:15] -JSX 8:5] second[8:6->8:12]=...[8:13->8:15]> _children:None -Completable: Cexpression CJsxPropValue [M] second=fi -[] +JSX 8:5] > _children:None +Completable: Cjsx([M], "", []) +[{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] Complete src/Jsx2.res 11:20 posCursor:[11:20] posNoWhite:[11:19] Found expr:[11:4->11:20] -JSX 11:5] second[11:6->11:12]=...[11:13->11:18] f[11:19->11:20]=...[11:19->11:20]> _children:None -Completable: Cjsx([M], f, [second, f]) +JSX 11:5] > _children:None +Attribute id:res.namedArgLoc:[11:19->11:20] label:f +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "first", "kind": 4, "tags": [], @@ -25,6 +56,12 @@ Completable: Cjsx([M], f, [second, f]) "tags": [], "detail": "option", "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] Complete src/Jsx2.res 14:13 @@ -59,9 +96,28 @@ Completable: Cpath Module[M] Complete src/Jsx2.res 22:19 posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:4->22:19] -JSX 22:5] prop[22:6->22:10]=...[22:12->22:16] k[22:18->22:19]=...[22:18->22:19]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 22:5] > _children:None +Attribute id:res.namedArgLoc:[22:18->22:19] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -71,9 +127,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 25:17 posCursor:[25:17] posNoWhite:[25:16] Found expr:[25:4->25:17] -JSX 25:5] prop[25:6->25:10]=...[25:11->25:15] k[25:16->25:17]=...[25:16->25:17]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 25:5] > _children:None +Attribute id:res.namedArgLoc:[25:16->25:17] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -83,9 +158,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 28:21 posCursor:[28:21] posNoWhite:[28:20] Found expr:[28:4->28:21] -JSX 28:5] prop[28:6->28:10]=...[28:11->28:19] k[28:20->28:21]=...[28:20->28:21]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 28:5] > _children:None +Attribute id:res.namedArgLoc:[28:20->28:21] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -95,9 +189,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 31:24 posCursor:[31:24] posNoWhite:[31:23] Found expr:[31:4->31:24] -JSX 31:5] prop[31:6->31:10]=...[31:11->31:22] k[31:23->31:24]=...[31:23->31:24]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 31:5] > _children:None +Attribute id:res.namedArgLoc:[31:23->31:24] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -107,9 +220,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 34:18 posCursor:[34:18] posNoWhite:[34:17] Found expr:[34:4->34:18] -JSX 34:5] prop[34:6->34:10]=...[34:12->34:16] k[34:17->34:18]=...[34:17->34:18]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 34:5] > _children:None +Attribute id:res.namedArgLoc:[34:17->34:18] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -119,9 +251,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 37:16 posCursor:[37:16] posNoWhite:[37:15] Found expr:[37:4->37:16] -JSX 37:5] prop[37:6->37:10]=...[37:11->37:14] k[37:15->37:16]=...[37:15->37:16]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 37:5] > _children:None +Attribute id:res.namedArgLoc:[37:15->37:16] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -131,9 +282,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 40:17 posCursor:[40:17] posNoWhite:[40:16] Found expr:[40:4->40:17] -JSX 40:5] prop[40:6->40:10]=...[40:11->40:15] k[40:16->40:17]=...[40:16->40:17]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 40:5] > _children:None +Attribute id:res.namedArgLoc:[40:16->40:17] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -143,9 +313,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 43:18 posCursor:[43:18] posNoWhite:[43:17] Found expr:[43:4->43:18] -JSX 43:5] prop[43:6->43:10]=...[43:11->43:16] k[43:17->43:18]=...[43:17->43:18]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 43:5] > _children:None +Attribute id:res.namedArgLoc:[43:17->43:18] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -155,9 +344,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 46:16 posCursor:[46:16] posNoWhite:[46:15] Found expr:[46:4->46:16] -JSX 46:5] prop[46:6->46:10]=...[46:11->46:14] k[46:15->46:16]=...[46:15->46:16]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 46:5] > _children:None +Attribute id:res.namedArgLoc:[46:15->46:16] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -167,9 +375,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 49:27 posCursor:[49:27] posNoWhite:[49:26] Found expr:[49:4->49:27] -JSX 49:5] prop[49:6->49:10]=...[49:11->49:25] k[49:26->49:27]=...[49:26->49:27]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 49:5] > _children:None +Attribute id:res.namedArgLoc:[49:26->49:27] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -179,9 +406,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 52:38 posCursor:[52:38] posNoWhite:[52:37] Found expr:[52:4->52:38] -JSX 52:5] prop[52:6->52:10]=...[52:11->52:36] k[52:37->52:38]=...[52:37->52:38]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 52:5] > _children:None +Attribute id:res.namedArgLoc:[52:37->52:38] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -191,9 +437,28 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 55:25 posCursor:[55:25] posNoWhite:[55:24] Found expr:[55:4->55:25] -JSX 55:5] prop[55:6->55:10]=...[55:11->55:23] k[55:24->55:25]=...[55:24->55:25]> _children:None -Completable: Cjsx([M], k, [prop, k]) +JSX 55:5] > _children:None +Attribute id:res.namedArgLoc:[55:24->55:25] label:k +Completable: Cjsx([M], "", []) [{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { "label": "key", "kind": 4, "tags": [], @@ -208,27 +473,16 @@ the type is not great but jump to definition works Complete src/Jsx2.res 68:10 posCursor:[68:10] posNoWhite:[68:9] Found expr:[68:4->68:10] -JSX 68:7] al[68:8->68:10]=...[68:8->68:10]> _children:None -Completable: Cjsx([Ext], al, [al]) +JSX 68:7] > _children:None +Attribute id:res.namedArgLoc:[68:8->68:10] label:al +Completable: Cjsx([Ext], "", []) [{ "label": "align", "kind": 4, "tags": [], "detail": "option", "documentation": null - }] - -Complete src/Jsx2.res 71:11 -posCursor:[71:11] posNoWhite:[71:10] Found expr:[71:4->71:11] -JSX 71:5] first[71:6->71:11]=...[71:6->71:11]> _children:None -Completable: Cjsx([M], first, [first]) -[] - -Complete src/Jsx2.res 74:16 -posCursor:[74:16] posNoWhite:[74:15] Found expr:[74:4->74:16] -JSX 74:5] first[74:6->74:11]=...[74:12->74:14] k[74:15->74:16]=...[74:15->74:16]> _children:None -Completable: Cjsx([M], k, [first, k]) -[{ + }, { "label": "key", "kind": 4, "tags": [], @@ -236,15 +490,96 @@ Completable: Cjsx([M], k, [first, k]) "documentation": null }] -Complete src/Jsx2.res 77:23 -posCursor:[77:23] posNoWhite:[77:22] Found expr:[77:4->77:23] -JSX 77:5] first[77:6->77:11]=...[77:19->77:21] k[77:22->77:23]=...[77:22->77:23]> _children:None -Completable: Cjsx([M], k, [first, k]) +Complete src/Jsx2.res 71:11 +posCursor:[71:11] posNoWhite:[71:10] Found expr:[71:4->71:11] +JSX 71:5] > _children:None +Attribute id:res.namedArgLoc:[71:6->71:11] label:first +Completable: Cjsx([M], "", []) [{ - "label": "key", + "label": "second", "kind": 4, "tags": [], - "detail": "string", + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/Jsx2.res 74:16 +posCursor:[74:16] posNoWhite:[74:15] Found expr:[74:4->74:16] +JSX 74:5] > _children:None +Attribute id:res.namedArgLoc:[74:15->74:16] label:k +Completable: Cjsx([M], "", []) +[{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/Jsx2.res 77:23 +posCursor:[77:23] posNoWhite:[77:22] Found expr:[77:4->77:23] +JSX 77:5] > _children:None +Attribute id:res.namedArgLoc:[77:22->77:23] label:k +Completable: Cjsx([M], "", []) +[{ + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fun", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", "documentation": null }] @@ -273,14 +608,21 @@ Completable: Cpath Module[WithChildren] Complete src/Jsx2.res 91:18 posCursor:[91:18] posNoWhite:[91:17] Found expr:[91:4->91:18] -JSX 91:16] n[91:17->91:18]=...[91:17->91:18]> _children:None -Completable: Cjsx([WithChildren], n, [n]) +JSX 91:16] > _children:None +Attribute id:res.namedArgLoc:[91:17->91:18] label:n +Completable: Cjsx([WithChildren], "", []) [{ "label": "name", "kind": 4, "tags": [], "detail": "string", "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] Complete src/Jsx2.res 94:18 @@ -351,40 +693,8665 @@ Completable: Cpath Module[DefineSomeFields].th Complete src/Jsx2.res 122:20 posCursor:[122:20] posNoWhite:[122:19] Found expr:[121:3->125:4] -JSX 121:6] x[122:5->122:6]=...[122:7->122:20] name[124:4->124:8]=...[124:9->124:11]> _children:125:2 -posCursor:[122:20] posNoWhite:[122:19] Found expr:[122:7->122:20] -Pexp_ident Outer.Inner.h:[122:7->122:20] -Completable: Cpath Value[Outer, Inner, h] +JSX 121:6] > _children:125:2 +Completable: Cjsx([div], "", []) [{ - "label": "hello", - "kind": 12, + "label": "ariaDetails", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDisabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaHidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, "tags": [], "detail": "int", "documentation": null - }] - -Complete src/Jsx2.res 129:19 -posCursor:[129:19] posNoWhite:[129:18] Found expr:[128:3->131:9] -JSX 128:6] x[129:5->129:6]=...[129:7->131:8]> _children:None -posCursor:[129:19] posNoWhite:[129:18] Found expr:[129:7->131:8] -Pexp_ident Outer.Inner.:[129:7->131:8] -Completable: Cpath Value[Outer, Inner, ""] -[{ - "label": "hello", - "kind": 12, + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, "tags": [], "detail": "int", "documentation": null - }] - -Complete src/Jsx2.res 136:7 -posCursor:[136:7] posNoWhite:[136:6] Found expr:[135:3->138:9] -JSX 135:6] x[136:5->136:6]=...[138:4->138:8]> _children:None -[] + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/Jsx2.res 129:19 +posCursor:[129:19] posNoWhite:[129:18] Found expr:[128:3->131:9] +JSX 128:6] > _children:None +Completable: Cjsx([div], "", []) +[{ + "label": "ariaDetails", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDisabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaHidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] + +Complete src/Jsx2.res 136:7 +posCursor:[136:7] posNoWhite:[136:6] Found expr:[135:3->138:9] +JSX 135:6] > _children:None +Completable: Cjsx([div], "", []) +[{ + "label": "ariaDetails", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDisabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaHidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }] Complete src/Jsx2.res 150:21 posCursor:[150:21] posNoWhite:[150:20] Found expr:[150:12->150:32] -JSX 150:21] name[150:22->150:26]=...[150:27->150:29]> _children:150:30 +JSX 150:21] > _children:150:30 Completable: Cpath Module[Nested, Co] [{ "label": "Comp", @@ -410,22 +9377,18 @@ Hover src/Jsx2.res 162:12 Nothing at that position. Now trying to use completion. posCursor:[162:12] posNoWhite:[162:11] Found expr:[162:3->162:21] Pexp_construct :::[162:6->162:21] [162:6->162:21] -posCursor:[162:12] posNoWhite:[162:11] Found expr:[162:6->162:21] -posCursor:[162:12] posNoWhite:[162:11] Found expr:[162:6->162:20] -JSX 162:10] age[162:11->162:14]=...[162:15->162:17]> _children:162:18 -Completable: Cjsx([Comp], age, [age]) -{"contents": {"kind": "markdown", "value": "```rescript\nint\n```"}} +Attribute id:res.braces:[161:8->164:1] label:{ +Attribute id:res.namedArgLoc:[162:11->162:14] label:age +Completable: Cdecorator({) +null Hover src/Jsx2.res 167:16 Nothing at that position. Now trying to use completion. posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:3->167:30] Pexp_construct :::[167:7->167:30] [167:7->167:30] -posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:7->167:30] -posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:7->167:25] -Pexp_construct :::[167:10->167:25] [167:10->167:25] -posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:10->167:25] -posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:10->167:24] -JSX 167:14] age[167:15->167:18]=...[167:19->167:21]> _children:167:22 -Completable: Cjsx([Comp], age, [age]) -{"contents": {"kind": "markdown", "value": "```rescript\nint\n```"}} +Attribute id:res.braces:[166:8->169:1] label:{ +Attribute id:res.braces:[167:5->167:29] label:{<> +Attribute id:res.namedArgLoc:[167:15->167:18] label:age +Completable: Cdecorator({) +null diff --git a/analysis/tests/src/expected/JsxV4.res.txt b/analysis/tests/src/expected/JsxV4.res.txt index 3ae47a79e..dca199b1d 100644 --- a/analysis/tests/src/expected/JsxV4.res.txt +++ b/analysis/tests/src/expected/JsxV4.res.txt @@ -3,14 +3,33 @@ Definition src/JsxV4.res 8:9 Complete src/JsxV4.res 11:20 posCursor:[11:20] posNoWhite:[11:19] Found expr:[11:4->11:20] -JSX 11:6] first[11:7->11:12]=...[11:13->11:18] f[11:19->11:20]=...[11:19->11:20]> _children:None -Completable: Cjsx([M4], f, [first, f]) +JSX 11:6] > _children:None +Attribute id:res.namedArgLoc:[11:19->11:20] label:f +Completable: Cjsx([M4], "", []) [{ + "label": "first", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { "label": "fun", "kind": 4, "tags": [], "detail": "option", "documentation": null + }, { + "label": "second", + "kind": 4, + "tags": [], + "detail": "option", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null }] Hover src/JsxV4.res 14:9 diff --git a/analysis/tests/src/expected/RecoveryOnProp.res.txt b/analysis/tests/src/expected/RecoveryOnProp.res.txt index fe509d768..ffe1c7174 100644 --- a/analysis/tests/src/expected/RecoveryOnProp.res.txt +++ b/analysis/tests/src/expected/RecoveryOnProp.res.txt @@ -1,24 +1,2891 @@ Complete src/RecoveryOnProp.res 6:26 posCursor:[6:26] posNoWhite:[6:25] Found expr:[3:3->11:8] -JSX 3:6] onClick[4:4->4:11]=...[4:13->0:-1]> _children:None -posCursor:[6:26] posNoWhite:[6:25] Found expr:[4:13->8:6] -posCursor:[6:26] posNoWhite:[6:25] Found expr:[5:6->8:5] -posCursor:[6:26] posNoWhite:[6:25] Found expr:[6:16->8:5] +JSX 3:6] > _children:None +Attribute id:res.braces:[4:12->11:8] label:{_ +Attribute id:res.braces:[4:18->8:6] label:{ posCursor:[6:26] posNoWhite:[6:25] Found pattern:[6:20->8:5] posCursor:[6:26] posNoWhite:[6:25] Found type:[6:23->8:5] Ptyp_constr Res:[6:23->8:5] -Completable: Cpath Type[Res] +Completable: Cjsx([div], "", []) [{ - "label": "RescriptReactErrorBoundary", - "kind": 9, + "label": "ariaDetails", + "kind": 4, "tags": [], - "detail": "file module", + "detail": "string", "documentation": null }, { - "label": "RescriptReactRouter", - "kind": 9, + "label": "ariaDisabled", + "kind": 4, "tags": [], - "detail": "file module", + "detail": "bool", + "documentation": null + }, { + "label": "ariaHidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaKeyshortcuts", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaRoledescription", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaExpanded", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaLevel", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaModal", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaMultiselectable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaPlaceholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaReadonly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRequired", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSelected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaSort", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaValuemax", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuemin", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuenow", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "ariaValuetext", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaAtomic", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaBusy", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaRelevant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaGrabbed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "ariaActivedescendant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaColcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaColspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaControls", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaDescribedby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaErrormessage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaFlowto", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaLabelledby", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaOwns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ariaPosinset", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowcount", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowindex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaRowspan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "ariaSetsize", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "defaultChecked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defaultValue", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accessKey", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "className", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentEditable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "contextMenu", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dir", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "draggable", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "hidden", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "id", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "style", + "kind": 4, + "tags": [], + "detail": "style", + "documentation": null + }, { + "label": "spellCheck", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "tabIndex", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "title", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemID", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemProp", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "itemScope", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "itemType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "acceptCharset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "action", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowFullScreen", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "alt", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "async", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoComplete", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoCapitalize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoFocus", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "autoPlay", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "challenge", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "charSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "checked", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "cite", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "crossOrigin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cols", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "colSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "content", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "controls", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "coords", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "data", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dateTime", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "default", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "defer", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "disabled", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "download", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "encType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "form", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formAction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "formMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "headers", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "height", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "high", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "href", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hrefLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "htmlFor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "httpEquiv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "icon", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inputMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "integrity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "label", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "list", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "loop", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "low", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "manifest", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "max", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maxLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "media", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mediaGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "method", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "min", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "minLength", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "multiple", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "muted", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "name", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "nonce", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "noValidate", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "open_", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "optimum", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "pattern", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "placeholder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "playsInline", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "poster", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preload", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radioGroup", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "readOnly", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rel", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "required", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "reversed", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "rows", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "rowSpan", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sandbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scoped", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "scrolling", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "selected", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "shape", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "size", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "sizes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "span", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "src", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcDoc", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "srcSet", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "start", + "kind": 4, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "step", + "kind": 4, + "tags": [], + "detail": "float", + "documentation": null + }, { + "label": "summary", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "target", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "type_", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "useMap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "value", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "width", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wrap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "onCopy", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onPaste", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Clipboard.t => unit", + "documentation": null + }, { + "label": "onCompositionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onCompositionUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Composition.t => unit", + "documentation": null + }, { + "label": "onKeyDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyPress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onKeyUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Keyboard.t => unit", + "documentation": null + }, { + "label": "onFocus", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onBlur", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Focus.t => unit", + "documentation": null + }, { + "label": "onChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInput", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onSubmit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onInvalid", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Form.t => unit", + "documentation": null + }, { + "label": "onClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onContextMenu", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDoubleClick", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrag", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragExit", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDragStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onDrop", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onMouseUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Mouse.t => unit", + "documentation": null + }, { + "label": "onSelect", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Selection.t => unit", + "documentation": null + }, { + "label": "onTouchCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onTouchStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Touch.t => unit", + "documentation": null + }, { + "label": "onPointerOver", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerEnter", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerDown", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerMove", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerUp", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerCancel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerOut", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onPointerLeave", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onGotPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onLostPointerCapture", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Pointer.t => unit", + "documentation": null + }, { + "label": "onScroll", + "kind": 4, + "tags": [], + "detail": "ReactEvent.UI.t => unit", + "documentation": null + }, { + "label": "onWheel", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Wheel.t => unit", + "documentation": null + }, { + "label": "onAbort", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onCanPlayThrough", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onDurationChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEmptied", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEncrypetd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onEnded", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onError", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedData", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadedMetadata", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onLoadStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPause", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlay", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onPlaying", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onProgress", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onRateChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeked", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSeeking", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onStalled", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onSuspend", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onTimeUpdate", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onVolumeChange", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onWaiting", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Media.t => unit", + "documentation": null + }, { + "label": "onAnimationStart", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onAnimationIteration", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Animation.t => unit", + "documentation": null + }, { + "label": "onTransitionEnd", + "kind": 4, + "tags": [], + "detail": "ReactEvent.Transition.t => unit", + "documentation": null + }, { + "label": "accentHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "accumulate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "additive", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alignmentBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "allowReorder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "alphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "amplitude", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "arabicForm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ascent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "attributeType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "autoReverse", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "azimuth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseFrequency", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baseProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "baselineShift", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bbox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "bias", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "by", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "calcMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "capHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clip", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPath", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipPathUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "clipRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorInterpolationFilters", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorProfile", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "colorRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentScriptType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "contentStyleType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cursor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "cy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "d", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "decelerate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "descent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "diffuseConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "direction", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "display", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "divisor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dominantBaseline", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "edgeMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "elevation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "enableBackground", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "exponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "externalResourcesRequired", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fill", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fillRule", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filter", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterRes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "filterUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "floodOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "focusable", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontFamily", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSize", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontSizeAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStretch", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontStyle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontVariant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fontWeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fomat", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "from", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "fy", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "g2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphName", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationHorizontal", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphOrientationVertical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "glyphRef", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "gradientUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "hanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "horizOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ideographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "imageRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "in2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "intercept", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k3", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "k4", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelMatrix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kernelUnitLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "kerning", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyPoints", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keySplines", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "keyTimes", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lengthAdjust", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "letterSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "lightingColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "limitingConeAngle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "local", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerEnd", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerMid", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerStart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "markerWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mask", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "maskUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "mode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "numOctaves", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "offset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "opacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "operator", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "order", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orient", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "orientation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "origin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overflowY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "overlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "paintOrder", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "panose1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pathLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternContentUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternTransform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "patternUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointerEvents", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "points", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "pointsAtZ", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAlpha", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "preserveAspectRatio", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "primitiveUnits", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "r", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "radius", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "refY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "renderingIntent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatCount", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "repeatDur", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredExtensions", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "requiredFeatures", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "restart", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "result", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rotate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "rx", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "ry", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "scale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "seed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "shapeRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "slope", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularConstant", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "specularExponent", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "speed", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "spreadMethod", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "startOffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stdDeviation", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemh", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stemv", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stitchTiles", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopColor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stopOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughPosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strikethroughThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "string", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "stroke", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDasharray", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeDashoffset", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinecap", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeLinejoin", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeMiterlimit", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeOpacity", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "strokeWidth", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "surfaceScale", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "systemLanguage", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "tableValues", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "targetY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textAnchor", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textDecoration", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textLength", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "textRendering", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "transform", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "u2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlinePosition", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "underlineThickness", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeBidi", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unicodeRange", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "unitsPerEm", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vAlphabetic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vHanging", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vIdeographic", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vMathematical", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "values", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vectorEffect", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "version", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertAdvY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginX", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vertOriginY", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewBox", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "viewTarget", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "visibility", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "widths", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "wordSpacing", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "writingMode", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "x2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xHeight", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkActuate", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkArcrole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkHref", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkRole", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkShow", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkTitle", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xlinkType", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlns", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlnsXlink", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlBase", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlLang", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "xmlSpace", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y1", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "y2", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "yChannelSelector", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "z", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "zoomAndPan", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "about", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "datatype", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "inlist", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "prefix", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "property", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "resource", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "typeof", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "vocab", + "kind": 4, + "tags": [], + "detail": "string", + "documentation": null + }, { + "label": "dangerouslySetInnerHTML", + "kind": 4, + "tags": [], + "detail": "{\"__html\": string}", + "documentation": null + }, { + "label": "suppressContentEditableWarning", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "key", + "kind": 4, + "tags": [], + "detail": "string", "documentation": null }] diff --git a/analysis/tests/src/expected/SignatureHelp.res.txt b/analysis/tests/src/expected/SignatureHelp.res.txt index 802874b2f..4c98da89c 100644 --- a/analysis/tests/src/expected/SignatureHelp.res.txt +++ b/analysis/tests/src/expected/SignatureHelp.res.txt @@ -38,10 +38,10 @@ extracted params: Signature help src/SignatureHelp.res 22:29 posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:11->22:29] -Pexp_apply ...[22:11->22:19] (...[22:20->22:23], ~two22:26->22:29=...[22:26->22:29]) +Pexp_apply ...[22:11->22:19] (...[22:20->22:23]) posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:11->22:19] Pexp_ident someFunc:[22:11->22:19] -argAtCursor: ~two +argAtCursor: unlabelled<0> extracted params: [( int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] @@ -52,15 +52,15 @@ extracted params: "documentation": {"kind": "markdown", "value": " Does stuff. "} }], "activeSignature": 0, - "activeParameter": 1 + "activeParameter": 0 } Signature help src/SignatureHelp.res 25:33 posCursor:[25:19] posNoWhite:[25:18] Found expr:[25:11->25:35] -Pexp_apply ...[25:11->25:19] (...[25:20->25:23], ~two25:26->25:29=...[25:30->25:35]) +Pexp_apply ...[25:11->25:19] (...[25:20->25:23]) posCursor:[25:19] posNoWhite:[25:18] Found expr:[25:11->25:19] Pexp_ident someFunc:[25:11->25:19] -argAtCursor: ~two +argAtCursor: unlabelled<0> extracted params: [( int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] @@ -71,15 +71,15 @@ extracted params: "documentation": {"kind": "markdown", "value": " Does stuff. "} }], "activeSignature": 0, - "activeParameter": 1 + "activeParameter": 0 } Signature help src/SignatureHelp.res 28:38 posCursor:[28:19] posNoWhite:[28:18] Found expr:[28:11->28:42] -Pexp_apply ...[28:11->28:19] (...[28:20->28:23], ~two28:26->28:29=...[28:30->28:35], ~four28:38->28:42=...[28:38->28:42]) +Pexp_apply ...[28:11->28:19] (...[28:20->28:23]) posCursor:[28:19] posNoWhite:[28:18] Found expr:[28:11->28:19] Pexp_ident someFunc:[28:11->28:19] -argAtCursor: ~four +argAtCursor: unlabelled<0> extracted params: [( int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] @@ -90,15 +90,15 @@ extracted params: "documentation": {"kind": "markdown", "value": " Does stuff. "} }], "activeSignature": 0, - "activeParameter": 3 + "activeParameter": 0 } Signature help src/SignatureHelp.res 31:42 posCursor:[31:19] posNoWhite:[31:18] Found expr:[31:11->31:44] -Pexp_apply ...[31:11->31:19] (...[31:20->31:23], ~two31:26->31:29=...[31:30->31:35], ~four31:38->31:42=...[31:43->31:44]) +Pexp_apply ...[31:11->31:19] (...[31:20->31:23]) posCursor:[31:19] posNoWhite:[31:18] Found expr:[31:11->31:19] Pexp_ident someFunc:[31:11->31:19] -argAtCursor: ~four +argAtCursor: unlabelled<0> extracted params: [( int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] @@ -109,7 +109,7 @@ extracted params: "documentation": {"kind": "markdown", "value": " Does stuff. "} }], "activeSignature": 0, - "activeParameter": 3 + "activeParameter": 0 } Signature help src/SignatureHelp.res 34:21 @@ -165,10 +165,10 @@ extracted params: Signature help src/SignatureHelp.res 43:33 posCursor:[43:29] posNoWhite:[43:28] Found expr:[43:11->43:34] -Pexp_apply ...[43:11->43:29] (~age43:31->43:34=...[43:31->43:34]) +Pexp_apply ...[43:11->43:29] () posCursor:[43:29] posNoWhite:[43:28] Found expr:[43:11->43:29] Pexp_ident Completion.Lib.foo:[43:11->43:29] -argAtCursor: ~age +argAtCursor: unlabelled<0> extracted params: [(~age: int, ~name: string] { @@ -177,7 +177,7 @@ extracted params: "parameters": [{"label": [0, 10], "documentation": {"kind": "markdown", "value": "```rescript\nint\n```"}}, {"label": [12, 25], "documentation": {"kind": "markdown", "value": "```rescript\nstring\n```"}}] }], "activeSignature": 0, - "activeParameter": 0 + "activeParameter": -1 } Signature help src/SignatureHelp.res 50:24 @@ -271,18 +271,11 @@ posCursor:[71:28] posNoWhite:[71:27] Found expr:[71:11->71:33] Pexp_apply ...[71:11->71:13] (...[71:16->71:30]) posCursor:[71:28] posNoWhite:[71:27] Found expr:[71:16->71:30] Pexp_apply ...[71:16->71:28] (...[71:29->71:30]) -posCursor:[71:28] posNoWhite:[71:27] Found expr:[71:16->71:28] -Pexp_ident iAmSoSpecial:[71:16->71:28] -argAtCursor: unlabelled<0> -extracted params: -[string] +Attribute id:res.braces:[71:14->71:32] label:{ { - "signatures": [{ - "label": "string => unit", - "parameters": [{"label": [0, 6], "documentation": {"kind": "markdown", "value": "```rescript\nstring\n```"}}] - }], - "activeSignature": 0, - "activeParameter": 0 + "signatures": [], + "activeSignature": null, + "activeParameter": null } Signature help src/SignatureHelp.res 74:40 @@ -290,21 +283,11 @@ posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:11->74:47] Pexp_apply ...[74:11->74:13] (...[74:16->74:44]) posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:16->74:44] Pexp_apply ...[74:16->74:28] (...[74:31->74:41]) -posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:31->74:41] -Pexp_apply ...[74:31->74:39] (...[74:40->74:41]) -posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:31->74:39] -Pexp_ident someFunc:[74:31->74:39] -argAtCursor: unlabelled<0> -extracted params: -[( - int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] +Attribute id:res.braces:[74:14->74:46] label:{ +Attribute id:res.braces:[74:29->74:43] label:{ { - "signatures": [{ - "label": "(\n int,\n ~two: string=?,\n ~three: unit => unit,\n ~four: someVariant,\n unit,\n) => unit", - "parameters": [{"label": [0, 7], "documentation": {"kind": "markdown", "value": "```rescript\nint\n```"}}, {"label": [11, 25], "documentation": {"kind": "markdown", "value": "```rescript\noption\n```"}}, {"label": [29, 49], "documentation": {"kind": "markdown", "value": ""}}, {"label": [53, 71], "documentation": {"kind": "markdown", "value": "```rescript\nsomeVariant\n```\n```rescript\ntype someVariant = One | Two | Three\n```\nGo to: [Type definition](command:rescript-vscode.go_to_location?%5B%22SignatureHelp.res%22%2C0%2C0%5D)"}}, {"label": [75, 79], "documentation": {"kind": "markdown", "value": "```rescript\nint\n```"}}], - "documentation": {"kind": "markdown", "value": " Does stuff. "} - }], - "activeSignature": 0, - "activeParameter": 0 + "signatures": [], + "activeSignature": null, + "activeParameter": null } diff --git a/analysis/tests/src/expected/Xform.res.txt b/analysis/tests/src/expected/Xform.res.txt index d298604ae..609836b82 100644 --- a/analysis/tests/src/expected/Xform.res.txt +++ b/analysis/tests/src/expected/Xform.res.txt @@ -41,14 +41,14 @@ Hit: Add braces to function {"start": {"line": 26, "character": 0}, "end": {"line": 32, "character": 3}} newText: <--here -let foo = x => { +let foo = x => // ^xfm + @ns.braces switch x { | None => 33 | Some(q) => q.T.a + 1 // ^xfm } -} Xform src/Xform.res 34:21 Hit: Add type annotation @@ -71,9 +71,7 @@ Hit: Add braces to function {"start": {"line": 48, "character": 0}, "end": {"line": 48, "character": 25}} newText: <--here -let noBraces = () => { - name -} +let noBraces = () => @ns.braces name Xform src/Xform.res 52:34 Hit: Add braces to function @@ -81,9 +79,7 @@ Hit: Add braces to function newText: <--here let nested = () => { - let _noBraces = (_x, _y, _z) => { - "someNewFunc" - } + let _noBraces = (_x, _y, _z) => @ns.braces "someNewFunc" // ^xfm } @@ -92,10 +88,10 @@ Hit: Add braces to function {"start": {"line": 58, "character": 4}, "end": {"line": 62, "character": 7}} newText: <--here - let foo = (_x, y, _z) => { + let foo = (_x, y, _z) => + @ns.braces switch y { | #some => 3 | #stuff => 4 } - } diff --git a/analysis/vendor/res_outcome_printer/reactjs_jsx_ppx_v3.ml b/analysis/vendor/res_outcome_printer/reactjs_jsx_ppx_v3.ml deleted file mode 100644 index d4bbcd5bd..000000000 --- a/analysis/vendor/res_outcome_printer/reactjs_jsx_ppx_v3.ml +++ /dev/null @@ -1,1233 +0,0 @@ -open Ast_helper -open Ast_mapper -open Asttypes -open Parsetree -open Longident - -let rec find_opt p = function - | [] -> None - | x :: l -> if p x then Some x else find_opt p l - -let nolabel = Nolabel - -let labelled str = Labelled str - -let optional str = Optional str - -let isOptional str = - match str with - | Optional _ -> true - | _ -> false - -let isLabelled str = - match str with - | Labelled _ -> true - | _ -> false - -let getLabel str = - match str with - | Optional str | Labelled str -> str - | Nolabel -> "" - -let optionIdent = Lident "option" - -let constantString ~loc str = - Ast_helper.Exp.constant ~loc (Pconst_string (str, None)) - -let safeTypeFromValue valueStr = - let valueStr = getLabel valueStr in - match String.sub valueStr 0 1 with - | "_" -> "T" ^ valueStr - | _ -> valueStr - [@@raises Invalid_argument] - -let keyType loc = - Typ.constr ~loc {loc; txt = optionIdent} - [Typ.constr ~loc {loc; txt = Lident "string"} []] - -type 'a children = ListLiteral of 'a | Exact of 'a - -type componentConfig = {propsName: string} - -(* if children is a list, convert it to an array while mapping each element. If not, just map over it, as usual *) -let transformChildrenIfListUpper ~loc ~mapper theList = - let rec transformChildren_ theList accum = - (* not in the sense of converting a list to an array; convert the AST - reprensentation of a list to the AST reprensentation of an array *) - match theList with - | {pexp_desc = Pexp_construct ({txt = Lident "[]"}, None)} -> ( - match accum with - | [singleElement] -> Exact singleElement - | accum -> ListLiteral (Exp.array ~loc (List.rev accum))) - | { - pexp_desc = - Pexp_construct - ({txt = Lident "::"}, Some {pexp_desc = Pexp_tuple [v; acc]}); - } -> - transformChildren_ acc (mapper.expr mapper v :: accum) - | notAList -> Exact (mapper.expr mapper notAList) - in - transformChildren_ theList [] - -let transformChildrenIfList ~loc ~mapper theList = - let rec transformChildren_ theList accum = - (* not in the sense of converting a list to an array; convert the AST - reprensentation of a list to the AST reprensentation of an array *) - match theList with - | {pexp_desc = Pexp_construct ({txt = Lident "[]"}, None)} -> - Exp.array ~loc (List.rev accum) - | { - pexp_desc = - Pexp_construct - ({txt = Lident "::"}, Some {pexp_desc = Pexp_tuple [v; acc]}); - } -> - transformChildren_ acc (mapper.expr mapper v :: accum) - | notAList -> mapper.expr mapper notAList - in - transformChildren_ theList [] - -let extractChildren ?(removeLastPositionUnit = false) ~loc propsAndChildren = - let rec allButLast_ lst acc = - match lst with - | [] -> [] - | [(Nolabel, {pexp_desc = Pexp_construct ({txt = Lident "()"}, None)})] -> - acc - | (Nolabel, _) :: _rest -> - raise - (Invalid_argument - "JSX: found non-labelled argument before the last position") - | arg :: rest -> allButLast_ rest (arg :: acc) - [@@raises Invalid_argument] - in - let allButLast lst = - allButLast_ lst [] |> List.rev - [@@raises Invalid_argument] - in - match - List.partition - (fun (label, _) -> label = labelled "children") - propsAndChildren - with - | [], props -> - (* no children provided? Place a placeholder list *) - ( Exp.construct ~loc {loc; txt = Lident "[]"} None, - if removeLastPositionUnit then allButLast props else props ) - | [(_, childrenExpr)], props -> - (childrenExpr, if removeLastPositionUnit then allButLast props else props) - | _ -> - raise - (Invalid_argument "JSX: somehow there's more than one `children` label") - [@@raises Invalid_argument] - -let unerasableIgnore loc = - ( {loc; txt = "warning"}, - PStr [Str.eval (Exp.constant (Pconst_string ("-16", None)))] ) - -let merlinFocus = ({loc = Location.none; txt = "merlin.focus"}, PStr []) - -(* Helper method to look up the [@react.component] attribute *) -let hasAttr (loc, _) = loc.txt = "react.component" - -(* Helper method to filter out any attribute that isn't [@react.component] *) -let otherAttrsPure (loc, _) = loc.txt <> "react.component" - -(* Iterate over the attributes and try to find the [@react.component] attribute *) -let hasAttrOnBinding {pvb_attributes} = find_opt hasAttr pvb_attributes <> None - -(* Finds the name of the variable the binding is assigned to, otherwise raises Invalid_argument *) -let getFnName binding = - match binding with - | {pvb_pat = {ppat_desc = Ppat_var {txt}}} -> txt - | _ -> - raise (Invalid_argument "react.component calls cannot be destructured.") - [@@raises Invalid_argument] - -let makeNewBinding binding expression newName = - match binding with - | {pvb_pat = {ppat_desc = Ppat_var ppat_var} as pvb_pat} -> - { - binding with - pvb_pat = - {pvb_pat with ppat_desc = Ppat_var {ppat_var with txt = newName}}; - pvb_expr = expression; - pvb_attributes = [merlinFocus]; - } - | _ -> - raise (Invalid_argument "react.component calls cannot be destructured.") - [@@raises Invalid_argument] - -(* Lookup the value of `props` otherwise raise Invalid_argument error *) -let getPropsNameValue _acc (loc, exp) = - match (loc, exp) with - | {txt = Lident "props"}, {pexp_desc = Pexp_ident {txt = Lident str}} -> - {propsName = str} - | {txt}, _ -> - raise - (Invalid_argument - ("react.component only accepts props as an option, given: " - ^ Longident.last txt)) - [@@raises Invalid_argument] - -(* Lookup the `props` record or string as part of [@react.component] and store the name for use when rewriting *) -let getPropsAttr payload = - let defaultProps = {propsName = "Props"} in - match payload with - | Some - (PStr - ({ - pstr_desc = - Pstr_eval ({pexp_desc = Pexp_record (recordFields, None)}, _); - } - :: _rest)) -> - List.fold_left getPropsNameValue defaultProps recordFields - | Some - (PStr - ({ - pstr_desc = - Pstr_eval ({pexp_desc = Pexp_ident {txt = Lident "props"}}, _); - } - :: _rest)) -> - {propsName = "props"} - | Some (PStr ({pstr_desc = Pstr_eval (_, _)} :: _rest)) -> - raise - (Invalid_argument - "react.component accepts a record config with props as an options.") - | _ -> defaultProps - [@@raises Invalid_argument] - -(* Plucks the label, loc, and type_ from an AST node *) -let pluckLabelDefaultLocType (label, default, _, _, loc, type_) = - (label, default, loc, type_) - -(* Lookup the filename from the location information on the AST node and turn it into a valid module identifier *) -let filenameFromLoc (pstr_loc : Location.t) = - let fileName = - match pstr_loc.loc_start.pos_fname with - | "" -> !Location.input_name - | fileName -> fileName - in - let fileName = - try Filename.chop_extension (Filename.basename fileName) - with Invalid_argument _ -> fileName - in - let fileName = String.capitalize_ascii fileName in - fileName - -(* Build a string representation of a module name with segments separated by $ *) -let makeModuleName fileName nestedModules fnName = - let fullModuleName = - match (fileName, nestedModules, fnName) with - (* TODO: is this even reachable? It seems like the fileName always exists *) - | "", nestedModules, "make" -> nestedModules - | "", nestedModules, fnName -> List.rev (fnName :: nestedModules) - | fileName, nestedModules, "make" -> fileName :: List.rev nestedModules - | fileName, nestedModules, fnName -> - fileName :: List.rev (fnName :: nestedModules) - in - let fullModuleName = String.concat "$" fullModuleName in - fullModuleName - -(* - AST node builders - These functions help us build AST nodes that are needed when transforming a [@react.component] into a - constructor and a props external -*) - -(* Build an AST node representing all named args for the `external` definition for a component's props *) -let rec recursivelyMakeNamedArgsForExternal list args = - match list with - | (label, default, loc, interiorType) :: tl -> - recursivelyMakeNamedArgsForExternal tl - (Typ.arrow ~loc label - (match (label, interiorType, default) with - (* ~foo=1 *) - | label, None, Some _ -> - { - ptyp_desc = Ptyp_var (safeTypeFromValue label); - ptyp_loc = loc; - ptyp_attributes = []; - } - (* ~foo: int=1 *) - | _label, Some type_, Some _ -> type_ - (* ~foo: option(int)=? *) - | ( label, - Some {ptyp_desc = Ptyp_constr ({txt = Lident "option"}, [type_])}, - _ ) - | ( label, - Some - { - ptyp_desc = - Ptyp_constr - ({txt = Ldot (Lident "*predef*", "option")}, [type_]); - }, - _ ) - (* ~foo: int=? - note this isnt valid. but we want to get a type error *) - | label, Some type_, _ - when isOptional label -> - type_ - (* ~foo=? *) - | label, None, _ when isOptional label -> - { - ptyp_desc = Ptyp_var (safeTypeFromValue label); - ptyp_loc = loc; - ptyp_attributes = []; - } - (* ~foo *) - | label, None, _ -> - { - ptyp_desc = Ptyp_var (safeTypeFromValue label); - ptyp_loc = loc; - ptyp_attributes = []; - } - | _label, Some type_, _ -> type_) - args) - | [] -> args - [@@raises Invalid_argument] - -(* Build an AST node for the [@bs.obj] representing props for a component *) -let makePropsValue fnName loc namedArgListWithKeyAndRef propsType = - let propsName = fnName ^ "Props" in - { - pval_name = {txt = propsName; loc}; - pval_type = - recursivelyMakeNamedArgsForExternal namedArgListWithKeyAndRef - (Typ.arrow nolabel - { - ptyp_desc = Ptyp_constr ({txt = Lident "unit"; loc}, []); - ptyp_loc = loc; - ptyp_attributes = []; - } - propsType); - pval_prim = [""]; - pval_attributes = [({txt = "bs.obj"; loc}, PStr [])]; - pval_loc = loc; - } - [@@raises Invalid_argument] - -(* Build an AST node representing an `external` with the definition of the [@bs.obj] *) -let makePropsExternal fnName loc namedArgListWithKeyAndRef propsType = - { - pstr_loc = loc; - pstr_desc = - Pstr_primitive - (makePropsValue fnName loc namedArgListWithKeyAndRef propsType); - } - [@@raises Invalid_argument] - -(* Build an AST node for the signature of the `external` definition *) -let makePropsExternalSig fnName loc namedArgListWithKeyAndRef propsType = - { - psig_loc = loc; - psig_desc = - Psig_value (makePropsValue fnName loc namedArgListWithKeyAndRef propsType); - } - [@@raises Invalid_argument] - -(* Build an AST node for the props name when converted to an object inside the function signature *) -let makePropsName ~loc name = - {ppat_desc = Ppat_var {txt = name; loc}; ppat_loc = loc; ppat_attributes = []} - -let makeObjectField loc (str, attrs, type_) = - Otag ({loc; txt = str}, attrs, type_) - -(* Build an AST node representing a "closed" object representing a component's props *) -let makePropsType ~loc namedTypeList = - Typ.mk ~loc - (Ptyp_object (List.map (makeObjectField loc) namedTypeList, Closed)) - -(* Builds an AST node for the entire `external` definition of props *) -let makeExternalDecl fnName loc namedArgListWithKeyAndRef namedTypeList = - makePropsExternal fnName loc - (List.map pluckLabelDefaultLocType namedArgListWithKeyAndRef) - (makePropsType ~loc namedTypeList) - [@@raises Invalid_argument] - -(* TODO: some line number might still be wrong *) -let jsxMapper () = - let jsxVersion = ref None in - - let transformUppercaseCall3 modulePath mapper loc attrs _ callArguments = - let children, argsWithLabels = - extractChildren ~loc ~removeLastPositionUnit:true callArguments - in - let argsForMake = argsWithLabels in - let childrenExpr = transformChildrenIfListUpper ~loc ~mapper children in - let recursivelyTransformedArgsForMake = - argsForMake - |> List.map (fun (label, expression) -> - (label, mapper.expr mapper expression)) - in - let childrenArg = ref None in - let args = - recursivelyTransformedArgsForMake - @ (match childrenExpr with - | Exact children -> [(labelled "children", children)] - | ListLiteral {pexp_desc = Pexp_array list} when list = [] -> [] - | ListLiteral expression -> - (* this is a hack to support react components that introspect into their children *) - childrenArg := Some expression; - [ - ( labelled "children", - Exp.ident ~loc {loc; txt = Ldot (Lident "React", "null")} ); - ]) - @ [(nolabel, Exp.construct ~loc {loc; txt = Lident "()"} None)] - in - let isCap str = - let first = String.sub str 0 1 [@@raises Invalid_argument] in - let capped = String.uppercase_ascii first in - first = capped - [@@raises Invalid_argument] - in - let ident = - match modulePath with - | Lident _ -> Ldot (modulePath, "make") - | Ldot (_modulePath, value) as fullPath when isCap value -> - Ldot (fullPath, "make") - | modulePath -> modulePath - in - let propsIdent = - match ident with - | Lident path -> Lident (path ^ "Props") - | Ldot (ident, path) -> Ldot (ident, path ^ "Props") - | _ -> - raise - (Invalid_argument - "JSX name can't be the result of function applications") - in - let props = - Exp.apply ~attrs ~loc (Exp.ident ~loc {loc; txt = propsIdent}) args - in - (* handle key, ref, children *) - (* React.createElement(Component.make, props, ...children) *) - match !childrenArg with - | None -> - Exp.apply ~loc ~attrs - (Exp.ident ~loc {loc; txt = Ldot (Lident "React", "createElement")}) - [(nolabel, Exp.ident ~loc {txt = ident; loc}); (nolabel, props)] - | Some children -> - Exp.apply ~loc ~attrs - (Exp.ident ~loc - {loc; txt = Ldot (Lident "React", "createElementVariadic")}) - [ - (nolabel, Exp.ident ~loc {txt = ident; loc}); - (nolabel, props); - (nolabel, children); - ] - [@@raises Invalid_argument] - in - - let transformLowercaseCall3 mapper loc attrs callArguments id = - let children, nonChildrenProps = extractChildren ~loc callArguments in - let componentNameExpr = constantString ~loc id in - let childrenExpr = transformChildrenIfList ~loc ~mapper children in - let createElementCall = - match children with - (* [@JSX] div(~children=[a]), coming from
a
*) - | { - pexp_desc = - ( Pexp_construct ({txt = Lident "::"}, Some {pexp_desc = Pexp_tuple _}) - | Pexp_construct ({txt = Lident "[]"}, None) ); - } -> - "createDOMElementVariadic" - (* [@JSX] div(~children= value), coming from
...(value)
*) - | _ -> - raise - (Invalid_argument - "A spread as a DOM element's children don't make sense written \ - together. You can simply remove the spread.") - in - let args = - match nonChildrenProps with - | [_justTheUnitArgumentAtEnd] -> - [ - (* "div" *) - (nolabel, componentNameExpr); - (* [|moreCreateElementCallsHere|] *) - (nolabel, childrenExpr); - ] - | nonEmptyProps -> - let propsCall = - Exp.apply ~loc - (Exp.ident ~loc {loc; txt = Ldot (Lident "ReactDOMRe", "domProps")}) - (nonEmptyProps - |> List.map (fun (label, expression) -> - (label, mapper.expr mapper expression))) - in - [ - (* "div" *) - (nolabel, componentNameExpr); - (* ReactDOMRe.props(~className=blabla, ~foo=bar, ()) *) - (labelled "props", propsCall); - (* [|moreCreateElementCallsHere|] *) - (nolabel, childrenExpr); - ] - in - Exp.apply - ~loc (* throw away the [@JSX] attribute and keep the others, if any *) - ~attrs - (* ReactDOMRe.createElement *) - (Exp.ident ~loc - {loc; txt = Ldot (Lident "ReactDOMRe", createElementCall)}) - args - [@@raises Invalid_argument] - in - - let rec recursivelyTransformNamedArgsForMake mapper expr list = - let expr = mapper.expr mapper expr in - match expr.pexp_desc with - (* TODO: make this show up with a loc. *) - | Pexp_fun (Labelled "key", _, _, _) | Pexp_fun (Optional "key", _, _, _) -> - raise - (Invalid_argument - "Key cannot be accessed inside of a component. Don't worry - you \ - can always key a component from its parent!") - | Pexp_fun (Labelled "ref", _, _, _) | Pexp_fun (Optional "ref", _, _, _) -> - raise - (Invalid_argument - "Ref cannot be passed as a normal prop. Please use `forwardRef` API \ - instead.") - | Pexp_fun (arg, default, pattern, expression) - when isOptional arg || isLabelled arg -> - let () = - match (isOptional arg, pattern, default) with - | true, {ppat_desc = Ppat_constraint (_, {ptyp_desc})}, None -> ( - match ptyp_desc with - | Ptyp_constr ({txt = Lident "option"}, [_]) -> () - | _ -> - let currentType = - match ptyp_desc with - | Ptyp_constr ({txt}, []) -> - String.concat "." (Longident.flatten txt) - | Ptyp_constr ({txt}, _innerTypeArgs) -> - String.concat "." (Longident.flatten txt) ^ "(...)" - | _ -> "..." - in - Location.prerr_warning pattern.ppat_loc - (Preprocessor - (Printf.sprintf - "ReasonReact: optional argument annotations must have \ - explicit `option`. Did you mean `option(%s)=?`?" - currentType))) - | _ -> () - in - let alias = - match pattern with - | {ppat_desc = Ppat_alias (_, {txt}) | Ppat_var {txt}} -> txt - | {ppat_desc = Ppat_any} -> "_" - | _ -> getLabel arg - in - let type_ = - match pattern with - | {ppat_desc = Ppat_constraint (_, type_)} -> Some type_ - | _ -> None - in - - recursivelyTransformNamedArgsForMake mapper expression - ((arg, default, pattern, alias, pattern.ppat_loc, type_) :: list) - | Pexp_fun - ( Nolabel, - _, - {ppat_desc = Ppat_construct ({txt = Lident "()"}, _) | Ppat_any}, - _expression ) -> - (list, None) - | Pexp_fun - ( Nolabel, - _, - { - ppat_desc = - Ppat_var {txt} | Ppat_constraint ({ppat_desc = Ppat_var {txt}}, _); - }, - _expression ) -> - (list, Some txt) - | Pexp_fun (Nolabel, _, pattern, _expression) -> - Location.raise_errorf ~loc:pattern.ppat_loc - "ReasonReact: react.component refs only support plain arguments and \ - type annotations." - | _ -> (list, None) - [@@raises Invalid_argument] - in - - let argToType types (name, default, _noLabelName, _alias, loc, type_) = - match (type_, name, default) with - | Some {ptyp_desc = Ptyp_constr ({txt = Lident "option"}, [type_])}, name, _ - when isOptional name -> - ( getLabel name, - [], - { - type_ with - ptyp_desc = - Ptyp_constr ({loc = type_.ptyp_loc; txt = optionIdent}, [type_]); - } ) - :: types - | Some type_, name, Some _default -> - ( getLabel name, - [], - { - ptyp_desc = Ptyp_constr ({loc; txt = optionIdent}, [type_]); - ptyp_loc = loc; - ptyp_attributes = []; - } ) - :: types - | Some type_, name, _ -> (getLabel name, [], type_) :: types - | None, name, _ when isOptional name -> - ( getLabel name, - [], - { - ptyp_desc = - Ptyp_constr - ( {loc; txt = optionIdent}, - [ - { - ptyp_desc = Ptyp_var (safeTypeFromValue name); - ptyp_loc = loc; - ptyp_attributes = []; - }; - ] ); - ptyp_loc = loc; - ptyp_attributes = []; - } ) - :: types - | None, name, _ when isLabelled name -> - ( getLabel name, - [], - { - ptyp_desc = Ptyp_var (safeTypeFromValue name); - ptyp_loc = loc; - ptyp_attributes = []; - } ) - :: types - | _ -> types - [@@raises Invalid_argument] - in - - let argToConcreteType types (name, loc, type_) = - match name with - | name when isLabelled name -> (getLabel name, [], type_) :: types - | name when isOptional name -> - (getLabel name, [], Typ.constr ~loc {loc; txt = optionIdent} [type_]) - :: types - | _ -> types - in - - let nestedModules = ref [] in - let transformComponentDefinition mapper structure returnStructures = - match structure with - (* external *) - | { - pstr_loc; - pstr_desc = - Pstr_primitive - ({pval_name = {txt = fnName}; pval_attributes; pval_type} as - value_description); - } as pstr -> ( - match List.filter hasAttr pval_attributes with - | [] -> structure :: returnStructures - | [_] -> - let rec getPropTypes types ({ptyp_loc; ptyp_desc} as fullType) = - match ptyp_desc with - | Ptyp_arrow (name, type_, ({ptyp_desc = Ptyp_arrow _} as rest)) - when isLabelled name || isOptional name -> - getPropTypes ((name, ptyp_loc, type_) :: types) rest - | Ptyp_arrow (Nolabel, _type, rest) -> getPropTypes types rest - | Ptyp_arrow (name, type_, returnValue) - when isLabelled name || isOptional name -> - (returnValue, (name, returnValue.ptyp_loc, type_) :: types) - | _ -> (fullType, types) - in - let innerType, propTypes = getPropTypes [] pval_type in - let namedTypeList = List.fold_left argToConcreteType [] propTypes in - let pluckLabelAndLoc (label, loc, type_) = - (label, None (* default *), loc, Some type_) - in - let retPropsType = makePropsType ~loc:pstr_loc namedTypeList in - let externalPropsDecl = - makePropsExternal fnName pstr_loc - ((optional "key", None, pstr_loc, Some (keyType pstr_loc)) - :: List.map pluckLabelAndLoc propTypes) - retPropsType - in - (* can't be an arrow because it will defensively uncurry *) - let newExternalType = - Ptyp_constr - ( {loc = pstr_loc; txt = Ldot (Lident "React", "componentLike")}, - [retPropsType; innerType] ) - in - let newStructure = - { - pstr with - pstr_desc = - Pstr_primitive - { - value_description with - pval_type = {pval_type with ptyp_desc = newExternalType}; - pval_attributes = List.filter otherAttrsPure pval_attributes; - }; - } - in - externalPropsDecl :: newStructure :: returnStructures - | _ -> - raise - (Invalid_argument - "Only one react.component call can exist on a component at one \ - time")) - (* let component = ... *) - | {pstr_loc; pstr_desc = Pstr_value (recFlag, valueBindings)} -> - let fileName = filenameFromLoc pstr_loc in - let emptyLoc = Location.in_file fileName in - let mapBinding binding = - if hasAttrOnBinding binding then - let bindingLoc = binding.pvb_loc in - let bindingPatLoc = binding.pvb_pat.ppat_loc in - let binding = - { - binding with - pvb_pat = {binding.pvb_pat with ppat_loc = emptyLoc}; - pvb_loc = emptyLoc; - } - in - let fnName = getFnName binding in - let internalFnName = fnName ^ "$Internal" in - let fullModuleName = makeModuleName fileName !nestedModules fnName in - let modifiedBindingOld binding = - let expression = binding.pvb_expr in - (* TODO: there is a long-tail of unsupported features inside of blocks - Pexp_letmodule , Pexp_letexception , Pexp_ifthenelse *) - let rec spelunkForFunExpression expression = - match expression with - (* let make = (~prop) => ... *) - | {pexp_desc = Pexp_fun _} -> expression - (* let make = {let foo = bar in (~prop) => ...} *) - | {pexp_desc = Pexp_let (_recursive, _vbs, returnExpression)} -> - (* here's where we spelunk! *) - spelunkForFunExpression returnExpression - (* let make = React.forwardRef((~prop) => ...) *) - | { - pexp_desc = - Pexp_apply - (_wrapperExpression, [(Nolabel, innerFunctionExpression)]); - } -> - spelunkForFunExpression innerFunctionExpression - | { - pexp_desc = - Pexp_sequence (_wrapperExpression, innerFunctionExpression); - } -> - spelunkForFunExpression innerFunctionExpression - | _ -> - raise - (Invalid_argument - "react.component calls can only be on function \ - definitions or component wrappers (forwardRef, memo).") - [@@raises Invalid_argument] - in - spelunkForFunExpression expression - in - let modifiedBinding binding = - let hasApplication = ref false in - let wrapExpressionWithBinding expressionFn expression = - Vb.mk ~loc:bindingLoc - ~attrs:(List.filter otherAttrsPure binding.pvb_attributes) - (Pat.var ~loc:bindingPatLoc {loc = bindingPatLoc; txt = fnName}) - (expressionFn expression) - in - let expression = binding.pvb_expr in - let unerasableIgnoreExp exp = - { - exp with - pexp_attributes = - unerasableIgnore emptyLoc :: exp.pexp_attributes; - } - in - (* TODO: there is a long-tail of unsupported features inside of blocks - Pexp_letmodule , Pexp_letexception , Pexp_ifthenelse *) - let rec spelunkForFunExpression expression = - match expression with - (* let make = (~prop) => ... with no final unit *) - | { - pexp_desc = - Pexp_fun - ( ((Labelled _ | Optional _) as label), - default, - pattern, - ({pexp_desc = Pexp_fun _} as internalExpression) ); - } -> - let wrap, hasUnit, exp = - spelunkForFunExpression internalExpression - in - ( wrap, - hasUnit, - unerasableIgnoreExp - { - expression with - pexp_desc = Pexp_fun (label, default, pattern, exp); - } ) - (* let make = (()) => ... *) - (* let make = (_) => ... *) - | { - pexp_desc = - Pexp_fun - ( Nolabel, - _default, - { - ppat_desc = - Ppat_construct ({txt = Lident "()"}, _) | Ppat_any; - }, - _internalExpression ); - } -> - ((fun a -> a), true, expression) - (* let make = (~prop) => ... *) - | { - pexp_desc = - Pexp_fun - ( (Labelled _ | Optional _), - _default, - _pattern, - _internalExpression ); - } -> - ((fun a -> a), false, unerasableIgnoreExp expression) - (* let make = (prop) => ... *) - | { - pexp_desc = - Pexp_fun (_nolabel, _default, pattern, _internalExpression); - } -> - if hasApplication.contents then - ((fun a -> a), false, unerasableIgnoreExp expression) - else - Location.raise_errorf ~loc:pattern.ppat_loc - "ReasonReact: props need to be labelled arguments.\n\ - \ If you are working with refs be sure to wrap with \ - React.forwardRef.\n\ - \ If your component doesn't have any props use () or _ \ - instead of a name." - (* let make = {let foo = bar in (~prop) => ...} *) - | {pexp_desc = Pexp_let (recursive, vbs, internalExpression)} -> - (* here's where we spelunk! *) - let wrap, hasUnit, exp = - spelunkForFunExpression internalExpression - in - ( wrap, - hasUnit, - {expression with pexp_desc = Pexp_let (recursive, vbs, exp)} - ) - (* let make = React.forwardRef((~prop) => ...) *) - | { - pexp_desc = - Pexp_apply (wrapperExpression, [(Nolabel, internalExpression)]); - } -> - let () = hasApplication := true in - let _, hasUnit, exp = - spelunkForFunExpression internalExpression - in - ( (fun exp -> Exp.apply wrapperExpression [(nolabel, exp)]), - hasUnit, - exp ) - | { - pexp_desc = Pexp_sequence (wrapperExpression, internalExpression); - } -> - let wrap, hasUnit, exp = - spelunkForFunExpression internalExpression - in - ( wrap, - hasUnit, - { - expression with - pexp_desc = Pexp_sequence (wrapperExpression, exp); - } ) - | e -> ((fun a -> a), false, e) - in - let wrapExpression, hasUnit, expression = - spelunkForFunExpression expression - in - (wrapExpressionWithBinding wrapExpression, hasUnit, expression) - in - let bindingWrapper, hasUnit, expression = modifiedBinding binding in - let reactComponentAttribute = - try Some (List.find hasAttr binding.pvb_attributes) - with Not_found -> None - in - let _attr_loc, payload = - match reactComponentAttribute with - | Some (loc, payload) -> (loc.loc, Some payload) - | None -> (emptyLoc, None) - in - let props = getPropsAttr payload in - (* do stuff here! *) - let namedArgList, forwardRef = - recursivelyTransformNamedArgsForMake mapper - (modifiedBindingOld binding) - [] - in - let namedArgListWithKeyAndRef = - ( optional "key", - None, - Pat.var {txt = "key"; loc = emptyLoc}, - "key", - emptyLoc, - Some (keyType emptyLoc) ) - :: namedArgList - in - let namedArgListWithKeyAndRef = - match forwardRef with - | Some _ -> - ( optional "ref", - None, - Pat.var {txt = "key"; loc = emptyLoc}, - "ref", - emptyLoc, - None ) - :: namedArgListWithKeyAndRef - | None -> namedArgListWithKeyAndRef - in - let namedArgListWithKeyAndRefForNew = - match forwardRef with - | Some txt -> - namedArgList - @ [ - ( nolabel, - None, - Pat.var {txt; loc = emptyLoc}, - txt, - emptyLoc, - None ); - ] - | None -> namedArgList - in - let pluckArg (label, _, _, alias, loc, _) = - let labelString = - match label with - | label when isOptional label || isLabelled label -> - getLabel label - | _ -> "" - in - ( label, - match labelString with - | "" -> Exp.ident ~loc {txt = Lident alias; loc} - | labelString -> - Exp.apply ~loc - (Exp.ident ~loc {txt = Lident "##"; loc}) - [ - (nolabel, Exp.ident ~loc {txt = Lident props.propsName; loc}); - (nolabel, Exp.ident ~loc {txt = Lident labelString; loc}); - ] ) - in - let namedTypeList = List.fold_left argToType [] namedArgList in - let loc = emptyLoc in - let externalDecl = - makeExternalDecl fnName loc namedArgListWithKeyAndRef namedTypeList - in - let innerExpressionArgs = - List.map pluckArg namedArgListWithKeyAndRefForNew - @ - if hasUnit then - [(Nolabel, Exp.construct {loc; txt = Lident "()"} None)] - else [] - in - let innerExpression = - Exp.apply - (Exp.ident - { - loc; - txt = - Lident - (match recFlag with - | Recursive -> internalFnName - | Nonrecursive -> fnName); - }) - innerExpressionArgs - in - let innerExpressionWithRef = - match forwardRef with - | Some txt -> - { - innerExpression with - pexp_desc = - Pexp_fun - ( nolabel, - None, - { - ppat_desc = Ppat_var {txt; loc = emptyLoc}; - ppat_loc = emptyLoc; - ppat_attributes = []; - }, - innerExpression ); - } - | None -> innerExpression - in - let fullExpression = - Exp.fun_ nolabel None - { - ppat_desc = - Ppat_constraint - ( makePropsName ~loc:emptyLoc props.propsName, - makePropsType ~loc:emptyLoc namedTypeList ); - ppat_loc = emptyLoc; - ppat_attributes = []; - } - innerExpressionWithRef - in - let fullExpression = - match fullModuleName with - | "" -> fullExpression - | txt -> - Exp.let_ Nonrecursive - [ - Vb.mk ~loc:emptyLoc - (Pat.var ~loc:emptyLoc {loc = emptyLoc; txt}) - fullExpression; - ] - (Exp.ident ~loc:emptyLoc {loc = emptyLoc; txt = Lident txt}) - in - let bindings, newBinding = - match recFlag with - | Recursive -> - ( [ - bindingWrapper - (Exp.let_ ~loc:emptyLoc Recursive - [ - makeNewBinding binding expression internalFnName; - Vb.mk - (Pat.var {loc = emptyLoc; txt = fnName}) - fullExpression; - ] - (Exp.ident {loc = emptyLoc; txt = Lident fnName})); - ], - None ) - | Nonrecursive -> - ( [{binding with pvb_expr = expression; pvb_attributes = []}], - Some (bindingWrapper fullExpression) ) - in - (Some externalDecl, bindings, newBinding) - else (None, [binding], None) - [@@raises Invalid_argument] - in - let structuresAndBinding = List.map mapBinding valueBindings in - let otherStructures (extern, binding, newBinding) - (externs, bindings, newBindings) = - let externs = - match extern with - | Some extern -> extern :: externs - | None -> externs - in - let newBindings = - match newBinding with - | Some newBinding -> newBinding :: newBindings - | None -> newBindings - in - (externs, binding @ bindings, newBindings) - in - let externs, bindings, newBindings = - List.fold_right otherStructures structuresAndBinding ([], [], []) - in - externs - @ [{pstr_loc; pstr_desc = Pstr_value (recFlag, bindings)}] - @ (match newBindings with - | [] -> [] - | newBindings -> - [{pstr_loc = emptyLoc; pstr_desc = Pstr_value (recFlag, newBindings)}]) - @ returnStructures - | structure -> structure :: returnStructures - [@@raises Invalid_argument] - in - - let reactComponentTransform mapper structures = - List.fold_right (transformComponentDefinition mapper) structures [] - [@@raises Invalid_argument] - in - - let transformComponentSignature _mapper signature returnSignatures = - match signature with - | { - psig_loc; - psig_desc = - Psig_value - ({pval_name = {txt = fnName}; pval_attributes; pval_type} as - psig_desc); - } as psig -> ( - match List.filter hasAttr pval_attributes with - | [] -> signature :: returnSignatures - | [_] -> - let rec getPropTypes types ({ptyp_loc; ptyp_desc} as fullType) = - match ptyp_desc with - | Ptyp_arrow (name, type_, ({ptyp_desc = Ptyp_arrow _} as rest)) - when isOptional name || isLabelled name -> - getPropTypes ((name, ptyp_loc, type_) :: types) rest - | Ptyp_arrow (Nolabel, _type, rest) -> getPropTypes types rest - | Ptyp_arrow (name, type_, returnValue) - when isOptional name || isLabelled name -> - (returnValue, (name, returnValue.ptyp_loc, type_) :: types) - | _ -> (fullType, types) - in - let innerType, propTypes = getPropTypes [] pval_type in - let namedTypeList = List.fold_left argToConcreteType [] propTypes in - let pluckLabelAndLoc (label, loc, type_) = - (label, None, loc, Some type_) - in - let retPropsType = makePropsType ~loc:psig_loc namedTypeList in - let externalPropsDecl = - makePropsExternalSig fnName psig_loc - ((optional "key", None, psig_loc, Some (keyType psig_loc)) - :: List.map pluckLabelAndLoc propTypes) - retPropsType - in - (* can't be an arrow because it will defensively uncurry *) - let newExternalType = - Ptyp_constr - ( {loc = psig_loc; txt = Ldot (Lident "React", "componentLike")}, - [retPropsType; innerType] ) - in - let newStructure = - { - psig with - psig_desc = - Psig_value - { - psig_desc with - pval_type = {pval_type with ptyp_desc = newExternalType}; - pval_attributes = List.filter otherAttrsPure pval_attributes; - }; - } - in - externalPropsDecl :: newStructure :: returnSignatures - | _ -> - raise - (Invalid_argument - "Only one react.component call can exist on a component at one \ - time")) - | signature -> signature :: returnSignatures - [@@raises Invalid_argument] - in - - let reactComponentSignatureTransform mapper signatures = - List.fold_right (transformComponentSignature mapper) signatures [] - [@@raises Invalid_argument] - in - - let transformJsxCall mapper callExpression callArguments attrs = - match callExpression.pexp_desc with - | Pexp_ident caller -> ( - match caller with - | {txt = Lident "createElement"} -> - raise - (Invalid_argument - "JSX: `createElement` should be preceeded by a module name.") - (* Foo.createElement(~prop1=foo, ~prop2=bar, ~children=[], ()) *) - | {loc; txt = Ldot (modulePath, ("createElement" | "make"))} -> ( - match !jsxVersion with - | None | Some 3 -> - transformUppercaseCall3 modulePath mapper loc attrs callExpression - callArguments - | Some _ -> raise (Invalid_argument "JSX: the JSX version must be 3")) - (* div(~prop1=foo, ~prop2=bar, ~children=[bla], ()) *) - (* turn that into - ReactDOMRe.createElement(~props=ReactDOMRe.props(~props1=foo, ~props2=bar, ()), [|bla|]) *) - | {loc; txt = Lident id} -> ( - match !jsxVersion with - | None | Some 3 -> - transformLowercaseCall3 mapper loc attrs callArguments id - | Some _ -> raise (Invalid_argument "JSX: the JSX version must be 3")) - | {txt = Ldot (_, anythingNotCreateElementOrMake)} -> - raise - (Invalid_argument - ("JSX: the JSX attribute should be attached to a \ - `YourModuleName.createElement` or `YourModuleName.make` call. \ - We saw `" ^ anythingNotCreateElementOrMake ^ "` instead")) - | {txt = Lapply _} -> - (* don't think there's ever a case where this is reached *) - raise - (Invalid_argument - "JSX: encountered a weird case while processing the code. Please \ - report this!")) - | _ -> - raise - (Invalid_argument - "JSX: `createElement` should be preceeded by a simple, direct \ - module name.") - [@@raises Invalid_argument] - in - - let signature mapper signature = - default_mapper.signature mapper - @@ reactComponentSignatureTransform mapper signature - [@@raises Invalid_argument] - in - - let structure mapper structure = - match structure with - | structures -> - default_mapper.structure mapper - @@ reactComponentTransform mapper structures - [@@raises Invalid_argument] - in - - let expr mapper expression = - match expression with - (* Does the function application have the @JSX attribute? *) - | {pexp_desc = Pexp_apply (callExpression, callArguments); pexp_attributes} - -> ( - let jsxAttribute, nonJSXAttributes = - List.partition - (fun (attribute, _) -> attribute.txt = "JSX") - pexp_attributes - in - match (jsxAttribute, nonJSXAttributes) with - (* no JSX attribute *) - | [], _ -> default_mapper.expr mapper expression - | _, nonJSXAttributes -> - transformJsxCall mapper callExpression callArguments nonJSXAttributes) - (* is it a list with jsx attribute? Reason <>foo desugars to [@JSX][foo]*) - | { - pexp_desc = - ( Pexp_construct - ({txt = Lident "::"; loc}, Some {pexp_desc = Pexp_tuple _}) - | Pexp_construct ({txt = Lident "[]"; loc}, None) ); - pexp_attributes; - } as listItems -> ( - let jsxAttribute, nonJSXAttributes = - List.partition - (fun (attribute, _) -> attribute.txt = "JSX") - pexp_attributes - in - match (jsxAttribute, nonJSXAttributes) with - (* no JSX attribute *) - | [], _ -> default_mapper.expr mapper expression - | _, nonJSXAttributes -> - let fragment = - Exp.ident ~loc {loc; txt = Ldot (Lident "ReasonReact", "fragment")} - in - let childrenExpr = transformChildrenIfList ~loc ~mapper listItems in - let args = - [ - (* "div" *) - (nolabel, fragment); - (* [|moreCreateElementCallsHere|] *) - (nolabel, childrenExpr); - ] - in - Exp.apply - ~loc (* throw away the [@JSX] attribute and keep the others, if any *) - ~attrs:nonJSXAttributes - (* ReactDOMRe.createElement *) - (Exp.ident ~loc - {loc; txt = Ldot (Lident "ReactDOMRe", "createElement")}) - args) - (* Delegate to the default mapper, a deep identity traversal *) - | e -> default_mapper.expr mapper e - [@@raises Invalid_argument] - in - - let module_binding mapper module_binding = - let _ = nestedModules := module_binding.pmb_name.txt :: !nestedModules in - let mapped = default_mapper.module_binding mapper module_binding in - let _ = nestedModules := List.tl !nestedModules in - mapped - [@@raises Failure] - in - {default_mapper with structure; expr; signature; module_binding} - [@@raises Invalid_argument, Failure] - -let rewrite_implementation (code : Parsetree.structure) : Parsetree.structure = - let mapper = jsxMapper () in - mapper.structure mapper code - [@@raises Invalid_argument, Failure] - -let rewrite_signature (code : Parsetree.signature) : Parsetree.signature = - let mapper = jsxMapper () in - mapper.signature mapper code - [@@raises Invalid_argument, Failure] diff --git a/analysis/vendor/res_outcome_printer/reactjs_jsx_ppx_v3.mli b/analysis/vendor/res_outcome_printer/reactjs_jsx_ppx_v3.mli deleted file mode 100644 index da60a051c..000000000 --- a/analysis/vendor/res_outcome_printer/reactjs_jsx_ppx_v3.mli +++ /dev/null @@ -1,39 +0,0 @@ -(* - This is the module that handles turning Reason JSX' agnostic function call into - a ReasonReact-specific function call. Aka, this is a macro, using OCaml's ppx - facilities; https://whitequark.org/blog/2014/04/16/a-guide-to-extension- - points-in-ocaml/ - You wouldn't use this file directly; it's used by ReScript's - bsconfig.json. Specifically, there's a field called `react-jsx` inside the - field `reason`, which enables this ppx through some internal call in bsb -*) - -(* - There are two different transforms that can be selected in this file (v2 and v3): - v2: - transform `[@JSX] div(~props1=a, ~props2=b, ~children=[foo, bar], ())` into - `ReactDOMRe.createElement("div", ~props={"props1": 1, "props2": b}, [|foo, - bar|])`. - transform `[@JSX] div(~props1=a, ~props2=b, ~children=foo, ())` into - `ReactDOMRe.createElementVariadic("div", ~props={"props1": 1, "props2": b}, foo)`. - transform the upper-cased case - `[@JSX] Foo.createElement(~key=a, ~ref=b, ~foo=bar, ~children=[], ())` into - `ReasonReact.element(~key=a, ~ref=b, Foo.make(~foo=bar, [||]))` - transform `[@JSX] [foo]` into - `ReactDOMRe.createElement(ReasonReact.fragment, [|foo|])` - v3: - transform `[@JSX] div(~props1=a, ~props2=b, ~children=[foo, bar], ())` into - `ReactDOMRe.createDOMElementVariadic("div", ReactDOMRe.domProps(~props1=1, ~props2=b), [|foo, bar|])`. - transform the upper-cased case - `[@JSX] Foo.createElement(~key=a, ~ref=b, ~foo=bar, ~children=[], ())` into - `React.createElement(Foo.make, Foo.makeProps(~key=a, ~ref=b, ~foo=bar, ()))` - transform the upper-cased case - `[@JSX] Foo.createElement(~foo=bar, ~children=[foo, bar], ())` into - `React.createElementVariadic(Foo.make, Foo.makeProps(~foo=bar, ~children=React.null, ()), [|foo, bar|])` - transform `[@JSX] [foo]` into - `ReactDOMRe.createElement(ReasonReact.fragment, [|foo|])` -*) - -val rewrite_implementation : Parsetree.structure -> Parsetree.structure - -val rewrite_signature : Parsetree.signature -> Parsetree.signature diff --git a/analysis/vendor/res_outcome_printer/res_ast_conversion.ml b/analysis/vendor/res_outcome_printer/res_ast_conversion.ml index 419e8ae78..b8c419b80 100644 --- a/analysis/vendor/res_outcome_printer/res_ast_conversion.ml +++ b/analysis/vendor/res_outcome_printer/res_ast_conversion.ml @@ -77,96 +77,6 @@ let rec rewritePpatOpen longidentOpen pat = {pat with ppat_desc = Ppat_exception (rewritePpatOpen longidentOpen p)} | _ -> pat -let rec rewriteReasonFastPipe expr = - let open Parsetree in - match expr.pexp_desc with - | Pexp_apply - ( { - pexp_desc = - Pexp_apply - ( ({pexp_desc = Pexp_ident {txt = Longident.Lident "|."}} as op), - [(Asttypes.Nolabel, lhs); (Nolabel, rhs)] ); - pexp_attributes = subAttrs; - }, - args ) -> - let rhsLoc = {rhs.pexp_loc with loc_end = expr.pexp_loc.loc_end} in - let newLhs = - let expr = rewriteReasonFastPipe lhs in - {expr with pexp_attributes = List.concat [lhs.pexp_attributes; subAttrs]} - in - let newRhs = - { - pexp_loc = rhsLoc; - pexp_attributes = []; - pexp_desc = Pexp_apply (rhs, args); - } - in - let allArgs = (Asttypes.Nolabel, newLhs) :: [(Asttypes.Nolabel, newRhs)] in - {expr with pexp_desc = Pexp_apply (op, allArgs)} - | _ -> expr - -let makeReasonArityMapper ~forPrinter = - let open Ast_mapper in - { - default_mapper with - expr = - (fun mapper expr -> - match expr with - (* Don't mind this case, Reason doesn't handle this. *) - (* | {pexp_desc = Pexp_variant (lbl, args); pexp_loc; pexp_attributes} -> *) - (* let newArgs = match args with *) - (* | (Some {pexp_desc = Pexp_tuple [{pexp_desc = Pexp_tuple _ } as sp]}) as args-> *) - (* if forPrinter then args else Some sp *) - (* | Some {pexp_desc = Pexp_tuple [sp]} -> Some sp *) - (* | _ -> args *) - (* in *) - (* default_mapper.expr mapper {pexp_desc=Pexp_variant(lbl, newArgs); pexp_loc; pexp_attributes} *) - | {pexp_desc = Pexp_construct (lid, args); pexp_loc; pexp_attributes} -> - let newArgs = - match args with - | Some {pexp_desc = Pexp_tuple [({pexp_desc = Pexp_tuple _} as sp)]} - as args -> - if forPrinter then args else Some sp - | Some {pexp_desc = Pexp_tuple [sp]} -> Some sp - | _ -> args - in - default_mapper.expr mapper - { - pexp_desc = Pexp_construct (lid, newArgs); - pexp_loc; - pexp_attributes; - } - | expr -> default_mapper.expr mapper (rewriteReasonFastPipe expr)); - pat = - (fun mapper pattern -> - match pattern with - (* Don't mind this case, Reason doesn't handle this. *) - (* | {ppat_desc = Ppat_variant (lbl, args); ppat_loc; ppat_attributes} -> *) - (* let newArgs = match args with *) - (* | (Some {ppat_desc = Ppat_tuple [{ppat_desc = Ppat_tuple _} as sp]}) as args -> *) - (* if forPrinter then args else Some sp *) - (* | Some {ppat_desc = Ppat_tuple [sp]} -> Some sp *) - (* | _ -> args *) - (* in *) - (* default_mapper.pat mapper {ppat_desc = Ppat_variant (lbl, newArgs); ppat_loc; ppat_attributes;} *) - | {ppat_desc = Ppat_construct (lid, args); ppat_loc; ppat_attributes} -> - let new_args = - match args with - | Some {ppat_desc = Ppat_tuple [({ppat_desc = Ppat_tuple _} as sp)]} - as args -> - if forPrinter then args else Some sp - | Some {ppat_desc = Ppat_tuple [sp]} -> Some sp - | _ -> args - in - default_mapper.pat mapper - { - ppat_desc = Ppat_construct (lid, new_args); - ppat_loc; - ppat_attributes; - } - | x -> default_mapper.pat mapper x); - } - let escapeTemplateLiteral s = let len = String.length s in let b = Buffer.create len in @@ -558,7 +468,7 @@ let normalize = }; ] ) -> let ternaryMarker = - (Location.mknoloc "ns.ternary", Parsetree.PStr []) + (Location.mknoloc "res.ternary", Parsetree.PStr []) in { Parsetree.pexp_loc = expr.pexp_loc; @@ -671,14 +581,6 @@ let normalize = | _ -> default_mapper.value_binding mapper vb); } -let normalizeReasonArityStructure ~forPrinter s = - let mapper = makeReasonArityMapper ~forPrinter in - mapper.Ast_mapper.structure mapper s - -let normalizeReasonAritySignature ~forPrinter s = - let mapper = makeReasonArityMapper ~forPrinter in - mapper.Ast_mapper.signature mapper s - let structure s = normalize.Ast_mapper.structure normalize s let signature s = normalize.Ast_mapper.signature normalize s diff --git a/analysis/vendor/res_outcome_printer/res_ast_conversion.mli b/analysis/vendor/res_outcome_printer/res_ast_conversion.mli index 8c868f44b..32163e8ce 100644 --- a/analysis/vendor/res_outcome_printer/res_ast_conversion.mli +++ b/analysis/vendor/res_outcome_printer/res_ast_conversion.mli @@ -12,12 +12,6 @@ val replaceStringLiteralStructure : val replaceStringLiteralSignature : (string * Location.t) list -> Parsetree.signature -> Parsetree.signature -(* Get rid of the explicit/implicit arity attributes *) -val normalizeReasonArityStructure : - forPrinter:bool -> Parsetree.structure -> Parsetree.structure -val normalizeReasonAritySignature : - forPrinter:bool -> Parsetree.signature -> Parsetree.signature - (* transform parts of the parsetree into a suitable parsetree suitable * for printing. Example: convert reason ternaries into rescript ternaries *) val structure : Parsetree.structure -> Parsetree.structure diff --git a/analysis/vendor/res_outcome_printer/res_comments_table.ml b/analysis/vendor/res_outcome_printer/res_comments_table.ml index 5ae962ae6..ed6373528 100644 --- a/analysis/vendor/res_outcome_printer/res_comments_table.ml +++ b/analysis/vendor/res_outcome_printer/res_comments_table.ml @@ -1,5 +1,6 @@ module Comment = Res_comment module Doc = Res_doc +module ParsetreeViewer = Res_parsetree_viewer type t = { leading: (Location.t, Comment.t list) Hashtbl.t; @@ -344,16 +345,22 @@ let getLoc node = let open Parsetree in match node with | Case case -> - {case.pc_lhs.ppat_loc with loc_end = case.pc_rhs.pexp_loc.loc_end} + { + case.pc_lhs.ppat_loc with + loc_end = + (match ParsetreeViewer.processBracesAttr case.pc_rhs with + | None, _ -> case.pc_rhs.pexp_loc.loc_end + | Some ({loc}, _), _ -> loc.Location.loc_end); + } | CoreType ct -> ct.ptyp_loc | ExprArgument expr -> ( match expr.Parsetree.pexp_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _attrs -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _attrs -> {loc with loc_end = expr.pexp_loc.loc_end} | _ -> expr.pexp_loc) | Expression e -> ( match e.pexp_attributes with - | ({txt = "ns.braces"; loc}, _) :: _ -> loc + | ({txt = "res.braces"; loc}, _) :: _ -> loc | _ -> e.pexp_loc) | ExprRecordRow (li, e) -> {li.loc with loc_end = e.pexp_loc.loc_end} | ExtensionConstructor ec -> ec.pext_loc @@ -692,9 +699,11 @@ and walkTypeDeclaration (td : Parsetree.type_declaration) t comments = | Ptype_abstract | Ptype_open -> rest | Ptype_record labelDeclarations -> let () = - walkList - (labelDeclarations |> List.map (fun ld -> LabelDeclaration ld)) - t rest + if labelDeclarations = [] then attach t.inside td.ptype_loc rest + else + walkList + (labelDeclarations |> List.map (fun ld -> LabelDeclaration ld)) + t rest in [] | Ptype_variant constructorDeclarations -> @@ -1023,22 +1032,26 @@ and walkExpression expr t comments = | Pexp_array exprs | Pexp_tuple exprs -> walkList (exprs |> List.map (fun e -> Expression e)) t comments | Pexp_record (rows, spreadExpr) -> - let comments = - match spreadExpr with - | None -> comments - | Some expr -> - let leading, inside, trailing = partitionByLoc comments expr.pexp_loc in - attach t.leading expr.pexp_loc leading; - walkExpression expr t inside; - let afterExpr, rest = - partitionAdjacentTrailing expr.pexp_loc trailing - in - attach t.trailing expr.pexp_loc afterExpr; - rest - in - walkList - (rows |> List.map (fun (li, e) -> ExprRecordRow (li, e))) - t comments + if rows = [] then attach t.inside expr.pexp_loc comments + else + let comments = + match spreadExpr with + | None -> comments + | Some expr -> + let leading, inside, trailing = + partitionByLoc comments expr.pexp_loc + in + attach t.leading expr.pexp_loc leading; + walkExpression expr t inside; + let afterExpr, rest = + partitionAdjacentTrailing expr.pexp_loc trailing + in + attach t.trailing expr.pexp_loc afterExpr; + rest + in + walkList + (rows |> List.map (fun (li, e) -> ExprRecordRow (li, e))) + t comments | Pexp_field (expr, longident) -> let leading, inside, trailing = partitionByLoc comments expr.pexp_loc in let trailing = @@ -1274,7 +1287,7 @@ and walkExpression expr t comments = Longident.Lident ( ":=" | "||" | "&&" | "=" | "==" | "<" | ">" | "!=" | "!==" | "<=" | ">=" | "|>" | "+" | "+." | "-" | "-." | "++" | "^" - | "*" | "*." | "/" | "/." | "**" | "|." | "<>" ); + | "*" | "*." | "/" | "/." | "**" | "|." | "|.u" | "<>" ); }; }, [(Nolabel, operand1); (Nolabel, operand2)] ) -> @@ -1290,6 +1303,17 @@ and walkExpression expr t comments = walkExpression operand2 t inside; (* (List.concat [inside; after]); *) attach t.trailing operand2.pexp_loc after + | Pexp_apply + ( {pexp_desc = Pexp_ident {txt = Longident.Ldot (Lident "Array", "get")}}, + [(Nolabel, parentExpr); (Nolabel, memberExpr)] ) -> + walkList [Expression parentExpr; Expression memberExpr] t comments + | Pexp_apply + ( {pexp_desc = Pexp_ident {txt = Longident.Ldot (Lident "Array", "set")}}, + [(Nolabel, parentExpr); (Nolabel, memberExpr); (Nolabel, targetExpr)] ) + -> + walkList + [Expression parentExpr; Expression memberExpr; Expression targetExpr] + t comments | Pexp_apply (callExpr, arguments) -> let before, inside, after = partitionByLoc comments callExpr.pexp_loc in let after = @@ -1304,9 +1328,43 @@ and walkExpression expr t comments = walkExpression callExpr t inside; after) in - let afterExpr, rest = partitionAdjacentTrailing callExpr.pexp_loc after in - attach t.trailing callExpr.pexp_loc afterExpr; - walkList (arguments |> List.map (fun (_, e) -> ExprArgument e)) t rest + if ParsetreeViewer.isJsxExpression expr then ( + let props = + arguments + |> List.filter (fun (label, _) -> + match label with + | Asttypes.Labelled "children" -> false + | Asttypes.Nolabel -> false + | _ -> true) + in + let maybeChildren = + arguments + |> List.find_opt (fun (label, _) -> + label = Asttypes.Labelled "children") + in + match maybeChildren with + (* There is no need to deal with this situation as the children cannot be NONE *) + | None -> () + | Some (_, children) -> + let leading, inside, _ = partitionByLoc after children.pexp_loc in + if props = [] then + (* All comments inside a tag are trailing comments of the tag if there are no props + + *) + let afterExpr, _ = + partitionAdjacentTrailing callExpr.pexp_loc after + in + attach t.trailing callExpr.pexp_loc afterExpr + else + walkList (props |> List.map (fun (_, e) -> ExprArgument e)) t leading; + walkExpression children t inside) + else + let afterExpr, rest = partitionAdjacentTrailing callExpr.pexp_loc after in + attach t.trailing callExpr.pexp_loc afterExpr; + walkList (arguments |> List.map (fun (_, e) -> ExprArgument e)) t rest | Pexp_fun (_, _, _, _) | Pexp_newtype _ -> ( let _, parameters, returnExpr = funExpr expr in let comments = @@ -1316,7 +1374,7 @@ and walkExpression expr t comments = let open Parsetree in let startPos = match pattern.ppat_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _attrs -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _attrs -> loc.loc_start | _ -> pattern.ppat_loc.loc_start in @@ -1375,7 +1433,7 @@ and walkExprPararameter (_attrs, _argLbl, exprOpt, pattern) t comments = and walkExprArgument expr t comments = match expr.Parsetree.pexp_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _attrs -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _attrs -> let leading, trailing = partitionLeadingTrailing comments loc in attach t.leading loc leading; let afterLabel, rest = partitionAdjacentTrailing loc trailing in @@ -1783,7 +1841,7 @@ and walkTypeParameters typeParameters t comments = visitListButContinueWithRemainingComments ~getLoc:(fun (_, _, typexpr) -> match typexpr.Parsetree.ptyp_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _attrs -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _attrs -> {loc with loc_end = typexpr.ptyp_loc.loc_end} | _ -> typexpr.ptyp_loc) ~walkNode:walkTypeParameter ~newlineDelimited:false typeParameters t diff --git a/analysis/vendor/res_outcome_printer/res_core.ml b/analysis/vendor/res_outcome_printer/res_core.ml index ba0e4d4de..6f52e1d60 100644 --- a/analysis/vendor/res_outcome_printer/res_core.ml +++ b/analysis/vendor/res_outcome_printer/res_core.ml @@ -7,6 +7,13 @@ module ResPrinter = Res_printer module Scanner = Res_scanner module Parser = Res_parser +module LoopProgress = struct + let listRest list = + match list with + | [] -> assert false + | _ :: rest -> rest +end + let mkLoc startLoc endLoc = Location.{loc_start = startLoc; loc_end = endLoc; loc_ghost = false} @@ -50,7 +57,7 @@ module ErrorMessages = struct let listPatternSpread = "List pattern matches only supports one `...` spread, at the end.\n\ Explanation: a list spread at the tail is efficient, but a spread in the \ - middle would create new list[s]; out of performance concern, our pattern \ + middle would create new lists; out of performance concern, our pattern \ matching currently guarantees to never create new intermediate data." let recordPatternSpread = @@ -81,15 +88,6 @@ module ErrorMessages = struct ...b}` wouldn't make sense, as `b` would override every field of `a` \ anyway." - let listExprSpread = - "Lists can only have one `...` spread, and at the end.\n\ - Explanation: lists are singly-linked list, where a node contains a value \ - and points to the next node. `list[a, ...bc]` efficiently creates a new \ - item and links `bc` as its next nodes. `[...bc, a]` would be expensive, \ - as it'd need to traverse `bc` and prepend each item to `a` one by one. We \ - therefore disallow such syntax sugar.\n\ - Solution: directly use `concat`." - let variantIdent = "A polymorphic variant (e.g. #id) must start with an alphabetical letter \ or be a number (e.g. #742)" @@ -157,10 +155,10 @@ module ErrorMessages = struct end let jsxAttr = (Location.mknoloc "JSX", Parsetree.PStr []) -let uncurryAttr = (Location.mknoloc "bs", Parsetree.PStr []) -let ternaryAttr = (Location.mknoloc "ns.ternary", Parsetree.PStr []) -let ifLetAttr = (Location.mknoloc "ns.iflet", Parsetree.PStr []) -let optionalAttr = (Location.mknoloc "ns.optional", Parsetree.PStr []) +let uncurriedAppAttr = (Location.mknoloc "res.uapp", Parsetree.PStr []) +let ternaryAttr = (Location.mknoloc "res.ternary", Parsetree.PStr []) +let ifLetAttr = (Location.mknoloc "res.iflet", Parsetree.PStr []) +let optionalAttr = (Location.mknoloc "res.optional", Parsetree.PStr []) let makeAwaitAttr loc = (Location.mkloc "res.await" loc, Parsetree.PStr []) let makeAsyncAttr loc = (Location.mkloc "res.async" loc, Parsetree.PStr []) @@ -178,9 +176,25 @@ let suppressFragileMatchWarningAttr = Ast_helper.Str.eval (Ast_helper.Exp.constant (Pconst_string ("-4", None))); ] ) -let makeBracesAttr loc = (Location.mkloc "ns.braces" loc, Parsetree.PStr []) +let makeBracesAttr loc = (Location.mkloc "res.braces" loc, Parsetree.PStr []) let templateLiteralAttr = (Location.mknoloc "res.template", Parsetree.PStr []) +let spreadAttr = (Location.mknoloc "res.spread", Parsetree.PStr []) + +type argument = { + dotted: bool; + label: Asttypes.arg_label; + expr: Parsetree.expression; +} + +type typeParameter = { + dotted: bool; + attrs: Ast_helper.attrs; + label: Asttypes.arg_label; + typ: Parsetree.core_type; + startPos: Lexing.position; +} + type typDefOrExt = | TypeDef of { recFlag: Asttypes.rec_flag; @@ -190,7 +204,7 @@ type typDefOrExt = type labelledParameter = | TermParameter of { - uncurried: bool; + dotted: bool; attrs: Parsetree.attributes; label: Asttypes.arg_label; expr: Parsetree.expression option; @@ -198,7 +212,7 @@ type labelledParameter = pos: Lexing.position; } | TypeParameter of { - uncurried: bool; + dotted: bool; attrs: Parsetree.attributes; locs: string Location.loc list; pos: Lexing.position; @@ -239,9 +253,13 @@ let rec goToClosing closingToken state = (* Madness *) let isEs6ArrowExpression ~inTernary p = Parser.lookahead p (fun state -> - (match state.Parser.token with - | Lident "async" -> Parser.next state - | _ -> ()); + let async = + match state.Parser.token with + | Lident "async" -> + Parser.next state; + true + | _ -> false + in match state.Parser.token with | Lident _ | Underscore -> ( Parser.next state; @@ -282,7 +300,7 @@ let isEs6ArrowExpression ~inTernary p = | EqualGreater -> true | _ -> false) | Dot (* uncurried *) -> true - | Tilde -> true + | Tilde when not async -> true | Backtick -> false (* (` always indicates the start of an expr, can't be es6 parameter *) @@ -365,9 +383,10 @@ let buildLongident words = | [] -> assert false | hd :: tl -> List.fold_left (fun p s -> Longident.Ldot (p, s)) (Lident hd) tl -let makeInfixOperator p token startPos endPos = +let makeInfixOperator (p : Parser.t) token startPos endPos = let stringifiedToken = - if token = Token.MinusGreater then "|." + if token = Token.MinusGreater then + if p.uncurried_config |> Res_uncurried.isDefault then "|.u" else "|." else if token = Token.PlusPlus then "^" else if token = Token.BangEqual then "<>" else if token = Token.BangEqualEqual then "!=" @@ -510,11 +529,13 @@ let processUnderscoreApplication args = | _ -> arg in let args = List.map check_arg args in - let wrap exp_apply = + let wrap (exp_apply : Parsetree.expression) = match !exp_question with | Some {pexp_loc = loc} -> let pattern = - Ast_helper.Pat.mk (Ppat_var (Location.mkloc hidden_var loc)) ~loc + Ast_helper.Pat.mk + (Ppat_var (Location.mkloc hidden_var loc)) + ~loc:Location.none in Ast_helper.Exp.mk (Pexp_fun (Nolabel, None, pattern, exp_apply)) ~loc | None -> exp_apply @@ -1456,14 +1477,52 @@ and parseTernaryExpr leftOperand p = (Some falseBranch) | _ -> leftOperand -and parseEs6ArrowExpression ?context ?parameters p = +and parseEs6ArrowExpression ?(arrowAttrs = []) ?(arrowStartPos = None) ?context + ?parameters p = let startPos = p.Parser.startPos in Parser.leaveBreadcrumb p Grammar.Es6ArrowExpr; + (* Parsing function parameters and attributes: + 1. Basically, attributes outside of `(...)` are added to the function, except + the uncurried attribute `(.)` is added to the function. e.g. async, uncurried + + 2. Attributes inside `(...)` are added to the arguments regardless of whether + labeled, optional or nolabeled *) let parameters = match parameters with | Some params -> params | None -> parseParameters p in + let parameters = + let updateAttrs attrs = arrowAttrs @ attrs in + let updatePos pos = + match arrowStartPos with + | Some startPos -> startPos + | None -> pos + in + match parameters with + | TermParameter p :: rest -> + TermParameter {p with attrs = updateAttrs p.attrs; pos = updatePos p.pos} + :: rest + | TypeParameter p :: rest -> + TypeParameter {p with attrs = updateAttrs p.attrs; pos = updatePos p.pos} + :: rest + | [] -> parameters + in + let parameters = + (* Propagate any dots from type parameters to the first term *) + let rec loop ~dotInType params = + match params with + | (TypeParameter {dotted} as p) :: _ -> + let rest = LoopProgress.listRest params in + (* Tell termination checker about progress *) + p :: loop ~dotInType:(dotInType || dotted) rest + | TermParameter termParam :: rest -> + TermParameter {termParam with dotted = dotInType || termParam.dotted} + :: rest + | [] -> [] + in + loop ~dotInType:false parameters + in let returnType = match p.Parser.token with | Colon -> @@ -1483,31 +1542,76 @@ and parseEs6ArrowExpression ?context ?parameters p = in Parser.eatBreadcrumb p; let endPos = p.prevEndPos in - let arrowExpr = + let termParameters = + parameters + |> List.filter (function + | TermParameter _ -> true + | TypeParameter _ -> false) + in + let bodyNeedsBraces = + let isFun = + match body.pexp_desc with + | Pexp_fun _ -> true + | _ -> false + in + match termParameters with + | TermParameter {dotted} :: _ + when p.uncurried_config |> Res_uncurried.fromDotted ~dotted && isFun -> + true + | TermParameter _ :: rest + when (not (p.uncurried_config |> Res_uncurried.isDefault)) && isFun -> + rest + |> List.exists (function + | TermParameter {dotted} -> dotted + | _ -> false) + | _ -> false + in + let body = + if bodyNeedsBraces then + { + body with + pexp_attributes = makeBracesAttr body.pexp_loc :: body.pexp_attributes; + } + else body + in + let _paramNum, arrowExpr, _arity = List.fold_right - (fun parameter expr -> + (fun parameter (termParamNum, expr, arity) -> match parameter with | TermParameter { - uncurried; + dotted; attrs; label = lbl; expr = defaultExpr; pat; pos = startPos; } -> - let attrs = if uncurried then uncurryAttr :: attrs else attrs in - Ast_helper.Exp.fun_ ~loc:(mkLoc startPos endPos) ~attrs lbl - defaultExpr pat expr - | TypeParameter {uncurried; attrs; locs = newtypes; pos = startPos} -> - let attrs = if uncurried then uncurryAttr :: attrs else attrs in - makeNewtypes ~attrs ~loc:(mkLoc startPos endPos) newtypes expr) - parameters body + let loc = mkLoc startPos endPos in + let funExpr = + Ast_helper.Exp.fun_ ~loc ~attrs lbl defaultExpr pat expr + in + let uncurried = + p.uncurried_config |> Res_uncurried.fromDotted ~dotted + in + if + uncurried + && (termParamNum = 1 + || not (p.uncurried_config |> Res_uncurried.isDefault)) + then + (termParamNum - 1, Ast_uncurried.uncurriedFun ~loc ~arity funExpr, 1) + else (termParamNum - 1, funExpr, arity + 1) + | TypeParameter {dotted = _; attrs; locs = newtypes; pos = startPos} -> + ( termParamNum, + makeNewtypes ~attrs ~loc:(mkLoc startPos endPos) newtypes expr, + arity )) + parameters + (List.length termParameters, body, 1) in {arrowExpr with pexp_loc = {arrowExpr.pexp_loc with loc_start = startPos}} (* - * uncurried_parameter ::= + * dotted_parameter ::= * | . parameter * * parameter ::= @@ -1531,18 +1635,12 @@ and parseParameter p = || Grammar.isPatternStart p.token then let startPos = p.Parser.startPos in - let uncurried = Parser.optional p Token.Dot in - (* two scenarios: - * attrs ~lbl ... - * attrs pattern - * Attributes before a labelled arg, indicate that it's on the whole arrow expr - * Otherwise it's part of the pattern - * *) + let dotted = Parser.optional p Token.Dot in let attrs = parseAttributes p in if p.Parser.token = Typ then ( Parser.next p; let lidents = parseLidentList p in - Some (TypeParameter {uncurried; attrs; locs = lidents; pos = startPos})) + Some (TypeParameter {dotted; attrs; locs = lidents; pos = startPos})) else let attrs, lbl, pat = match p.Parser.token with @@ -1550,14 +1648,14 @@ and parseParameter p = Parser.next p; let lblName, loc = parseLident p in let propLocAttr = - (Location.mkloc "ns.namedArgLoc" loc, Parsetree.PStr []) + (Location.mkloc "res.namedArgLoc" loc, Parsetree.PStr []) in match p.Parser.token with | Comma | Equal | Rparen -> let loc = mkLoc startPos p.prevEndPos in - ( attrs, + ( [], Asttypes.Labelled lblName, - Ast_helper.Pat.var ~attrs:[propLocAttr] ~loc + Ast_helper.Pat.var ~attrs:(propLocAttr :: attrs) ~loc (Location.mkloc lblName loc) ) | Colon -> let lblEnd = p.prevEndPos in @@ -1567,25 +1665,30 @@ and parseParameter p = let pat = let pat = Ast_helper.Pat.var ~loc (Location.mkloc lblName loc) in let loc = mkLoc startPos p.prevEndPos in - Ast_helper.Pat.constraint_ ~attrs:[propLocAttr] ~loc pat typ + Ast_helper.Pat.constraint_ ~attrs:(propLocAttr :: attrs) ~loc pat + typ in - (attrs, Asttypes.Labelled lblName, pat) + ([], Asttypes.Labelled lblName, pat) | As -> Parser.next p; let pat = let pat = parseConstrainedPattern p in - {pat with ppat_attributes = propLocAttr :: pat.ppat_attributes} + { + pat with + ppat_attributes = (propLocAttr :: attrs) @ pat.ppat_attributes; + } in - (attrs, Asttypes.Labelled lblName, pat) + ([], Asttypes.Labelled lblName, pat) | t -> Parser.err p (Diagnostics.unexpected t p.breadcrumbs); let loc = mkLoc startPos p.prevEndPos in - ( attrs, + ( [], Asttypes.Labelled lblName, - Ast_helper.Pat.var ~loc (Location.mkloc lblName loc) )) + Ast_helper.Pat.var ~attrs:(propLocAttr :: attrs) ~loc + (Location.mkloc lblName loc) )) | _ -> let pattern = parseConstrainedPattern p in - let attrs = List.concat [attrs; pattern.ppat_attributes] in + let attrs = List.concat [pattern.ppat_attributes; attrs] in ([], Asttypes.Nolabel, {pattern with ppat_attributes = attrs}) in match p.Parser.token with @@ -1611,13 +1714,13 @@ and parseParameter p = Parser.next p; Some (TermParameter - {uncurried; attrs; label = lbl; expr = None; pat; pos = startPos}) + {dotted; attrs; label = lbl; expr = None; pat; pos = startPos}) | _ -> let expr = parseConstrainedOrCoercedExpr p in Some (TermParameter { - uncurried; + dotted; attrs; label = lbl; expr = Some expr; @@ -1627,7 +1730,7 @@ and parseParameter p = | _ -> Some (TermParameter - {uncurried; attrs; label = lbl; expr = None; pat; pos = startPos}) + {dotted; attrs; label = lbl; expr = None; pat; pos = startPos}) else None and parseParameterList p = @@ -1654,7 +1757,7 @@ and parseParameters p = [ TermParameter { - uncurried = false; + dotted = false; attrs = []; label = Asttypes.Nolabel; expr = None; @@ -1668,7 +1771,7 @@ and parseParameters p = [ TermParameter { - uncurried = false; + dotted = false; attrs = []; label = Asttypes.Nolabel; expr = None; @@ -1690,7 +1793,7 @@ and parseParameters p = [ TermParameter { - uncurried = false; + dotted = false; attrs = []; label = Asttypes.Nolabel; expr = None; @@ -1712,7 +1815,7 @@ and parseParameters p = [ TermParameter { - uncurried = true; + dotted = true; attrs = []; label = Asttypes.Nolabel; expr = None; @@ -1722,25 +1825,10 @@ and parseParameters p = ] | _ -> ( match parseParameterList p with - | TermParameter - { - attrs; - label = lbl; - expr = defaultExpr; - pat = pattern; - pos = startPos; - } - :: rest -> - TermParameter - { - uncurried = true; - attrs; - label = lbl; - expr = defaultExpr; - pat = pattern; - pos = startPos; - } - :: rest + | TermParameter p :: rest -> + TermParameter {p with dotted = true; pos = startPos} :: rest + | TypeParameter p :: rest -> + TypeParameter {p with dotted = true; pos = startPos} :: rest | parameters -> parameters)) | _ -> parseParameterList p) | token -> @@ -2023,7 +2111,7 @@ and parseUnaryExpr p = * the operands of the binary expression with opeartor `+` *) and parseOperandExpr ~context p = let startPos = p.Parser.startPos in - let attrs = parseAttributes p in + let attrs = ref (parseAttributes p) in let expr = match p.Parser.token with | Assert -> @@ -2039,7 +2127,9 @@ and parseOperandExpr ~context p = *) when isEs6ArrowExpression ~inTernary:(context = TernaryTrueBranchExpr) p -> - parseAsyncArrowExpression p + let arrowAttrs = !attrs in + let () = attrs := [] in + parseAsyncArrowExpression ~arrowAttrs p | Await -> parseAwaitExpression p | Lazy -> Parser.next p; @@ -2055,13 +2145,16 @@ and parseOperandExpr ~context p = if context != WhenExpr && isEs6ArrowExpression ~inTernary:(context = TernaryTrueBranchExpr) p - then parseEs6ArrowExpression ~context p + then + let arrowAttrs = !attrs in + let () = attrs := [] in + parseEs6ArrowExpression ~arrowAttrs ~context p else parseUnaryExpr p in (* let endPos = p.Parser.prevEndPos in *) { expr with - pexp_attributes = List.concat [expr.Parsetree.pexp_attributes; attrs]; + pexp_attributes = List.concat [expr.Parsetree.pexp_attributes; !attrs]; (* pexp_loc = mkLoc startPos endPos *) } @@ -2107,7 +2200,11 @@ and parseBinaryExpr ?(context = OrdinaryExpr) ?a p prec = let startPos = p.startPos in Parser.next p; let endPos = p.prevEndPos in - let b = parseBinaryExpr ~context p (tokenPrec + 1) in + let tokenPrec = + (* exponentiation operator is right-associative *) + if token = Exponentiation then tokenPrec else tokenPrec + 1 + in + let b = parseBinaryExpr ~context p tokenPrec in let loc = mkLoc a.Parsetree.pexp_loc.loc_start b.pexp_loc.loc_end in let expr = Ast_helper.Exp.apply ~loc @@ -2589,7 +2686,7 @@ and parseJsxProp p = let optional = Parser.optional p Question in let name, loc = parseLident p in let propLocAttr = - (Location.mkloc "ns.namedArgLoc" loc, Parsetree.PStr []) + (Location.mkloc "res.namedArgLoc" loc, Parsetree.PStr []) in (* optional punning: *) if optional then @@ -2628,14 +2725,14 @@ and parseJsxProp p = Parser.next p; let loc = mkLoc p.Parser.startPos p.prevEndPos in let propLocAttr = - (Location.mkloc "ns.namedArgLoc" loc, Parsetree.PStr []) + (Location.mkloc "res.namedArgLoc" loc, Parsetree.PStr []) in let attrExpr = - let e = parsePrimaryExpr ~operand:(parseAtomicExpr p) p in + let e = parsePrimaryExpr ~operand:(parseExpr p) p in {e with pexp_attributes = propLocAttr :: e.pexp_attributes} in (* using label "spreadProps" to distinguish from others *) - let label = Asttypes.Labelled "spreadProps" in + let label = Asttypes.Labelled "_spreadProps" in match p.Parser.token with | Rbrace -> Parser.next p; @@ -2836,11 +2933,11 @@ and parseBracedOrRecordExpr p = [ TermParameter { - uncurried = false; + dotted = false; attrs = []; label = Asttypes.Nolabel; expr = None; - pat = Ast_helper.Pat.var ident; + pat = Ast_helper.Pat.var ~loc:ident.loc ident; pos = startPos; }; ] @@ -3120,22 +3217,19 @@ and parseExprBlock ?first p = Parser.eatBreadcrumb p; overParseConstrainedOrCoercedOrArrowExpression p blockExpr -and parseAsyncArrowExpression p = +and parseAsyncArrowExpression ?(arrowAttrs = []) p = let startPos = p.Parser.startPos in Parser.expect (Lident "async") p; let asyncAttr = makeAsyncAttr (mkLoc startPos p.prevEndPos) in - let expr = parseEs6ArrowExpression p in - { - expr with - pexp_attributes = asyncAttr :: expr.pexp_attributes; - pexp_loc = {expr.pexp_loc with loc_start = startPos}; - } + parseEs6ArrowExpression ~arrowAttrs:(asyncAttr :: arrowAttrs) + ~arrowStartPos:(Some startPos) p and parseAwaitExpression p = let awaitLoc = mkLoc p.Parser.startPos p.endPos in let awaitAttr = makeAwaitAttr awaitLoc in Parser.expect Await p; - let expr = parseUnaryExpr p in + let tokenPrec = Token.precedence MinusGreater in + let expr = parseBinaryExpr ~context:OrdinaryExpr p tokenPrec in { expr with pexp_attributes = awaitAttr :: expr.pexp_attributes; @@ -3402,10 +3496,10 @@ and parseSwitchExpression p = * | ~ label-name = ? _ (* syntax sugar *) * | ~ label-name = ? expr : type * - * uncurried_argument ::= + * dotted_argument ::= * | . argument *) -and parseArgument p = +and parseArgument p : argument option = if p.Parser.token = Token.Tilde || p.token = Dot || p.token = Underscore @@ -3413,7 +3507,7 @@ and parseArgument p = then match p.Parser.token with | Dot -> ( - let uncurried = true in + let dotted = true in Parser.next p; match p.token with (* apply(.) *) @@ -3423,21 +3517,21 @@ and parseArgument p = (Location.mknoloc (Longident.Lident "()")) None in - Some (uncurried, Asttypes.Nolabel, unitExpr) - | _ -> parseArgument2 p ~uncurried) - | _ -> parseArgument2 p ~uncurried:false + Some {dotted; label = Asttypes.Nolabel; expr = unitExpr} + | _ -> parseArgument2 p ~dotted) + | _ -> parseArgument2 p ~dotted:false else None -and parseArgument2 p ~uncurried = +and parseArgument2 p ~dotted : argument option = match p.Parser.token with (* foo(_), do not confuse with foo(_ => x), TODO: performance *) | Underscore when not (isEs6ArrowExpression ~inTernary:false p) -> let loc = mkLoc p.startPos p.endPos in Parser.next p; - let exp = + let expr = Ast_helper.Exp.ident ~loc (Location.mkloc (Longident.Lident "_") loc) in - Some (uncurried, Asttypes.Nolabel, exp) + Some {dotted; label = Nolabel; expr} | Tilde -> ( Parser.next p; (* TODO: nesting of pattern matches not intuitive for error recovery *) @@ -3448,7 +3542,7 @@ and parseArgument2 p ~uncurried = let endPos = p.prevEndPos in let loc = mkLoc startPos endPos in let propLocAttr = - (Location.mkloc "ns.namedArgLoc" loc, Parsetree.PStr []) + (Location.mkloc "res.namedArgLoc" loc, Parsetree.PStr []) in let identExpr = Ast_helper.Exp.ident ~attrs:[propLocAttr] ~loc @@ -3457,7 +3551,7 @@ and parseArgument2 p ~uncurried = match p.Parser.token with | Question -> Parser.next p; - Some (uncurried, Asttypes.Optional ident, identExpr) + Some {dotted; label = Optional ident; expr = identExpr} | Equal -> Parser.next p; let label = @@ -3478,7 +3572,7 @@ and parseArgument2 p ~uncurried = let expr = parseConstrainedOrCoercedExpr p in {expr with pexp_attributes = propLocAttr :: expr.pexp_attributes} in - Some (uncurried, label, expr) + Some {dotted; label; expr} | Colon -> Parser.next p; let typ = parseTypExpr p in @@ -3486,12 +3580,12 @@ and parseArgument2 p ~uncurried = let expr = Ast_helper.Exp.constraint_ ~attrs:[propLocAttr] ~loc identExpr typ in - Some (uncurried, Labelled ident, expr) - | _ -> Some (uncurried, Labelled ident, identExpr)) + Some {dotted; label = Labelled ident; expr} + | _ -> Some {dotted; label = Labelled ident; expr = identExpr}) | t -> Parser.err p (Diagnostics.lident t); - Some (uncurried, Nolabel, Recover.defaultExpr ())) - | _ -> Some (uncurried, Nolabel, parseConstrainedOrCoercedExpr p) + Some {dotted; label = Nolabel; expr = Recover.defaultExpr ()}) + | _ -> Some {dotted; label = Nolabel; expr = parseConstrainedOrCoercedExpr p} and parseCallExpr p funExpr = Parser.expect Lparen p; @@ -3508,20 +3602,26 @@ and parseCallExpr p funExpr = let loc = mkLoc startPos p.prevEndPos in (* No args -> unit sugar: `foo()` *) [ - ( false, - Asttypes.Nolabel, - Ast_helper.Exp.construct ~loc - (Location.mkloc (Longident.Lident "()") loc) - None ); + { + dotted = false; + label = Nolabel; + expr = + Ast_helper.Exp.construct ~loc + (Location.mkloc (Longident.Lident "()") loc) + None; + }; ] | [ - ( true, - Asttypes.Nolabel, - ({ - pexp_desc = Pexp_construct ({txt = Longident.Lident "()"}, None); - pexp_loc = loc; - pexp_attributes = []; - } as expr) ); + { + dotted = true; + label = Nolabel; + expr = + { + pexp_desc = Pexp_construct ({txt = Longident.Lident "()"}, None); + pexp_loc = loc; + pexp_attributes = []; + } as expr; + }; ] when (not loc.loc_ghost) && p.mode = ParseForTypeChecker -> (* Since there is no syntax space for arity zero vs arity one, @@ -3537,41 +3637,46 @@ and parseCallExpr p funExpr = * Related: https://github.com/rescript-lang/syntax/issues/138 *) [ - ( true, - Asttypes.Nolabel, - Ast_helper.Exp.let_ Asttypes.Nonrecursive - [ - Ast_helper.Vb.mk - (Ast_helper.Pat.var (Location.mknoloc "__res_unit")) - expr; - ] - (Ast_helper.Exp.ident - (Location.mknoloc (Longident.Lident "__res_unit"))) ); + { + dotted = true; + label = Nolabel; + expr = + Ast_helper.Exp.let_ Asttypes.Nonrecursive + [ + Ast_helper.Vb.mk + (Ast_helper.Pat.var (Location.mknoloc "__res_unit")) + expr; + ] + (Ast_helper.Exp.ident + (Location.mknoloc (Longident.Lident "__res_unit"))); + }; ] | args -> args in let loc = {funExpr.pexp_loc with loc_end = p.prevEndPos} in let args = match args with - | (u, lbl, expr) :: args -> - let group (grp, acc) (uncurried, lbl, expr) = - let _u, grp = grp in - if uncurried == true then - ((true, [(lbl, expr)]), (_u, List.rev grp) :: acc) - else ((_u, (lbl, expr) :: grp), acc) + | {dotted = d; label = lbl; expr} :: args -> + let group (grp, acc) {dotted; label = lbl; expr} = + let _d, grp = grp in + if dotted == true then ((true, [(lbl, expr)]), (_d, List.rev grp) :: acc) + else ((_d, (lbl, expr) :: grp), acc) in - let (_u, grp), acc = List.fold_left group ((u, [(lbl, expr)]), []) args in - List.rev ((_u, List.rev grp) :: acc) + let (_d, grp), acc = List.fold_left group ((d, [(lbl, expr)]), []) args in + List.rev ((_d, List.rev grp) :: acc) | [] -> [] in let apply = List.fold_left (fun callBody group -> - let uncurried, args = group in + let dotted, args = group in let args, wrap = processUnderscoreApplication args in let exp = + let uncurried = + p.uncurried_config |> Res_uncurried.fromDotted ~dotted + in if uncurried then - let attrs = [uncurryAttr] in + let attrs = [uncurriedAppAttr] in Ast_helper.Exp.apply ~loc ~attrs callBody args else Ast_helper.Exp.apply ~loc callBody args in @@ -3703,37 +3808,60 @@ and parseTupleExpr ~first ~startPos p = let loc = mkLoc startPos p.prevEndPos in Ast_helper.Exp.tuple ~loc exprs -and parseSpreadExprRegion p = +and parseSpreadExprRegionWithLoc p = + let startPos = p.Parser.prevEndPos in match p.Parser.token with | DotDotDot -> Parser.next p; let expr = parseConstrainedOrCoercedExpr p in - Some (true, expr) + Some (true, expr, startPos, p.prevEndPos) | token when Grammar.isExprStart token -> - Some (false, parseConstrainedOrCoercedExpr p) + Some (false, parseConstrainedOrCoercedExpr p, startPos, p.prevEndPos) | _ -> None and parseListExpr ~startPos p = - let listExprs = + let split_by_spread exprs = + List.fold_left + (fun acc curr -> + match (curr, acc) with + | (true, expr, startPos, endPos), _ -> + (* find a spread expression, prepend a new sublist *) + ([], Some expr, startPos, endPos) :: acc + | ( (false, expr, startPos, _endPos), + (no_spreads, spread, _accStartPos, accEndPos) :: acc ) -> + (* find a non-spread expression, and the accumulated is not empty, + * prepend to the first sublist, and update the loc of the first sublist *) + (expr :: no_spreads, spread, startPos, accEndPos) :: acc + | (false, expr, startPos, endPos), [] -> + (* find a non-spread expression, and the accumulated is empty *) + [([expr], None, startPos, endPos)]) + [] exprs + in + let make_sub_expr = function + | exprs, Some spread, startPos, endPos -> + makeListExpression (mkLoc startPos endPos) exprs (Some spread) + | exprs, None, startPos, endPos -> + makeListExpression (mkLoc startPos endPos) exprs None + in + let listExprsRev = parseCommaDelimitedReversedList p ~grammar:Grammar.ListExpr ~closing:Rbrace - ~f:parseSpreadExprRegion + ~f:parseSpreadExprRegionWithLoc in Parser.expect Rbrace p; let loc = mkLoc startPos p.prevEndPos in - match listExprs with - | (true, expr) :: exprs -> - let exprs = exprs |> List.map snd |> List.rev in - makeListExpression loc exprs (Some expr) + match split_by_spread listExprsRev with + | [] -> makeListExpression loc [] None + | [(exprs, Some spread, _, _)] -> makeListExpression loc exprs (Some spread) + | [(exprs, None, _, _)] -> makeListExpression loc exprs None | exprs -> - let exprs = - exprs - |> List.map (fun (spread, expr) -> - if spread then - Parser.err p (Diagnostics.message ErrorMessages.listExprSpread); - expr) - |> List.rev - in - makeListExpression loc exprs None + let listExprs = List.map make_sub_expr exprs in + Ast_helper.Exp.apply ~loc + (Ast_helper.Exp.ident ~loc ~attrs:[spreadAttr] + (Location.mkloc + (Longident.Ldot + (Longident.Ldot (Longident.Lident "Belt", "List"), "concatMany")) + loc)) + [(Asttypes.Nolabel, Ast_helper.Exp.array ~loc listExprs)] (* Overparse ... and give a nice error message *) and parseNonSpreadExp ~msg p = @@ -3791,7 +3919,10 @@ and parsePolyTypeExpr p = let typ = Ast_helper.Typ.var ~loc:var.loc var.txt in let returnType = parseTypExpr ~alias:false p in let loc = mkLoc typ.Parsetree.ptyp_loc.loc_start p.prevEndPos in - Ast_helper.Typ.arrow ~loc Asttypes.Nolabel typ returnType + let tFun = Ast_helper.Typ.arrow ~loc Asttypes.Nolabel typ returnType in + if p.uncurried_config |> Res_uncurried.isDefault then + Ast_uncurried.uncurriedType ~loc ~arity:1 tFun + else tFun | _ -> Ast_helper.Typ.var ~loc:var.loc var.txt) | _ -> assert false) | _ -> parseTypExpr p @@ -3997,7 +4128,7 @@ and parseTypeAlias p typ = * | attrs ~ident: type_expr -> attrs are on the arrow * | attrs type_expr -> attrs are here part of the type_expr * - * uncurried_type_parameter ::= + * dotted_type_parameter ::= * | . type_parameter *) and parseTypeParameter p = @@ -4007,14 +4138,14 @@ and parseTypeParameter p = || Grammar.isTypExprStart p.token then let startPos = p.Parser.startPos in - let uncurried = Parser.optional p Dot in + let dotted = Parser.optional p Dot in let attrs = parseAttributes p in match p.Parser.token with | Tilde -> ( Parser.next p; let name, loc = parseLident p in let lblLocAttr = - (Location.mkloc "ns.namedArgLoc" loc, Parsetree.PStr []) + (Location.mkloc "res.namedArgLoc" loc, Parsetree.PStr []) in Parser.expect ~grammar:Grammar.TypeExpression Colon p; let typ = @@ -4025,8 +4156,8 @@ and parseTypeParameter p = | Equal -> Parser.next p; Parser.expect Question p; - Some (uncurried, attrs, Asttypes.Optional name, typ, startPos) - | _ -> Some (uncurried, attrs, Asttypes.Labelled name, typ, startPos)) + Some {dotted; attrs; label = Optional name; typ; startPos} + | _ -> Some {dotted; attrs; label = Labelled name; typ; startPos}) | Lident _ -> ( let name, loc = parseLident p in match p.token with @@ -4044,8 +4175,8 @@ and parseTypeParameter p = | Equal -> Parser.next p; Parser.expect Question p; - Some (uncurried, attrs, Asttypes.Optional name, typ, startPos) - | _ -> Some (uncurried, attrs, Asttypes.Labelled name, typ, startPos)) + Some {dotted; attrs; label = Optional name; typ; startPos} + | _ -> Some {dotted; attrs; label = Labelled name; typ; startPos}) | _ -> let constr = Location.mkloc (Longident.Lident name) loc in let args = parseTypeConstructorArgs ~constrName:constr p in @@ -4057,13 +4188,14 @@ and parseTypeParameter p = let typ = parseArrowTypeRest ~es6Arrow:true ~startPos typ p in let typ = parseTypeAlias p typ in - Some (uncurried, [], Asttypes.Nolabel, typ, startPos)) + Some {dotted; attrs = []; label = Nolabel; typ; startPos}) | _ -> let typ = parseTypExpr p in let typWithAttributes = {typ with ptyp_attributes = List.concat [attrs; typ.ptyp_attributes]} in - Some (uncurried, [], Asttypes.Nolabel, typWithAttributes, startPos) + Some + {dotted; attrs = []; label = Nolabel; typ = typWithAttributes; startPos} else None (* (int, ~x:string, float) *) @@ -4076,7 +4208,7 @@ and parseTypeParameters p = let loc = mkLoc startPos p.prevEndPos in let unitConstr = Location.mkloc (Longident.Lident "unit") loc in let typ = Ast_helper.Typ.constr unitConstr [] in - [(false, [], Asttypes.Nolabel, typ, startPos)] + [{dotted = false; attrs = []; label = Nolabel; typ; startPos}] | _ -> let params = parseCommaDelimitedRegion ~grammar:Grammar.TypeParameters ~closing:Rparen @@ -4091,7 +4223,9 @@ and parseEs6ArrowType ~attrs p = | Tilde -> Parser.next p; let name, loc = parseLident p in - let lblLocAttr = (Location.mkloc "ns.namedArgLoc" loc, Parsetree.PStr []) in + let lblLocAttr = + (Location.mkloc "res.namedArgLoc" loc, Parsetree.PStr []) + in Parser.expect ~grammar:Grammar.TypeExpression Colon p; let typ = let typ = parseTypExpr ~alias:false ~es6Arrow:false p in @@ -4114,12 +4248,37 @@ and parseEs6ArrowType ~attrs p = Parser.expect EqualGreater p; let returnType = parseTypExpr ~alias:false p in let endPos = p.prevEndPos in - let typ = + let returnTypeArity = + match parameters with + | _ when p.uncurried_config |> Res_uncurried.isDefault -> 0 + | _ -> + if parameters |> List.exists (function {dotted; typ = _} -> dotted) + then 0 + else + let _, args, _ = Res_parsetree_viewer.arrowType returnType in + List.length args + in + let _paramNum, typ, _arity = List.fold_right - (fun (uncurried, attrs, argLbl, typ, startPos) t -> - let attrs = if uncurried then uncurryAttr :: attrs else attrs in - Ast_helper.Typ.arrow ~loc:(mkLoc startPos endPos) ~attrs argLbl typ t) - parameters returnType + (fun {dotted; attrs; label = argLbl; typ; startPos} (paramNum, t, arity) -> + let uncurried = + p.uncurried_config |> Res_uncurried.fromDotted ~dotted + in + if + uncurried + && (paramNum = 1 + || not (p.uncurried_config |> Res_uncurried.isDefault)) + then + let loc = mkLoc startPos endPos in + let tArg = Ast_helper.Typ.arrow ~loc ~attrs argLbl typ t in + (paramNum - 1, Ast_uncurried.uncurriedType ~loc ~arity tArg, 1) + else + ( paramNum - 1, + Ast_helper.Typ.arrow ~loc:(mkLoc startPos endPos) ~attrs argLbl + typ t, + arity + 1 )) + parameters + (List.length parameters, returnType, returnTypeArity + 1) in { typ with @@ -4173,7 +4332,10 @@ and parseArrowTypeRest ~es6Arrow ~startPos typ p = Parser.next p; let returnType = parseTypExpr ~alias:false p in let loc = mkLoc startPos p.prevEndPos in - Ast_helper.Typ.arrow ~loc Asttypes.Nolabel typ returnType + let arrowTyp = Ast_helper.Typ.arrow ~loc Asttypes.Nolabel typ returnType in + if p.uncurried_config |> Res_uncurried.isDefault then + Ast_uncurried.uncurriedType ~loc ~arity:1 arrowTyp + else arrowTyp | _ -> typ and parseTypExprRegion p = @@ -5376,7 +5538,7 @@ and parseStructureItemRegion p = Parser.next p; Some (Ast_helper.Str.attribute ~loc - ( {txt = "ns.doc"; loc}, + ( {txt = "res.doc"; loc}, PStr [ Ast_helper.Str.eval ~loc @@ -5409,7 +5571,7 @@ and parseStructureItemRegion p = Some (Ast_helper.Str.eval ~loc:(mkLoc p.startPos p.prevEndPos) ~attrs expr) | _ -> None) - [@@progress Parser.next, Parser.expect] + [@@progress Parser.next, Parser.expect, LoopProgress.listRest] (* include-statement ::= include module-expr *) and parseIncludeStatement ~attrs p = @@ -6008,7 +6170,7 @@ and parseSignatureItemRegion p = Parser.next p; Some (Ast_helper.Sig.attribute ~loc - ( {txt = "ns.doc"; loc}, + ( {txt = "res.doc"; loc}, PStr [ Ast_helper.Str.eval ~loc @@ -6026,7 +6188,7 @@ and parseSignatureItemRegion p = (Diagnostics.message (ErrorMessages.attributeWithoutNode attr)); Some Recover.defaultSignatureItem | _ -> None) - [@@progress Parser.next, Parser.expect] + [@@progress Parser.next, Parser.expect, LoopProgress.listRest] (* module rec module-name : module-type { and module-name: module-type } *) and parseRecModuleSpec ~attrs ~startPos p = @@ -6223,7 +6385,7 @@ and parseAttribute p = | DocComment (loc, s) -> Parser.next p; Some - ( {txt = "ns.doc"; loc}, + ( {txt = "res.doc"; loc}, PStr [ Ast_helper.Str.eval ~loc @@ -6241,9 +6403,16 @@ and parseAttributes p = *) and parseStandaloneAttribute p = let startPos = p.startPos in - (* XX *) Parser.expect AtAt p; let attrId = parseAttributeId ~startPos p in + let attrId = + match attrId.txt with + | "uncurried" -> + p.uncurried_config <- Res_uncurried.Default; + attrId + | "toUncurried" -> {attrId with txt = "uncurried"} + | _ -> attrId + in let payload = parsePayload p in (attrId, payload) diff --git a/analysis/vendor/res_outcome_printer/res_doc.ml b/analysis/vendor/res_outcome_printer/res_doc.ml index f997f4e41..125ac7725 100644 --- a/analysis/vendor/res_outcome_printer/res_doc.ml +++ b/analysis/vendor/res_outcome_printer/res_doc.ml @@ -133,6 +133,15 @@ let join ~sep docs = in concat (loop [] sep docs) +let joinWithSep docsWithSep = + let rec loop acc docs = + match docs with + | [] -> List.rev acc + | [(x, _sep)] -> List.rev (x :: acc) + | (x, sep) :: xs -> loop (sep :: x :: acc) xs + in + concat (loop [] docsWithSep) + let fits w stack = let width = ref w in let result = ref None in diff --git a/analysis/vendor/res_outcome_printer/res_doc.mli b/analysis/vendor/res_outcome_printer/res_doc.mli index cfb79fe31..f1a0c6ea6 100644 --- a/analysis/vendor/res_outcome_printer/res_doc.mli +++ b/analysis/vendor/res_outcome_printer/res_doc.mli @@ -20,6 +20,9 @@ val customLayout : t list -> t val breakParent : t val join : sep:t -> t list -> t +(* [(doc1, sep1); (doc2,sep2)] joins as doc1 sep1 doc2 *) +val joinWithSep : (t * t) list -> t + val space : t val comma : t val dot : t diff --git a/analysis/vendor/res_outcome_printer/res_driver.mli b/analysis/vendor/res_outcome_printer/res_driver.mli index 8211487ef..fe44722a6 100644 --- a/analysis/vendor/res_outcome_printer/res_driver.mli +++ b/analysis/vendor/res_outcome_printer/res_driver.mli @@ -24,12 +24,14 @@ val parseImplementationFromSource : displayFilename:string -> source:string -> (Parsetree.structure, Res_diagnostics.t list) parseResult + [@@live] val parseInterfaceFromSource : forPrinter:bool -> displayFilename:string -> source:string -> (Parsetree.signature, Res_diagnostics.t list) parseResult + [@@live] type printEngine = { printImplementation: diff --git a/analysis/vendor/res_outcome_printer/res_js_ffi.ml b/analysis/vendor/res_outcome_printer/res_js_ffi.ml deleted file mode 100644 index 3d02fb105..000000000 --- a/analysis/vendor/res_outcome_printer/res_js_ffi.ml +++ /dev/null @@ -1,121 +0,0 @@ -(* AST for js externals *) -type scope = - | Global - | Module of string (* bs.module("path") *) - | Scope of Longident.t (* bs.scope(/"window", "location"/) *) - -type label_declaration = { - jld_attributes: Parsetree.attributes; [@live] - jld_name: string; - jld_alias: string; - jld_type: Parsetree.core_type; - jld_loc: Location.t; -} - -type importSpec = - | Default of label_declaration - | Spec of label_declaration list - -type import_description = { - jid_loc: Location.t; - jid_spec: importSpec; - jid_scope: scope; - jid_attributes: Parsetree.attributes; -} - -let decl ~attrs ~loc ~name ~alias ~typ = - { - jld_loc = loc; - jld_attributes = attrs; - jld_name = name; - jld_alias = alias; - jld_type = typ; - } - -let importDescr ~attrs ~scope ~importSpec ~loc = - { - jid_loc = loc; - jid_spec = importSpec; - jid_scope = scope; - jid_attributes = attrs; - } - -let toParsetree importDescr = - let bsVal = (Location.mknoloc "val", Parsetree.PStr []) in - let attrs = - match importDescr.jid_scope with - | Global -> [bsVal] - (* @genType.import("./MyMath"), - * @genType.import(/"./MyMath", "default"/) *) - | Module s -> - let structure = - [ - Parsetree.Pconst_string (s, None) - |> Ast_helper.Exp.constant |> Ast_helper.Str.eval; - ] - in - let genType = - (Location.mknoloc "genType.import", Parsetree.PStr structure) - in - [genType] - | Scope longident -> - let structureItem = - let expr = - match - Longident.flatten longident - |> List.map (fun s -> - Ast_helper.Exp.constant (Parsetree.Pconst_string (s, None))) - with - | [expr] -> expr - | ([] as exprs) | (_ as exprs) -> exprs |> Ast_helper.Exp.tuple - in - Ast_helper.Str.eval expr - in - let bsScope = - (Location.mknoloc "scope", Parsetree.PStr [structureItem]) - in - [bsVal; bsScope] - in - let valueDescrs = - match importDescr.jid_spec with - | Default decl -> - let prim = [decl.jld_name] in - let allAttrs = - List.concat [attrs; importDescr.jid_attributes] - |> List.map (fun attr -> - match attr with - | ( ({Location.txt = "genType.import"} as id), - Parsetree.PStr - [{pstr_desc = Parsetree.Pstr_eval (moduleName, _)}] ) -> - let default = - Parsetree.Pconst_string ("default", None) - |> Ast_helper.Exp.constant - in - let structureItem = - [moduleName; default] |> Ast_helper.Exp.tuple - |> Ast_helper.Str.eval - in - (id, Parsetree.PStr [structureItem]) - | attr -> attr) - in - [ - Ast_helper.Val.mk ~loc:importDescr.jid_loc ~prim ~attrs:allAttrs - (Location.mknoloc decl.jld_alias) - decl.jld_type - |> Ast_helper.Str.primitive; - ] - | Spec decls -> - List.map - (fun decl -> - let prim = [decl.jld_name] in - let allAttrs = List.concat [attrs; decl.jld_attributes] in - Ast_helper.Val.mk ~loc:importDescr.jid_loc ~prim ~attrs:allAttrs - (Location.mknoloc decl.jld_alias) - decl.jld_type - |> Ast_helper.Str.primitive ~loc:decl.jld_loc) - decls - in - let jsFfiAttr = (Location.mknoloc "ns.jsFfi", Parsetree.PStr []) in - Ast_helper.Mod.structure ~loc:importDescr.jid_loc valueDescrs - |> Ast_helper.Incl.mk ~attrs:[jsFfiAttr] ~loc:importDescr.jid_loc - |> Ast_helper.Str.include_ ~loc:importDescr.jid_loc diff --git a/analysis/vendor/res_outcome_printer/res_outcome_printer.ml b/analysis/vendor/res_outcome_printer/res_outcome_printer.ml index 97560bf22..6cea0b955 100644 --- a/analysis/vendor/res_outcome_printer/res_outcome_printer.ml +++ b/analysis/vendor/res_outcome_printer/res_outcome_printer.ml @@ -34,12 +34,6 @@ let isValidNumericPolyvarNumber (x : string) = | _ -> false) else a >= 48 -(* checks if ident contains "arity", like in "arity1", "arity2", "arity3" etc. *) -let isArityIdent ident = - if String.length ident >= 6 then - (String.sub [@doesNotRaise]) ident 0 5 = "arity" - else false - type identifierStyle = ExoticIdent | NormalIdent let classifyIdentContent ~allowUident txt = @@ -210,18 +204,18 @@ let rec printOutTypeDoc (outType : Outcometree.out_type) = Doc.text aliasTxt; Doc.rparen; ] - | Otyp_constr - ( Oide_dot (Oide_dot (Oide_ident "Js", "Fn"), "arity0"), - (* Js.Fn.arity0 *) - [typ] ) -> - (* Js.Fn.arity0 -> (.) => t *) + | Otyp_constr (Oide_dot (Oide_dot (Oide_ident "Js", "Fn"), "arity0"), [typ]) + -> + (* Compatibility with compiler up to v10.x *) Doc.concat [Doc.text "(. ()) => "; printOutTypeDoc typ] | Otyp_constr - ( Oide_dot (Oide_dot (Oide_ident "Js", "Fn"), ident), - (* Js.Fn.arity2 *) - [(Otyp_arrow _ as arrowType)] (* (int, int) => int *) ) - when isArityIdent ident -> - (* Js.Fn.arity2<(int, int) => int> -> (. int, int) => int*) + ( Oide_dot (Oide_dot (Oide_ident "Js", "Fn"), _), + [(Otyp_arrow _ as arrowType)] ) -> + (* Compatibility with compiler up to v10.x *) + printOutArrowType ~uncurried:true arrowType + | Otyp_constr (Oide_ident "function$", [(Otyp_arrow _ as arrowType); _arity]) + -> + (* function$<(int, int) => int, [#2]> -> (. int, int) => int *) printOutArrowType ~uncurried:true arrowType | Otyp_constr (outIdent, []) -> printOutIdentDoc ~allowUident:false outIdent | Otyp_manifest (typ1, typ2) -> diff --git a/analysis/vendor/res_outcome_printer/res_parens.ml b/analysis/vendor/res_outcome_printer/res_parens.ml index c18b7565e..d6628c872 100644 --- a/analysis/vendor/res_outcome_printer/res_parens.ml +++ b/analysis/vendor/res_outcome_printer/res_parens.ml @@ -15,6 +15,16 @@ let expr expr = | {pexp_desc = Pexp_constraint _} -> Parenthesized | _ -> Nothing) +let exprRecordRowRhs e = + let kind = expr e in + match kind with + | Nothing when Res_parsetree_viewer.hasOptionalAttribute e.pexp_attributes + -> ( + match e.pexp_desc with + | Pexp_ifthenelse _ | Pexp_fun _ -> Parenthesized + | _ -> kind) + | _ -> kind + let callExpr expr = let optBraces, _ = ParsetreeViewer.processBracesAttr expr in match optBraces with @@ -175,7 +185,11 @@ let flattenOperandRhs parentOperator rhs = | _ when ParsetreeViewer.isTernaryExpr rhs -> true | _ -> false -let lazyOrAssertOrAwaitExprRhs expr = +let binaryOperatorInsideAwaitNeedsParens operator = + ParsetreeViewer.operatorPrecedence operator + < ParsetreeViewer.operatorPrecedence "|." + +let lazyOrAssertOrAwaitExprRhs ?(inAwait = false) expr = let optBraces, _ = ParsetreeViewer.processBracesAttr expr in match optBraces with | Some ({Location.loc = bracesLoc}, _) -> Braced bracesLoc @@ -186,7 +200,14 @@ let lazyOrAssertOrAwaitExprRhs expr = | _ :: _ -> true | [] -> false -> Parenthesized - | expr when ParsetreeViewer.isBinaryExpression expr -> Parenthesized + | { + pexp_desc = + Pexp_apply ({pexp_desc = Pexp_ident {txt = Longident.Lident operator}}, _); + } + when ParsetreeViewer.isBinaryExpression expr -> + if inAwait && not (binaryOperatorInsideAwaitNeedsParens operator) then + Nothing + else Parenthesized | { pexp_desc = Pexp_constraint ({pexp_desc = Pexp_pack _}, {ptyp_desc = Ptyp_package _}); @@ -202,7 +223,9 @@ let lazyOrAssertOrAwaitExprRhs expr = | Pexp_try _ | Pexp_while _ | Pexp_for _ | Pexp_ifthenelse _ ); } -> Parenthesized - | _ when ParsetreeViewer.hasAwaitAttribute expr.pexp_attributes -> + | _ + when (not inAwait) + && ParsetreeViewer.hasAwaitAttribute expr.pexp_attributes -> Parenthesized | _ -> Nothing) @@ -278,8 +301,8 @@ let ternaryOperand expr = } -> Nothing | {pexp_desc = Pexp_constraint _} -> Parenthesized - | {pexp_desc = Pexp_fun _ | Pexp_newtype _} -> ( - let _attrsOnArrow, _parameters, returnExpr = + | _ when Res_parsetree_viewer.isFunNewtype expr -> ( + let _uncurried, _attrsOnArrow, _parameters, returnExpr = ParsetreeViewer.funExpr expr in match returnExpr.pexp_desc with diff --git a/analysis/vendor/res_outcome_printer/res_parens.mli b/analysis/vendor/res_outcome_printer/res_parens.mli index cedf98e13..9b60b815f 100644 --- a/analysis/vendor/res_outcome_printer/res_parens.mli +++ b/analysis/vendor/res_outcome_printer/res_parens.mli @@ -10,7 +10,8 @@ val subBinaryExprOperand : string -> string -> bool val rhsBinaryExprOperand : string -> Parsetree.expression -> bool val flattenOperandRhs : string -> Parsetree.expression -> bool -val lazyOrAssertOrAwaitExprRhs : Parsetree.expression -> kind +val binaryOperatorInsideAwaitNeedsParens : string -> bool +val lazyOrAssertOrAwaitExprRhs : ?inAwait:bool -> Parsetree.expression -> kind val fieldExpr : Parsetree.expression -> kind @@ -34,3 +35,5 @@ val includeModExpr : Parsetree.module_expr -> bool val arrowReturnTypExpr : Parsetree.core_type -> bool val patternRecordRowRhs : Parsetree.pattern -> bool + +val exprRecordRowRhs : Parsetree.expression -> kind diff --git a/analysis/vendor/res_outcome_printer/res_parser.ml b/analysis/vendor/res_outcome_printer/res_parser.ml index 9fcdc3c5c..1d1026398 100644 --- a/analysis/vendor/res_outcome_printer/res_parser.ml +++ b/analysis/vendor/res_outcome_printer/res_parser.ml @@ -22,6 +22,7 @@ type t = { mutable diagnostics: Diagnostics.t list; mutable comments: Comment.t list; mutable regions: regionStatus ref list; + mutable uncurried_config: Res_uncurried.config; } let err ?startPos ?endPos p error = @@ -121,6 +122,7 @@ let make ?(mode = ParseForTypeChecker) src filename = diagnostics = []; comments = []; regions = [ref Report]; + uncurried_config = Res_uncurried.init; } in parserState.scanner.err <- @@ -168,6 +170,7 @@ let lookahead p callback = let errors = p.errors in let diagnostics = p.diagnostics in let comments = p.comments in + let uncurried_config = p.uncurried_config in let res = callback p in @@ -185,5 +188,6 @@ let lookahead p callback = p.errors <- errors; p.diagnostics <- diagnostics; p.comments <- comments; + p.uncurried_config <- uncurried_config; res diff --git a/analysis/vendor/res_outcome_printer/res_parser.mli b/analysis/vendor/res_outcome_printer/res_parser.mli index 09b0b455f..8a00c722e 100644 --- a/analysis/vendor/res_outcome_printer/res_parser.mli +++ b/analysis/vendor/res_outcome_printer/res_parser.mli @@ -21,6 +21,7 @@ type t = { mutable diagnostics: Diagnostics.t list; mutable comments: Comment.t list; mutable regions: regionStatus ref list; + mutable uncurried_config: Res_uncurried.config; } val make : ?mode:mode -> string -> string -> t diff --git a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml b/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml index c22dfb23c..6004316c2 100644 --- a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml +++ b/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml @@ -1,20 +1,22 @@ open Parsetree -let arrowType ct = - let rec process attrsBefore acc typ = +let arrowType ?(arity = max_int) ct = + let rec process attrsBefore acc typ arity = match typ with + | typ when arity <= 0 -> (attrsBefore, List.rev acc, typ) | { ptyp_desc = Ptyp_arrow ((Nolabel as lbl), typ1, typ2); ptyp_attributes = []; } -> let arg = ([], lbl, typ1) in - process attrsBefore (arg :: acc) typ2 + process attrsBefore (arg :: acc) typ2 (arity - 1) | { - ptyp_desc = Ptyp_arrow ((Nolabel as lbl), typ1, typ2); - ptyp_attributes = [({txt = "bs" | "res.async"}, _)] as attrs; + ptyp_desc = Ptyp_arrow (Nolabel, _typ1, _typ2); + ptyp_attributes = [({txt = "bs"}, _)]; } -> - let arg = (attrs, lbl, typ1) in - process attrsBefore (arg :: acc) typ2 + (* stop here, the uncurried attribute always indicates the beginning of an arrow function + * e.g. `(. int) => (. int)` instead of `(. int, . int)` *) + (attrsBefore, List.rev acc, typ) | {ptyp_desc = Ptyp_arrow (Nolabel, _typ1, _typ2); ptyp_attributes = _attrs} as returnType -> let args = List.rev acc in @@ -24,14 +26,14 @@ let arrowType ct = ptyp_attributes = attrs; } -> let arg = (attrs, lbl, typ1) in - process attrsBefore (arg :: acc) typ2 + process attrsBefore (arg :: acc) typ2 (arity - 1) | typ -> (attrsBefore, List.rev acc, typ) in match ct with | {ptyp_desc = Ptyp_arrow (Nolabel, _typ1, _typ2); ptyp_attributes = attrs} as typ -> - process attrs [] {typ with ptyp_attributes = []} - | typ -> process [] [] typ + process attrs [] {typ with ptyp_attributes = []} arity + | typ -> process [] [] typ arity let functorType modtype = let rec process acc modtype = @@ -46,29 +48,43 @@ let functorType modtype = in process [] modtype -let processUncurriedAttribute attrs = - let rec process uncurriedSpotted acc attrs = +let processBsAttribute attrs = + let rec process bsSpotted acc attrs = match attrs with - | [] -> (uncurriedSpotted, List.rev acc) + | [] -> (bsSpotted, List.rev acc) | ({Location.txt = "bs"}, _) :: rest -> process true acc rest - | attr :: rest -> process uncurriedSpotted (attr :: acc) rest + | attr :: rest -> process bsSpotted (attr :: acc) rest + in + process false [] attrs + +let processUncurriedAppAttribute attrs = + let rec process uncurriedApp acc attrs = + match attrs with + | [] -> (uncurriedApp, List.rev acc) + | ( { + Location.txt = + "bs" (* still support @bs to convert .ml files *) | "res.uapp"; + }, + _ ) + :: rest -> + process true acc rest + | attr :: rest -> process uncurriedApp (attr :: acc) rest in process false [] attrs type functionAttributesInfo = { async: bool; - uncurried: bool; + bs: bool; attributes: Parsetree.attributes; } let processFunctionAttributes attrs = - let rec process async uncurried acc attrs = + let rec process async bs acc attrs = match attrs with - | [] -> {async; uncurried; attributes = List.rev acc} + | [] -> {async; bs; attributes = List.rev acc} | ({Location.txt = "bs"}, _) :: rest -> process async true acc rest - | ({Location.txt = "res.async"}, _) :: rest -> - process true uncurried acc rest - | attr :: rest -> process async uncurried (attr :: acc) rest + | ({Location.txt = "res.async"}, _) :: rest -> process true bs acc rest + | attr :: rest -> process async bs (attr :: acc) rest in process false false [] attrs @@ -135,7 +151,7 @@ let funExpr expr = collectNewTypes (stringLoc :: acc) returnExpr | returnExpr -> (List.rev acc, returnExpr) in - let rec collect attrsBefore acc expr = + let rec collect ~uncurried ~nFun attrsBefore acc expr = match expr with | { pexp_desc = @@ -145,44 +161,39 @@ let funExpr expr = {ppat_desc = Ppat_var {txt = "__x"}}, {pexp_desc = Pexp_apply _} ); } -> - (attrsBefore, List.rev acc, rewriteUnderscoreApply expr) - | { - pexp_desc = Pexp_fun (lbl, defaultExpr, pattern, returnExpr); - pexp_attributes = []; - } -> - let parameter = Parameter {attrs = []; lbl; defaultExpr; pat = pattern} in - collect attrsBefore (parameter :: acc) returnExpr + (uncurried, attrsBefore, List.rev acc, rewriteUnderscoreApply expr) | {pexp_desc = Pexp_newtype (stringLoc, rest); pexp_attributes = attrs} -> let stringLocs, returnExpr = collectNewTypes [stringLoc] rest in let param = NewTypes {attrs; locs = stringLocs} in - collect attrsBefore (param :: acc) returnExpr + collect ~uncurried ~nFun attrsBefore (param :: acc) returnExpr | { pexp_desc = Pexp_fun (lbl, defaultExpr, pattern, returnExpr); - pexp_attributes = [({txt = "bs"}, _)] as attrs; - } -> - let parameter = Parameter {attrs; lbl; defaultExpr; pat = pattern} in - collect attrsBefore (parameter :: acc) returnExpr - | { - pexp_desc = - Pexp_fun - (((Labelled _ | Optional _) as lbl), defaultExpr, pattern, returnExpr); - pexp_attributes = attrs; + pexp_attributes = []; } -> - let parameter = Parameter {attrs; lbl; defaultExpr; pat = pattern} in - collect attrsBefore (parameter :: acc) returnExpr - | expr -> (attrsBefore, List.rev acc, expr) + let parameter = Parameter {attrs = []; lbl; defaultExpr; pat = pattern} in + collect ~uncurried ~nFun:(nFun + 1) attrsBefore (parameter :: acc) + returnExpr + (* If a fun has an attribute, then it stops here and makes currying. + i.e attributes outside of (...), uncurried `(.)` and `async` make currying *) + | {pexp_desc = Pexp_fun _} -> (uncurried, attrsBefore, List.rev acc, expr) + | expr when nFun = 0 && Ast_uncurried.exprIsUncurriedFun expr -> + let expr = Ast_uncurried.exprExtractUncurriedFun expr in + collect ~uncurried:true ~nFun attrsBefore acc expr + | expr -> (uncurried, attrsBefore, List.rev acc, expr) in match expr with - | { - pexp_desc = Pexp_fun (Nolabel, _defaultExpr, _pattern, _returnExpr); - pexp_attributes = attrs; - } as expr -> - collect attrs [] {expr with pexp_attributes = []} - | expr -> collect [] [] expr + | {pexp_desc = Pexp_fun _ | Pexp_newtype _} -> + collect ~uncurried:false ~nFun:0 expr.pexp_attributes [] + {expr with pexp_attributes = []} + | _ when Ast_uncurried.exprIsUncurriedFun expr -> + let expr = Ast_uncurried.exprExtractUncurriedFun expr in + collect ~uncurried:true ~nFun:0 expr.pexp_attributes [] + {expr with pexp_attributes = []} + | _ -> collect ~uncurried:false ~nFun:0 [] [] expr let processBracesAttr expr = match expr.pexp_attributes with - | (({txt = "ns.braces"}, _) as attr) :: attrs -> + | (({txt = "res.braces"}, _) as attr) :: attrs -> (Some attr, {expr with pexp_attributes = attrs}) | _ -> (None, expr) @@ -192,9 +203,9 @@ let filterParsingAttrs attrs = match attr with | ( { Location.txt = - ( "bs" | "ns.braces" | "ns.iflet" | "ns.namedArgLoc" - | "ns.optional" | "ns.ternary" | "res.async" | "res.await" - | "res.template" ); + ( "bs" | "res.uapp" | "res.arity" | "res.braces" | "res.iflet" + | "res.namedArgLoc" | "res.optional" | "res.ternary" | "res.async" + | "res.await" | "res.template" ); }, _ ) -> false @@ -264,7 +275,7 @@ let operatorPrecedence operator = | "+" | "+." | "-" | "-." | "^" -> 5 | "*" | "*." | "/" | "/." -> 6 | "**" -> 7 - | "#" | "##" | "|." -> 8 + | "#" | "##" | "|." | "|.u" -> 8 | _ -> 0 let isUnaryOperator operator = @@ -286,7 +297,7 @@ let isBinaryOperator operator = match operator with | ":=" | "||" | "&&" | "=" | "==" | "<" | ">" | "!=" | "!==" | "<=" | ">=" | "|>" | "+" | "+." | "-" | "-." | "^" | "*" | "*." | "/" | "/." | "**" | "|." - | "<>" -> + | "|.u" | "<>" -> true | _ -> false @@ -309,6 +320,11 @@ let isEqualityOperator operator = | "=" | "==" | "<>" | "!=" -> true | _ -> false +let isRhsBinaryOperator operator = + match operator with + | "**" -> true + | _ -> false + let flattenableOperators parentOperator childOperator = let precParent = operatorPrecedence parentOperator in let precChild = operatorPrecedence childOperator in @@ -319,7 +335,7 @@ let flattenableOperators parentOperator childOperator = let rec hasIfLetAttribute attrs = match attrs with | [] -> false - | ({Location.txt = "ns.iflet"}, _) :: _ -> true + | ({Location.txt = "res.iflet"}, _) :: _ -> true | _ :: attrs -> hasIfLetAttribute attrs let isIfLetExpr expr = @@ -332,7 +348,7 @@ let isIfLetExpr expr = let rec hasOptionalAttribute attrs = match attrs with | [] -> false - | ({Location.txt = "ns.optional"}, _) :: _ -> true + | ({Location.txt = "res.optional"}, _) :: _ -> true | _ :: attrs -> hasOptionalAttribute attrs let hasAttributes attrs = @@ -341,8 +357,8 @@ let hasAttributes attrs = match attr with | ( { Location.txt = - ( "bs" | "ns.braces" | "ns.iflet" | "ns.ternary" | "res.async" - | "res.await" | "res.template" ); + ( "bs" | "res.uapp" | "res.arity" | "res.braces" | "res.iflet" + | "res.ternary" | "res.async" | "res.await" | "res.template" ); }, _ ) -> false @@ -410,7 +426,7 @@ let collectIfExpressions expr = let rec hasTernaryAttribute attrs = match attrs with | [] -> false - | ({Location.txt = "ns.ternary"}, _) :: _ -> true + | ({Location.txt = "res.ternary"}, _) :: _ -> true | _ :: attrs -> hasTernaryAttribute attrs let isTernaryExpr expr = @@ -444,7 +460,7 @@ let filterTernaryAttributes attrs = List.filter (fun attr -> match attr with - | {Location.txt = "ns.ternary"}, _ -> false + | {Location.txt = "res.ternary"}, _ -> false | _ -> true) attrs @@ -523,8 +539,8 @@ let isPrintableAttribute attr = match attr with | ( { Location.txt = - ( "bs" | "ns.iflet" | "ns.braces" | "JSX" | "res.async" | "res.await" - | "res.template" | "ns.ternary" ); + ( "bs" | "res.uapp" | "res.arity" | "res.iflet" | "res.braces" | "JSX" + | "res.async" | "res.await" | "res.template" | "res.ternary" ); }, _ ) -> false @@ -537,12 +553,17 @@ let filterPrintableAttributes attrs = List.filter isPrintableAttribute attrs let partitionPrintableAttributes attrs = List.partition isPrintableAttribute attrs +let isFunNewtype expr = + match expr.pexp_desc with + | Pexp_fun _ | Pexp_newtype _ -> true + | _ -> Ast_uncurried.exprIsUncurriedFun expr + let requiresSpecialCallbackPrintingLastArg args = let rec loop args = match args with | [] -> false - | [(_, {pexp_desc = Pexp_fun _ | Pexp_newtype _})] -> true - | (_, {pexp_desc = Pexp_fun _ | Pexp_newtype _}) :: _ -> false + | [(_, expr)] when isFunNewtype expr -> true + | (_, expr) :: _ when isFunNewtype expr -> false | _ :: rest -> loop rest in loop args @@ -551,12 +572,12 @@ let requiresSpecialCallbackPrintingFirstArg args = let rec loop args = match args with | [] -> true - | (_, {pexp_desc = Pexp_fun _ | Pexp_newtype _}) :: _ -> false + | (_, expr) :: _ when isFunNewtype expr -> false | _ :: rest -> loop rest in match args with - | [(_, {pexp_desc = Pexp_fun _ | Pexp_newtype _})] -> false - | (_, {pexp_desc = Pexp_fun _ | Pexp_newtype _}) :: rest -> loop rest + | [(_, expr)] when isFunNewtype expr -> false + | (_, expr) :: rest when isFunNewtype expr -> loop rest | _ -> false let modExprApply modExpr = @@ -608,6 +629,25 @@ let isTemplateLiteral expr = | Pexp_constant _ when hasTemplateLiteralAttr expr.pexp_attributes -> true | _ -> false +let hasSpreadAttr attrs = + List.exists + (fun attr -> + match attr with + | {Location.txt = "res.spread"}, _ -> true + | _ -> false) + attrs + +let isSpreadBeltListConcat expr = + match expr.pexp_desc with + | Pexp_ident + { + txt = + Longident.Ldot + (Longident.Ldot (Longident.Lident "Belt", "List"), "concatMany"); + } -> + hasSpreadAttr expr.pexp_attributes + | _ -> false + (* Blue | Red | Green -> [Blue; Red; Green] *) let collectOrPatternChain pat = let rec loop pattern chain = @@ -633,14 +673,14 @@ let isSinglePipeExpr expr = let isPipeExpr expr = match expr.pexp_desc with | Pexp_apply - ( {pexp_desc = Pexp_ident {txt = Longident.Lident ("|." | "|>")}}, + ( {pexp_desc = Pexp_ident {txt = Longident.Lident ("|." | "|.u" | "|>")}}, [(Nolabel, _operand1); (Nolabel, _operand2)] ) -> true | _ -> false in match expr.pexp_desc with | Pexp_apply - ( {pexp_desc = Pexp_ident {txt = Longident.Lident ("|." | "|>")}}, + ( {pexp_desc = Pexp_ident {txt = Longident.Lident ("|." | "|.u" | "|>")}}, [(Nolabel, operand1); (Nolabel, _operand2)] ) when not (isPipeExpr operand1) -> true diff --git a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.mli b/analysis/vendor/res_outcome_printer/res_parsetree_viewer.mli index f1f5fa329..1cc0f5995 100644 --- a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.mli +++ b/analysis/vendor/res_outcome_printer/res_parsetree_viewer.mli @@ -2,6 +2,7 @@ * The parsetree contains: a => b => c => d, for printing purposes * we restructure the tree into (a, b, c) and its returnType d *) val arrowType : + ?arity:int -> Parsetree.core_type -> Parsetree.attributes * (Parsetree.attributes * Asttypes.arg_label * Parsetree.core_type) list @@ -14,12 +15,14 @@ val functorType : * Parsetree.module_type (* filters @bs out of the provided attributes *) -val processUncurriedAttribute : +val processBsAttribute : Parsetree.attributes -> bool * Parsetree.attributes + +val processUncurriedAppAttribute : Parsetree.attributes -> bool * Parsetree.attributes type functionAttributesInfo = { async: bool; - uncurried: bool; + bs: bool; attributes: Parsetree.attributes; } @@ -55,7 +58,7 @@ type funParamKind = val funExpr : Parsetree.expression -> - Parsetree.attributes * funParamKind list * Parsetree.expression + bool * Parsetree.attributes * funParamKind list * Parsetree.expression (* example: * `makeCoordinate({ @@ -74,6 +77,7 @@ val operatorPrecedence : string -> int val isUnaryExpression : Parsetree.expression -> bool val isBinaryOperator : string -> bool val isBinaryExpression : Parsetree.expression -> bool +val isRhsBinaryOperator : string -> bool val flattenableOperators : string -> string -> bool @@ -132,6 +136,8 @@ val isBlockExpr : Parsetree.expression -> bool val isTemplateLiteral : Parsetree.expression -> bool val hasTemplateLiteralAttr : Parsetree.attributes -> bool +val isSpreadBeltListConcat : Parsetree.expression -> bool + val collectOrPatternChain : Parsetree.pattern -> Parsetree.pattern list val processBracesAttr : @@ -152,3 +158,5 @@ val isUnderscoreApplySugar : Parsetree.expression -> bool val hasIfLetAttribute : Parsetree.attributes -> bool val isRewrittenUnderscoreApplySugar : Parsetree.expression -> bool + +val isFunNewtype : Parsetree.expression -> bool diff --git a/analysis/vendor/res_outcome_printer/res_printer.ml b/analysis/vendor/res_outcome_printer/res_printer.ml index b22d5cc9a..e6029c76d 100644 --- a/analysis/vendor/res_outcome_printer/res_printer.ml +++ b/analysis/vendor/res_outcome_printer/res_printer.ml @@ -113,6 +113,16 @@ let hasNestedJsxOrMoreThanOneChild expr = in loop false expr +let hasCommentsInside tbl loc = + match Hashtbl.find_opt tbl.CommentTable.inside loc with + | None -> false + | _ -> true + +let hasTrailingComments tbl loc = + match Hashtbl.find_opt tbl.CommentTable.trailing loc with + | None -> false + | _ -> true + let printMultilineCommentContent txt = (* Turns * |* first line @@ -228,7 +238,40 @@ let printLeadingComment ?nextComment comment = in Doc.concat [content; separator] +(* This function is used for printing comments inside an empty block *) let printCommentsInside cmtTbl loc = + let printComment comment = + let singleLine = Comment.isSingleLineComment comment in + let txt = Comment.txt comment in + if singleLine then Doc.text ("//" ^ txt) + else printMultilineCommentContent txt + in + let forceBreak = + loc.Location.loc_start.pos_lnum <> loc.Location.loc_end.pos_lnum + in + let rec loop acc comments = + match comments with + | [] -> Doc.nil + | [comment] -> + let cmtDoc = printComment comment in + let cmtsDoc = Doc.concat (Doc.softLine :: List.rev (cmtDoc :: acc)) in + let doc = + Doc.breakableGroup ~forceBreak + (Doc.concat [Doc.ifBreaks (Doc.indent cmtsDoc) cmtsDoc; Doc.softLine]) + in + doc + | comment :: rest -> + let cmtDoc = Doc.concat [printComment comment; Doc.line] in + loop (cmtDoc :: acc) rest + in + match Hashtbl.find cmtTbl.CommentTable.inside loc with + | exception Not_found -> Doc.nil + | comments -> + Hashtbl.remove cmtTbl.inside loc; + loop [] comments + +(* This function is used for printing comments inside an empty file *) +let printCommentsInsideFile cmtTbl = let rec loop acc comments = match comments with | [] -> Doc.nil @@ -242,10 +285,10 @@ let printCommentsInside cmtTbl loc = let cmtDoc = printLeadingComment ~nextComment comment in loop (cmtDoc :: acc) rest in - match Hashtbl.find cmtTbl.CommentTable.inside loc with + match Hashtbl.find cmtTbl.CommentTable.inside Location.none with | exception Not_found -> Doc.nil | comments -> - Hashtbl.remove cmtTbl.inside loc; + Hashtbl.remove cmtTbl.inside Location.none; Doc.group (loop [] comments) let printLeadingComments node tbl loc = @@ -510,7 +553,7 @@ let printConstant ?(templateLiteral = false) c = | Pconst_float (s, _) -> Doc.text s | Pconst_char c -> let str = - match Char.chr c with + match Char.unsafe_chr c with | '\'' -> "\\'" | '\\' -> "\\\\" | '\n' -> "\\n" @@ -521,7 +564,7 @@ let printConstant ?(templateLiteral = false) c = let s = (Bytes.create [@doesNotRaise]) 1 in Bytes.unsafe_set s 0 c; Bytes.unsafe_to_string s - | c -> Res_utf8.encodeCodePoint (Obj.magic c) + | _ -> Res_utf8.encodeCodePoint c in Doc.text ("'" ^ str ^ "'") @@ -529,19 +572,29 @@ let printOptionalLabel attrs = if Res_parsetree_viewer.hasOptionalAttribute attrs then Doc.text "?" else Doc.nil -let customLayoutThreshold = 2 +module State = struct + let customLayoutThreshold = 2 + + type t = {customLayout: int; mutable uncurried_config: Res_uncurried.config} + + let init = {customLayout = 0; uncurried_config = Res_uncurried.init} + + let nextCustomLayout t = {t with customLayout = t.customLayout + 1} -let rec printStructure ~customLayout (s : Parsetree.structure) t = + let shouldBreakCallback t = t.customLayout > customLayoutThreshold +end + +let rec printStructure ~state (s : Parsetree.structure) t = match s with - | [] -> printCommentsInside t Location.none + | [] -> printCommentsInsideFile t | structure -> printList ~getLoc:(fun s -> s.Parsetree.pstr_loc) ~nodes:structure - ~print:(printStructureItem ~customLayout) + ~print:(printStructureItem ~state) t -and printStructureItem ~customLayout (si : Parsetree.structure_item) cmtTbl = +and printStructureItem ~state (si : Parsetree.structure_item) cmtTbl = match si.pstr_desc with | Pstr_value (rec_flag, valueBindings) -> let recFlag = @@ -549,58 +602,56 @@ and printStructureItem ~customLayout (si : Parsetree.structure_item) cmtTbl = | Asttypes.Nonrecursive -> Doc.nil | Asttypes.Recursive -> Doc.text "rec " in - printValueBindings ~customLayout ~recFlag valueBindings cmtTbl + printValueBindings ~state ~recFlag valueBindings cmtTbl | Pstr_type (recFlag, typeDeclarations) -> let recFlag = match recFlag with | Asttypes.Nonrecursive -> Doc.nil | Asttypes.Recursive -> Doc.text "rec " in - printTypeDeclarations ~customLayout ~recFlag typeDeclarations cmtTbl + printTypeDeclarations ~state ~recFlag typeDeclarations cmtTbl | Pstr_primitive valueDescription -> - printValueDescription ~customLayout valueDescription cmtTbl + printValueDescription ~state valueDescription cmtTbl | Pstr_eval (expr, attrs) -> let exprDoc = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.structureExpr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces | Nothing -> doc in - Doc.concat [printAttributes ~customLayout attrs cmtTbl; exprDoc] + Doc.concat [printAttributes ~state attrs cmtTbl; exprDoc] | Pstr_attribute attr -> - printAttribute ~customLayout ~standalone:true attr cmtTbl + fst (printAttribute ~state ~standalone:true attr cmtTbl) | Pstr_extension (extension, attrs) -> Doc.concat [ - printAttributes ~customLayout attrs cmtTbl; - Doc.concat - [printExtension ~customLayout ~atModuleLvl:true extension cmtTbl]; + printAttributes ~state attrs cmtTbl; + Doc.concat [printExtension ~state ~atModuleLvl:true extension cmtTbl]; ] | Pstr_include includeDeclaration -> - printIncludeDeclaration ~customLayout includeDeclaration cmtTbl + printIncludeDeclaration ~state includeDeclaration cmtTbl | Pstr_open openDescription -> - printOpenDescription ~customLayout openDescription cmtTbl + printOpenDescription ~state openDescription cmtTbl | Pstr_modtype modTypeDecl -> - printModuleTypeDeclaration ~customLayout modTypeDecl cmtTbl + printModuleTypeDeclaration ~state modTypeDecl cmtTbl | Pstr_module moduleBinding -> - printModuleBinding ~customLayout ~isRec:false moduleBinding cmtTbl 0 + printModuleBinding ~state ~isRec:false moduleBinding cmtTbl 0 | Pstr_recmodule moduleBindings -> printListi ~getLoc:(fun mb -> mb.Parsetree.pmb_loc) ~nodes:moduleBindings - ~print:(printModuleBinding ~customLayout ~isRec:true) + ~print:(printModuleBinding ~state ~isRec:true) cmtTbl | Pstr_exception extensionConstructor -> - printExceptionDef ~customLayout extensionConstructor cmtTbl - | Pstr_typext typeExtension -> - printTypeExtension ~customLayout typeExtension cmtTbl + printExceptionDef ~state extensionConstructor cmtTbl + | Pstr_typext typeExtension -> printTypeExtension ~state typeExtension cmtTbl | Pstr_class _ | Pstr_class_type _ -> Doc.nil -and printTypeExtension ~customLayout (te : Parsetree.type_extension) cmtTbl = +and printTypeExtension ~state (te : Parsetree.type_extension) cmtTbl = let prefix = Doc.text "type " in let name = printLidentPath te.ptyext_path cmtTbl in - let typeParams = printTypeParams ~customLayout te.ptyext_params cmtTbl in + let typeParams = printTypeParams ~state te.ptyext_params cmtTbl in let extensionConstructors = let ecs = te.ptyext_constructors in let forceBreak = @@ -618,7 +669,7 @@ and printTypeExtension ~customLayout (te : Parsetree.type_extension) cmtTbl = let rows = printListi ~getLoc:(fun n -> n.Parsetree.pext_loc) - ~print:(printExtensionConstructor ~customLayout) + ~print:(printExtensionConstructor ~state) ~nodes:ecs ~forceBreak cmtTbl in Doc.breakableGroup ~forceBreak @@ -636,8 +687,8 @@ and printTypeExtension ~customLayout (te : Parsetree.type_extension) cmtTbl = Doc.group (Doc.concat [ - printAttributes ~customLayout ~loc:te.ptyext_path.loc - te.ptyext_attributes cmtTbl; + printAttributes ~state ~loc:te.ptyext_path.loc te.ptyext_attributes + cmtTbl; prefix; name; typeParams; @@ -645,7 +696,7 @@ and printTypeExtension ~customLayout (te : Parsetree.type_extension) cmtTbl = extensionConstructors; ]) -and printModuleBinding ~customLayout ~isRec moduleBinding cmtTbl i = +and printModuleBinding ~state ~isRec moduleBinding cmtTbl i = let prefix = if i = 0 then Doc.concat @@ -655,9 +706,9 @@ and printModuleBinding ~customLayout ~isRec moduleBinding cmtTbl i = let modExprDoc, modConstraintDoc = match moduleBinding.pmb_expr with | {pmod_desc = Pmod_constraint (modExpr, modType)} -> - ( printModExpr ~customLayout modExpr cmtTbl, - Doc.concat [Doc.text ": "; printModType ~customLayout modType cmtTbl] ) - | modExpr -> (printModExpr ~customLayout modExpr cmtTbl, Doc.nil) + ( printModExpr ~state modExpr cmtTbl, + Doc.concat [Doc.text ": "; printModType ~state modType cmtTbl] ) + | modExpr -> (printModExpr ~state modExpr cmtTbl, Doc.nil) in let modName = let doc = Doc.text moduleBinding.pmb_name.Location.txt in @@ -666,7 +717,7 @@ and printModuleBinding ~customLayout ~isRec moduleBinding cmtTbl i = let doc = Doc.concat [ - printAttributes ~customLayout ~loc:moduleBinding.pmb_name.loc + printAttributes ~state ~loc:moduleBinding.pmb_name.loc moduleBinding.pmb_attributes cmtTbl; prefix; modName; @@ -677,7 +728,7 @@ and printModuleBinding ~customLayout ~isRec moduleBinding cmtTbl i = in printComments doc cmtTbl moduleBinding.pmb_loc -and printModuleTypeDeclaration ~customLayout +and printModuleTypeDeclaration ~state (modTypeDecl : Parsetree.module_type_declaration) cmtTbl = let modName = let doc = Doc.text modTypeDecl.pmtd_name.txt in @@ -685,39 +736,36 @@ and printModuleTypeDeclaration ~customLayout in Doc.concat [ - printAttributes ~customLayout modTypeDecl.pmtd_attributes cmtTbl; + printAttributes ~state modTypeDecl.pmtd_attributes cmtTbl; Doc.text "module type "; modName; (match modTypeDecl.pmtd_type with | None -> Doc.nil | Some modType -> - Doc.concat [Doc.text " = "; printModType ~customLayout modType cmtTbl]); + Doc.concat [Doc.text " = "; printModType ~state modType cmtTbl]); ] -and printModType ~customLayout modType cmtTbl = +and printModType ~state modType cmtTbl = let modTypeDoc = match modType.pmty_desc with | Parsetree.Pmty_ident longident -> Doc.concat [ - printAttributes ~customLayout ~loc:longident.loc - modType.pmty_attributes cmtTbl; + printAttributes ~state ~loc:longident.loc modType.pmty_attributes + cmtTbl; printLongidentLocation longident cmtTbl; ] | Pmty_signature [] -> - let shouldBreak = - modType.pmty_loc.loc_start.pos_lnum < modType.pmty_loc.loc_end.pos_lnum - in - Doc.breakableGroup ~forceBreak:shouldBreak - (Doc.concat - [ - Doc.lbrace; - Doc.indent - (Doc.concat - [Doc.softLine; printCommentsInside cmtTbl modType.pmty_loc]); - Doc.softLine; - Doc.rbrace; - ]) + if hasCommentsInside cmtTbl modType.pmty_loc then + let doc = printCommentsInside cmtTbl modType.pmty_loc in + Doc.concat [Doc.lbrace; doc; Doc.rbrace] + else + let shouldBreak = + modType.pmty_loc.loc_start.pos_lnum + < modType.pmty_loc.loc_end.pos_lnum + in + Doc.breakableGroup ~forceBreak:shouldBreak + (Doc.concat [Doc.lbrace; Doc.softLine; Doc.softLine; Doc.rbrace]) | Pmty_signature signature -> let signatureDoc = Doc.breakableGroup ~forceBreak:true @@ -725,17 +773,13 @@ and printModType ~customLayout modType cmtTbl = [ Doc.lbrace; Doc.indent - (Doc.concat - [Doc.line; printSignature ~customLayout signature cmtTbl]); + (Doc.concat [Doc.line; printSignature ~state signature cmtTbl]); Doc.line; Doc.rbrace; ]) in Doc.concat - [ - printAttributes ~customLayout modType.pmty_attributes cmtTbl; - signatureDoc; - ] + [printAttributes ~state modType.pmty_attributes cmtTbl; signatureDoc] | Pmty_functor _ -> let parameters, returnType = ParsetreeViewer.functorType modType in let parametersDoc = @@ -745,10 +789,8 @@ and printModType ~customLayout modType cmtTbl = let cmtLoc = {loc with loc_end = modType.Parsetree.pmty_loc.loc_end} in - let attrs = printAttributes ~customLayout attrs cmtTbl in - let doc = - Doc.concat [attrs; printModType ~customLayout modType cmtTbl] - in + let attrs = printAttributes ~state attrs cmtTbl in + let doc = Doc.concat [attrs; printModType ~state modType cmtTbl] in printComments doc cmtTbl cmtLoc | params -> Doc.group @@ -774,7 +816,7 @@ and printModType ~customLayout modType cmtTbl = } in let attrs = - printAttributes ~customLayout attrs cmtTbl + printAttributes ~state attrs cmtTbl in let lblDoc = if lbl.Location.txt = "_" || lbl.txt = "*" then @@ -795,8 +837,7 @@ and printModType ~customLayout modType cmtTbl = [ (if lbl.txt = "_" then Doc.nil else Doc.text ": "); - printModType ~customLayout modType - cmtTbl; + printModType ~state modType cmtTbl; ]); ] in @@ -809,7 +850,7 @@ and printModType ~customLayout modType cmtTbl = ]) in let returnDoc = - let doc = printModType ~customLayout returnType cmtTbl in + let doc = printModType ~state returnType cmtTbl in if Parens.modTypeFunctorReturn returnType then addParens doc else doc in Doc.group @@ -820,14 +861,14 @@ and printModType ~customLayout modType cmtTbl = ]) | Pmty_typeof modExpr -> Doc.concat - [Doc.text "module type of "; printModExpr ~customLayout modExpr cmtTbl] + [Doc.text "module type of "; printModExpr ~state modExpr cmtTbl] | Pmty_extension extension -> - printExtension ~customLayout ~atModuleLvl:false extension cmtTbl + printExtension ~state ~atModuleLvl:false extension cmtTbl | Pmty_alias longident -> Doc.concat [Doc.text "module "; printLongidentLocation longident cmtTbl] | Pmty_with (modType, withConstraints) -> let operand = - let doc = printModType ~customLayout modType cmtTbl in + let doc = printModType ~state modType cmtTbl in if Parens.modTypeWithOperand modType then addParens doc else doc in Doc.group @@ -836,10 +877,7 @@ and printModType ~customLayout modType cmtTbl = operand; Doc.indent (Doc.concat - [ - Doc.line; - printWithConstraints ~customLayout withConstraints cmtTbl; - ]); + [Doc.line; printWithConstraints ~state withConstraints cmtTbl]); ]) in let attrsAlreadyPrinted = @@ -851,13 +889,13 @@ and printModType ~customLayout modType cmtTbl = Doc.concat [ (if attrsAlreadyPrinted then Doc.nil - else printAttributes ~customLayout modType.pmty_attributes cmtTbl); + else printAttributes ~state modType.pmty_attributes cmtTbl); modTypeDoc; ] in printComments doc cmtTbl modType.pmty_loc -and printWithConstraints ~customLayout withConstraints cmtTbl = +and printWithConstraints ~state withConstraints cmtTbl = let rows = List.mapi (fun i withConstraint -> @@ -865,19 +903,19 @@ and printWithConstraints ~customLayout withConstraints cmtTbl = (Doc.concat [ (if i == 0 then Doc.text "with " else Doc.text "and "); - printWithConstraint ~customLayout withConstraint cmtTbl; + printWithConstraint ~state withConstraint cmtTbl; ])) withConstraints in Doc.join ~sep:Doc.line rows -and printWithConstraint ~customLayout - (withConstraint : Parsetree.with_constraint) cmtTbl = +and printWithConstraint ~state (withConstraint : Parsetree.with_constraint) + cmtTbl = match withConstraint with (* with type X.t = ... *) | Pwith_type (longident, typeDeclaration) -> Doc.group - (printTypeDeclaration ~customLayout + (printTypeDeclaration ~state ~name:(printLidentPath longident cmtTbl) ~equalSign:"=" ~recFlag:Doc.nil 0 typeDeclaration CommentTable.empty) (* with module X.Y = Z *) @@ -892,7 +930,7 @@ and printWithConstraint ~customLayout (* with type X.t := ..., same format as [Pwith_type] *) | Pwith_typesubst (longident, typeDeclaration) -> Doc.group - (printTypeDeclaration ~customLayout + (printTypeDeclaration ~state ~name:(printLidentPath longident cmtTbl) ~equalSign:":=" ~recFlag:Doc.nil 0 typeDeclaration CommentTable.empty) | Pwith_modsubst ({txt = longident1}, {txt = longident2}) -> @@ -904,60 +942,58 @@ and printWithConstraint ~customLayout Doc.indent (Doc.concat [Doc.line; printLongident longident2]); ] -and printSignature ~customLayout signature cmtTbl = +and printSignature ~state signature cmtTbl = match signature with - | [] -> printCommentsInside cmtTbl Location.none + | [] -> printCommentsInsideFile cmtTbl | signature -> printList ~getLoc:(fun s -> s.Parsetree.psig_loc) ~nodes:signature - ~print:(printSignatureItem ~customLayout) + ~print:(printSignatureItem ~state) cmtTbl -and printSignatureItem ~customLayout (si : Parsetree.signature_item) cmtTbl = +and printSignatureItem ~state (si : Parsetree.signature_item) cmtTbl = match si.psig_desc with | Parsetree.Psig_value valueDescription -> - printValueDescription ~customLayout valueDescription cmtTbl + printValueDescription ~state valueDescription cmtTbl | Psig_type (recFlag, typeDeclarations) -> let recFlag = match recFlag with | Asttypes.Nonrecursive -> Doc.nil | Asttypes.Recursive -> Doc.text "rec " in - printTypeDeclarations ~customLayout ~recFlag typeDeclarations cmtTbl - | Psig_typext typeExtension -> - printTypeExtension ~customLayout typeExtension cmtTbl + printTypeDeclarations ~state ~recFlag typeDeclarations cmtTbl + | Psig_typext typeExtension -> printTypeExtension ~state typeExtension cmtTbl | Psig_exception extensionConstructor -> - printExceptionDef ~customLayout extensionConstructor cmtTbl + printExceptionDef ~state extensionConstructor cmtTbl | Psig_module moduleDeclaration -> - printModuleDeclaration ~customLayout moduleDeclaration cmtTbl + printModuleDeclaration ~state moduleDeclaration cmtTbl | Psig_recmodule moduleDeclarations -> - printRecModuleDeclarations ~customLayout moduleDeclarations cmtTbl + printRecModuleDeclarations ~state moduleDeclarations cmtTbl | Psig_modtype modTypeDecl -> - printModuleTypeDeclaration ~customLayout modTypeDecl cmtTbl + printModuleTypeDeclaration ~state modTypeDecl cmtTbl | Psig_open openDescription -> - printOpenDescription ~customLayout openDescription cmtTbl + printOpenDescription ~state openDescription cmtTbl | Psig_include includeDescription -> - printIncludeDescription ~customLayout includeDescription cmtTbl + printIncludeDescription ~state includeDescription cmtTbl | Psig_attribute attr -> - printAttribute ~customLayout ~standalone:true attr cmtTbl + fst (printAttribute ~state ~standalone:true attr cmtTbl) | Psig_extension (extension, attrs) -> Doc.concat [ - printAttributes ~customLayout attrs cmtTbl; - Doc.concat - [printExtension ~customLayout ~atModuleLvl:true extension cmtTbl]; + printAttributes ~state attrs cmtTbl; + Doc.concat [printExtension ~state ~atModuleLvl:true extension cmtTbl]; ] | Psig_class _ | Psig_class_type _ -> Doc.nil -and printRecModuleDeclarations ~customLayout moduleDeclarations cmtTbl = +and printRecModuleDeclarations ~state moduleDeclarations cmtTbl = printListi ~getLoc:(fun n -> n.Parsetree.pmd_loc) ~nodes:moduleDeclarations - ~print:(printRecModuleDeclaration ~customLayout) + ~print:(printRecModuleDeclaration ~state) cmtTbl -and printRecModuleDeclaration ~customLayout md cmtTbl i = +and printRecModuleDeclaration ~state md cmtTbl i = let body = match md.pmd_type.pmty_desc with | Parsetree.Pmty_alias longident -> @@ -969,7 +1005,7 @@ and printRecModuleDeclaration ~customLayout md cmtTbl i = | _ -> false in let modTypeDoc = - let doc = printModType ~customLayout md.pmd_type cmtTbl in + let doc = printModType ~state md.pmd_type cmtTbl in if needsParens then addParens doc else doc in Doc.concat [Doc.text ": "; modTypeDoc] @@ -977,34 +1013,32 @@ and printRecModuleDeclaration ~customLayout md cmtTbl i = let prefix = if i < 1 then "module rec " else "and " in Doc.concat [ - printAttributes ~customLayout ~loc:md.pmd_name.loc md.pmd_attributes cmtTbl; + printAttributes ~state ~loc:md.pmd_name.loc md.pmd_attributes cmtTbl; Doc.text prefix; printComments (Doc.text md.pmd_name.txt) cmtTbl md.pmd_name.loc; body; ] -and printModuleDeclaration ~customLayout (md : Parsetree.module_declaration) - cmtTbl = +and printModuleDeclaration ~state (md : Parsetree.module_declaration) cmtTbl = let body = match md.pmd_type.pmty_desc with | Parsetree.Pmty_alias longident -> Doc.concat [Doc.text " = "; printLongidentLocation longident cmtTbl] - | _ -> - Doc.concat [Doc.text ": "; printModType ~customLayout md.pmd_type cmtTbl] + | _ -> Doc.concat [Doc.text ": "; printModType ~state md.pmd_type cmtTbl] in Doc.concat [ - printAttributes ~customLayout ~loc:md.pmd_name.loc md.pmd_attributes cmtTbl; + printAttributes ~state ~loc:md.pmd_name.loc md.pmd_attributes cmtTbl; Doc.text "module "; printComments (Doc.text md.pmd_name.txt) cmtTbl md.pmd_name.loc; body; ] -and printOpenDescription ~customLayout - (openDescription : Parsetree.open_description) cmtTbl = +and printOpenDescription ~state (openDescription : Parsetree.open_description) + cmtTbl = Doc.concat [ - printAttributes ~customLayout openDescription.popen_attributes cmtTbl; + printAttributes ~state openDescription.popen_attributes cmtTbl; Doc.text "open"; (match openDescription.popen_override with | Asttypes.Fresh -> Doc.space @@ -1012,45 +1046,45 @@ and printOpenDescription ~customLayout printLongidentLocation openDescription.popen_lid cmtTbl; ] -and printIncludeDescription ~customLayout +and printIncludeDescription ~state (includeDescription : Parsetree.include_description) cmtTbl = Doc.concat [ - printAttributes ~customLayout includeDescription.pincl_attributes cmtTbl; + printAttributes ~state includeDescription.pincl_attributes cmtTbl; Doc.text "include "; - printModType ~customLayout includeDescription.pincl_mod cmtTbl; + printModType ~state includeDescription.pincl_mod cmtTbl; ] -and printIncludeDeclaration ~customLayout +and printIncludeDeclaration ~state (includeDeclaration : Parsetree.include_declaration) cmtTbl = Doc.concat [ - printAttributes ~customLayout includeDeclaration.pincl_attributes cmtTbl; + printAttributes ~state includeDeclaration.pincl_attributes cmtTbl; Doc.text "include "; (let includeDoc = - printModExpr ~customLayout includeDeclaration.pincl_mod cmtTbl + printModExpr ~state includeDeclaration.pincl_mod cmtTbl in if Parens.includeModExpr includeDeclaration.pincl_mod then addParens includeDoc else includeDoc); ] -and printValueBindings ~customLayout ~recFlag - (vbs : Parsetree.value_binding list) cmtTbl = +and printValueBindings ~state ~recFlag (vbs : Parsetree.value_binding list) + cmtTbl = printListi ~getLoc:(fun vb -> vb.Parsetree.pvb_loc) ~nodes:vbs - ~print:(printValueBinding ~customLayout ~recFlag) + ~print:(printValueBinding ~state ~recFlag) cmtTbl -and printValueDescription ~customLayout valueDescription cmtTbl = +and printValueDescription ~state valueDescription cmtTbl = let isExternal = match valueDescription.pval_prim with | [] -> false | _ -> true in let attrs = - printAttributes ~customLayout ~loc:valueDescription.pval_name.loc + printAttributes ~state ~loc:valueDescription.pval_name.loc valueDescription.pval_attributes cmtTbl in let header = if isExternal then "external " else "let " in @@ -1063,7 +1097,7 @@ and printValueDescription ~customLayout valueDescription cmtTbl = (printIdentLike valueDescription.pval_name.txt) cmtTbl valueDescription.pval_name.loc; Doc.text ": "; - printTypExpr ~customLayout valueDescription.pval_type cmtTbl; + printTypExpr ~state valueDescription.pval_type cmtTbl; (if isExternal then Doc.group (Doc.concat @@ -1084,11 +1118,11 @@ and printValueDescription ~customLayout valueDescription cmtTbl = else Doc.nil); ]) -and printTypeDeclarations ~customLayout ~recFlag typeDeclarations cmtTbl = +and printTypeDeclarations ~state ~recFlag typeDeclarations cmtTbl = printListi ~getLoc:(fun n -> n.Parsetree.ptype_loc) ~nodes:typeDeclarations - ~print:(printTypeDeclaration2 ~customLayout ~recFlag) + ~print:(printTypeDeclaration2 ~state ~recFlag) cmtTbl (* @@ -1123,16 +1157,16 @@ and printTypeDeclarations ~customLayout ~recFlag typeDeclarations cmtTbl = * (* Invariant: non-empty list *) * | Ptype_open *) -and printTypeDeclaration ~customLayout ~name ~equalSign ~recFlag i +and printTypeDeclaration ~state ~name ~equalSign ~recFlag i (td : Parsetree.type_declaration) cmtTbl = let attrs = - printAttributes ~customLayout ~loc:td.ptype_loc td.ptype_attributes cmtTbl + printAttributes ~state ~loc:td.ptype_loc td.ptype_attributes cmtTbl in let prefix = if i > 0 then Doc.text "and " else Doc.concat [Doc.text "type "; recFlag] in let typeName = name in - let typeParams = printTypeParams ~customLayout td.ptype_params cmtTbl in + let typeParams = printTypeParams ~state td.ptype_params cmtTbl in let manifestAndKind = match td.ptype_kind with | Ptype_abstract -> ( @@ -1143,7 +1177,7 @@ and printTypeDeclaration ~customLayout ~name ~equalSign ~recFlag i [ Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; printPrivateFlag td.ptype_private; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ]) | Ptype_open -> Doc.concat @@ -1160,7 +1194,7 @@ and printTypeDeclaration ~customLayout ~name ~equalSign ~recFlag i Doc.concat [ Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] in Doc.concat @@ -1168,7 +1202,7 @@ and printTypeDeclaration ~customLayout ~name ~equalSign ~recFlag i manifest; Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; printPrivateFlag td.ptype_private; - printRecordDeclaration ~customLayout lds cmtTbl; + printRecordDeclaration ~state lds cmtTbl; ] | Ptype_variant cds -> let manifest = @@ -1178,39 +1212,37 @@ and printTypeDeclaration ~customLayout ~name ~equalSign ~recFlag i Doc.concat [ Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] in Doc.concat [ manifest; Doc.concat [Doc.space; Doc.text equalSign]; - printConstructorDeclarations ~customLayout - ~privateFlag:td.ptype_private cds cmtTbl; + printConstructorDeclarations ~state ~privateFlag:td.ptype_private cds + cmtTbl; ] in - let constraints = - printTypeDefinitionConstraints ~customLayout td.ptype_cstrs - in + let constraints = printTypeDefinitionConstraints ~state td.ptype_cstrs in Doc.group (Doc.concat [attrs; prefix; typeName; typeParams; manifestAndKind; constraints]) -and printTypeDeclaration2 ~customLayout ~recFlag - (td : Parsetree.type_declaration) cmtTbl i = +and printTypeDeclaration2 ~state ~recFlag (td : Parsetree.type_declaration) + cmtTbl i = let name = let doc = printIdentLike td.Parsetree.ptype_name.txt in printComments doc cmtTbl td.ptype_name.loc in let equalSign = "=" in let attrs = - printAttributes ~customLayout ~loc:td.ptype_loc td.ptype_attributes cmtTbl + printAttributes ~state ~loc:td.ptype_loc td.ptype_attributes cmtTbl in let prefix = if i > 0 then Doc.text "and " else Doc.concat [Doc.text "type "; recFlag] in let typeName = name in - let typeParams = printTypeParams ~customLayout td.ptype_params cmtTbl in + let typeParams = printTypeParams ~state td.ptype_params cmtTbl in let manifestAndKind = match td.ptype_kind with | Ptype_abstract -> ( @@ -1221,7 +1253,7 @@ and printTypeDeclaration2 ~customLayout ~recFlag [ Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; printPrivateFlag td.ptype_private; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ]) | Ptype_open -> Doc.concat @@ -1231,23 +1263,34 @@ and printTypeDeclaration2 ~customLayout ~recFlag Doc.text ".."; ] | Ptype_record lds -> - let manifest = - match td.ptype_manifest with - | None -> Doc.nil - | Some typ -> - Doc.concat - [ - Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; - printTypExpr ~customLayout typ cmtTbl; - ] - in - Doc.concat - [ - manifest; - Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; - printPrivateFlag td.ptype_private; - printRecordDeclaration ~customLayout lds cmtTbl; - ] + if lds = [] then + Doc.concat + [ + Doc.space; + Doc.text equalSign; + Doc.space; + Doc.lbrace; + printCommentsInside cmtTbl td.ptype_loc; + Doc.rbrace; + ] + else + let manifest = + match td.ptype_manifest with + | None -> Doc.nil + | Some typ -> + Doc.concat + [ + Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; + printTypExpr ~state typ cmtTbl; + ] + in + Doc.concat + [ + manifest; + Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; + printPrivateFlag td.ptype_private; + printRecordDeclaration ~state lds cmtTbl; + ] | Ptype_variant cds -> let manifest = match td.ptype_manifest with @@ -1256,25 +1299,23 @@ and printTypeDeclaration2 ~customLayout ~recFlag Doc.concat [ Doc.concat [Doc.space; Doc.text equalSign; Doc.space]; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] in Doc.concat [ manifest; Doc.concat [Doc.space; Doc.text equalSign]; - printConstructorDeclarations ~customLayout - ~privateFlag:td.ptype_private cds cmtTbl; + printConstructorDeclarations ~state ~privateFlag:td.ptype_private cds + cmtTbl; ] in - let constraints = - printTypeDefinitionConstraints ~customLayout td.ptype_cstrs - in + let constraints = printTypeDefinitionConstraints ~state td.ptype_cstrs in Doc.group (Doc.concat [attrs; prefix; typeName; typeParams; manifestAndKind; constraints]) -and printTypeDefinitionConstraints ~customLayout cstrs = +and printTypeDefinitionConstraints ~state cstrs = match cstrs with | [] -> Doc.nil | cstrs -> @@ -1285,20 +1326,18 @@ and printTypeDefinitionConstraints ~customLayout cstrs = Doc.line; Doc.group (Doc.join ~sep:Doc.line - (List.map - (printTypeDefinitionConstraint ~customLayout) - cstrs)); + (List.map (printTypeDefinitionConstraint ~state) cstrs)); ])) -and printTypeDefinitionConstraint ~customLayout +and printTypeDefinitionConstraint ~state ((typ1, typ2, _loc) : Parsetree.core_type * Parsetree.core_type * Location.t) = Doc.concat [ Doc.text "constraint "; - printTypExpr ~customLayout typ1 CommentTable.empty; + printTypExpr ~state typ1 CommentTable.empty; Doc.text " = "; - printTypExpr ~customLayout typ2 CommentTable.empty; + printTypExpr ~state typ2 CommentTable.empty; ] and printPrivateFlag (flag : Asttypes.private_flag) = @@ -1306,7 +1345,7 @@ and printPrivateFlag (flag : Asttypes.private_flag) = | Private -> Doc.text "private " | Public -> Doc.nil -and printTypeParams ~customLayout typeParams cmtTbl = +and printTypeParams ~state typeParams cmtTbl = match typeParams with | [] -> Doc.nil | typeParams -> @@ -1322,9 +1361,7 @@ and printTypeParams ~customLayout typeParams cmtTbl = ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map (fun typeParam -> - let doc = - printTypeParam ~customLayout typeParam cmtTbl - in + let doc = printTypeParam ~state typeParam cmtTbl in printComments doc cmtTbl (fst typeParam).Parsetree.ptyp_loc) typeParams); @@ -1334,8 +1371,8 @@ and printTypeParams ~customLayout typeParams cmtTbl = Doc.greaterThan; ]) -and printTypeParam ~customLayout - (param : Parsetree.core_type * Asttypes.variance) cmtTbl = +and printTypeParam ~state (param : Parsetree.core_type * Asttypes.variance) + cmtTbl = let typ, variance = param in let printedVariance = match variance with @@ -1343,10 +1380,10 @@ and printTypeParam ~customLayout | Contravariant -> Doc.text "-" | Invariant -> Doc.nil in - Doc.concat [printedVariance; printTypExpr ~customLayout typ cmtTbl] + Doc.concat [printedVariance; printTypExpr ~state typ cmtTbl] -and printRecordDeclaration ~customLayout - (lds : Parsetree.label_declaration list) cmtTbl = +and printRecordDeclaration ~state (lds : Parsetree.label_declaration list) + cmtTbl = let forceBreak = match (lds, List.rev lds) with | first :: _, last :: _ -> @@ -1365,9 +1402,7 @@ and printRecordDeclaration ~customLayout ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map (fun ld -> - let doc = - printLabelDeclaration ~customLayout ld cmtTbl - in + let doc = printLabelDeclaration ~state ld cmtTbl in printComments doc cmtTbl ld.Parsetree.pld_loc) lds); ]); @@ -1376,7 +1411,7 @@ and printRecordDeclaration ~customLayout Doc.rbrace; ]) -and printConstructorDeclarations ~customLayout ~privateFlag +and printConstructorDeclarations ~state ~privateFlag (cds : Parsetree.constructor_declaration list) cmtTbl = let forceBreak = match (cds, List.rev cds) with @@ -1394,16 +1429,16 @@ and printConstructorDeclarations ~customLayout ~privateFlag ~getLoc:(fun cd -> cd.Parsetree.pcd_loc) ~nodes:cds ~print:(fun cd cmtTbl i -> - let doc = printConstructorDeclaration2 ~customLayout i cd cmtTbl in + let doc = printConstructorDeclaration2 ~state i cd cmtTbl in printComments doc cmtTbl cd.Parsetree.pcd_loc) ~forceBreak cmtTbl in Doc.breakableGroup ~forceBreak (Doc.indent (Doc.concat [Doc.line; privateFlag; rows])) -and printConstructorDeclaration2 ~customLayout i +and printConstructorDeclaration2 ~state i (cd : Parsetree.constructor_declaration) cmtTbl = - let attrs = printAttributes ~customLayout cd.pcd_attributes cmtTbl in + let attrs = printAttributes ~state cd.pcd_attributes cmtTbl in let bar = if i > 0 || cd.pcd_attributes <> [] then Doc.text "| " else Doc.ifBreaks (Doc.text "| ") Doc.nil @@ -1413,14 +1448,13 @@ and printConstructorDeclaration2 ~customLayout i printComments doc cmtTbl cd.pcd_name.loc in let constrArgs = - printConstructorArguments ~customLayout ~indent:true cd.pcd_args cmtTbl + printConstructorArguments ~state ~indent:true cd.pcd_args cmtTbl in let gadt = match cd.pcd_res with | None -> Doc.nil | Some typ -> - Doc.indent - (Doc.concat [Doc.text ": "; printTypExpr ~customLayout typ cmtTbl]) + Doc.indent (Doc.concat [Doc.text ": "; printTypExpr ~state typ cmtTbl]) in Doc.concat [ @@ -1436,7 +1470,7 @@ and printConstructorDeclaration2 ~customLayout i ]); ] -and printConstructorArguments ~customLayout ~indent +and printConstructorArguments ~state ~indent (cdArgs : Parsetree.constructor_arguments) cmtTbl = match cdArgs with | Pcstr_tuple [] -> Doc.nil @@ -1452,7 +1486,7 @@ and printConstructorArguments ~customLayout ~indent Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map - (fun typexpr -> printTypExpr ~customLayout typexpr cmtTbl) + (fun typexpr -> printTypExpr ~state typexpr cmtTbl) types); ]); Doc.trailingComma; @@ -1476,9 +1510,7 @@ and printConstructorArguments ~customLayout ~indent ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map (fun ld -> - let doc = - printLabelDeclaration ~customLayout ld cmtTbl - in + let doc = printLabelDeclaration ~state ld cmtTbl in printComments doc cmtTbl ld.Parsetree.pld_loc) lds); ]); @@ -1490,10 +1522,9 @@ and printConstructorArguments ~customLayout ~indent in if indent then Doc.indent args else args -and printLabelDeclaration ~customLayout (ld : Parsetree.label_declaration) - cmtTbl = +and printLabelDeclaration ~state (ld : Parsetree.label_declaration) cmtTbl = let attrs = - printAttributes ~customLayout ~loc:ld.pld_name.loc ld.pld_attributes cmtTbl + printAttributes ~state ~loc:ld.pld_name.loc ld.pld_attributes cmtTbl in let mutableFlag = match ld.pld_mutable with @@ -1513,17 +1544,97 @@ and printLabelDeclaration ~customLayout (ld : Parsetree.label_declaration) name; optional; Doc.text ": "; - printTypExpr ~customLayout ld.pld_type cmtTbl; + printTypExpr ~state ld.pld_type cmtTbl; ]) -and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = +and printTypExpr ~(state : State.t) (typExpr : Parsetree.core_type) cmtTbl = + let printArrow ~uncurried ?(arity = max_int) typExpr = + let attrsBefore, args, returnType = + ParsetreeViewer.arrowType ~arity typExpr + in + let dotted, attrsBefore = + let dotted = + state.uncurried_config |> Res_uncurried.getDotted ~uncurried + in + (* Converting .ml code to .res requires processing uncurried attributes *) + let hasBs, attrs = ParsetreeViewer.processBsAttribute attrsBefore in + (dotted || hasBs, attrs) + in + let returnTypeNeedsParens = + match returnType.ptyp_desc with + | Ptyp_alias _ -> true + | _ -> false + in + let returnDoc = + let doc = printTypExpr ~state returnType cmtTbl in + if returnTypeNeedsParens then Doc.concat [Doc.lparen; doc; Doc.rparen] + else doc + in + match args with + | [] -> Doc.nil + | [([], Nolabel, n)] when not dotted -> + let hasAttrsBefore = not (attrsBefore = []) in + let attrs = + if hasAttrsBefore then + printAttributes ~state ~inline:true attrsBefore cmtTbl + else Doc.nil + in + let typDoc = + let doc = printTypExpr ~state n cmtTbl in + match n.ptyp_desc with + | Ptyp_arrow _ | Ptyp_tuple _ | Ptyp_alias _ -> addParens doc + | _ when Ast_uncurried.typeIsUncurriedFun n -> addParens doc + | _ -> doc + in + Doc.group + (Doc.concat + [ + Doc.group attrs; + Doc.group + (if hasAttrsBefore then + Doc.concat + [ + Doc.lparen; + Doc.indent + (Doc.concat + [Doc.softLine; typDoc; Doc.text " => "; returnDoc]); + Doc.softLine; + Doc.rparen; + ] + else Doc.concat [typDoc; Doc.text " => "; returnDoc]); + ]) + | args -> + let attrs = printAttributes ~state ~inline:true attrsBefore cmtTbl in + let renderedArgs = + Doc.concat + [ + attrs; + Doc.text "("; + Doc.indent + (Doc.concat + [ + Doc.softLine; + (if dotted then Doc.concat [Doc.dot; Doc.space] else Doc.nil); + Doc.join + ~sep:(Doc.concat [Doc.comma; Doc.line]) + (List.map + (fun tp -> printTypeParameter ~state tp cmtTbl) + args); + ]); + Doc.trailingComma; + Doc.softLine; + Doc.text ")"; + ] + in + Doc.group (Doc.concat [renderedArgs; Doc.text " => "; returnDoc]) + in let renderedType = match typExpr.ptyp_desc with | Ptyp_any -> Doc.text "_" | Ptyp_var var -> Doc.concat [Doc.text "'"; printIdentLike ~allowUident:true var] | Ptyp_extension extension -> - printExtension ~customLayout ~atModuleLvl:false extension cmtTbl + printExtension ~state ~atModuleLvl:false extension cmtTbl | Ptyp_alias (typ, alias) -> let typ = (* Technically type t = (string, float) => unit as 'x, doesn't require @@ -1535,14 +1646,18 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = | Ptyp_arrow _ -> true | _ -> false in - let doc = printTypExpr ~customLayout typ cmtTbl in + let doc = printTypExpr ~state typ cmtTbl in if needsParens then Doc.concat [Doc.lparen; doc; Doc.rparen] else doc in Doc.concat [typ; Doc.text " as "; Doc.concat [Doc.text "'"; printIdentLike alias]] (* object printings *) | Ptyp_object (fields, openFlag) -> - printObject ~customLayout ~inline:false fields openFlag cmtTbl + printObject ~state ~inline:false fields openFlag cmtTbl + | Ptyp_arrow _ -> printArrow ~uncurried:false typExpr + | Ptyp_constr _ when Ast_uncurried.typeIsUncurriedFun typExpr -> + let arity, tArg = Ast_uncurried.typeExtractUncurriedFun typExpr in + printArrow ~uncurried:true ~arity tArg | Ptyp_constr (longidentLoc, [{ptyp_desc = Ptyp_object (fields, openFlag)}]) -> (* for foo<{"a": b}>, when the object is long and needs a line break, we @@ -1552,7 +1667,7 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = [ constrName; Doc.lessThan; - printObject ~customLayout ~inline:true fields openFlag cmtTbl; + printObject ~state ~inline:true fields openFlag cmtTbl; Doc.greaterThan; ] | Ptyp_constr (longidentLoc, [{ptyp_desc = Parsetree.Ptyp_tuple tuple}]) -> @@ -1562,7 +1677,7 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = [ constrName; Doc.lessThan; - printTupleType ~customLayout ~inline:true tuple cmtTbl; + printTupleType ~state ~inline:true tuple cmtTbl; Doc.greaterThan; ]) | Ptyp_constr (longidentLoc, constrArgs) -> ( @@ -1582,89 +1697,15 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map - (fun typexpr -> - printTypExpr ~customLayout typexpr cmtTbl) + (fun typexpr -> printTypExpr ~state typexpr cmtTbl) constrArgs); ]); Doc.trailingComma; Doc.softLine; Doc.greaterThan; ])) - | Ptyp_arrow _ -> ( - let attrsBefore, args, returnType = ParsetreeViewer.arrowType typExpr in - let returnTypeNeedsParens = - match returnType.ptyp_desc with - | Ptyp_alias _ -> true - | _ -> false - in - let returnDoc = - let doc = printTypExpr ~customLayout returnType cmtTbl in - if returnTypeNeedsParens then Doc.concat [Doc.lparen; doc; Doc.rparen] - else doc - in - let isUncurried, attrs = - ParsetreeViewer.processUncurriedAttribute attrsBefore - in - match args with - | [] -> Doc.nil - | [([], Nolabel, n)] when not isUncurried -> - let hasAttrsBefore = not (attrs = []) in - let attrs = - if hasAttrsBefore then - printAttributes ~customLayout ~inline:true attrsBefore cmtTbl - else Doc.nil - in - let typDoc = - let doc = printTypExpr ~customLayout n cmtTbl in - match n.ptyp_desc with - | Ptyp_arrow _ | Ptyp_tuple _ | Ptyp_alias _ -> addParens doc - | _ -> doc - in - Doc.group - (Doc.concat - [ - Doc.group attrs; - Doc.group - (if hasAttrsBefore then - Doc.concat - [ - Doc.lparen; - Doc.indent - (Doc.concat - [Doc.softLine; typDoc; Doc.text " => "; returnDoc]); - Doc.softLine; - Doc.rparen; - ] - else Doc.concat [typDoc; Doc.text " => "; returnDoc]); - ]) - | args -> - let attrs = printAttributes ~customLayout ~inline:true attrs cmtTbl in - let renderedArgs = - Doc.concat - [ - attrs; - Doc.text "("; - Doc.indent - (Doc.concat - [ - Doc.softLine; - (if isUncurried then Doc.concat [Doc.dot; Doc.space] - else Doc.nil); - Doc.join - ~sep:(Doc.concat [Doc.comma; Doc.line]) - (List.map - (fun tp -> printTypeParameter ~customLayout tp cmtTbl) - args); - ]); - Doc.trailingComma; - Doc.softLine; - Doc.text ")"; - ] - in - Doc.group (Doc.concat [renderedArgs; Doc.text " => "; returnDoc])) - | Ptyp_tuple types -> - printTupleType ~customLayout ~inline:false types cmtTbl - | Ptyp_poly ([], typ) -> printTypExpr ~customLayout typ cmtTbl + | Ptyp_tuple types -> printTupleType ~state ~inline:false types cmtTbl + | Ptyp_poly ([], typ) -> printTypExpr ~state typ cmtTbl | Ptyp_poly (stringLocs, typ) -> Doc.concat [ @@ -1676,11 +1717,11 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = stringLocs); Doc.dot; Doc.space; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] | Ptyp_package packageType -> - printPackageType ~customLayout ~printModuleKeywordAndParens:true - packageType cmtTbl + printPackageType ~state ~printModuleKeywordAndParens:true packageType + cmtTbl | Ptyp_class _ -> Doc.text "classes are not supported in types" | Ptyp_variant (rowFields, closedFlag, labelsOpt) -> let forceBreak = @@ -1693,7 +1734,7 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = Doc.group (Doc.concat [ - printAttributes ~customLayout attrs cmtTbl; + printAttributes ~state attrs cmtTbl; Doc.concat [Doc.text "#"; printPolyVarIdent txt]; ]) in @@ -1701,10 +1742,9 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = | Rtag ({txt}, attrs, truth, types) -> let doType t = match t.Parsetree.ptyp_desc with - | Ptyp_tuple _ -> printTypExpr ~customLayout t cmtTbl + | Ptyp_tuple _ -> printTypExpr ~state t cmtTbl | _ -> - Doc.concat - [Doc.lparen; printTypExpr ~customLayout t cmtTbl; Doc.rparen] + Doc.concat [Doc.lparen; printTypExpr ~state t cmtTbl; Doc.rparen] in let printedTypes = List.map doType types in let cases = @@ -1716,11 +1756,11 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = Doc.group (Doc.concat [ - printAttributes ~customLayout attrs cmtTbl; + printAttributes ~state attrs cmtTbl; Doc.concat [Doc.text "#"; printPolyVarIdent txt]; cases; ]) - | Rinherit coreType -> printTypExpr ~customLayout coreType cmtTbl + | Rinherit coreType -> printTypExpr ~state coreType cmtTbl in let docs = List.map printRowField rowFields in let cases = Doc.join ~sep:(Doc.concat [Doc.line; Doc.text "| "]) docs in @@ -1766,13 +1806,12 @@ and printTypExpr ~customLayout (typExpr : Parsetree.core_type) cmtTbl = let doc = match typExpr.ptyp_attributes with | _ :: _ as attrs when not shouldPrintItsOwnAttributes -> - Doc.group - (Doc.concat [printAttributes ~customLayout attrs cmtTbl; renderedType]) + Doc.group (Doc.concat [printAttributes ~state attrs cmtTbl; renderedType]) | _ -> renderedType in printComments doc cmtTbl typExpr.ptyp_loc -and printObject ~customLayout ~inline fields openFlag cmtTbl = +and printObject ~state ~inline fields openFlag cmtTbl = let doc = match fields with | [] -> @@ -1803,7 +1842,7 @@ and printObject ~customLayout ~inline fields openFlag cmtTbl = Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map - (fun field -> printObjectField ~customLayout field cmtTbl) + (fun field -> printObjectField ~state field cmtTbl) fields); ]); Doc.trailingComma; @@ -1813,8 +1852,7 @@ and printObject ~customLayout ~inline fields openFlag cmtTbl = in if inline then doc else Doc.group doc -and printTupleType ~customLayout ~inline (types : Parsetree.core_type list) - cmtTbl = +and printTupleType ~state ~inline (types : Parsetree.core_type list) cmtTbl = let tuple = Doc.concat [ @@ -1826,7 +1864,7 @@ and printTupleType ~customLayout ~inline (types : Parsetree.core_type list) Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map - (fun typexpr -> printTypExpr ~customLayout typexpr cmtTbl) + (fun typexpr -> printTypExpr ~state typexpr cmtTbl) types); ]); Doc.trailingComma; @@ -1836,7 +1874,7 @@ and printTupleType ~customLayout ~inline (types : Parsetree.core_type list) in if inline == false then Doc.group tuple else tuple -and printObjectField ~customLayout (field : Parsetree.object_field) cmtTbl = +and printObjectField ~state (field : Parsetree.object_field) cmtTbl = match field with | Otag (labelLoc, attrs, typ) -> let lbl = @@ -1846,26 +1884,25 @@ and printObjectField ~customLayout (field : Parsetree.object_field) cmtTbl = let doc = Doc.concat [ - printAttributes ~customLayout ~loc:labelLoc.loc attrs cmtTbl; + printAttributes ~state ~loc:labelLoc.loc attrs cmtTbl; lbl; Doc.text ": "; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] in let cmtLoc = {labelLoc.loc with loc_end = typ.ptyp_loc.loc_end} in printComments doc cmtTbl cmtLoc | Oinherit typexpr -> - Doc.concat [Doc.dotdotdot; printTypExpr ~customLayout typexpr cmtTbl] + Doc.concat [Doc.dotdotdot; printTypExpr ~state typexpr cmtTbl] (* es6 arrow type arg * type t = (~foo: string, ~bar: float=?, unit) => unit * i.e. ~foo: string, ~bar: float *) -and printTypeParameter ~customLayout (attrs, lbl, typ) cmtTbl = - let isUncurried, attrs = ParsetreeViewer.processUncurriedAttribute attrs in - let uncurried = - if isUncurried then Doc.concat [Doc.dot; Doc.space] else Doc.nil - in - let attrs = printAttributes ~customLayout attrs cmtTbl in +and printTypeParameter ~state (attrs, lbl, typ) cmtTbl = + (* Converting .ml code to .res requires processing uncurried attributes *) + let hasBs, attrs = ParsetreeViewer.processBsAttribute attrs in + let dotted = if hasBs then Doc.concat [Doc.dot; Doc.space] else Doc.nil in + let attrs = printAttributes ~state attrs cmtTbl in let label = match lbl with | Asttypes.Nolabel -> Doc.nil @@ -1881,7 +1918,7 @@ and printTypeParameter ~customLayout (attrs, lbl, typ) cmtTbl = in let loc, typ = match typ.ptyp_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: attrs -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: attrs -> ( {loc with loc_end = typ.ptyp_loc.loc_end}, {typ with ptyp_attributes = attrs} ) | _ -> (typ.ptyp_loc, typ) @@ -1890,20 +1927,18 @@ and printTypeParameter ~customLayout (attrs, lbl, typ) cmtTbl = Doc.group (Doc.concat [ - uncurried; + dotted; attrs; label; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; optionalIndicator; ]) in printComments doc cmtTbl loc -and printValueBinding ~customLayout ~recFlag (vb : Parsetree.value_binding) - cmtTbl i = +and printValueBinding ~state ~recFlag (vb : Parsetree.value_binding) cmtTbl i = let attrs = - printAttributes ~customLayout ~loc:vb.pvb_pat.ppat_loc vb.pvb_attributes - cmtTbl + printAttributes ~state ~loc:vb.pvb_pat.ppat_loc vb.pvb_attributes cmtTbl in let header = if i == 0 then Doc.concat [Doc.text "let "; recFlag] else Doc.text "and " @@ -1917,7 +1952,9 @@ and printValueBinding ~customLayout ~recFlag (vb : Parsetree.value_binding) }; pvb_expr = {pexp_desc = Pexp_newtype _} as expr; } -> ( - let _attrs, parameters, returnExpr = ParsetreeViewer.funExpr expr in + let _uncurried, _attrs, parameters, returnExpr = + ParsetreeViewer.funExpr expr + in let abstractType = match parameters with | [NewTypes {locs = vars}] -> @@ -1937,7 +1974,7 @@ and printValueBinding ~customLayout ~recFlag (vb : Parsetree.value_binding) [ attrs; header; - printPattern ~customLayout pattern cmtTbl; + printPattern ~state pattern cmtTbl; Doc.text ":"; Doc.indent (Doc.concat @@ -1945,13 +1982,10 @@ and printValueBinding ~customLayout ~recFlag (vb : Parsetree.value_binding) Doc.line; abstractType; Doc.space; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; Doc.text " ="; Doc.concat - [ - Doc.line; - printExpressionWithComments ~customLayout expr cmtTbl; - ]; + [Doc.line; printExpressionWithComments ~state expr cmtTbl]; ]); ]) | _ -> @@ -1964,7 +1998,7 @@ and printValueBinding ~customLayout ~recFlag (vb : Parsetree.value_binding) [ attrs; header; - printPattern ~customLayout pattern cmtTbl; + printPattern ~state pattern cmtTbl; Doc.text ":"; Doc.indent (Doc.concat @@ -1972,25 +2006,22 @@ and printValueBinding ~customLayout ~recFlag (vb : Parsetree.value_binding) Doc.line; abstractType; Doc.space; - printTypExpr ~customLayout patTyp cmtTbl; + printTypExpr ~state patTyp cmtTbl; Doc.text " ="; Doc.concat - [ - Doc.line; - printExpressionWithComments ~customLayout expr cmtTbl; - ]; + [Doc.line; printExpressionWithComments ~state expr cmtTbl]; ]); ])) | _ -> let optBraces, expr = ParsetreeViewer.processBracesAttr vb.pvb_expr in let printedExpr = - let doc = printExpressionWithComments ~customLayout vb.pvb_expr cmtTbl in + let doc = printExpressionWithComments ~state vb.pvb_expr cmtTbl in match Parens.expr vb.pvb_expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces | Nothing -> doc in - let patternDoc = printPattern ~customLayout vb.pvb_pat cmtTbl in + let patternDoc = printPattern ~state vb.pvb_pat cmtTbl in (* * we want to optimize the layout of one pipe: * let tbl = data->Js.Array2.reduce((map, curr) => { @@ -2030,7 +2061,7 @@ and printValueBinding ~customLayout ~recFlag (vb : Parsetree.value_binding) || match vb.pvb_expr with | { - pexp_attributes = [({Location.txt = "ns.ternary"}, _)]; + pexp_attributes = [({Location.txt = "res.ternary"}, _)]; pexp_desc = Pexp_ifthenelse (ifExpr, _, _); } -> ParsetreeViewer.isBinaryExpression ifExpr @@ -2052,7 +2083,7 @@ and printValueBinding ~customLayout ~recFlag (vb : Parsetree.value_binding) else Doc.concat [Doc.space; printedExpr]); ]) -and printPackageType ~customLayout ~printModuleKeywordAndParens +and printPackageType ~state ~printModuleKeywordAndParens (packageType : Parsetree.package_type) cmtTbl = let doc = match packageType with @@ -2063,7 +2094,7 @@ and printPackageType ~customLayout ~printModuleKeywordAndParens (Doc.concat [ printLongidentLocation longidentLoc cmtTbl; - printPackageConstraints ~customLayout packageConstraints cmtTbl; + printPackageConstraints ~state packageConstraints cmtTbl; Doc.softLine; ]) in @@ -2071,7 +2102,7 @@ and printPackageType ~customLayout ~printModuleKeywordAndParens Doc.concat [Doc.text "module("; doc; Doc.rparen] else doc -and printPackageConstraints ~customLayout packageConstraints cmtTbl = +and printPackageConstraints ~state packageConstraints cmtTbl = Doc.concat [ Doc.text " with"; @@ -2089,25 +2120,23 @@ and printPackageConstraints ~customLayout packageConstraints cmtTbl = loc_end = typexpr.Parsetree.ptyp_loc.loc_end; } in - let doc = - printPackageConstraint ~customLayout i cmtTbl pc - in + let doc = printPackageConstraint ~state i cmtTbl pc in printComments doc cmtTbl cmtLoc) packageConstraints); ]); ] -and printPackageConstraint ~customLayout i cmtTbl (longidentLoc, typ) = +and printPackageConstraint ~state i cmtTbl (longidentLoc, typ) = let prefix = if i == 0 then Doc.text "type " else Doc.text "and type " in Doc.concat [ prefix; printLongidentLocation longidentLoc cmtTbl; Doc.text " = "; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] -and printExtension ~customLayout ~atModuleLvl (stringLoc, payload) cmtTbl = +and printExtension ~state ~atModuleLvl (stringLoc, payload) cmtTbl = let txt = convertBsExtension stringLoc.Location.txt in let extName = let doc = @@ -2120,9 +2149,9 @@ and printExtension ~customLayout ~atModuleLvl (stringLoc, payload) cmtTbl = in printComments doc cmtTbl stringLoc.Location.loc in - Doc.group (Doc.concat [extName; printPayload ~customLayout payload cmtTbl]) + Doc.group (Doc.concat [extName; printPayload ~state payload cmtTbl]) -and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = +and printPattern ~state (p : Parsetree.pattern) cmtTbl = let patternWithoutAttributes = match p.ppat_desc with | Ppat_any -> Doc.text "_" @@ -2144,7 +2173,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = Doc.join ~sep:(Doc.concat [Doc.text ","; Doc.line]) (List.map - (fun pat -> printPattern ~customLayout pat cmtTbl) + (fun pat -> printPattern ~state pat cmtTbl) patterns); ]); Doc.trailingComma; @@ -2166,7 +2195,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = Doc.join ~sep:(Doc.concat [Doc.text ","; Doc.line]) (List.map - (fun pat -> printPattern ~customLayout pat cmtTbl) + (fun pat -> printPattern ~state pat cmtTbl) patterns); ]); Doc.trailingComma; @@ -2195,15 +2224,12 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = (if shouldHug then Doc.nil else Doc.softLine); Doc.join ~sep:(Doc.concat [Doc.text ","; Doc.line]) - (List.map - (fun pat -> printPattern ~customLayout pat cmtTbl) - patterns); + (List.map (fun pat -> printPattern ~state pat cmtTbl) patterns); (match tail.Parsetree.ppat_desc with | Ppat_construct ({txt = Longident.Lident "[]"}, _) -> Doc.nil | _ -> let doc = - Doc.concat - [Doc.text "..."; printPattern ~customLayout tail cmtTbl] + Doc.concat [Doc.text "..."; printPattern ~state tail cmtTbl] in let tail = printComments doc cmtTbl tail.ppat_loc in Doc.concat [Doc.text ","; Doc.line; tail]); @@ -2236,17 +2262,10 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = Doc.concat [Doc.lparen; printCommentsInside cmtTbl ppat_loc; Doc.rparen] | Some {ppat_desc = Ppat_tuple []; ppat_loc = loc} -> - Doc.concat - [ - Doc.lparen; - Doc.softLine; - printCommentsInside cmtTbl loc; - Doc.rparen; - ] + Doc.concat [Doc.lparen; printCommentsInside cmtTbl loc; Doc.rparen] (* Some((1, 2) *) | Some {ppat_desc = Ppat_tuple [({ppat_desc = Ppat_tuple _} as arg)]} -> - Doc.concat - [Doc.lparen; printPattern ~customLayout arg cmtTbl; Doc.rparen] + Doc.concat [Doc.lparen; printPattern ~state arg cmtTbl; Doc.rparen] | Some {ppat_desc = Ppat_tuple patterns} -> Doc.concat [ @@ -2258,7 +2277,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map - (fun pat -> printPattern ~customLayout pat cmtTbl) + (fun pat -> printPattern ~state pat cmtTbl) patterns); ]); Doc.trailingComma; @@ -2266,7 +2285,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = Doc.rparen; ] | Some arg -> - let argDoc = printPattern ~customLayout arg cmtTbl in + let argDoc = printPattern ~state arg cmtTbl in let shouldHug = ParsetreeViewer.isHuggablePattern arg in Doc.concat [ @@ -2294,17 +2313,10 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = -> Doc.text "()" | Some {ppat_desc = Ppat_tuple []; ppat_loc = loc} -> - Doc.concat - [ - Doc.lparen; - Doc.softLine; - printCommentsInside cmtTbl loc; - Doc.rparen; - ] + Doc.concat [Doc.lparen; printCommentsInside cmtTbl loc; Doc.rparen] (* Some((1, 2) *) | Some {ppat_desc = Ppat_tuple [({ppat_desc = Ppat_tuple _} as arg)]} -> - Doc.concat - [Doc.lparen; printPattern ~customLayout arg cmtTbl; Doc.rparen] + Doc.concat [Doc.lparen; printPattern ~state arg cmtTbl; Doc.rparen] | Some {ppat_desc = Ppat_tuple patterns} -> Doc.concat [ @@ -2316,7 +2328,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map - (fun pat -> printPattern ~customLayout pat cmtTbl) + (fun pat -> printPattern ~state pat cmtTbl) patterns); ]); Doc.trailingComma; @@ -2324,7 +2336,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = Doc.rparen; ] | Some arg -> - let argDoc = printPattern ~customLayout arg cmtTbl in + let argDoc = printPattern ~state arg cmtTbl in let shouldHug = ParsetreeViewer.isHuggablePattern arg in Doc.concat [ @@ -2355,8 +2367,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = Doc.join ~sep:(Doc.concat [Doc.text ","; Doc.line]) (List.map - (fun row -> - printPatternRecordRow ~customLayout row cmtTbl) + (fun row -> printPatternRecordRow ~state row cmtTbl) rows); (match openFlag with | Open -> Doc.concat [Doc.text ","; Doc.line; Doc.text "_"] @@ -2373,7 +2384,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = | _ -> false in let pat = - let p = printPattern ~customLayout p cmtTbl in + let p = printPattern ~state p cmtTbl in if needsParens then Doc.concat [Doc.text "("; p; Doc.text ")"] else p in Doc.group (Doc.concat [Doc.text "exception"; Doc.line; pat]) @@ -2383,7 +2394,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = let docs = List.mapi (fun i pat -> - let patternDoc = printPattern ~customLayout pat cmtTbl in + let patternDoc = printPattern ~state pat cmtTbl in Doc.concat [ (if i == 0 then Doc.nil @@ -2402,8 +2413,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = | _ -> false in Doc.breakableGroup ~forceBreak:isSpreadOverMultipleLines (Doc.concat docs) - | Ppat_extension ext -> - printExtension ~customLayout ~atModuleLvl:false ext cmtTbl + | Ppat_extension ext -> printExtension ~state ~atModuleLvl:false ext cmtTbl | Ppat_lazy p -> let needsParens = match p.ppat_desc with @@ -2411,7 +2421,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = | _ -> false in let pat = - let p = printPattern ~customLayout p cmtTbl in + let p = printPattern ~state p cmtTbl in if needsParens then Doc.concat [Doc.text "("; p; Doc.text ")"] else p in Doc.concat [Doc.text "lazy "; pat] @@ -2422,7 +2432,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = | _ -> false in let renderedPattern = - let p = printPattern ~customLayout p cmtTbl in + let p = printPattern ~state p cmtTbl in if needsParens then Doc.concat [Doc.text "("; p; Doc.text ")"] else p in Doc.concat @@ -2438,7 +2448,7 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = printComments (Doc.text stringLoc.txt) cmtTbl stringLoc.loc; Doc.text ": "; printComments - (printPackageType ~customLayout ~printModuleKeywordAndParens:false + (printPackageType ~state ~printModuleKeywordAndParens:false packageType cmtTbl) cmtTbl ptyp_loc; Doc.rparen; @@ -2446,9 +2456,9 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = | Ppat_constraint (pattern, typ) -> Doc.concat [ - printPattern ~customLayout pattern cmtTbl; + printPattern ~state pattern cmtTbl; Doc.text ": "; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] (* Note: module(P : S) is represented as *) (* Ppat_constraint(Ppat_unpack, Ptyp_package) *) @@ -2469,13 +2479,11 @@ and printPattern ~customLayout (p : Parsetree.pattern) cmtTbl = | attrs -> Doc.group (Doc.concat - [ - printAttributes ~customLayout attrs cmtTbl; patternWithoutAttributes; - ]) + [printAttributes ~state attrs cmtTbl; patternWithoutAttributes]) in printComments doc cmtTbl p.ppat_loc -and printPatternRecordRow ~customLayout row cmtTbl = +and printPatternRecordRow ~state row cmtTbl = match row with (* punned {x}*) | ( ({Location.txt = Longident.Lident ident} as longident), @@ -2484,7 +2492,7 @@ and printPatternRecordRow ~customLayout row cmtTbl = Doc.concat [ printOptionalLabel ppat_attributes; - printAttributes ~customLayout ppat_attributes cmtTbl; + printAttributes ~state ppat_attributes cmtTbl; printLidentPath longident cmtTbl; ] | longident, pattern -> @@ -2492,7 +2500,7 @@ and printPatternRecordRow ~customLayout row cmtTbl = {longident.loc with loc_end = pattern.Parsetree.ppat_loc.loc_end} in let rhsDoc = - let doc = printPattern ~customLayout pattern cmtTbl in + let doc = printPattern ~state pattern cmtTbl in let doc = if Parens.patternRecordRowRhs pattern then addParens doc else doc in @@ -2511,11 +2519,11 @@ and printPatternRecordRow ~customLayout row cmtTbl = in printComments doc cmtTbl locForComments -and printExpressionWithComments ~customLayout expr cmtTbl : Doc.t = - let doc = printExpression ~customLayout expr cmtTbl in +and printExpressionWithComments ~state expr cmtTbl : Doc.t = + let doc = printExpression ~state expr cmtTbl in printComments doc cmtTbl expr.Parsetree.pexp_loc -and printIfChain ~customLayout pexp_attributes ifs elseExpr cmtTbl = +and printIfChain ~state pexp_attributes ifs elseExpr cmtTbl = let ifDocs = Doc.join ~sep:Doc.space (List.mapi @@ -2526,11 +2534,9 @@ and printIfChain ~customLayout pexp_attributes ifs elseExpr cmtTbl = | ParsetreeViewer.If ifExpr -> let condition = if ParsetreeViewer.isBlockExpr ifExpr then - printExpressionBlock ~customLayout ~braces:true ifExpr cmtTbl + printExpressionBlock ~state ~braces:true ifExpr cmtTbl else - let doc = - printExpressionWithComments ~customLayout ifExpr cmtTbl - in + let doc = printExpressionWithComments ~state ifExpr cmtTbl in match Parens.expr ifExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc ifExpr braces @@ -2547,14 +2553,12 @@ and printIfChain ~customLayout pexp_attributes ifs elseExpr cmtTbl = | Some _, expr -> expr | _ -> thenExpr in - printExpressionBlock ~customLayout ~braces:true thenExpr - cmtTbl); + printExpressionBlock ~state ~braces:true thenExpr cmtTbl); ] | IfLet (pattern, conditionExpr) -> let conditionDoc = let doc = - printExpressionWithComments ~customLayout conditionExpr - cmtTbl + printExpressionWithComments ~state conditionExpr cmtTbl in match Parens.expr conditionExpr with | Parens.Parenthesized -> addParens doc @@ -2565,12 +2569,11 @@ and printIfChain ~customLayout pexp_attributes ifs elseExpr cmtTbl = [ ifTxt; Doc.text "let "; - printPattern ~customLayout pattern cmtTbl; + printPattern ~state pattern cmtTbl; Doc.text " = "; conditionDoc; Doc.space; - printExpressionBlock ~customLayout ~braces:true thenExpr - cmtTbl; + printExpressionBlock ~state ~braces:true thenExpr cmtTbl; ] in printLeadingComments doc cmtTbl.leading outerLoc) @@ -2582,20 +2585,105 @@ and printIfChain ~customLayout pexp_attributes ifs elseExpr cmtTbl = | Some expr -> Doc.concat [ - Doc.text " else "; - printExpressionBlock ~customLayout ~braces:true expr cmtTbl; + Doc.text " else "; printExpressionBlock ~state ~braces:true expr cmtTbl; ] in let attrs = ParsetreeViewer.filterFragileMatchAttributes pexp_attributes in - Doc.concat [printAttributes ~customLayout attrs cmtTbl; ifDocs; elseDoc] + Doc.concat [printAttributes ~state attrs cmtTbl; ifDocs; elseDoc] -and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = +and printExpression ~state (e : Parsetree.expression) cmtTbl = + let printArrow e = + let uncurried, attrsOnArrow, parameters, returnExpr = + ParsetreeViewer.funExpr e + in + let ParsetreeViewer.{async; bs; attributes = attrs} = + ParsetreeViewer.processFunctionAttributes attrsOnArrow + in + let uncurried = uncurried || bs in + let returnExpr, typConstraint = + match returnExpr.pexp_desc with + | Pexp_constraint (expr, typ) -> + ( { + expr with + pexp_attributes = + List.concat [expr.pexp_attributes; returnExpr.pexp_attributes]; + }, + Some typ ) + | _ -> (returnExpr, None) + in + let hasConstraint = + match typConstraint with + | Some _ -> true + | None -> false + in + let parametersDoc = + printExprFunParameters ~state ~inCallback:NoCallback ~uncurried ~async + ~hasConstraint parameters cmtTbl + in + let returnExprDoc = + let optBraces, _ = ParsetreeViewer.processBracesAttr returnExpr in + let shouldInline = + match (returnExpr.pexp_desc, optBraces) with + | _, Some _ -> true + | ( ( Pexp_array _ | Pexp_tuple _ + | Pexp_construct (_, Some _) + | Pexp_record _ ), + _ ) -> + true + | _ -> false + in + let shouldIndent = + match returnExpr.pexp_desc with + | Pexp_sequence _ | Pexp_let _ | Pexp_letmodule _ | Pexp_letexception _ + | Pexp_open _ -> + false + | _ -> true + in + let returnDoc = + let doc = printExpressionWithComments ~state returnExpr cmtTbl in + match Parens.expr returnExpr with + | Parens.Parenthesized -> addParens doc + | Braced braces -> printBraces doc returnExpr braces + | Nothing -> doc + in + if shouldInline then Doc.concat [Doc.space; returnDoc] + else + Doc.group + (if shouldIndent then Doc.indent (Doc.concat [Doc.line; returnDoc]) + else Doc.concat [Doc.space; returnDoc]) + in + let typConstraintDoc = + match typConstraint with + | Some typ -> + let typDoc = + let doc = printTypExpr ~state typ cmtTbl in + if Parens.arrowReturnTypExpr typ then addParens doc else doc + in + Doc.concat [Doc.text ": "; typDoc] + | _ -> Doc.nil + in + let attrs = printAttributes ~state attrs cmtTbl in + Doc.group + (Doc.concat + [attrs; parametersDoc; typConstraintDoc; Doc.text " =>"; returnExprDoc]) + in let printedExpression = match e.pexp_desc with + | Pexp_fun + ( Nolabel, + None, + {ppat_desc = Ppat_var {txt = "__x"}}, + {pexp_desc = Pexp_apply _} ) -> + (* (__x) => f(a, __x, c) -----> f(a, _, c) *) + printExpressionWithComments ~state + (ParsetreeViewer.rewriteUnderscoreApply e) + cmtTbl + | _ when Ast_uncurried.exprIsUncurriedFun e -> printArrow e + | Pexp_fun _ | Pexp_newtype _ -> printArrow e | Parsetree.Pexp_constant c -> printConstant ~templateLiteral:(ParsetreeViewer.isTemplateLiteral e) c | Pexp_construct _ when ParsetreeViewer.hasJsxAttribute e.pexp_attributes -> - printJsxFragment ~customLayout e cmtTbl + printJsxFragment ~state e cmtTbl | Pexp_construct ({txt = Longident.Lident "()"}, _) -> Doc.text "()" | Pexp_construct ({txt = Longident.Lident "[]"}, _) -> Doc.concat @@ -2610,9 +2698,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = Doc.text ","; Doc.line; Doc.dotdotdot; - (let doc = - printExpressionWithComments ~customLayout expr cmtTbl - in + (let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -2633,8 +2719,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = (List.map (fun expr -> let doc = - printExpressionWithComments ~customLayout expr - cmtTbl + printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc @@ -2660,7 +2745,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = Doc.concat [ Doc.lparen; - (let doc = printExpressionWithComments ~customLayout arg cmtTbl in + (let doc = printExpressionWithComments ~state arg cmtTbl in match Parens.expr arg with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc arg braces @@ -2680,8 +2765,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = (List.map (fun expr -> let doc = - printExpressionWithComments ~customLayout expr - cmtTbl + printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc @@ -2695,7 +2779,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = ] | Some arg -> let argDoc = - let doc = printExpressionWithComments ~customLayout arg cmtTbl in + let doc = printExpressionWithComments ~state arg cmtTbl in match Parens.expr arg with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc arg braces @@ -2732,8 +2816,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = (List.map (fun expr -> let doc = - printExpressionWithComments ~customLayout expr - cmtTbl + printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc @@ -2762,8 +2845,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = (List.map (fun expr -> let doc = - printExpressionWithComments ~customLayout expr - cmtTbl + printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc @@ -2788,7 +2870,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = Doc.concat [ Doc.lparen; - (let doc = printExpressionWithComments ~customLayout arg cmtTbl in + (let doc = printExpressionWithComments ~state arg cmtTbl in match Parens.expr arg with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc arg braces @@ -2808,8 +2890,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = (List.map (fun expr -> let doc = - printExpressionWithComments ~customLayout expr - cmtTbl + printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc @@ -2823,7 +2904,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = ] | Some arg -> let argDoc = - let doc = printExpressionWithComments ~customLayout arg cmtTbl in + let doc = printExpressionWithComments ~state arg cmtTbl in match Parens.expr arg with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc arg braces @@ -2846,59 +2927,61 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = in Doc.group (Doc.concat [variantName; args]) | Pexp_record (rows, spreadExpr) -> - let spread = - match spreadExpr with - | None -> Doc.nil - | Some expr -> - Doc.concat - [ - Doc.dotdotdot; - (let doc = - printExpressionWithComments ~customLayout expr cmtTbl - in - match Parens.expr expr with - | Parens.Parenthesized -> addParens doc - | Braced braces -> printBraces doc expr braces - | Nothing -> doc); - Doc.comma; - Doc.line; - ] - in - (* If the record is written over multiple lines, break automatically - * `let x = {a: 1, b: 3}` -> same line, break when line-width exceeded - * `let x = { - * a: 1, - * b: 2, - * }` -> record is written on multiple lines, break the group *) - let forceBreak = - e.pexp_loc.loc_start.pos_lnum < e.pexp_loc.loc_end.pos_lnum - in - let punningAllowed = - match (spreadExpr, rows) with - | None, [_] -> false (* disallow punning for single-element records *) - | _ -> true - in - Doc.breakableGroup ~forceBreak - (Doc.concat - [ - Doc.lbrace; - Doc.indent - (Doc.concat - [ - Doc.softLine; - spread; - Doc.join - ~sep:(Doc.concat [Doc.text ","; Doc.line]) - (List.map - (fun row -> - printExpressionRecordRow ~customLayout row cmtTbl - punningAllowed) - rows); - ]); - Doc.trailingComma; - Doc.softLine; - Doc.rbrace; - ]) + if rows = [] then + Doc.concat + [Doc.lbrace; printCommentsInside cmtTbl e.pexp_loc; Doc.rbrace] + else + let spread = + match spreadExpr with + | None -> Doc.nil + | Some expr -> + Doc.concat + [ + Doc.dotdotdot; + (let doc = printExpressionWithComments ~state expr cmtTbl in + match Parens.expr expr with + | Parens.Parenthesized -> addParens doc + | Braced braces -> printBraces doc expr braces + | Nothing -> doc); + Doc.comma; + Doc.line; + ] + in + (* If the record is written over multiple lines, break automatically + * `let x = {a: 1, b: 3}` -> same line, break when line-width exceeded + * `let x = { + * a: 1, + * b: 2, + * }` -> record is written on multiple lines, break the group *) + let forceBreak = + e.pexp_loc.loc_start.pos_lnum < e.pexp_loc.loc_end.pos_lnum + in + let punningAllowed = + match (spreadExpr, rows) with + | None, [_] -> false (* disallow punning for single-element records *) + | _ -> true + in + Doc.breakableGroup ~forceBreak + (Doc.concat + [ + Doc.lbrace; + Doc.indent + (Doc.concat + [ + Doc.softLine; + spread; + Doc.join + ~sep:(Doc.concat [Doc.text ","; Doc.line]) + (List.map + (fun row -> + printExpressionRecordRow ~state row cmtTbl + punningAllowed) + rows); + ]); + Doc.trailingComma; + Doc.softLine; + Doc.rbrace; + ]) | Pexp_extension extension -> ( match extension with | ( {txt = "bs.obj" | "obj"}, @@ -2927,28 +3010,29 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = Doc.join ~sep:(Doc.concat [Doc.text ","; Doc.line]) (List.map - (fun row -> - printBsObjectRow ~customLayout row cmtTbl) + (fun row -> printBsObjectRow ~state row cmtTbl) rows); ]); Doc.trailingComma; Doc.softLine; Doc.rbrace; ]) - | extension -> - printExtension ~customLayout ~atModuleLvl:false extension cmtTbl) + | extension -> printExtension ~state ~atModuleLvl:false extension cmtTbl) + | Pexp_apply (e, [(Nolabel, {pexp_desc = Pexp_array subLists})]) + when ParsetreeViewer.isSpreadBeltListConcat e -> + printBeltListConcatApply ~state subLists cmtTbl | Pexp_apply _ -> if ParsetreeViewer.isUnaryExpression e then - printUnaryExpression ~customLayout e cmtTbl + printUnaryExpression ~state e cmtTbl else if ParsetreeViewer.isTemplateLiteral e then - printTemplateLiteral ~customLayout e cmtTbl + printTemplateLiteral ~state e cmtTbl else if ParsetreeViewer.isBinaryExpression e then - printBinaryExpression ~customLayout e cmtTbl - else printPexpApply ~customLayout e cmtTbl + printBinaryExpression ~state e cmtTbl + else printPexpApply ~state e cmtTbl | Pexp_unreachable -> Doc.dot | Pexp_field (expr, longidentLoc) -> let lhs = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.fieldExpr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -2956,7 +3040,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = in Doc.concat [lhs; Doc.dot; printLidentPath longidentLoc cmtTbl] | Pexp_setfield (expr1, longidentLoc, expr2) -> - printSetFieldExpr ~customLayout e.pexp_attributes expr1 longidentLoc expr2 + printSetFieldExpr ~state e.pexp_attributes expr1 longidentLoc expr2 e.pexp_loc cmtTbl | Pexp_ifthenelse (_ifExpr, _thenExpr, _elseExpr) when ParsetreeViewer.isTernaryExpr e -> @@ -2967,7 +3051,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = Doc.group (Doc.concat [ - printTernaryOperand ~customLayout condition1 cmtTbl; + printTernaryOperand ~state condition1 cmtTbl; Doc.indent (Doc.concat [ @@ -2976,8 +3060,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = (Doc.concat [ Doc.text "? "; - printTernaryOperand ~customLayout consequent1 - cmtTbl; + printTernaryOperand ~state consequent1 cmtTbl; ]); Doc.concat (List.map @@ -2986,18 +3069,15 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = [ Doc.line; Doc.text ": "; - printTernaryOperand ~customLayout condition - cmtTbl; + printTernaryOperand ~state condition cmtTbl; Doc.line; Doc.text "? "; - printTernaryOperand ~customLayout consequent - cmtTbl; + printTernaryOperand ~state consequent cmtTbl; ]) rest); Doc.line; Doc.text ": "; - Doc.indent - (printTernaryOperand ~customLayout alternate cmtTbl); + Doc.indent (printTernaryOperand ~state alternate cmtTbl); ]); ]) | _ -> Doc.nil @@ -3010,15 +3090,15 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = in Doc.concat [ - printAttributes ~customLayout attrs cmtTbl; + printAttributes ~state attrs cmtTbl; (if needsParens then addParens ternaryDoc else ternaryDoc); ] | Pexp_ifthenelse (_ifExpr, _thenExpr, _elseExpr) -> let ifs, elseExpr = ParsetreeViewer.collectIfExpressions e in - printIfChain ~customLayout e.pexp_attributes ifs elseExpr cmtTbl + printIfChain ~state e.pexp_attributes ifs elseExpr cmtTbl | Pexp_while (expr1, expr2) -> let condition = - let doc = printExpressionWithComments ~customLayout expr1 cmtTbl in + let doc = printExpressionWithComments ~state expr1 cmtTbl in match Parens.expr expr1 with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr1 braces @@ -3031,32 +3111,28 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = (if ParsetreeViewer.isBlockExpr expr1 then condition else Doc.group (Doc.ifBreaks (addParens condition) condition)); Doc.space; - printExpressionBlock ~customLayout ~braces:true expr2 cmtTbl; + printExpressionBlock ~state ~braces:true expr2 cmtTbl; ]) | Pexp_for (pattern, fromExpr, toExpr, directionFlag, body) -> Doc.breakableGroup ~forceBreak:true (Doc.concat [ Doc.text "for "; - printPattern ~customLayout pattern cmtTbl; + printPattern ~state pattern cmtTbl; Doc.text " in "; - (let doc = - printExpressionWithComments ~customLayout fromExpr cmtTbl - in + (let doc = printExpressionWithComments ~state fromExpr cmtTbl in match Parens.expr fromExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc fromExpr braces | Nothing -> doc); printDirectionFlag directionFlag; - (let doc = - printExpressionWithComments ~customLayout toExpr cmtTbl - in + (let doc = printExpressionWithComments ~state toExpr cmtTbl in match Parens.expr toExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc toExpr braces | Nothing -> doc); Doc.space; - printExpressionBlock ~customLayout ~braces:true body cmtTbl; + printExpressionBlock ~state ~braces:true body cmtTbl; ]) | Pexp_constraint ( {pexp_desc = Pexp_pack modExpr}, @@ -3069,10 +3145,10 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = (Doc.concat [ Doc.softLine; - printModExpr ~customLayout modExpr cmtTbl; + printModExpr ~state modExpr cmtTbl; Doc.text ": "; printComments - (printPackageType ~customLayout + (printPackageType ~state ~printModuleKeywordAndParens:false packageType cmtTbl) cmtTbl ptyp_loc; ]); @@ -3081,20 +3157,20 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = ]) | Pexp_constraint (expr, typ) -> let exprDoc = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces | Nothing -> doc in - Doc.concat [exprDoc; Doc.text ": "; printTypExpr ~customLayout typ cmtTbl] + Doc.concat [exprDoc; Doc.text ": "; printTypExpr ~state typ cmtTbl] | Pexp_letmodule ({txt = _modName}, _modExpr, _expr) -> - printExpressionBlock ~customLayout ~braces:true e cmtTbl + printExpressionBlock ~state ~braces:true e cmtTbl | Pexp_letexception (_extensionConstructor, _expr) -> - printExpressionBlock ~customLayout ~braces:true e cmtTbl + printExpressionBlock ~state ~braces:true e cmtTbl | Pexp_assert expr -> let rhs = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.lazyOrAssertOrAwaitExprRhs expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -3103,7 +3179,7 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = Doc.concat [Doc.text "assert "; rhs] | Pexp_lazy expr -> let rhs = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.lazyOrAssertOrAwaitExprRhs expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -3111,112 +3187,22 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = in Doc.group (Doc.concat [Doc.text "lazy "; rhs]) | Pexp_open (_overrideFlag, _longidentLoc, _expr) -> - printExpressionBlock ~customLayout ~braces:true e cmtTbl + printExpressionBlock ~state ~braces:true e cmtTbl | Pexp_pack modExpr -> Doc.group (Doc.concat [ Doc.text "module("; Doc.indent - (Doc.concat - [Doc.softLine; printModExpr ~customLayout modExpr cmtTbl]); + (Doc.concat [Doc.softLine; printModExpr ~state modExpr cmtTbl]); Doc.softLine; Doc.rparen; ]) - | Pexp_sequence _ -> - printExpressionBlock ~customLayout ~braces:true e cmtTbl - | Pexp_let _ -> printExpressionBlock ~customLayout ~braces:true e cmtTbl - | Pexp_fun - ( Nolabel, - None, - {ppat_desc = Ppat_var {txt = "__x"}}, - {pexp_desc = Pexp_apply _} ) -> - (* (__x) => f(a, __x, c) -----> f(a, _, c) *) - printExpressionWithComments ~customLayout - (ParsetreeViewer.rewriteUnderscoreApply e) - cmtTbl - | Pexp_fun _ | Pexp_newtype _ -> - let attrsOnArrow, parameters, returnExpr = ParsetreeViewer.funExpr e in - let ParsetreeViewer.{async; uncurried; attributes = attrs} = - ParsetreeViewer.processFunctionAttributes attrsOnArrow - in - let returnExpr, typConstraint = - match returnExpr.pexp_desc with - | Pexp_constraint (expr, typ) -> - ( { - expr with - pexp_attributes = - List.concat [expr.pexp_attributes; returnExpr.pexp_attributes]; - }, - Some typ ) - | _ -> (returnExpr, None) - in - let hasConstraint = - match typConstraint with - | Some _ -> true - | None -> false - in - let parametersDoc = - printExprFunParameters ~customLayout ~inCallback:NoCallback ~uncurried - ~async ~hasConstraint parameters cmtTbl - in - let returnExprDoc = - let optBraces, _ = ParsetreeViewer.processBracesAttr returnExpr in - let shouldInline = - match (returnExpr.pexp_desc, optBraces) with - | _, Some _ -> true - | ( ( Pexp_array _ | Pexp_tuple _ - | Pexp_construct (_, Some _) - | Pexp_record _ ), - _ ) -> - true - | _ -> false - in - let shouldIndent = - match returnExpr.pexp_desc with - | Pexp_sequence _ | Pexp_let _ | Pexp_letmodule _ - | Pexp_letexception _ | Pexp_open _ -> - false - | _ -> true - in - let returnDoc = - let doc = - printExpressionWithComments ~customLayout returnExpr cmtTbl - in - match Parens.expr returnExpr with - | Parens.Parenthesized -> addParens doc - | Braced braces -> printBraces doc returnExpr braces - | Nothing -> doc - in - if shouldInline then Doc.concat [Doc.space; returnDoc] - else - Doc.group - (if shouldIndent then Doc.indent (Doc.concat [Doc.line; returnDoc]) - else Doc.concat [Doc.space; returnDoc]) - in - let typConstraintDoc = - match typConstraint with - | Some typ -> - let typDoc = - let doc = printTypExpr ~customLayout typ cmtTbl in - if Parens.arrowReturnTypExpr typ then addParens doc else doc - in - Doc.concat [Doc.text ": "; typDoc] - | _ -> Doc.nil - in - let attrs = printAttributes ~customLayout attrs cmtTbl in - Doc.group - (Doc.concat - [ - attrs; - parametersDoc; - typConstraintDoc; - Doc.text " =>"; - returnExprDoc; - ]) + | Pexp_sequence _ -> printExpressionBlock ~state ~braces:true e cmtTbl + | Pexp_let _ -> printExpressionBlock ~state ~braces:true e cmtTbl | Pexp_try (expr, cases) -> let exprDoc = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -3227,43 +3213,37 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = Doc.text "try "; exprDoc; Doc.text " catch "; - printCases ~customLayout cases cmtTbl; + printCases ~state cases cmtTbl; ] | Pexp_match (_, [_; _]) when ParsetreeViewer.isIfLetExpr e -> let ifs, elseExpr = ParsetreeViewer.collectIfExpressions e in - printIfChain ~customLayout e.pexp_attributes ifs elseExpr cmtTbl + printIfChain ~state e.pexp_attributes ifs elseExpr cmtTbl | Pexp_match (expr, cases) -> let exprDoc = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces | Nothing -> doc in Doc.concat - [ - Doc.text "switch "; - exprDoc; - Doc.space; - printCases ~customLayout cases cmtTbl; - ] + [Doc.text "switch "; exprDoc; Doc.space; printCases ~state cases cmtTbl] | Pexp_function cases -> - Doc.concat - [Doc.text "x => switch x "; printCases ~customLayout cases cmtTbl] + Doc.concat [Doc.text "x => switch x "; printCases ~state cases cmtTbl] | Pexp_coerce (expr, typOpt, typ) -> - let docExpr = printExpressionWithComments ~customLayout expr cmtTbl in - let docTyp = printTypExpr ~customLayout typ cmtTbl in + let docExpr = printExpressionWithComments ~state expr cmtTbl in + let docTyp = printTypExpr ~state typ cmtTbl in let ofType = match typOpt with | None -> Doc.nil | Some typ1 -> - Doc.concat [Doc.text ": "; printTypExpr ~customLayout typ1 cmtTbl] + Doc.concat [Doc.text ": "; printTypExpr ~state typ1 cmtTbl] in Doc.concat [Doc.lparen; docExpr; ofType; Doc.text " :> "; docTyp; Doc.rparen] | Pexp_send (parentExpr, label) -> let parentDoc = - let doc = printExpressionWithComments ~customLayout parentExpr cmtTbl in + let doc = printExpressionWithComments ~state parentExpr cmtTbl in match Parens.unaryExprOperand parentExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc parentExpr braces @@ -3274,23 +3254,23 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = Doc.concat [Doc.text "\""; memberDoc; Doc.text "\""] in Doc.group (Doc.concat [parentDoc; Doc.lbracket; member; Doc.rbracket]) - | Pexp_new _ -> Doc.text "Pexp_new not impemented in printer" - | Pexp_setinstvar _ -> Doc.text "Pexp_setinstvar not impemented in printer" - | Pexp_override _ -> Doc.text "Pexp_override not impemented in printer" - | Pexp_poly _ -> Doc.text "Pexp_poly not impemented in printer" - | Pexp_object _ -> Doc.text "Pexp_object not impemented in printer" + | Pexp_new _ -> Doc.text "Pexp_new not implemented in printer" + | Pexp_setinstvar _ -> Doc.text "Pexp_setinstvar not implemented in printer" + | Pexp_override _ -> Doc.text "Pexp_override not implemented in printer" + | Pexp_poly _ -> Doc.text "Pexp_poly not implemented in printer" + | Pexp_object _ -> Doc.text "Pexp_object not implemented in printer" in let exprWithAwait = if ParsetreeViewer.hasAwaitAttribute e.pexp_attributes then let rhs = match - Parens.lazyOrAssertOrAwaitExprRhs + Parens.lazyOrAssertOrAwaitExprRhs ~inAwait:true { e with pexp_attributes = List.filter (function - | {Location.txt = "res.await" | "ns.braces"}, _ -> false + | {Location.txt = "res.braces"}, _ -> false | _ -> true) e.pexp_attributes; } @@ -3315,15 +3295,17 @@ and printExpression ~customLayout (e : Parsetree.expression) cmtTbl = match e.pexp_attributes with | [] -> exprWithAwait | attrs when not shouldPrintItsOwnAttributes -> - Doc.group - (Doc.concat [printAttributes ~customLayout attrs cmtTbl; exprWithAwait]) + Doc.group (Doc.concat [printAttributes ~state attrs cmtTbl; exprWithAwait]) | _ -> exprWithAwait -and printPexpFun ~customLayout ~inCallback e cmtTbl = - let attrsOnArrow, parameters, returnExpr = ParsetreeViewer.funExpr e in - let ParsetreeViewer.{async; uncurried; attributes = attrs} = +and printPexpFun ~state ~inCallback e cmtTbl = + let uncurried, attrsOnArrow, parameters, returnExpr = + ParsetreeViewer.funExpr e + in + let ParsetreeViewer.{async; bs; attributes = attrs} = ParsetreeViewer.processFunctionAttributes attrsOnArrow in + let uncurried = bs || uncurried in let returnExpr, typConstraint = match returnExpr.pexp_desc with | Pexp_constraint (expr, typ) -> @@ -3336,7 +3318,7 @@ and printPexpFun ~customLayout ~inCallback e cmtTbl = | _ -> (returnExpr, None) in let parametersDoc = - printExprFunParameters ~customLayout ~inCallback ~async ~uncurried + printExprFunParameters ~state ~inCallback ~async ~uncurried ~hasConstraint: (match typConstraint with | Some _ -> true @@ -3363,7 +3345,7 @@ and printPexpFun ~customLayout ~inCallback e cmtTbl = | _ -> false in let returnDoc = - let doc = printExpressionWithComments ~customLayout returnExpr cmtTbl in + let doc = printExpressionWithComments ~state returnExpr cmtTbl in match Parens.expr returnExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc returnExpr braces @@ -3384,36 +3366,35 @@ and printPexpFun ~customLayout ~inCallback e cmtTbl = in let typConstraintDoc = match typConstraint with - | Some typ -> - Doc.concat [Doc.text ": "; printTypExpr ~customLayout typ cmtTbl] + | Some typ -> Doc.concat [Doc.text ": "; printTypExpr ~state typ cmtTbl] | _ -> Doc.nil in Doc.concat [ - printAttributes ~customLayout attrs cmtTbl; + printAttributes ~state attrs cmtTbl; parametersDoc; typConstraintDoc; Doc.text " =>"; returnExprDoc; ] -and printTernaryOperand ~customLayout expr cmtTbl = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in +and printTernaryOperand ~state expr cmtTbl = + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.ternaryOperand expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces | Nothing -> doc -and printSetFieldExpr ~customLayout attrs lhs longidentLoc rhs loc cmtTbl = +and printSetFieldExpr ~state attrs lhs longidentLoc rhs loc cmtTbl = let rhsDoc = - let doc = printExpressionWithComments ~customLayout rhs cmtTbl in + let doc = printExpressionWithComments ~state rhs cmtTbl in match Parens.setFieldExprRhs rhs with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc rhs braces | Nothing -> doc in let lhsDoc = - let doc = printExpressionWithComments ~customLayout lhs cmtTbl in + let doc = printExpressionWithComments ~state lhs cmtTbl in match Parens.fieldExpr lhs with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc lhs braces @@ -3436,12 +3417,11 @@ and printSetFieldExpr ~customLayout attrs lhs longidentLoc rhs loc cmtTbl = let doc = match attrs with | [] -> doc - | attrs -> - Doc.group (Doc.concat [printAttributes ~customLayout attrs cmtTbl; doc]) + | attrs -> Doc.group (Doc.concat [printAttributes ~state attrs cmtTbl; doc]) in printComments doc cmtTbl loc -and printTemplateLiteral ~customLayout expr cmtTbl = +and printTemplateLiteral ~state expr cmtTbl = let tag = ref "js" in let rec walkExpr expr = let open Parsetree in @@ -3456,7 +3436,7 @@ and printTemplateLiteral ~customLayout expr cmtTbl = tag := prefix; printStringContents txt | _ -> - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in Doc.group (Doc.concat [Doc.text "${"; Doc.indent doc; Doc.rbrace]) in let content = walkExpr expr in @@ -3468,7 +3448,7 @@ and printTemplateLiteral ~customLayout expr cmtTbl = Doc.text "`"; ] -and printUnaryExpression ~customLayout expr cmtTbl = +and printUnaryExpression ~state expr cmtTbl = let printUnaryOperator op = Doc.text (match op with @@ -3484,7 +3464,7 @@ and printUnaryExpression ~customLayout expr cmtTbl = ( {pexp_desc = Pexp_ident {txt = Longident.Lident operator}}, [(Nolabel, operand)] ) -> let printedOperand = - let doc = printExpressionWithComments ~customLayout operand cmtTbl in + let doc = printExpressionWithComments ~state operand cmtTbl in match Parens.unaryExprOperand operand with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc operand braces @@ -3494,11 +3474,11 @@ and printUnaryExpression ~customLayout expr cmtTbl = printComments doc cmtTbl expr.pexp_loc | _ -> assert false -and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = +and printBinaryExpression ~state (expr : Parsetree.expression) cmtTbl = let printBinaryOperator ~inlineRhs operator = let operatorTxt = match operator with - | "|." -> "->" + | "|." | "|.u" -> "->" | "^" -> "++" | "=" -> "==" | "==" -> "===" @@ -3507,12 +3487,12 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = | txt -> txt in let spacingBeforeOperator = - if operator = "|." then Doc.softLine + if operator = "|." || operator = "|.u" then Doc.softLine else if operator = "|>" then Doc.line else Doc.space in let spacingAfterOperator = - if operator = "|." then Doc.nil + if operator = "|." || operator = "|.u" then Doc.nil else if operator = "|>" then Doc.space else if inlineRhs then Doc.space else Doc.line @@ -3541,7 +3521,7 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = right.pexp_attributes in let doc = - printExpressionWithComments ~customLayout + printExpressionWithComments ~state {right with pexp_attributes = rightInternalAttrs} cmtTbl in @@ -3552,23 +3532,40 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = in let doc = Doc.concat - [ - printAttributes ~customLayout rightPrinteableAttrs cmtTbl; - doc; - ] + [printAttributes ~state rightPrinteableAttrs cmtTbl; doc] in match rightPrinteableAttrs with | [] -> doc | _ -> addParens doc in + let isAwait = + ParsetreeViewer.hasAwaitAttribute expr.pexp_attributes + in let doc = - Doc.concat - [ - leftPrinted; - printBinaryOperator ~inlineRhs:false operator; - rightPrinted; - ] + if isAwait then + let parens = + Res_parens.binaryOperatorInsideAwaitNeedsParens operator + in + Doc.concat + [ + Doc.lparen; + Doc.text "await "; + (if parens then Doc.lparen else Doc.nil); + leftPrinted; + printBinaryOperator ~inlineRhs:false operator; + rightPrinted; + (if parens then Doc.rparen else Doc.nil); + Doc.rparen; + ] + else + Doc.concat + [ + leftPrinted; + printBinaryOperator ~inlineRhs:false operator; + rightPrinted; + ] in + let doc = if (not isLhs) && Parens.rhsBinaryExprOperand operator expr then Doc.concat [Doc.lparen; doc; Doc.rparen] @@ -3580,7 +3577,7 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = ParsetreeViewer.partitionPrintableAttributes expr.pexp_attributes in let doc = - printExpressionWithComments ~customLayout + printExpressionWithComments ~state {expr with pexp_attributes = internalAttrs} cmtTbl in @@ -3593,8 +3590,7 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = then Doc.concat [Doc.lparen; doc; Doc.rparen] else doc in - Doc.concat - [printAttributes ~customLayout printeableAttrs cmtTbl; doc] + Doc.concat [printAttributes ~state printeableAttrs cmtTbl; doc] | _ -> assert false else match expr.pexp_desc with @@ -3602,19 +3598,19 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = ( {pexp_desc = Pexp_ident {txt = Longident.Lident "^"; loc}}, [(Nolabel, _); (Nolabel, _)] ) when loc.loc_ghost -> - let doc = printTemplateLiteral ~customLayout expr cmtTbl in + let doc = printTemplateLiteral ~state expr cmtTbl in printComments doc cmtTbl expr.Parsetree.pexp_loc | Pexp_setfield (lhs, field, rhs) -> let doc = - printSetFieldExpr ~customLayout expr.pexp_attributes lhs field rhs + printSetFieldExpr ~state expr.pexp_attributes lhs field rhs expr.pexp_loc cmtTbl in if isLhs then addParens doc else doc | Pexp_apply ( {pexp_desc = Pexp_ident {txt = Longident.Lident "#="}}, [(Nolabel, lhs); (Nolabel, rhs)] ) -> - let rhsDoc = printExpressionWithComments ~customLayout rhs cmtTbl in - let lhsDoc = printExpressionWithComments ~customLayout lhs cmtTbl in + let rhsDoc = printExpressionWithComments ~state rhs cmtTbl in + let lhsDoc = printExpressionWithComments ~state lhs cmtTbl in (* TODO: unify indentation of "=" *) let shouldIndent = ParsetreeViewer.isBinaryExpression rhs in let doc = @@ -3632,12 +3628,11 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = match expr.pexp_attributes with | [] -> doc | attrs -> - Doc.group - (Doc.concat [printAttributes ~customLayout attrs cmtTbl; doc]) + Doc.group (Doc.concat [printAttributes ~state attrs cmtTbl; doc]) in if isLhs then addParens doc else doc | _ -> ( - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.binaryExprOperand ~isLhs expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -3647,24 +3642,26 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = in match expr.pexp_desc with | Pexp_apply - ( {pexp_desc = Pexp_ident {txt = Longident.Lident (("|." | "|>") as op)}}, + ( { + pexp_desc = + Pexp_ident {txt = Longident.Lident (("|." | "|.u" | "|>") as op)}; + }, [(Nolabel, lhs); (Nolabel, rhs)] ) when not (ParsetreeViewer.isBinaryExpression lhs || ParsetreeViewer.isBinaryExpression rhs - || printAttributes ~customLayout expr.pexp_attributes cmtTbl - <> Doc.nil) -> + || printAttributes ~state expr.pexp_attributes cmtTbl <> Doc.nil) -> let lhsHasCommentBelow = hasCommentBelow cmtTbl lhs.pexp_loc in let lhsDoc = printOperand ~isLhs:true lhs op in let rhsDoc = printOperand ~isLhs:false rhs op in Doc.group (Doc.concat [ - printAttributes ~customLayout expr.pexp_attributes cmtTbl; + printAttributes ~state expr.pexp_attributes cmtTbl; lhsDoc; (match (lhsHasCommentBelow, op) with - | true, "|." -> Doc.concat [Doc.softLine; Doc.text "->"] - | false, "|." -> Doc.text "->" + | true, ("|." | "|.u") -> Doc.concat [Doc.softLine; Doc.text "->"] + | false, ("|." | "|.u") -> Doc.text "->" | true, "|>" -> Doc.concat [Doc.line; Doc.text "|> "] | false, "|>" -> Doc.text " |> " | _ -> Doc.nil); @@ -3675,7 +3672,11 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = [(Nolabel, lhs); (Nolabel, rhs)] ) -> let right = let operatorWithRhs = - let rhsDoc = printOperand ~isLhs:false rhs operator in + let rhsDoc = + printOperand + ~isLhs:(ParsetreeViewer.isRhsBinaryOperator operator) + rhs operator + in Doc.concat [ printBinaryOperator @@ -3689,12 +3690,19 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = else operatorWithRhs in let doc = - Doc.group (Doc.concat [printOperand ~isLhs:true lhs operator; right]) + Doc.group + (Doc.concat + [ + printOperand + ~isLhs:(not @@ ParsetreeViewer.isRhsBinaryOperator operator) + lhs operator; + right; + ]) in Doc.group (Doc.concat [ - printAttributes ~customLayout expr.pexp_attributes cmtTbl; + printAttributes ~state expr.pexp_attributes cmtTbl; (match Parens.binaryExpr { @@ -3710,14 +3718,69 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = ]) | _ -> Doc.nil +and printBeltListConcatApply ~state subLists cmtTbl = + let makeSpreadDoc commaBeforeSpread = function + | Some expr -> + Doc.concat + [ + commaBeforeSpread; + Doc.dotdotdot; + (let doc = printExpressionWithComments ~state expr cmtTbl in + match Parens.expr expr with + | Parens.Parenthesized -> addParens doc + | Braced braces -> printBraces doc expr braces + | Nothing -> doc); + ] + | None -> Doc.nil + in + let makeSubListDoc (expressions, spread) = + let commaBeforeSpread = + match expressions with + | [] -> Doc.nil + | _ -> Doc.concat [Doc.text ","; Doc.line] + in + let spreadDoc = makeSpreadDoc commaBeforeSpread spread in + Doc.concat + [ + Doc.join + ~sep:(Doc.concat [Doc.text ","; Doc.line]) + (List.map + (fun expr -> + let doc = printExpressionWithComments ~state expr cmtTbl in + match Parens.expr expr with + | Parens.Parenthesized -> addParens doc + | Braced braces -> printBraces doc expr braces + | Nothing -> doc) + expressions); + spreadDoc; + ] + in + Doc.group + (Doc.concat + [ + Doc.text "list{"; + Doc.indent + (Doc.concat + [ + Doc.softLine; + Doc.join + ~sep:(Doc.concat [Doc.text ","; Doc.line]) + (List.map makeSubListDoc + (List.map ParsetreeViewer.collectListExpressions subLists)); + ]); + Doc.trailingComma; + Doc.softLine; + Doc.rbrace; + ]) + (* callExpr(arg1, arg2) *) -and printPexpApply ~customLayout expr cmtTbl = +and printPexpApply ~state expr cmtTbl = match expr.pexp_desc with | Pexp_apply ( {pexp_desc = Pexp_ident {txt = Longident.Lident "##"}}, [(Nolabel, parentExpr); (Nolabel, memberExpr)] ) -> let parentDoc = - let doc = printExpressionWithComments ~customLayout parentExpr cmtTbl in + let doc = printExpressionWithComments ~state parentExpr cmtTbl in match Parens.unaryExprOperand parentExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc parentExpr braces @@ -3728,14 +3791,14 @@ and printPexpApply ~customLayout expr cmtTbl = match memberExpr.pexp_desc with | Pexp_ident lident -> printComments (printLongident lident.txt) cmtTbl memberExpr.pexp_loc - | _ -> printExpressionWithComments ~customLayout memberExpr cmtTbl + | _ -> printExpressionWithComments ~state memberExpr cmtTbl in Doc.concat [Doc.text "\""; memberDoc; Doc.text "\""] in Doc.group (Doc.concat [ - printAttributes ~customLayout expr.pexp_attributes cmtTbl; + printAttributes ~state expr.pexp_attributes cmtTbl; parentDoc; Doc.lbracket; member; @@ -3745,7 +3808,7 @@ and printPexpApply ~customLayout expr cmtTbl = ( {pexp_desc = Pexp_ident {txt = Longident.Lident "#="}}, [(Nolabel, lhs); (Nolabel, rhs)] ) -> ( let rhsDoc = - let doc = printExpressionWithComments ~customLayout rhs cmtTbl in + let doc = printExpressionWithComments ~state rhs cmtTbl in match Parens.expr rhs with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc rhs braces @@ -3760,7 +3823,7 @@ and printPexpApply ~customLayout expr cmtTbl = Doc.group (Doc.concat [ - printExpressionWithComments ~customLayout lhs cmtTbl; + printExpressionWithComments ~state lhs cmtTbl; Doc.text " ="; (if shouldIndent then Doc.group (Doc.indent (Doc.concat [Doc.line; rhsDoc])) @@ -3769,8 +3832,8 @@ and printPexpApply ~customLayout expr cmtTbl = in match expr.pexp_attributes with | [] -> doc - | attrs -> - Doc.group (Doc.concat [printAttributes ~customLayout attrs cmtTbl; doc])) + | attrs -> Doc.group (Doc.concat [printAttributes ~state attrs cmtTbl; doc]) + ) | Pexp_apply ( {pexp_desc = Pexp_ident {txt = Longident.Ldot (Lident "Array", "get")}}, [(Nolabel, parentExpr); (Nolabel, memberExpr)] ) @@ -3778,7 +3841,7 @@ and printPexpApply ~customLayout expr cmtTbl = (* Don't print the Array.get(_, 0) sugar a.k.a. (__x) => Array.get(__x, 0) as _[0] *) let member = let memberDoc = - let doc = printExpressionWithComments ~customLayout memberExpr cmtTbl in + let doc = printExpressionWithComments ~state memberExpr cmtTbl in match Parens.expr memberExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc memberExpr braces @@ -3795,7 +3858,7 @@ and printPexpApply ~customLayout expr cmtTbl = [Doc.indent (Doc.concat [Doc.softLine; memberDoc]); Doc.softLine] in let parentDoc = - let doc = printExpressionWithComments ~customLayout parentExpr cmtTbl in + let doc = printExpressionWithComments ~state parentExpr cmtTbl in match Parens.unaryExprOperand parentExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc parentExpr braces @@ -3804,7 +3867,7 @@ and printPexpApply ~customLayout expr cmtTbl = Doc.group (Doc.concat [ - printAttributes ~customLayout expr.pexp_attributes cmtTbl; + printAttributes ~state expr.pexp_attributes cmtTbl; parentDoc; Doc.lbracket; member; @@ -3816,7 +3879,7 @@ and printPexpApply ~customLayout expr cmtTbl = -> let member = let memberDoc = - let doc = printExpressionWithComments ~customLayout memberExpr cmtTbl in + let doc = printExpressionWithComments ~state memberExpr cmtTbl in match Parens.expr memberExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc memberExpr braces @@ -3839,7 +3902,7 @@ and printPexpApply ~customLayout expr cmtTbl = || match targetExpr with | { - pexp_attributes = [({Location.txt = "ns.ternary"}, _)]; + pexp_attributes = [({Location.txt = "res.ternary"}, _)]; pexp_desc = Pexp_ifthenelse (ifExpr, _, _); } -> ParsetreeViewer.isBinaryExpression ifExpr @@ -3850,14 +3913,14 @@ and printPexpApply ~customLayout expr cmtTbl = || ParsetreeViewer.isArrayAccess e in let targetExpr = - let doc = printExpressionWithComments ~customLayout targetExpr cmtTbl in + let doc = printExpressionWithComments ~state targetExpr cmtTbl in match Parens.expr targetExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc targetExpr braces | Nothing -> doc in let parentDoc = - let doc = printExpressionWithComments ~customLayout parentExpr cmtTbl in + let doc = printExpressionWithComments ~state parentExpr cmtTbl in match Parens.unaryExprOperand parentExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc parentExpr braces @@ -3866,7 +3929,7 @@ and printPexpApply ~customLayout expr cmtTbl = Doc.group (Doc.concat [ - printAttributes ~customLayout expr.pexp_attributes cmtTbl; + printAttributes ~state expr.pexp_attributes cmtTbl; parentDoc; Doc.lbracket; member; @@ -3879,7 +3942,7 @@ and printPexpApply ~customLayout expr cmtTbl = (* TODO: cleanup, are those branches even remotely performant? *) | Pexp_apply ({pexp_desc = Pexp_ident lident}, args) when ParsetreeViewer.isJsxExpression expr -> - printJsxExpression ~customLayout lident args cmtTbl + printJsxExpression ~state lident args cmtTbl | Pexp_apply (callExpr, args) -> let args = List.map @@ -3887,10 +3950,11 @@ and printPexpApply ~customLayout expr cmtTbl = args in let uncurried, attrs = - ParsetreeViewer.processUncurriedAttribute expr.pexp_attributes + ParsetreeViewer.processUncurriedAppAttribute expr.pexp_attributes in + let dotted = state.uncurried_config |> Res_uncurried.getDotted ~uncurried in let callExprDoc = - let doc = printExpressionWithComments ~customLayout callExpr cmtTbl in + let doc = printExpressionWithComments ~state callExpr cmtTbl in match Parens.callExpr callExpr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc callExpr braces @@ -3898,15 +3962,12 @@ and printPexpApply ~customLayout expr cmtTbl = in if ParsetreeViewer.requiresSpecialCallbackPrintingFirstArg args then let argsDoc = - printArgumentsWithCallbackInFirstPosition ~uncurried ~customLayout args - cmtTbl + printArgumentsWithCallbackInFirstPosition ~dotted ~state args cmtTbl in - Doc.concat - [printAttributes ~customLayout attrs cmtTbl; callExprDoc; argsDoc] + Doc.concat [printAttributes ~state attrs cmtTbl; callExprDoc; argsDoc] else if ParsetreeViewer.requiresSpecialCallbackPrintingLastArg args then let argsDoc = - printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args - cmtTbl + printArgumentsWithCallbackInLastPosition ~state ~dotted args cmtTbl in (* * Fixes the following layout (the `[` and `]` should break): @@ -3928,35 +3989,61 @@ and printPexpApply ~customLayout expr cmtTbl = Doc.concat [ maybeBreakParent; - printAttributes ~customLayout attrs cmtTbl; + printAttributes ~state attrs cmtTbl; callExprDoc; argsDoc; ] else - let argsDoc = printArguments ~customLayout ~uncurried args cmtTbl in - Doc.concat - [printAttributes ~customLayout attrs cmtTbl; callExprDoc; argsDoc] + let argsDoc = printArguments ~state ~dotted args cmtTbl in + Doc.concat [printAttributes ~state attrs cmtTbl; callExprDoc; argsDoc] | _ -> assert false -and printJsxExpression ~customLayout lident args cmtTbl = +and printJsxExpression ~state lident args cmtTbl = let name = printJsxName lident in - let formattedProps, children = printJsxProps ~customLayout args cmtTbl in + let formattedProps, children = printJsxProps ~state args cmtTbl in (*
*) + let hasChildren = + match children with + | Some + { + Parsetree.pexp_desc = + Pexp_construct ({txt = Longident.Lident "[]"}, None); + } -> + false + | None -> false + | _ -> true + in let isSelfClosing = match children with | Some { Parsetree.pexp_desc = Pexp_construct ({txt = Longident.Lident "[]"}, None); + pexp_loc = loc; } -> - true + not (hasCommentsInside cmtTbl loc) | _ -> false in - let lineSep = - match children with - | Some expr -> - if hasNestedJsxOrMoreThanOneChild expr then Doc.hardLine else Doc.line - | None -> Doc.line + let printChildren children = + let lineSep = + match children with + | Some expr -> + if hasNestedJsxOrMoreThanOneChild expr then Doc.hardLine else Doc.line + | None -> Doc.line + in + Doc.concat + [ + Doc.indent + (Doc.concat + [ + Doc.line; + (match children with + | Some childrenExpression -> + printJsxChildren ~state childrenExpression ~sep:lineSep cmtTbl + | None -> Doc.nil); + ]); + lineSep; + ] in Doc.group (Doc.concat @@ -3973,37 +4060,42 @@ and printJsxExpression ~customLayout lident args cmtTbl = { Parsetree.pexp_desc = Pexp_construct ({txt = Longident.Lident "[]"}, None); - pexp_loc = loc; - } -> - let doc = - Doc.concat [printCommentsInside cmtTbl loc; Doc.text "/>"] - in - Doc.concat [Doc.line; printComments doc cmtTbl loc] - | _ -> Doc.nil); + } + when isSelfClosing -> + Doc.text "/>" + | _ -> + (* if tag A has trailing comments then put > on the next line + + + *) + if hasTrailingComments cmtTbl lident.Asttypes.loc then + Doc.concat [Doc.softLine; Doc.greaterThan] + else Doc.greaterThan); ]); (if isSelfClosing then Doc.nil else Doc.concat [ - Doc.greaterThan; - Doc.indent - (Doc.concat - [ - Doc.line; - (match children with - | Some childrenExpression -> - printJsxChildren ~customLayout childrenExpression - ~sep:lineSep cmtTbl - | None -> Doc.nil); - ]); - lineSep; + (if hasChildren then printChildren children + else + match children with + | Some + { + Parsetree.pexp_desc = + Pexp_construct ({txt = Longident.Lident "[]"}, None); + pexp_loc = loc; + } -> + printCommentsInside cmtTbl loc + | _ -> Doc.nil); Doc.text "" in let closing = Doc.text "" in let lineSep = @@ -4018,16 +4110,12 @@ and printJsxFragment ~customLayout expr cmtTbl = | _ -> Doc.indent (Doc.concat - [ - Doc.line; - printJsxChildren ~customLayout expr ~sep:lineSep cmtTbl; - ])); + [Doc.line; printJsxChildren ~state expr ~sep:lineSep cmtTbl])); lineSep; closing; ]) -and printJsxChildren ~customLayout (childrenExpr : Parsetree.expression) ~sep - cmtTbl = +and printJsxChildren ~state (childrenExpr : Parsetree.expression) ~sep cmtTbl = match childrenExpr.pexp_desc with | Pexp_construct ({txt = Longident.Lident "::"}, _) -> let children, _ = ParsetreeViewer.collectListExpressions childrenExpr in @@ -4038,9 +4126,7 @@ and printJsxChildren ~customLayout (childrenExpr : Parsetree.expression) ~sep let leadingLineCommentPresent = hasLeadingLineComment cmtTbl expr.pexp_loc in - let exprDoc = - printExpressionWithComments ~customLayout expr cmtTbl - in + let exprDoc = printExpressionWithComments ~state expr cmtTbl in let addParensOrBraces exprDoc = (* {(20: int)} make sure that we also protect the expression inside *) let innerDoc = @@ -4059,9 +4145,7 @@ and printJsxChildren ~customLayout (childrenExpr : Parsetree.expression) ~sep let leadingLineCommentPresent = hasLeadingLineComment cmtTbl childrenExpr.pexp_loc in - let exprDoc = - printExpressionWithComments ~customLayout childrenExpr cmtTbl - in + let exprDoc = printExpressionWithComments ~state childrenExpr cmtTbl in Doc.concat [ Doc.dotdotdot; @@ -4076,8 +4160,28 @@ and printJsxChildren ~customLayout (childrenExpr : Parsetree.expression) ~sep | Nothing -> exprDoc); ] -and printJsxProps ~customLayout args cmtTbl : - Doc.t * Parsetree.expression option = +and printJsxProps ~state args cmtTbl : Doc.t * Parsetree.expression option = + (* This function was introduced because we have different formatting behavior for self-closing tags and other tags + we always put /> on a new line for self-closing tag when it breaks + + + + + + we should remove this function once the format is unified + *) + let isSelfClosing children = + match children with + | { + Parsetree.pexp_desc = Pexp_construct ({txt = Longident.Lident "[]"}, None); + pexp_loc = loc; + } -> + not (hasCommentsInside cmtTbl loc) + | _ -> false + in let rec loop props args = match args with | [] -> (Doc.nil, None) @@ -4089,27 +4193,56 @@ and printJsxProps ~customLayout args cmtTbl : Pexp_construct ({txt = Longident.Lident "()"}, None); } ); ] -> + let doc = if isSelfClosing children then Doc.line else Doc.nil in + (doc, Some children) + | ((_, expr) as lastProp) + :: [ + (Asttypes.Labelled "children", children); + ( Asttypes.Nolabel, + { + Parsetree.pexp_desc = + Pexp_construct ({txt = Longident.Lident "()"}, None); + } ); + ] -> + let loc = + match expr.Parsetree.pexp_attributes with + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _attrs -> + {loc with loc_end = expr.pexp_loc.loc_end} + | _ -> expr.pexp_loc + in + let trailingCommentsPresent = hasTrailingComments cmtTbl loc in + let propDoc = printJsxProp ~state lastProp cmtTbl in let formattedProps = - Doc.indent - (match props with - | [] -> Doc.nil - | props -> - Doc.concat - [Doc.line; Doc.group (Doc.join ~sep:Doc.line (props |> List.rev))]) + Doc.concat + [ + Doc.indent + (Doc.concat + [ + Doc.line; + Doc.group + (Doc.join ~sep:Doc.line (propDoc :: props |> List.rev)); + ]); + (* print > on new line if the last prop has trailing comments *) + (match (isSelfClosing children, trailingCommentsPresent) with + (* we always put /> on a new line when a self-closing tag breaks *) + | true, _ -> Doc.line + | false, true -> Doc.softLine + | false, false -> Doc.nil); + ] in (formattedProps, Some children) | arg :: args -> - let propDoc = printJsxProp ~customLayout arg cmtTbl in + let propDoc = printJsxProp ~state arg cmtTbl in loop (propDoc :: props) args in loop [] args -and printJsxProp ~customLayout arg cmtTbl = +and printJsxProp ~state arg cmtTbl = match arg with | ( ((Asttypes.Labelled lblTxt | Optional lblTxt) as lbl), { Parsetree.pexp_attributes = - [({Location.txt = "ns.namedArgLoc"; loc = argLoc}, _)]; + [({Location.txt = "res.namedArgLoc"; loc = argLoc}, _)]; pexp_desc = Pexp_ident {txt = Longident.Lident ident}; } ) when lblTxt = ident (* jsx punning *) -> ( @@ -4129,10 +4262,13 @@ and printJsxProp ~customLayout arg cmtTbl = | Nolabel -> Doc.nil | Labelled _lbl -> printIdentLike ident | Optional _lbl -> Doc.concat [Doc.question; printIdentLike ident]) + | Asttypes.Labelled "_spreadProps", expr -> + let doc = printExpressionWithComments ~state expr cmtTbl in + Doc.concat [Doc.lbrace; Doc.dotdotdot; doc; Doc.rbrace] | lbl, expr -> let argLoc, expr = match expr.pexp_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: attrs -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: attrs -> (loc, {expr with pexp_attributes = attrs}) | _ -> (Location.none, expr) in @@ -4150,7 +4286,7 @@ and printJsxProp ~customLayout arg cmtTbl = let leadingLineCommentPresent = hasLeadingLineComment cmtTbl expr.pexp_loc in - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.jsxPropExpr expr with | Parenthesized | Braced _ -> (* {(20: int)} make sure that we also protect the expression inside *) @@ -4180,12 +4316,11 @@ and printJsxName {txt = lident} = let segments = flatten [] lident in Doc.join ~sep:Doc.dot (List.map Doc.text segments) -and printArgumentsWithCallbackInFirstPosition ~uncurried ~customLayout args - cmtTbl = +and printArgumentsWithCallbackInFirstPosition ~dotted ~state args cmtTbl = (* Because the same subtree gets printed twice, we need to copy the cmtTbl. * consumed comments need to be marked not-consumed and reprinted… * Cheng's different comment algorithm will solve this. *) - let customLayout = customLayout + 1 in + let state = State.nextCustomLayout state in let cmtTblCopy = CommentTable.copy cmtTbl in let callback, printedArgs = match args with @@ -4200,17 +4335,14 @@ and printArgumentsWithCallbackInFirstPosition ~uncurried ~customLayout args in let callback = Doc.concat - [ - lblDoc; - printPexpFun ~customLayout ~inCallback:FitsOnOneLine expr cmtTbl; - ] + [lblDoc; printPexpFun ~state ~inCallback:FitsOnOneLine expr cmtTbl] in let callback = lazy (printComments callback cmtTbl expr.pexp_loc) in let printedArgs = lazy (Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) - (List.map (fun arg -> printArgument ~customLayout arg cmtTbl) args)) + (List.map (fun arg -> printArgument ~state arg cmtTbl) args)) in (callback, printedArgs) | _ -> assert false @@ -4225,7 +4357,7 @@ and printArgumentsWithCallbackInFirstPosition ~uncurried ~customLayout args lazy (Doc.concat [ - (if uncurried then Doc.text "(. " else Doc.lparen); + (if dotted then Doc.text "(. " else Doc.lparen); Lazy.force callback; Doc.comma; Doc.line; @@ -4241,9 +4373,7 @@ and printArgumentsWithCallbackInFirstPosition ~uncurried ~customLayout args * arg3, * ) *) - let breakAllArgs = - lazy (printArguments ~customLayout ~uncurried args cmtTblCopy) - in + let breakAllArgs = lazy (printArguments ~state ~dotted args cmtTblCopy) in (* Sometimes one of the non-callback arguments will break. * There might be a single line comment in there, or a multiline string etc. @@ -4260,16 +4390,15 @@ and printArgumentsWithCallbackInFirstPosition ~uncurried ~customLayout args * In this case, we always want the arguments broken over multiple lines, * like a normal function call. *) - if customLayout > customLayoutThreshold then Lazy.force breakAllArgs + if state |> State.shouldBreakCallback then Lazy.force breakAllArgs else if Doc.willBreak (Lazy.force printedArgs) then Lazy.force breakAllArgs else Doc.customLayout [Lazy.force fitsOnOneLine; Lazy.force breakAllArgs] -and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args - cmtTbl = +and printArgumentsWithCallbackInLastPosition ~state ~dotted args cmtTbl = (* Because the same subtree gets printed twice, we need to copy the cmtTbl. * consumed comments need to be marked not-consumed and reprinted… * Cheng's different comment algorithm will solve this. *) - let customLayout = customLayout + 1 in + let state = state |> State.nextCustomLayout in let cmtTblCopy = CommentTable.copy cmtTbl in let cmtTblCopy2 = CommentTable.copy cmtTbl in let rec loop acc args = @@ -4287,7 +4416,7 @@ and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args let callbackFitsOnOneLine = lazy (let pexpFunDoc = - printPexpFun ~customLayout ~inCallback:FitsOnOneLine expr cmtTbl + printPexpFun ~state ~inCallback:FitsOnOneLine expr cmtTbl in let doc = Doc.concat [lblDoc; pexpFunDoc] in printComments doc cmtTbl expr.pexp_loc) @@ -4295,7 +4424,7 @@ and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args let callbackArgumentsFitsOnOneLine = lazy (let pexpFunDoc = - printPexpFun ~customLayout ~inCallback:ArgumentsFitOnOneLine expr + printPexpFun ~state ~inCallback:ArgumentsFitOnOneLine expr cmtTblCopy in let doc = Doc.concat [lblDoc; pexpFunDoc] in @@ -4305,7 +4434,7 @@ and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args callbackFitsOnOneLine, callbackArgumentsFitsOnOneLine ) | arg :: args -> - let argDoc = printArgument ~customLayout arg cmtTbl in + let argDoc = printArgument ~state arg cmtTbl in loop (Doc.line :: Doc.comma :: argDoc :: acc) args in let printedArgs, callback, callback2 = loop [] args in @@ -4315,7 +4444,7 @@ and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args lazy (Doc.concat [ - (if uncurried then Doc.text "(." else Doc.lparen); + (if dotted then Doc.text "(." else Doc.lparen); Lazy.force printedArgs; Lazy.force callback; Doc.rparen; @@ -4330,7 +4459,7 @@ and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args lazy (Doc.concat [ - (if uncurried then Doc.text "(." else Doc.lparen); + (if dotted then Doc.text "(." else Doc.lparen); Lazy.force printedArgs; Doc.breakableGroup ~forceBreak:true (Lazy.force callback2); Doc.rparen; @@ -4344,9 +4473,7 @@ and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args * (param1, parm2) => doStuff(param1, parm2) * ) *) - let breakAllArgs = - lazy (printArguments ~customLayout ~uncurried args cmtTblCopy2) - in + let breakAllArgs = lazy (printArguments ~state ~dotted args cmtTblCopy2) in (* Sometimes one of the non-callback arguments will break. * There might be a single line comment in there, or a multiline string etc. @@ -4363,7 +4490,7 @@ and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args * In this case, we always want the arguments broken over multiple lines, * like a normal function call. *) - if customLayout > customLayoutThreshold then Lazy.force breakAllArgs + if state |> State.shouldBreakCallback then Lazy.force breakAllArgs else if Doc.willBreak (Lazy.force printedArgs) then Lazy.force breakAllArgs else Doc.customLayout @@ -4373,7 +4500,7 @@ and printArgumentsWithCallbackInLastPosition ~customLayout ~uncurried args Lazy.force breakAllArgs; ] -and printArguments ~customLayout ~uncurried +and printArguments ~state ~dotted (args : (Asttypes.arg_label * Parsetree.expression) list) cmtTbl = match args with | [ @@ -4386,34 +4513,32 @@ and printArguments ~customLayout ~uncurried (* See "parseCallExpr", ghost unit expression is used the implement * arity zero vs arity one syntax. * Related: https://github.com/rescript-lang/syntax/issues/138 *) - match (uncurried, loc.loc_ghost) with + match (dotted, loc.loc_ghost) with | true, true -> Doc.text "(.)" (* arity zero *) | true, false -> Doc.text "(. ())" (* arity one *) | _ -> Doc.text "()") | [(Nolabel, arg)] when ParsetreeViewer.isHuggableExpression arg -> let argDoc = - let doc = printExpressionWithComments ~customLayout arg cmtTbl in + let doc = printExpressionWithComments ~state arg cmtTbl in match Parens.expr arg with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc arg braces | Nothing -> doc in Doc.concat - [(if uncurried then Doc.text "(. " else Doc.lparen); argDoc; Doc.rparen] + [(if dotted then Doc.text "(. " else Doc.lparen); argDoc; Doc.rparen] | args -> Doc.group (Doc.concat [ - (if uncurried then Doc.text "(." else Doc.lparen); + (if dotted then Doc.text "(." else Doc.lparen); Doc.indent (Doc.concat [ - (if uncurried then Doc.line else Doc.softLine); + (if dotted then Doc.line else Doc.softLine); Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) - (List.map - (fun arg -> printArgument ~customLayout arg cmtTbl) - args); + (List.map (fun arg -> printArgument ~state arg cmtTbl) args); ]); Doc.trailingComma; Doc.softLine; @@ -4434,18 +4559,18 @@ and printArguments ~customLayout ~uncurried * | ~ label-name = ? expr * | ~ label-name = ? _ (* syntax sugar *) * | ~ label-name = ? expr : type *) -and printArgument ~customLayout (argLbl, arg) cmtTbl = +and printArgument ~state (argLbl, arg) cmtTbl = match (argLbl, arg) with (* ~a (punned)*) | ( Asttypes.Labelled lbl, ({ pexp_desc = Pexp_ident {txt = Longident.Lident name}; - pexp_attributes = [] | [({Location.txt = "ns.namedArgLoc"}, _)]; + pexp_attributes = [] | [({Location.txt = "res.namedArgLoc"}, _)]; } as argExpr) ) when lbl = name && not (ParsetreeViewer.isBracedExpr argExpr) -> let loc = match arg.pexp_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _ -> loc + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _ -> loc | _ -> arg.pexp_loc in let doc = Doc.concat [Doc.tilde; printIdentLike lbl] in @@ -4459,12 +4584,12 @@ and printArgument ~customLayout (argLbl, arg) cmtTbl = typ ); pexp_loc; pexp_attributes = - ([] | [({Location.txt = "ns.namedArgLoc"}, _)]) as attrs; + ([] | [({Location.txt = "res.namedArgLoc"}, _)]) as attrs; } ) when lbl = name && not (ParsetreeViewer.isBracedExpr argExpr) -> let loc = match attrs with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _ -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _ -> {loc with loc_end = pexp_loc.loc_end} | _ -> arg.pexp_loc in @@ -4474,7 +4599,7 @@ and printArgument ~customLayout (argLbl, arg) cmtTbl = Doc.tilde; printIdentLike lbl; Doc.text ": "; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] in printComments doc cmtTbl loc @@ -4482,12 +4607,12 @@ and printArgument ~customLayout (argLbl, arg) cmtTbl = | ( Asttypes.Optional lbl, { pexp_desc = Pexp_ident {txt = Longident.Lident name}; - pexp_attributes = [] | [({Location.txt = "ns.namedArgLoc"}, _)]; + pexp_attributes = [] | [({Location.txt = "res.namedArgLoc"}, _)]; } ) when lbl = name -> let loc = match arg.pexp_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _ -> loc + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _ -> loc | _ -> arg.pexp_loc in let doc = Doc.concat [Doc.tilde; printIdentLike lbl; Doc.question] in @@ -4495,7 +4620,7 @@ and printArgument ~customLayout (argLbl, arg) cmtTbl = | _lbl, expr -> let argLoc, expr = match expr.pexp_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: attrs -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: attrs -> (loc, {expr with pexp_attributes = attrs}) | _ -> (expr.pexp_loc, expr) in @@ -4512,7 +4637,7 @@ and printArgument ~customLayout (argLbl, arg) cmtTbl = printComments doc cmtTbl argLoc in let printedExpr = - let doc = printExpressionWithComments ~customLayout expr cmtTbl in + let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -4522,7 +4647,7 @@ and printArgument ~customLayout (argLbl, arg) cmtTbl = let doc = Doc.concat [printedLbl; printedExpr] in printComments doc cmtTbl loc -and printCases ~customLayout (cases : Parsetree.case list) cmtTbl = +and printCases ~state (cases : Parsetree.case list) cmtTbl = Doc.breakableGroup ~forceBreak:true (Doc.concat [ @@ -4534,24 +4659,27 @@ and printCases ~customLayout (cases : Parsetree.case list) cmtTbl = ~getLoc:(fun n -> { n.Parsetree.pc_lhs.ppat_loc with - loc_end = n.pc_rhs.pexp_loc.loc_end; + loc_end = + (match ParsetreeViewer.processBracesAttr n.pc_rhs with + | None, _ -> n.pc_rhs.pexp_loc.loc_end + | Some ({loc}, _), _ -> loc.Location.loc_end); }) - ~print:(printCase ~customLayout) ~nodes:cases cmtTbl; + ~print:(printCase ~state) ~nodes:cases cmtTbl; ]; Doc.line; Doc.rbrace; ]) -and printCase ~customLayout (case : Parsetree.case) cmtTbl = +and printCase ~state (case : Parsetree.case) cmtTbl = let rhs = match case.pc_rhs.pexp_desc with | Pexp_let _ | Pexp_letmodule _ | Pexp_letexception _ | Pexp_open _ | Pexp_sequence _ -> - printExpressionBlock ~customLayout + printExpressionBlock ~state ~braces:(ParsetreeViewer.isBracedExpr case.pc_rhs) case.pc_rhs cmtTbl | _ -> ( - let doc = printExpressionWithComments ~customLayout case.pc_rhs cmtTbl in + let doc = printExpressionWithComments ~state case.pc_rhs cmtTbl in match Parens.expr case.pc_rhs with | Parenthesized -> addParens doc | _ -> doc) @@ -4566,7 +4694,7 @@ and printCase ~customLayout (case : Parsetree.case) cmtTbl = [ Doc.line; Doc.text "if "; - printExpressionWithComments ~customLayout expr cmtTbl; + printExpressionWithComments ~state expr cmtTbl; ]) in let shouldInlineRhs = @@ -4583,7 +4711,7 @@ and printCase ~customLayout (case : Parsetree.case) cmtTbl = | _ -> true in let patternDoc = - let doc = printPattern ~customLayout case.pc_lhs cmtTbl in + let doc = printPattern ~state case.pc_lhs cmtTbl in match case.pc_lhs.ppat_desc with | Ppat_constraint _ -> addParens doc | _ -> doc @@ -4600,8 +4728,9 @@ and printCase ~customLayout (case : Parsetree.case) cmtTbl = in Doc.group (Doc.concat [Doc.text "| "; content]) -and printExprFunParameters ~customLayout ~inCallback ~async ~uncurried - ~hasConstraint parameters cmtTbl = +and printExprFunParameters ~state ~inCallback ~async ~uncurried ~hasConstraint + parameters cmtTbl = + let dotted = state.uncurried_config |> Res_uncurried.getDotted ~uncurried in match parameters with (* let f = _ => () *) | [ @@ -4613,7 +4742,7 @@ and printExprFunParameters ~customLayout ~inCallback ~async ~uncurried pat = {Parsetree.ppat_desc = Ppat_any; ppat_loc}; }; ] - when not uncurried -> + when not dotted -> let any = let doc = if hasConstraint then Doc.text "(_)" else Doc.text "_" in printComments doc cmtTbl ppat_loc @@ -4626,14 +4755,24 @@ and printExprFunParameters ~customLayout ~inCallback ~async ~uncurried attrs = []; lbl = Asttypes.Nolabel; defaultExpr = None; - pat = {Parsetree.ppat_desc = Ppat_var stringLoc}; + pat = + { + Parsetree.ppat_desc = Ppat_var stringLoc; + Parsetree.ppat_attributes = attrs; + }; }; ] - when not uncurried -> + when not dotted -> let txtDoc = let var = printIdentLike stringLoc.txt in - let var = if hasConstraint then addParens var else var in - if async then addAsync (Doc.concat [Doc.lparen; var; Doc.rparen]) else var + let var = + match attrs with + | [] -> if hasConstraint then addParens var else var + | attrs -> + let attrs = printAttributes ~state attrs cmtTbl in + addParens (Doc.concat [attrs; var]) + in + if async then addAsync var else var in printComments txtDoc cmtTbl stringLoc.loc (* let f = () => () *) @@ -4647,7 +4786,7 @@ and printExprFunParameters ~customLayout ~inCallback ~async ~uncurried {ppat_desc = Ppat_construct ({txt = Longident.Lident "()"; loc}, None)}; }; ] - when not uncurried -> + when not dotted -> let doc = let lparenRparen = Doc.text "()" in if async then addAsync lparenRparen else lparenRparen @@ -4661,7 +4800,7 @@ and printExprFunParameters ~customLayout ~inCallback ~async ~uncurried | _ -> false in let maybeAsyncLparen = - let lparen = if uncurried then Doc.text "(. " else Doc.lparen in + let lparen = if dotted then Doc.text "(. " else Doc.lparen in if async then addAsync lparen else lparen in let shouldHug = ParsetreeViewer.parametersShouldHug parameters in @@ -4672,7 +4811,7 @@ and printExprFunParameters ~customLayout ~inCallback ~async ~uncurried Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map - (fun p -> printExpFunParameter ~customLayout p cmtTbl) + (fun p -> printExpFunParameter ~state p cmtTbl) parameters); ] in @@ -4687,14 +4826,15 @@ and printExprFunParameters ~customLayout ~inCallback ~async ~uncurried Doc.rparen; ]) -and printExpFunParameter ~customLayout parameter cmtTbl = +and printExpFunParameter ~state parameter cmtTbl = match parameter with | ParsetreeViewer.NewTypes {attrs; locs = lbls} -> Doc.group (Doc.concat [ - printAttributes ~customLayout attrs cmtTbl; + printAttributes ~state attrs cmtTbl; Doc.text "type "; + (* XX *) Doc.join ~sep:Doc.space (List.map (fun lbl -> @@ -4704,45 +4844,46 @@ and printExpFunParameter ~customLayout parameter cmtTbl = lbls); ]) | Parameter {attrs; lbl; defaultExpr; pat = pattern} -> - let isUncurried, attrs = ParsetreeViewer.processUncurriedAttribute attrs in - let uncurried = - if isUncurried then Doc.concat [Doc.dot; Doc.space] else Doc.nil - in - let attrs = printAttributes ~customLayout attrs cmtTbl in + let hasBs, attrs = ParsetreeViewer.processBsAttribute attrs in + let dotted = if hasBs then Doc.concat [Doc.dot; Doc.space] else Doc.nil in + let attrs = printAttributes ~state attrs cmtTbl in (* =defaultValue *) let defaultExprDoc = match defaultExpr with | Some expr -> Doc.concat - [Doc.text "="; printExpressionWithComments ~customLayout expr cmtTbl] + [Doc.text "="; printExpressionWithComments ~state expr cmtTbl] | None -> Doc.nil in (* ~from as hometown * ~from -> punning *) let labelWithPattern = match (lbl, pattern) with - | Asttypes.Nolabel, pattern -> printPattern ~customLayout pattern cmtTbl + | Asttypes.Nolabel, pattern -> printPattern ~state pattern cmtTbl | ( (Asttypes.Labelled lbl | Optional lbl), - { - ppat_desc = Ppat_var stringLoc; - ppat_attributes = [] | [({Location.txt = "ns.namedArgLoc"}, _)]; - } ) + {ppat_desc = Ppat_var stringLoc; ppat_attributes} ) when lbl = stringLoc.txt -> (* ~d *) - Doc.concat [Doc.text "~"; printIdentLike lbl] + Doc.concat + [ + printAttributes ~state ppat_attributes cmtTbl; + Doc.text "~"; + printIdentLike lbl; + ] | ( (Asttypes.Labelled lbl | Optional lbl), { ppat_desc = Ppat_constraint ({ppat_desc = Ppat_var {txt}}, typ); - ppat_attributes = [] | [({Location.txt = "ns.namedArgLoc"}, _)]; + ppat_attributes; } ) when lbl = txt -> (* ~d: e *) Doc.concat [ + printAttributes ~state ppat_attributes cmtTbl; Doc.text "~"; printIdentLike lbl; Doc.text ": "; - printTypExpr ~customLayout typ cmtTbl; + printTypExpr ~state typ cmtTbl; ] | (Asttypes.Labelled lbl | Optional lbl), pattern -> (* ~b as c *) @@ -4751,7 +4892,7 @@ and printExpFunParameter ~customLayout parameter cmtTbl = Doc.text "~"; printIdentLike lbl; Doc.text " as "; - printPattern ~customLayout pattern cmtTbl; + printPattern ~state pattern cmtTbl; ] in let optionalLabelSuffix = @@ -4763,24 +4904,20 @@ and printExpFunParameter ~customLayout parameter cmtTbl = Doc.group (Doc.concat [ - uncurried; - attrs; - labelWithPattern; - defaultExprDoc; - optionalLabelSuffix; + dotted; attrs; labelWithPattern; defaultExprDoc; optionalLabelSuffix; ]) in let cmtLoc = match defaultExpr with | None -> ( match pattern.ppat_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _ -> + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _ -> {loc with loc_end = pattern.ppat_loc.loc_end} | _ -> pattern.ppat_loc) | Some expr -> let startPos = match pattern.ppat_attributes with - | ({Location.txt = "ns.namedArgLoc"; loc}, _) :: _ -> loc.loc_start + | ({Location.txt = "res.namedArgLoc"; loc}, _) :: _ -> loc.loc_start | _ -> pattern.ppat_loc.loc_start in { @@ -4791,7 +4928,7 @@ and printExpFunParameter ~customLayout parameter cmtTbl = in printComments doc cmtTbl cmtLoc -and printExpressionBlock ~customLayout ~braces expr cmtTbl = +and printExpressionBlock ~state ~braces expr cmtTbl = let rec collectRows acc expr = match expr.Parsetree.pexp_desc with | Parsetree.Pexp_letmodule (modName, modExpr, expr2) -> @@ -4805,7 +4942,7 @@ and printExpressionBlock ~customLayout ~braces expr cmtTbl = Doc.text "module "; name; Doc.text " = "; - printModExpr ~customLayout modExpr cmtTbl; + printModExpr ~state modExpr cmtTbl; ] in let loc = {expr.pexp_loc with loc_end = modExpr.pmod_loc.loc_end} in @@ -4822,7 +4959,7 @@ and printExpressionBlock ~customLayout ~braces expr cmtTbl = {cmtLoc with loc_end = loc.loc_end} in let letExceptionDoc = - printExceptionDef ~customLayout extensionConstructor cmtTbl + printExceptionDef ~state extensionConstructor cmtTbl in collectRows ((loc, letExceptionDoc) :: acc) expr2 | Pexp_open (overrideFlag, longidentLoc, expr2) -> @@ -4839,7 +4976,7 @@ and printExpressionBlock ~customLayout ~braces expr cmtTbl = collectRows ((loc, openDoc) :: acc) expr2 | Pexp_sequence (expr1, expr2) -> let exprDoc = - let doc = printExpression ~customLayout expr1 cmtTbl in + let doc = printExpression ~state expr1 cmtTbl in match Parens.expr expr1 with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr1 braces @@ -4866,9 +5003,7 @@ and printExpressionBlock ~customLayout ~braces expr cmtTbl = | Asttypes.Nonrecursive -> Doc.nil | Asttypes.Recursive -> Doc.text "rec " in - let letDoc = - printValueBindings ~customLayout ~recFlag valueBindings cmtTbl - in + let letDoc = printValueBindings ~state ~recFlag valueBindings cmtTbl in (* let () = { * let () = foo() * () @@ -4881,7 +5016,7 @@ and printExpressionBlock ~customLayout ~braces expr cmtTbl = | _ -> collectRows ((loc, letDoc) :: acc) expr2) | _ -> let exprDoc = - let doc = printExpression ~customLayout expr cmtTbl in + let doc = printExpression ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -4958,7 +5093,7 @@ and printDirectionFlag flag = | Asttypes.Downto -> Doc.text " downto " | Asttypes.Upto -> Doc.text " to " -and printExpressionRecordRow ~customLayout (lbl, expr) cmtTbl punningAllowed = +and printExpressionRecordRow ~state (lbl, expr) cmtTbl punningAllowed = let cmtLoc = {lbl.loc with loc_end = expr.pexp_loc.loc_end} in let doc = Doc.group @@ -4968,7 +5103,7 @@ and printExpressionRecordRow ~customLayout (lbl, expr) cmtTbl punningAllowed = (* print punned field *) Doc.concat [ - printAttributes ~customLayout expr.pexp_attributes cmtTbl; + printAttributes ~state expr.pexp_attributes cmtTbl; printOptionalLabel expr.pexp_attributes; printLidentPath lbl cmtTbl; ] @@ -4978,8 +5113,8 @@ and printExpressionRecordRow ~customLayout (lbl, expr) cmtTbl punningAllowed = printLidentPath lbl cmtTbl; Doc.text ": "; printOptionalLabel expr.pexp_attributes; - (let doc = printExpressionWithComments ~customLayout expr cmtTbl in - match Parens.expr expr with + (let doc = printExpressionWithComments ~state expr cmtTbl in + match Parens.exprRecordRowRhs expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces | Nothing -> doc); @@ -4987,7 +5122,7 @@ and printExpressionRecordRow ~customLayout (lbl, expr) cmtTbl punningAllowed = in printComments doc cmtTbl cmtLoc -and printBsObjectRow ~customLayout (lbl, expr) cmtTbl = +and printBsObjectRow ~state (lbl, expr) cmtTbl = let cmtLoc = {lbl.loc with loc_end = expr.pexp_loc.loc_end} in let lblDoc = let doc = @@ -5000,7 +5135,7 @@ and printBsObjectRow ~customLayout (lbl, expr) cmtTbl = [ lblDoc; Doc.text ": "; - (let doc = printExpressionWithComments ~customLayout expr cmtTbl in + (let doc = printExpressionWithComments ~state expr cmtTbl in match Parens.expr expr with | Parens.Parenthesized -> addParens doc | Braced braces -> printBraces doc expr braces @@ -5015,8 +5150,8 @@ and printBsObjectRow ~customLayout (lbl, expr) cmtTbl = * `@attr * type t = string` -> attr is on prev line, print the attributes * with a line break between, we respect the users' original layout *) -and printAttributes ?loc ?(inline = false) ~customLayout - (attrs : Parsetree.attributes) cmtTbl = +and printAttributes ?loc ?(inline = false) ~state (attrs : Parsetree.attributes) + cmtTbl = match ParsetreeViewer.filterParsingAttrs attrs with | [] -> Doc.nil | attrs -> @@ -5033,18 +5168,16 @@ and printAttributes ?loc ?(inline = false) ~customLayout Doc.concat [ Doc.group - (Doc.join ~sep:Doc.line - (List.map - (fun attr -> printAttribute ~customLayout attr cmtTbl) - attrs)); + (Doc.joinWithSep + (List.map (fun attr -> printAttribute ~state attr cmtTbl) attrs)); (if inline then Doc.space else lineBreak); ] -and printPayload ~customLayout (payload : Parsetree.payload) cmtTbl = +and printPayload ~state (payload : Parsetree.payload) cmtTbl = match payload with | PStr [] -> Doc.nil | PStr [{pstr_desc = Pstr_eval (expr, attrs)}] -> - let exprDoc = printExpressionWithComments ~customLayout expr cmtTbl in + let exprDoc = printExpressionWithComments ~state expr cmtTbl in let needsParens = match attrs with | [] -> false @@ -5055,7 +5188,7 @@ and printPayload ~customLayout (payload : Parsetree.payload) cmtTbl = Doc.concat [ Doc.lparen; - printAttributes ~customLayout attrs cmtTbl; + printAttributes ~state attrs cmtTbl; (if needsParens then addParens exprDoc else exprDoc); Doc.rparen; ] @@ -5067,22 +5200,21 @@ and printPayload ~customLayout (payload : Parsetree.payload) cmtTbl = (Doc.concat [ Doc.softLine; - printAttributes ~customLayout attrs cmtTbl; + printAttributes ~state attrs cmtTbl; (if needsParens then addParens exprDoc else exprDoc); ]); Doc.softLine; Doc.rparen; ] | PStr [({pstr_desc = Pstr_value (_recFlag, _bindings)} as si)] -> - addParens (printStructureItem ~customLayout si cmtTbl) - | PStr structure -> addParens (printStructure ~customLayout structure cmtTbl) + addParens (printStructureItem ~state si cmtTbl) + | PStr structure -> addParens (printStructure ~state structure cmtTbl) | PTyp typ -> Doc.concat [ Doc.lparen; Doc.text ":"; - Doc.indent - (Doc.concat [Doc.line; printTypExpr ~customLayout typ cmtTbl]); + Doc.indent (Doc.concat [Doc.line; printTypExpr ~state typ cmtTbl]); Doc.softLine; Doc.rparen; ] @@ -5094,7 +5226,7 @@ and printPayload ~customLayout (payload : Parsetree.payload) cmtTbl = [ Doc.line; Doc.text "if "; - printExpressionWithComments ~customLayout expr cmtTbl; + printExpressionWithComments ~state expr cmtTbl; ] | None -> Doc.nil in @@ -5106,7 +5238,7 @@ and printPayload ~customLayout (payload : Parsetree.payload) cmtTbl = [ Doc.softLine; Doc.text "? "; - printPattern ~customLayout pat cmtTbl; + printPattern ~state pat cmtTbl; whenDoc; ]); Doc.softLine; @@ -5118,15 +5250,15 @@ and printPayload ~customLayout (payload : Parsetree.payload) cmtTbl = Doc.lparen; Doc.text ":"; Doc.indent - (Doc.concat [Doc.line; printSignature ~customLayout signature cmtTbl]); + (Doc.concat [Doc.line; printSignature ~state signature cmtTbl]); Doc.softLine; Doc.rparen; ] -and printAttribute ?(standalone = false) ~customLayout +and printAttribute ?(standalone = false) ~state ((id, payload) : Parsetree.attribute) cmtTbl = match (id, payload) with - | ( {txt = "ns.doc"}, + | ( {txt = "res.doc"}, PStr [ { @@ -5134,22 +5266,34 @@ and printAttribute ?(standalone = false) ~customLayout Pstr_eval ({pexp_desc = Pexp_constant (Pconst_string (txt, _))}, _); }; ] ) -> - Doc.concat - [ - Doc.text (if standalone then "/***" else "/**"); - Doc.text txt; - Doc.text "*/"; - ] + ( Doc.concat + [ + Doc.text (if standalone then "/***" else "/**"); + Doc.text txt; + Doc.text "*/"; + ], + Doc.hardLine ) | _ -> - Doc.group - (Doc.concat - [ - Doc.text (if standalone then "@@" else "@"); - Doc.text (convertBsExternalAttribute id.txt); - printPayload ~customLayout payload cmtTbl; - ]) + let id = + match id.txt with + | "uncurried" -> + state.uncurried_config <- Res_uncurried.Default; + id + | "toUncurried" -> + state.uncurried_config <- Res_uncurried.Default; + {id with txt = "uncurried"} + | _ -> id + in + ( Doc.group + (Doc.concat + [ + Doc.text (if standalone then "@@" else "@"); + Doc.text (convertBsExternalAttribute id.txt); + printPayload ~state payload cmtTbl; + ]), + Doc.line ) -and printModExpr ~customLayout modExpr cmtTbl = +and printModExpr ~state modExpr cmtTbl = let doc = match modExpr.pmod_desc with | Pmod_ident longidentLoc -> printLongidentLocation longidentLoc cmtTbl @@ -5159,14 +5303,7 @@ and printModExpr ~customLayout modExpr cmtTbl = in Doc.breakableGroup ~forceBreak:shouldBreak (Doc.concat - [ - Doc.lbrace; - Doc.indent - (Doc.concat - [Doc.softLine; printCommentsInside cmtTbl modExpr.pmod_loc]); - Doc.softLine; - Doc.rbrace; - ]) + [Doc.lbrace; printCommentsInside cmtTbl modExpr.pmod_loc; Doc.rbrace]) | Pmod_structure structure -> Doc.breakableGroup ~forceBreak:true (Doc.concat @@ -5174,7 +5311,7 @@ and printModExpr ~customLayout modExpr cmtTbl = Doc.lbrace; Doc.indent (Doc.concat - [Doc.softLine; printStructure ~customLayout structure cmtTbl]); + [Doc.softLine; printStructure ~state structure cmtTbl]); Doc.softLine; Doc.rbrace; ]) @@ -5194,7 +5331,7 @@ and printModExpr ~customLayout modExpr cmtTbl = (expr, {ptyp_desc = Ptyp_package packageType; ptyp_loc}) -> let packageDoc = let doc = - printPackageType ~customLayout ~printModuleKeywordAndParens:false + printPackageType ~state ~printModuleKeywordAndParens:false packageType cmtTbl in printComments doc cmtTbl ptyp_loc @@ -5210,10 +5347,7 @@ and printModExpr ~customLayout modExpr cmtTbl = let unpackDoc = Doc.group (Doc.concat - [ - printExpressionWithComments ~customLayout expr cmtTbl; - moduleConstraint; - ]) + [printExpressionWithComments ~state expr cmtTbl; moduleConstraint]) in Doc.group (Doc.concat @@ -5229,7 +5363,7 @@ and printModExpr ~customLayout modExpr cmtTbl = Doc.rparen; ]) | Pmod_extension extension -> - printExtension ~customLayout ~atModuleLvl:false extension cmtTbl + printExtension ~state ~atModuleLvl:false extension cmtTbl | Pmod_apply _ -> let args, callExpr = ParsetreeViewer.modExprApply modExpr in let isUnitSugar = @@ -5245,17 +5379,15 @@ and printModExpr ~customLayout modExpr cmtTbl = Doc.group (Doc.concat [ - printModExpr ~customLayout callExpr cmtTbl; + printModExpr ~state callExpr cmtTbl; (if isUnitSugar then - printModApplyArg ~customLayout - (List.hd args [@doesNotRaise]) - cmtTbl + printModApplyArg ~state (List.hd args [@doesNotRaise]) cmtTbl else Doc.concat [ Doc.lparen; (if shouldHug then - printModApplyArg ~customLayout + printModApplyArg ~state (List.hd args [@doesNotRaise]) cmtTbl else @@ -5267,7 +5399,7 @@ and printModExpr ~customLayout modExpr cmtTbl = ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map (fun modArg -> - printModApplyArg ~customLayout modArg cmtTbl) + printModApplyArg ~state modArg cmtTbl) args); ])); (if not shouldHug then @@ -5279,15 +5411,15 @@ and printModExpr ~customLayout modExpr cmtTbl = | Pmod_constraint (modExpr, modType) -> Doc.concat [ - printModExpr ~customLayout modExpr cmtTbl; + printModExpr ~state modExpr cmtTbl; Doc.text ": "; - printModType ~customLayout modType cmtTbl; + printModType ~state modType cmtTbl; ] - | Pmod_functor _ -> printModFunctor ~customLayout modExpr cmtTbl + | Pmod_functor _ -> printModFunctor ~state modExpr cmtTbl in printComments doc cmtTbl modExpr.pmod_loc -and printModFunctor ~customLayout modExpr cmtTbl = +and printModFunctor ~state modExpr cmtTbl = let parameters, returnModExpr = ParsetreeViewer.modExprFunctor modExpr in (* let shouldInline = match returnModExpr.pmod_desc with *) (* | Pmod_structure _ | Pmod_ident _ -> true *) @@ -5298,18 +5430,18 @@ and printModFunctor ~customLayout modExpr cmtTbl = match returnModExpr.pmod_desc with | Pmod_constraint (modExpr, modType) -> let constraintDoc = - let doc = printModType ~customLayout modType cmtTbl in + let doc = printModType ~state modType cmtTbl in if Parens.modExprFunctorConstraint modType then addParens doc else doc in let modConstraint = Doc.concat [Doc.text ": "; constraintDoc] in - (modConstraint, printModExpr ~customLayout modExpr cmtTbl) - | _ -> (Doc.nil, printModExpr ~customLayout returnModExpr cmtTbl) + (modConstraint, printModExpr ~state modExpr cmtTbl) + | _ -> (Doc.nil, printModExpr ~state returnModExpr cmtTbl) in let parametersDoc = match parameters with | [(attrs, {txt = "*"}, None)] -> Doc.group - (Doc.concat [printAttributes ~customLayout attrs cmtTbl; Doc.text "()"]) + (Doc.concat [printAttributes ~state attrs cmtTbl; Doc.text "()"]) | [([], {txt = lbl}, None)] -> Doc.text lbl | parameters -> Doc.group @@ -5323,8 +5455,7 @@ and printModFunctor ~customLayout modExpr cmtTbl = Doc.join ~sep:(Doc.concat [Doc.comma; Doc.line]) (List.map - (fun param -> - printModFunctorParam ~customLayout param cmtTbl) + (fun param -> printModFunctorParam ~state param cmtTbl) parameters); ]); Doc.trailingComma; @@ -5336,14 +5467,14 @@ and printModFunctor ~customLayout modExpr cmtTbl = (Doc.concat [parametersDoc; returnConstraint; Doc.text " => "; returnModExpr]) -and printModFunctorParam ~customLayout (attrs, lbl, optModType) cmtTbl = +and printModFunctorParam ~state (attrs, lbl, optModType) cmtTbl = let cmtLoc = match optModType with | None -> lbl.Asttypes.loc | Some modType -> {lbl.loc with loc_end = modType.Parsetree.pmty_loc.loc_end} in - let attrs = printAttributes ~customLayout attrs cmtTbl in + let attrs = printAttributes ~state attrs cmtTbl in let lblDoc = let doc = if lbl.txt = "*" then Doc.text "()" else Doc.text lbl.txt in printComments doc cmtTbl lbl.loc @@ -5357,19 +5488,17 @@ and printModFunctorParam ~customLayout (attrs, lbl, optModType) cmtTbl = (match optModType with | None -> Doc.nil | Some modType -> - Doc.concat - [Doc.text ": "; printModType ~customLayout modType cmtTbl]); + Doc.concat [Doc.text ": "; printModType ~state modType cmtTbl]); ]) in printComments doc cmtTbl cmtLoc -and printModApplyArg ~customLayout modExpr cmtTbl = +and printModApplyArg ~state modExpr cmtTbl = match modExpr.pmod_desc with | Pmod_structure [] -> Doc.text "()" - | _ -> printModExpr ~customLayout modExpr cmtTbl + | _ -> printModExpr ~state modExpr cmtTbl -and printExceptionDef ~customLayout (constr : Parsetree.extension_constructor) - cmtTbl = +and printExceptionDef ~state (constr : Parsetree.extension_constructor) cmtTbl = let kind = match constr.pext_kind with | Pext_rebind longident -> @@ -5380,15 +5509,11 @@ and printExceptionDef ~customLayout (constr : Parsetree.extension_constructor) | Pext_decl (args, gadt) -> let gadtDoc = match gadt with - | Some typ -> - Doc.concat [Doc.text ": "; printTypExpr ~customLayout typ cmtTbl] + | Some typ -> Doc.concat [Doc.text ": "; printTypExpr ~state typ cmtTbl] | None -> Doc.nil in Doc.concat - [ - printConstructorArguments ~customLayout ~indent:false args cmtTbl; - gadtDoc; - ] + [printConstructorArguments ~state ~indent:false args cmtTbl; gadtDoc] in let name = printComments (Doc.text constr.pext_name.txt) cmtTbl constr.pext_name.loc @@ -5397,7 +5522,7 @@ and printExceptionDef ~customLayout (constr : Parsetree.extension_constructor) Doc.group (Doc.concat [ - printAttributes ~customLayout constr.pext_attributes cmtTbl; + printAttributes ~state constr.pext_attributes cmtTbl; Doc.text "exception "; name; kind; @@ -5405,9 +5530,9 @@ and printExceptionDef ~customLayout (constr : Parsetree.extension_constructor) in printComments doc cmtTbl constr.pext_loc -and printExtensionConstructor ~customLayout - (constr : Parsetree.extension_constructor) cmtTbl i = - let attrs = printAttributes ~customLayout constr.pext_attributes cmtTbl in +and printExtensionConstructor ~state (constr : Parsetree.extension_constructor) + cmtTbl i = + let attrs = printAttributes ~state constr.pext_attributes cmtTbl in let bar = if i > 0 then Doc.text "| " else Doc.ifBreaks (Doc.text "| ") Doc.nil in @@ -5421,37 +5546,33 @@ and printExtensionConstructor ~customLayout | Pext_decl (args, gadt) -> let gadtDoc = match gadt with - | Some typ -> - Doc.concat [Doc.text ": "; printTypExpr ~customLayout typ cmtTbl] + | Some typ -> Doc.concat [Doc.text ": "; printTypExpr ~state typ cmtTbl] | None -> Doc.nil in Doc.concat - [ - printConstructorArguments ~customLayout ~indent:false args cmtTbl; - gadtDoc; - ] + [printConstructorArguments ~state ~indent:false args cmtTbl; gadtDoc] in let name = printComments (Doc.text constr.pext_name.txt) cmtTbl constr.pext_name.loc in Doc.concat [bar; Doc.group (Doc.concat [attrs; name; kind])] -let printTypeParams = printTypeParams ~customLayout:0 -let printTypExpr = printTypExpr ~customLayout:0 -let printExpression = printExpression ~customLayout:0 -let printPattern = printPattern ~customLayout:0 +let printTypeParams = printTypeParams ~state:State.init +let printTypExpr = printTypExpr ~state:State.init +let printExpression = printExpression ~state:State.init +let printPattern = printPattern ~state:State.init let printImplementation ~width (s : Parsetree.structure) ~comments = let cmtTbl = CommentTable.make () in CommentTable.walkStructure s cmtTbl comments; (* CommentTable.log cmtTbl; *) - let doc = printStructure ~customLayout:0 s cmtTbl in + let doc = printStructure ~state:State.init s cmtTbl in (* Doc.debug doc; *) Doc.toString ~width doc ^ "\n" let printInterface ~width (s : Parsetree.signature) ~comments = let cmtTbl = CommentTable.make () in CommentTable.walkSignature s cmtTbl comments; - Doc.toString ~width (printSignature ~customLayout:0 s cmtTbl) ^ "\n" + Doc.toString ~width (printSignature ~state:State.init s cmtTbl) ^ "\n" -let printStructure = printStructure ~customLayout:0 +let printStructure = printStructure ~state:State.init diff --git a/analysis/vendor/res_outcome_printer/res_uncurried.ml b/analysis/vendor/res_outcome_printer/res_uncurried.ml new file mode 100644 index 000000000..d3c666c4d --- /dev/null +++ b/analysis/vendor/res_outcome_printer/res_uncurried.ml @@ -0,0 +1,17 @@ +type config = Legacy | Default + +let init = Legacy + +let isDefault = function + | Legacy -> false + | Default -> true + +(* For parsing *) +let fromDotted ~dotted = function + | Legacy -> dotted + | Default -> not dotted + +(* For printing *) +let getDotted ~uncurried = function + | Legacy -> uncurried + | Default -> not uncurried From d7cab95d088743d688f6f688202313b443e9d398 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 17:19:17 +0100 Subject: [PATCH 02/12] Backward-compatible check for optional fields. --- .../expected/CompletionExpressions.res.txt | 20 +++---------------- .../tests/src/expected/Destructuring.res.txt | 6 +++--- .../res_parsetree_viewer.ml | 2 +- 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/analysis/tests/src/expected/CompletionExpressions.res.txt b/analysis/tests/src/expected/CompletionExpressions.res.txt index 3917a5dc9..7e7bdd5f2 100644 --- a/analysis/tests/src/expected/CompletionExpressions.res.txt +++ b/analysis/tests/src/expected/CompletionExpressions.res.txt @@ -471,27 +471,13 @@ posCursor:[108:57] posNoWhite:[108:56] Found expr:[108:11->108:60] Pexp_apply ...[108:11->108:42] (...[108:43->108:60]) Completable: Cexpression CArgument Value[fnTakingRecordWithOptionalField]($0)->recordField(someOptField) [{ - "label": "None", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "Some(_)", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null, - "insertText": "Some(${1:_})", - "insertTextFormat": 2 - }, { - "label": "Some(true)", + "label": "true", "kind": 4, "tags": [], "detail": "bool", "documentation": null }, { - "label": "Some(false)", + "label": "false", "kind": 4, "tags": [], "detail": "bool", @@ -771,7 +757,7 @@ Completable: Cpath Value[fff].someOpt "label": "someOptField", "kind": 5, "tags": [], - "detail": "someOptField: option\n\ntype recordWithOptionalField = {\n someField: int,\n someOptField?: bool,\n}", + "detail": "someOptField?: bool\n\ntype recordWithOptionalField = {\n someField: int,\n someOptField?: bool,\n}", "documentation": null }] diff --git a/analysis/tests/src/expected/Destructuring.res.txt b/analysis/tests/src/expected/Destructuring.res.txt index 642032258..867586806 100644 --- a/analysis/tests/src/expected/Destructuring.res.txt +++ b/analysis/tests/src/expected/Destructuring.res.txt @@ -68,10 +68,10 @@ Completable: Cpattern Value[x]->recordBody "detail": "someField: int\n\nrecordWithOptField", "documentation": null }, { - "label": "someOptField", + "label": "?someOptField", "kind": 5, "tags": [], - "detail": "someOptField: option\n\nrecordWithOptField", - "documentation": null + "detail": "?someOptField: option\n\nrecordWithOptField", + "documentation": {"kind": "markdown", "value": "someOptField is an optional field, and needs to be destructured using '?'."} }] diff --git a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml b/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml index 6004316c2..b835fd0b8 100644 --- a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml +++ b/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml @@ -348,7 +348,7 @@ let isIfLetExpr expr = let rec hasOptionalAttribute attrs = match attrs with | [] -> false - | ({Location.txt = "res.optional"}, _) :: _ -> true + | ({Location.txt = "ns.optional" | "res.optional"}, _) :: _ -> true | _ :: attrs -> hasOptionalAttribute attrs let hasAttributes attrs = From 1b2d03342acac82da8c23bfd10d6efb8faf65596 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 17:21:58 +0100 Subject: [PATCH 03/12] Backwards-compatible check for braces attribute. --- analysis/tests/src/expected/Xform.res.txt | 16 ++++++++++------ .../res_outcome_printer/res_comments_table.ml | 2 +- .../res_outcome_printer/res_parsetree_viewer.ml | 8 ++++---- .../vendor/res_outcome_printer/res_printer.ml | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/analysis/tests/src/expected/Xform.res.txt b/analysis/tests/src/expected/Xform.res.txt index 609836b82..d298604ae 100644 --- a/analysis/tests/src/expected/Xform.res.txt +++ b/analysis/tests/src/expected/Xform.res.txt @@ -41,14 +41,14 @@ Hit: Add braces to function {"start": {"line": 26, "character": 0}, "end": {"line": 32, "character": 3}} newText: <--here -let foo = x => +let foo = x => { // ^xfm - @ns.braces switch x { | None => 33 | Some(q) => q.T.a + 1 // ^xfm } +} Xform src/Xform.res 34:21 Hit: Add type annotation @@ -71,7 +71,9 @@ Hit: Add braces to function {"start": {"line": 48, "character": 0}, "end": {"line": 48, "character": 25}} newText: <--here -let noBraces = () => @ns.braces name +let noBraces = () => { + name +} Xform src/Xform.res 52:34 Hit: Add braces to function @@ -79,7 +81,9 @@ Hit: Add braces to function newText: <--here let nested = () => { - let _noBraces = (_x, _y, _z) => @ns.braces "someNewFunc" + let _noBraces = (_x, _y, _z) => { + "someNewFunc" + } // ^xfm } @@ -88,10 +92,10 @@ Hit: Add braces to function {"start": {"line": 58, "character": 4}, "end": {"line": 62, "character": 7}} newText: <--here - let foo = (_x, y, _z) => - @ns.braces + let foo = (_x, y, _z) => { switch y { | #some => 3 | #stuff => 4 } + } diff --git a/analysis/vendor/res_outcome_printer/res_comments_table.ml b/analysis/vendor/res_outcome_printer/res_comments_table.ml index ed6373528..e83f99ca8 100644 --- a/analysis/vendor/res_outcome_printer/res_comments_table.ml +++ b/analysis/vendor/res_outcome_printer/res_comments_table.ml @@ -360,7 +360,7 @@ let getLoc node = | _ -> expr.pexp_loc) | Expression e -> ( match e.pexp_attributes with - | ({txt = "res.braces"; loc}, _) :: _ -> loc + | ({txt = "res.braces"| "ns.braces"; loc}, _) :: _ -> loc | _ -> e.pexp_loc) | ExprRecordRow (li, e) -> {li.loc with loc_end = e.pexp_loc.loc_end} | ExtensionConstructor ec -> ec.pext_loc diff --git a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml b/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml index b835fd0b8..68a73f9af 100644 --- a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml +++ b/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml @@ -193,7 +193,7 @@ let funExpr expr = let processBracesAttr expr = match expr.pexp_attributes with - | (({txt = "res.braces"}, _) as attr) :: attrs -> + | (({txt = "res.braces" | "ns.braces"}, _) as attr) :: attrs -> (Some attr, {expr with pexp_attributes = attrs}) | _ -> (None, expr) @@ -203,7 +203,7 @@ let filterParsingAttrs attrs = match attr with | ( { Location.txt = - ( "bs" | "res.uapp" | "res.arity" | "res.braces" | "res.iflet" + ( "bs" | "res.uapp" | "res.arity" | "res.braces"| "ns.braces" | "res.iflet" | "res.namedArgLoc" | "res.optional" | "res.ternary" | "res.async" | "res.await" | "res.template" ); }, @@ -357,7 +357,7 @@ let hasAttributes attrs = match attr with | ( { Location.txt = - ( "bs" | "res.uapp" | "res.arity" | "res.braces" | "res.iflet" + ( "bs" | "res.uapp" | "res.arity" | "res.braces"| "ns.braces" | "res.iflet" | "res.ternary" | "res.async" | "res.await" | "res.template" ); }, _ ) -> @@ -539,7 +539,7 @@ let isPrintableAttribute attr = match attr with | ( { Location.txt = - ( "bs" | "res.uapp" | "res.arity" | "res.iflet" | "res.braces" | "JSX" + ( "bs" | "res.uapp" | "res.arity" | "res.iflet" | "res.braces"| "ns.braces" | "JSX" | "res.async" | "res.await" | "res.template" | "res.ternary" ); }, _ ) -> diff --git a/analysis/vendor/res_outcome_printer/res_printer.ml b/analysis/vendor/res_outcome_printer/res_printer.ml index e6029c76d..26c193045 100644 --- a/analysis/vendor/res_outcome_printer/res_printer.ml +++ b/analysis/vendor/res_outcome_printer/res_printer.ml @@ -3270,7 +3270,7 @@ and printExpression ~state (e : Parsetree.expression) cmtTbl = pexp_attributes = List.filter (function - | {Location.txt = "res.braces"}, _ -> false + | {Location.txt = "res.braces"| "ns.braces"}, _ -> false | _ -> true) e.pexp_attributes; } From f20fabe091dc06e1121bb3927ed25deb01961e9c Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 17:36:30 +0100 Subject: [PATCH 04/12] The updated parser gives res.namedArgLoc --- analysis/src/SharedTypes.ml | 2 +- .../src/expected/BrokenParserCases.res.txt | 4 +- .../tests/src/expected/Completion.res.txt | 63 ++---- .../CompletionFunctionArguments.res.txt | 184 +++++++++--------- .../tests/src/expected/SignatureHelp.res.txt | 30 +-- 5 files changed, 132 insertions(+), 151 deletions(-) diff --git a/analysis/src/SharedTypes.ml b/analysis/src/SharedTypes.ml index c84aabf25..a14a0e6b3 100644 --- a/analysis/src/SharedTypes.ml +++ b/analysis/src/SharedTypes.ml @@ -793,7 +793,7 @@ let extractExpApplyArgs ~args = :: rest -> ( let namedArgLoc = e.pexp_attributes - |> List.find_opt (fun ({Asttypes.txt}, _) -> txt = "ns.namedArgLoc") + |> List.find_opt (fun ({Asttypes.txt}, _) -> txt = "res.namedArgLoc") in match namedArgLoc with | Some ({loc}, _) -> diff --git a/analysis/tests/src/expected/BrokenParserCases.res.txt b/analysis/tests/src/expected/BrokenParserCases.res.txt index 939e776a3..0760cbb01 100644 --- a/analysis/tests/src/expected/BrokenParserCases.res.txt +++ b/analysis/tests/src/expected/BrokenParserCases.res.txt @@ -1,8 +1,8 @@ Complete src/BrokenParserCases.res 2:24 posCursor:[2:24] posNoWhite:[2:23] Found expr:[2:11->2:30] -Pexp_apply ...[2:11->2:17] () +Pexp_apply ...[2:11->2:17] (~isOff2:19->2:24=...[2:27->2:29]) Attribute id:res.namedArgLoc:[2:19->2:24] label:isOff -Completable: Cexpression CArgument Value[someFn]($0) +Completable: CnamedArg(Value[someFn], isOff, [isOff]) [] Complete src/BrokenParserCases.res 6:17 diff --git a/analysis/tests/src/expected/Completion.res.txt b/analysis/tests/src/expected/Completion.res.txt index fe058b8aa..b0b4b64cd 100644 --- a/analysis/tests/src/expected/Completion.res.txt +++ b/analysis/tests/src/expected/Completion.res.txt @@ -547,8 +547,8 @@ Completable: Cdecorator(react.) Complete src/Completion.res 71:27 posCursor:[71:27] posNoWhite:[71:26] Found expr:[71:11->71:27] -Pexp_apply ...[71:11->71:18] () -Completable: CnamedArg(Value[Lib, foo], "", []) +Pexp_apply ...[71:11->71:18] (~name71:20->71:24=...[71:20->71:24]) +Completable: CnamedArg(Value[Lib, foo], "", [name]) Found type for function (~age: int, ~name: string) => string [{ "label": "age", @@ -556,26 +556,14 @@ Found type for function (~age: int, ~name: string) => string "tags": [], "detail": "int", "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] Complete src/Completion.res 74:26 posCursor:[74:26] posNoWhite:[74:25] Found expr:[74:11->74:26] -Pexp_apply ...[74:11->74:18] () -Completable: CnamedArg(Value[Lib, foo], "", []) +Pexp_apply ...[74:11->74:18] (~age74:20->74:23=...[74:20->74:23]) +Completable: CnamedArg(Value[Lib, foo], "", [age]) Found type for function (~age: int, ~name: string) => string [{ - "label": "age", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { "label": "name", "kind": 4, "tags": [], @@ -585,16 +573,10 @@ Found type for function (~age: int, ~name: string) => string Complete src/Completion.res 77:32 posCursor:[77:32] posNoWhite:[77:31] Found expr:[77:11->77:32] -Pexp_apply ...[77:11->77:18] () -Completable: CnamedArg(Value[Lib, foo], "", []) +Pexp_apply ...[77:11->77:18] (~age77:20->77:23=...[77:25->77:28]) +Completable: CnamedArg(Value[Lib, foo], "", [age]) Found type for function (~age: int, ~name: string) => string [{ - "label": "age", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { "label": "name", "kind": 4, "tags": [], @@ -604,22 +586,10 @@ Found type for function (~age: int, ~name: string) => string Complete src/Completion.res 82:5 posCursor:[82:5] posNoWhite:[82:4] Found expr:[80:8->86:1] -Pexp_apply ...[80:8->80:15] () -Completable: CnamedArg(Value[Lib, foo], "", []) +Pexp_apply ...[80:8->80:15] (~age84:3->84:6=...[84:7->84:8], ~name85:3->85:7=...[85:8->85:10]) +Completable: CnamedArg(Value[Lib, foo], "", [age, name]) Found type for function (~age: int, ~name: string) => string -[{ - "label": "age", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] +[] Complete src/Completion.res 90:13 posCursor:[90:13] posNoWhite:[90:12] Found expr:[90:3->93:18] @@ -4347,12 +4317,21 @@ Resolved opens 2 Completion.res Completion.res Hover src/Completion.res 352:17 Nothing at that position. Now trying to use completion. posCursor:[352:17] posNoWhite:[352:16] Found expr:[352:11->352:22] -Pexp_apply ...[352:11->352:13] () +Pexp_apply ...[352:11->352:13] (~opt1352:15->352:19=...[352:20->352:21]) Attribute id:res.namedArgLoc:[352:15->352:19] label:opt1 -Completable: Cexpression CArgument Value[ff]($0) +Completable: CnamedArg(Value[ff], opt1, [opt1]) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res -null +Found type for function ( + ~opt1: int=?, + ~a: int, + ~b: int, + unit, + ~opt2: int=?, + unit, + ~c: int, +) => int +{"contents": {"kind": "markdown", "value": "```rescript\noption\n```"}} Complete src/Completion.res 355:23 posCursor:[355:23] posNoWhite:[355:22] Found expr:[0:-1->355:23] diff --git a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt index e3b64e185..f6bb95d11 100644 --- a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt +++ b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt @@ -1,26 +1,64 @@ Complete src/CompletionFunctionArguments.res 10:24 posCursor:[10:24] posNoWhite:[10:23] Found expr:[10:11->10:25] -Pexp_apply ...[10:11->10:17] () -Completable: Cexpression CArgument Value[someFn]($0) -[] +Pexp_apply ...[10:11->10:17] (~isOn10:19->10:23=...__ghost__[0:-1->0:-1]) +Completable: Cexpression CArgument Value[someFn](~isOn) +[{ + "label": "true", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "false", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }] Complete src/CompletionFunctionArguments.res 13:25 posCursor:[13:25] posNoWhite:[13:24] Found expr:[13:11->13:26] -Pexp_apply ...[13:11->13:17] () -Completable: Cexpression CArgument Value[someFn]($0) -[] +Pexp_apply ...[13:11->13:17] (~isOn13:19->13:23=...[13:24->13:25]) +Completable: Cexpression CArgument Value[someFn](~isOn)=t +[{ + "label": "true", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null, + "sortText": "A true" + }, { + "label": "tLocalVar", + "kind": 12, + "tags": [], + "detail": "bool", + "documentation": null + }] Complete src/CompletionFunctionArguments.res 16:25 posCursor:[16:25] posNoWhite:[16:24] Found expr:[16:11->16:26] -Pexp_apply ...[16:11->16:17] () -Completable: Cexpression CArgument Value[someFn]($0) -[] +Pexp_apply ...[16:11->16:17] (~isOff16:19->16:24=...__ghost__[0:-1->0:-1]) +Completable: Cexpression CArgument Value[someFn](~isOff) +[{ + "label": "true", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "false", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }] Complete src/CompletionFunctionArguments.res 21:27 posCursor:[21:27] posNoWhite:[21:26] Found expr:[19:8->25:1] -Pexp_apply ...[19:8->19:14] () +Pexp_apply ...[19:8->19:14] (~isOn20:3->20:7=...[21:7->23:8]) +posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:7->23:8] Attribute id:res.braces:[20:8->24:3] label:{ -Completable: Cexpression CArgument Value[someFn]($0) +Completable: Cdecorator({) [] Complete src/CompletionFunctionArguments.res 34:24 @@ -37,90 +75,65 @@ Completable: Cexpression CArgument Value[someOtherFn]($0)=f Complete src/CompletionFunctionArguments.res 51:39 posCursor:[51:39] posNoWhite:[51:38] Found expr:[51:11->51:40] -Pexp_apply ...[51:11->51:30] () -Completable: Cexpression CArgument Value[someFnTakingVariant]($0) +Pexp_apply ...[51:11->51:30] (~config51:32->51:38=...__ghost__[0:-1->0:-1]) +Completable: Cexpression CArgument Value[someFnTakingVariant](~config) [{ - "label": "None", - "kind": 4, - "tags": [], - "detail": "type someVariant = One | Two | Three(int, string)", - "documentation": null - }, { - "label": "Some(_)", - "kind": 4, - "tags": [], - "detail": "type someVariant = One | Two | Three(int, string)", - "documentation": null, - "insertText": "Some(${1:_})", - "insertTextFormat": 2 - }, { - "label": "Some(One)", + "label": "One", "kind": 4, "tags": [], "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", "documentation": null, - "insertText": "Some(One)", + "insertText": "One", "insertTextFormat": 2 }, { - "label": "Some(Two)", + "label": "Two", "kind": 4, "tags": [], "detail": "Two\n\ntype someVariant = One | Two | Three(int, string)", "documentation": null, - "insertText": "Some(Two)", + "insertText": "Two", "insertTextFormat": 2 }, { - "label": "Some(Three(_, _))", + "label": "Three(_, _)", "kind": 4, "tags": [], "detail": "Three(int, string)\n\ntype someVariant = One | Two | Three(int, string)", "documentation": null, - "insertText": "Some(Three(${1:_}, ${2:_}))", + "insertText": "Three(${1:_}, ${2:_})", "insertTextFormat": 2 }] Complete src/CompletionFunctionArguments.res 54:40 posCursor:[54:40] posNoWhite:[54:39] Found expr:[54:11->54:41] -Pexp_apply ...[54:11->54:30] () -Completable: Cexpression CArgument Value[someFnTakingVariant]($0) +Pexp_apply ...[54:11->54:30] (~config54:32->54:38=...[54:39->54:40]) +Completable: Cexpression CArgument Value[someFnTakingVariant](~config)=O [{ - "label": "None", - "kind": 4, - "tags": [], - "detail": "type someVariant = One | Two | Three(int, string)", - "documentation": null - }, { - "label": "Some(_)", + "label": "One", "kind": 4, "tags": [], - "detail": "type someVariant = One | Two | Three(int, string)", + "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", "documentation": null, - "insertText": "Some(${1:_})", + "sortText": "A One", + "insertText": "One", "insertTextFormat": 2 }, { - "label": "Some(One)", - "kind": 4, + "label": "OIncludeMeInCompletions", + "kind": 9, "tags": [], - "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", - "documentation": null, - "insertText": "Some(One)", - "insertTextFormat": 2 + "detail": "module", + "documentation": null }, { - "label": "Some(Two)", - "kind": 4, + "label": "Obj", + "kind": 9, "tags": [], - "detail": "Two\n\ntype someVariant = One | Two | Three(int, string)", - "documentation": null, - "insertText": "Some(Two)", - "insertTextFormat": 2 + "detail": "file module", + "documentation": null }, { - "label": "Some(Three(_, _))", - "kind": 4, + "label": "Object", + "kind": 9, "tags": [], - "detail": "Three(int, string)\n\ntype someVariant = One | Two | Three(int, string)", - "documentation": null, - "insertText": "Some(Three(${1:_}, ${2:_}))", - "insertTextFormat": 2 + "detail": "file module", + "documentation": null }] Complete src/CompletionFunctionArguments.res 57:33 @@ -146,46 +159,35 @@ Completable: Cexpression CArgument Value[someFnTakingVariant]($0)=So Complete src/CompletionFunctionArguments.res 60:44 posCursor:[60:44] posNoWhite:[60:43] Found expr:[60:11->60:45] -Pexp_apply ...[60:11->60:30] () -Completable: Cexpression CArgument Value[someFnTakingVariant]($0) +Pexp_apply ...[60:11->60:30] (~configOpt260:32->60:42=...[60:43->60:44]) +Completable: Cexpression CArgument Value[someFnTakingVariant](~configOpt2)=O [{ - "label": "None", + "label": "One", "kind": 4, "tags": [], - "detail": "type someVariant = One | Two | Three(int, string)", - "documentation": null - }, { - "label": "Some(_)", - "kind": 4, - "tags": [], - "detail": "type someVariant = One | Two | Three(int, string)", + "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", "documentation": null, - "insertText": "Some(${1:_})", + "sortText": "A One", + "insertText": "One", "insertTextFormat": 2 }, { - "label": "Some(One)", - "kind": 4, + "label": "OIncludeMeInCompletions", + "kind": 9, "tags": [], - "detail": "One\n\ntype someVariant = One | Two | Three(int, string)", - "documentation": null, - "insertText": "Some(One)", - "insertTextFormat": 2 + "detail": "module", + "documentation": null }, { - "label": "Some(Two)", - "kind": 4, + "label": "Obj", + "kind": 9, "tags": [], - "detail": "Two\n\ntype someVariant = One | Two | Three(int, string)", - "documentation": null, - "insertText": "Some(Two)", - "insertTextFormat": 2 + "detail": "file module", + "documentation": null }, { - "label": "Some(Three(_, _))", - "kind": 4, + "label": "Object", + "kind": 9, "tags": [], - "detail": "Three(int, string)\n\ntype someVariant = One | Two | Three(int, string)", - "documentation": null, - "insertText": "Some(Three(${1:_}, ${2:_}))", - "insertTextFormat": 2 + "detail": "file module", + "documentation": null }] Complete src/CompletionFunctionArguments.res 63:23 diff --git a/analysis/tests/src/expected/SignatureHelp.res.txt b/analysis/tests/src/expected/SignatureHelp.res.txt index 4c98da89c..aefca3b70 100644 --- a/analysis/tests/src/expected/SignatureHelp.res.txt +++ b/analysis/tests/src/expected/SignatureHelp.res.txt @@ -38,10 +38,10 @@ extracted params: Signature help src/SignatureHelp.res 22:29 posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:11->22:29] -Pexp_apply ...[22:11->22:19] (...[22:20->22:23]) +Pexp_apply ...[22:11->22:19] (...[22:20->22:23], ~two22:26->22:29=...[22:26->22:29]) posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:11->22:19] Pexp_ident someFunc:[22:11->22:19] -argAtCursor: unlabelled<0> +argAtCursor: ~two extracted params: [( int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] @@ -52,15 +52,15 @@ extracted params: "documentation": {"kind": "markdown", "value": " Does stuff. "} }], "activeSignature": 0, - "activeParameter": 0 + "activeParameter": 1 } Signature help src/SignatureHelp.res 25:33 posCursor:[25:19] posNoWhite:[25:18] Found expr:[25:11->25:35] -Pexp_apply ...[25:11->25:19] (...[25:20->25:23]) +Pexp_apply ...[25:11->25:19] (...[25:20->25:23], ~two25:26->25:29=...[25:30->25:35]) posCursor:[25:19] posNoWhite:[25:18] Found expr:[25:11->25:19] Pexp_ident someFunc:[25:11->25:19] -argAtCursor: unlabelled<0> +argAtCursor: ~two extracted params: [( int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] @@ -71,15 +71,15 @@ extracted params: "documentation": {"kind": "markdown", "value": " Does stuff. "} }], "activeSignature": 0, - "activeParameter": 0 + "activeParameter": 1 } Signature help src/SignatureHelp.res 28:38 posCursor:[28:19] posNoWhite:[28:18] Found expr:[28:11->28:42] -Pexp_apply ...[28:11->28:19] (...[28:20->28:23]) +Pexp_apply ...[28:11->28:19] (...[28:20->28:23], ~two28:26->28:29=...[28:30->28:35], ~four28:38->28:42=...[28:38->28:42]) posCursor:[28:19] posNoWhite:[28:18] Found expr:[28:11->28:19] Pexp_ident someFunc:[28:11->28:19] -argAtCursor: unlabelled<0> +argAtCursor: ~four extracted params: [( int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] @@ -90,15 +90,15 @@ extracted params: "documentation": {"kind": "markdown", "value": " Does stuff. "} }], "activeSignature": 0, - "activeParameter": 0 + "activeParameter": 3 } Signature help src/SignatureHelp.res 31:42 posCursor:[31:19] posNoWhite:[31:18] Found expr:[31:11->31:44] -Pexp_apply ...[31:11->31:19] (...[31:20->31:23]) +Pexp_apply ...[31:11->31:19] (...[31:20->31:23], ~two31:26->31:29=...[31:30->31:35], ~four31:38->31:42=...[31:43->31:44]) posCursor:[31:19] posNoWhite:[31:18] Found expr:[31:11->31:19] Pexp_ident someFunc:[31:11->31:19] -argAtCursor: unlabelled<0> +argAtCursor: ~four extracted params: [( int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] @@ -109,7 +109,7 @@ extracted params: "documentation": {"kind": "markdown", "value": " Does stuff. "} }], "activeSignature": 0, - "activeParameter": 0 + "activeParameter": 3 } Signature help src/SignatureHelp.res 34:21 @@ -165,10 +165,10 @@ extracted params: Signature help src/SignatureHelp.res 43:33 posCursor:[43:29] posNoWhite:[43:28] Found expr:[43:11->43:34] -Pexp_apply ...[43:11->43:29] () +Pexp_apply ...[43:11->43:29] (~age43:31->43:34=...[43:31->43:34]) posCursor:[43:29] posNoWhite:[43:28] Found expr:[43:11->43:29] Pexp_ident Completion.Lib.foo:[43:11->43:29] -argAtCursor: unlabelled<0> +argAtCursor: ~age extracted params: [(~age: int, ~name: string] { @@ -177,7 +177,7 @@ extracted params: "parameters": [{"label": [0, 10], "documentation": {"kind": "markdown", "value": "```rescript\nint\n```"}}, {"label": [12, 25], "documentation": {"kind": "markdown", "value": "```rescript\nstring\n```"}}] }], "activeSignature": 0, - "activeParameter": -1 + "activeParameter": 0 } Signature help src/SignatureHelp.res 50:24 From 5968817fd904e8c9cabe3ab0e5491f03c0b35b4b Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 17:40:01 +0100 Subject: [PATCH 05/12] One more ns.namedArgLoc --- analysis/src/CompletionJsx.ml | 2 +- .../tests/src/expected/Completion.res.txt | 2941 +----- .../CompletionFunctionArguments.res.txt | 5790 +---------- .../tests/src/expected/CompletionJsx.res.txt | 10 +- .../src/expected/CompletionJsxProps.res.txt | 6060 +---------- analysis/tests/src/expected/Div.res.txt | 2878 +----- analysis/tests/src/expected/Jsx2.res.txt | 9087 +---------------- analysis/tests/src/expected/JsxV4.res.txt | 22 +- .../tests/src/expected/RecoveryOnProp.res.txt | 2886 +----- 9 files changed, 239 insertions(+), 29437 deletions(-) diff --git a/analysis/src/CompletionJsx.ml b/analysis/src/CompletionJsx.ml index d9ff3f489..c90244166 100644 --- a/analysis/src/CompletionJsx.ml +++ b/analysis/src/CompletionJsx.ml @@ -894,7 +894,7 @@ let extractJsxProps ~(compName : Longident.t Location.loc) ~args = | ((Labelled s | Optional s), (eProp : Parsetree.expression)) :: rest -> ( let namedArgLoc = eProp.pexp_attributes - |> List.find_opt (fun ({Asttypes.txt}, _) -> txt = "ns.namedArgLoc") + |> List.find_opt (fun ({Asttypes.txt}, _) -> txt = "res.namedArgLoc") in match namedArgLoc with | Some ({loc}, _) -> diff --git a/analysis/tests/src/expected/Completion.res.txt b/analysis/tests/src/expected/Completion.res.txt index b0b4b64cd..2f6a5975b 100644 --- a/analysis/tests/src/expected/Completion.res.txt +++ b/analysis/tests/src/expected/Completion.res.txt @@ -462,63 +462,27 @@ Completable: Cpath Value[Js, Dict, u] Complete src/Completion.res 59:30 posCursor:[59:30] posNoWhite:[59:29] Found expr:[59:15->59:30] -JSX 59:21] > _children:None -Completable: Cjsx([O, Comp], "", []) +JSX 59:21] second[59:22->59:28]=...[59:29->59:30]> _children:None +Completable: Cexpression CJsxPropValue [O, Comp] second=z [{ - "label": "first", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "second", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoo", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "key", - "kind": 4, + "label": "zzz", + "kind": 12, "tags": [], - "detail": "string", + "detail": "int", "documentation": null }] Complete src/Completion.res 62:23 posCursor:[62:23] posNoWhite:[62:22] Found expr:[62:15->62:23] -JSX 62:21] > _children:None +JSX 62:21] z[62:22->62:23]=...[62:22->62:23]> _children:None Attribute id:res.namedArgLoc:[62:22->62:23] label:z -Completable: Cjsx([O, Comp], "", []) +Completable: Cjsx([O, Comp], z, [z]) [{ - "label": "first", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "second", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { "label": "zoo", "kind": 4, "tags": [], "detail": "option", "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] Complete src/Completion.res 65:8 @@ -1386,2896 +1350,17 @@ Found type for function (~a: int) => int Complete src/Completion.res 336:26 posCursor:[336:26] posNoWhite:[336:25] Found expr:[333:3->346:23] -JSX 333:6] > _children:None +JSX 333:6] onClick[334:4->334:11]=...[334:13->346:23]> _children:None +posCursor:[336:26] posNoWhite:[336:25] Found expr:[334:13->346:23] Attribute id:res.braces:[334:12->346:23] label:{_ Attribute id:res.braces:[334:18->338:6] label:{ posCursor:[336:26] posNoWhite:[336:25] Found pattern:[336:20->338:5] posCursor:[336:26] posNoWhite:[336:25] Found type:[336:23->338:5] Ptyp_constr Res:[336:23->338:5] -Completable: Cjsx([div], "", []) +Completable: Cdecorator({_) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res -[{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] +[] Complete src/Completion.res 343:57 posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:10->346:23] @@ -4296,9 +1381,9 @@ Resolved opens 2 Completion.res Completion.res Hover src/Completion.res 346:14 Nothing at that position. Now trying to use completion. posCursor:[346:14] posNoWhite:[346:13] Found expr:[346:9->346:23] -JSX 346:12] > _children:346:21 +JSX 346:12] name[346:13->346:17]=...[346:18->346:20]> _children:346:21 Attribute id:res.namedArgLoc:[346:13->346:17] label:name -Completable: Cjsx([div], "", []) +Completable: Cjsx([div], name, [name]) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res {"contents": {"kind": "markdown", "value": "```rescript\nstring\n```"}} diff --git a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt index f6bb95d11..0dd2ce329 100644 --- a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt +++ b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt @@ -284,5777 +284,33 @@ Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordBody Complete src/CompletionFunctionArguments.res 109:29 posCursor:[109:29] posNoWhite:[109:28] Found expr:[105:3->114:4] -JSX 105:6] > _children:114:2 -Attribute id:res.braces:[106:16->113:6] label:{thisGetsBrokenLoc -Attribute id:res.braces:[106:38->113:5] label:{ -Completable: Cjsx([div], "", []) +JSX 105:6] onMouseDown[106:4->106:15]=...[106:35->113:5]> _children:114:2 +posCursor:[109:29] posNoWhite:[109:28] Found expr:[106:35->113:5] +posCursor:[109:29] posNoWhite:[109:28] Found expr:[107:6->109:29] +posCursor:[109:29] posNoWhite:[109:28] Found expr:[108:6->109:29] +posCursor:[109:29] posNoWhite:[109:28] Found expr:[109:9->109:29] +Completable: Cpath Value[thisGetsBrokenLoc]->a <> [{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] - -Complete src/CompletionFunctionArguments.res 111:27 -posCursor:[111:27] posNoWhite:[111:26] Found expr:[105:3->114:4] -JSX 105:6] > _children:114:2 -Attribute id:res.braces:[106:16->113:6] label:{thisGetsBrokenLoc -Attribute id:res.braces:[106:38->113:5] label:{ -Completable: Cjsx([div], "", []) -[{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, + "label": "ReactEvent.Mouse.altKey", + "kind": 12, "tags": [], - "detail": "bool", + "detail": "t => bool", "documentation": null - }, { - "label": "key", - "kind": 4, + }] + +Complete src/CompletionFunctionArguments.res 111:27 +posCursor:[111:27] posNoWhite:[111:26] Found expr:[105:3->114:4] +JSX 105:6] onMouseDown[106:4->106:15]=...[106:35->113:5]> _children:114:2 +posCursor:[111:27] posNoWhite:[111:26] Found expr:[106:35->113:5] +posCursor:[111:27] posNoWhite:[111:26] Found expr:[107:6->111:27] +posCursor:[111:27] posNoWhite:[111:26] Found expr:[108:6->111:27] +posCursor:[111:27] posNoWhite:[111:26] Found expr:[111:9->111:27] +Completable: Cpath Value[reassignedWorks]->a <> +[{ + "label": "ReactEvent.Mouse.altKey", + "kind": 12, "tags": [], - "detail": "string", + "detail": "t => bool", "documentation": null }] diff --git a/analysis/tests/src/expected/CompletionJsx.res.txt b/analysis/tests/src/expected/CompletionJsx.res.txt index 770189f06..b2ada0c90 100644 --- a/analysis/tests/src/expected/CompletionJsx.res.txt +++ b/analysis/tests/src/expected/CompletionJsx.res.txt @@ -407,20 +407,14 @@ Completable: ChtmlElement 45:23] -JSX 45:21] > _children:None +JSX 45:21] n[45:22->45:23]=...[45:22->45:23]> _children:None Attribute id:res.namedArgLoc:[45:22->45:23] label:n -Completable: Cjsx([CompWithoutJsxPpx], "", []) +Completable: Cjsx([CompWithoutJsxPpx], n, [n]) [{ "label": "name", "kind": 4, "tags": [], "detail": "string", "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] diff --git a/analysis/tests/src/expected/CompletionJsxProps.res.txt b/analysis/tests/src/expected/CompletionJsxProps.res.txt index 75bb99c40..358794be1 100644 --- a/analysis/tests/src/expected/CompletionJsxProps.res.txt +++ b/analysis/tests/src/expected/CompletionJsxProps.res.txt @@ -1,6025 +1,213 @@ Complete src/CompletionJsxProps.res 0:47 posCursor:[0:47] posNoWhite:[0:46] Found expr:[0:12->0:47] -JSX 0:43] > _children:None -Completable: Cjsx([CompletionSupport, TestComponent], "", []) +JSX 0:43] on[0:44->0:46]=...__ghost__[0:-1->0:-1]> _children:None +Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] on [{ - "label": "on", + "label": "true", "kind": 4, "tags": [], "detail": "bool", "documentation": null }, { - "label": "polyArg", + "label": "false", "kind": 4, "tags": [], - "detail": "option<[#one | #three(int, bool) | #two | #two2]>", - "documentation": null - }, { - "label": "test", - "kind": 4, - "tags": [], - "detail": "testVariant", - "documentation": null - }, { - "label": "testArr", - "kind": 4, - "tags": [], - "detail": "array", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", + "detail": "bool", "documentation": null }] Complete src/CompletionJsxProps.res 3:48 posCursor:[3:48] posNoWhite:[3:47] Found expr:[3:12->3:48] -JSX 3:43] > _children:None -Completable: Cjsx([CompletionSupport, TestComponent], "", []) +JSX 3:43] on[3:44->3:46]=...[3:47->3:48]> _children:None +Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] on=t [{ - "label": "on", + "label": "true", "kind": 4, "tags": [], "detail": "bool", "documentation": null - }, { - "label": "polyArg", - "kind": 4, - "tags": [], - "detail": "option<[#one | #three(int, bool) | #two | #two2]>", - "documentation": null - }, { - "label": "test", - "kind": 4, - "tags": [], - "detail": "testVariant", - "documentation": null - }, { - "label": "testArr", - "kind": 4, - "tags": [], - "detail": "array", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] Complete src/CompletionJsxProps.res 6:50 posCursor:[6:50] posNoWhite:[6:49] Found expr:[6:12->6:50] -JSX 6:43] > _children:None -Completable: Cjsx([CompletionSupport, TestComponent], "", []) +JSX 6:43] test[6:44->6:48]=...[6:49->6:50]> _children:None +Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] test=T [{ - "label": "on", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "polyArg", + "label": "Two", "kind": 4, "tags": [], - "detail": "option<[#one | #three(int, bool) | #two | #two2]>", - "documentation": null + "detail": "Two\n\ntype testVariant = One | Two | Three(int)", + "documentation": null, + "sortText": "A Two", + "insertText": "{Two}", + "insertTextFormat": 2 }, { - "label": "test", + "label": "Three(_)", "kind": 4, "tags": [], - "detail": "testVariant", - "documentation": null + "detail": "Three(int)\n\ntype testVariant = One | Two | Three(int)", + "documentation": null, + "sortText": "A Three(_)", + "insertText": "{Three(${1:_})}", + "insertTextFormat": 2 }, { - "label": "testArr", - "kind": 4, + "label": "TableclothMap", + "kind": 9, "tags": [], - "detail": "array", + "detail": "file module", "documentation": null }, { - "label": "key", - "kind": 4, + "label": "TypeDefinition", + "kind": 9, "tags": [], - "detail": "string", + "detail": "file module", "documentation": null }] Complete src/CompletionJsxProps.res 9:52 posCursor:[9:52] posNoWhite:[9:51] Found expr:[9:12->9:52] -JSX 9:43] > _children:None -Completable: Cjsx([CompletionSupport, TestComponent], "", []) +JSX 9:43] polyArg[9:44->9:51]=...__ghost__[0:-1->0:-1]> _children:None +Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] polyArg [{ - "label": "on", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "polyArg", + "label": "#one", "kind": 4, "tags": [], - "detail": "option<[#one | #three(int, bool) | #two | #two2]>", - "documentation": null + "detail": "#one\n\n[#one | #three(int, bool) | #two | #two2]", + "documentation": null, + "insertText": "{#one}", + "insertTextFormat": 2 }, { - "label": "test", + "label": "#three(_, _)", "kind": 4, "tags": [], - "detail": "testVariant", - "documentation": null + "detail": "#three(int, bool)\n\n[#one | #three(int, bool) | #two | #two2]", + "documentation": null, + "insertText": "{#three(${1:_}, ${2:_})}", + "insertTextFormat": 2 }, { - "label": "testArr", + "label": "#two", "kind": 4, "tags": [], - "detail": "array", - "documentation": null + "detail": "#two\n\n[#one | #three(int, bool) | #two | #two2]", + "documentation": null, + "insertText": "{#two}", + "insertTextFormat": 2 }, { - "label": "key", + "label": "#two2", "kind": 4, "tags": [], - "detail": "string", - "documentation": null + "detail": "#two2\n\n[#one | #three(int, bool) | #two | #two2]", + "documentation": null, + "insertText": "{#two2}", + "insertTextFormat": 2 }] Complete src/CompletionJsxProps.res 12:54 posCursor:[12:54] posNoWhite:[12:53] Found expr:[12:12->12:54] -JSX 12:43] > _children:None -Completable: Cjsx([CompletionSupport, TestComponent], "", []) +JSX 12:43] polyArg[12:44->12:51]=...[12:52->12:54]> _children:None +Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] polyArg=#t [{ - "label": "on", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "polyArg", - "kind": 4, - "tags": [], - "detail": "option<[#one | #three(int, bool) | #two | #two2]>", - "documentation": null - }, { - "label": "test", + "label": "#three(_, _)", "kind": 4, "tags": [], - "detail": "testVariant", - "documentation": null + "detail": "#three(int, bool)\n\n[#one | #three(int, bool) | #two | #two2]", + "documentation": null, + "insertText": "{three(${1:_}, ${2:_})}", + "insertTextFormat": 2 }, { - "label": "testArr", + "label": "#two", "kind": 4, "tags": [], - "detail": "array", - "documentation": null + "detail": "#two\n\n[#one | #three(int, bool) | #two | #two2]", + "documentation": null, + "insertText": "{two}", + "insertTextFormat": 2 }, { - "label": "key", + "label": "#two2", "kind": 4, "tags": [], - "detail": "string", - "documentation": null + "detail": "#two2\n\n[#one | #three(int, bool) | #two | #two2]", + "documentation": null, + "insertText": "{two2}", + "insertTextFormat": 2 }] Complete src/CompletionJsxProps.res 15:22 posCursor:[15:22] posNoWhite:[15:21] Found expr:[15:12->15:25] -JSX 15:15] > _children:15:23 -Completable: Cjsx([div], "", []) +JSX 15:15] muted[15:16->15:21]=...__ghost__[0:-1->0:-1]> _children:15:23 +Completable: Cexpression CJsxPropValue [div] muted [{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", + "label": "true", "kind": 4, "tags": [], "detail": "bool", "documentation": null }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", + "label": "false", "kind": 4, "tags": [], "detail": "bool", "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", + }] + +Complete src/CompletionJsxProps.res 18:29 +posCursor:[18:29] posNoWhite:[18:28] Found expr:[18:12->18:32] +JSX 18:15] onMouseEnter[18:16->18:28]=...__ghost__[0:-1->0:-1]> _children:18:30 +Completable: Cexpression CJsxPropValue [div] onMouseEnter +[{ + "label": "event => {}", + "kind": 12, + "tags": [], + "detail": "JsxEvent.Mouse.t => unit", + "documentation": null, + "sortText": "A", + "insertText": "{${1:event} => {$0}}", + "insertTextFormat": 2 + }] + +Complete src/CompletionJsxProps.res 22:52 +posCursor:[22:52] posNoWhite:[22:51] Found expr:[22:12->22:52] +JSX 22:43] testArr[22:44->22:51]=...__ghost__[0:-1->0:-1]> _children:None +Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] testArr +[{ + "label": "[]", + "kind": 12, + "tags": [], + "detail": "type testVariant = One | Two | Three(int)", + "documentation": null, + "sortText": "A", + "insertText": "{[$0]}", + "insertTextFormat": 2 + }] + +Complete src/CompletionJsxProps.res 26:54 +posCursor:[26:54] posNoWhite:[26:53] Found expr:[26:12->26:56] +JSX 26:43] testArr[26:44->26:51]=...[26:53->26:55]> _children:None +Attribute id:res.braces:[26:52->26:56] label:{[]} +Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] testArr->array +[{ + "label": "One", "kind": 4, "tags": [], - "detail": "bool", - "documentation": null + "detail": "One\n\ntype testVariant = One | Two | Three(int)", + "documentation": null, + "insertText": "One", + "insertTextFormat": 2 }, { - "label": "contextMenu", + "label": "Two", "kind": 4, "tags": [], - "detail": "string", - "documentation": null + "detail": "Two\n\ntype testVariant = One | Two | Three(int)", + "documentation": null, + "insertText": "Two", + "insertTextFormat": 2 }, { - "label": "dir", + "label": "Three(_)", "kind": 4, "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] - -Complete src/CompletionJsxProps.res 18:29 -posCursor:[18:29] posNoWhite:[18:28] Found expr:[18:12->18:32] -JSX 18:15] > _children:18:30 -Completable: Cjsx([div], "", []) -[{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] - -Complete src/CompletionJsxProps.res 22:52 -posCursor:[22:52] posNoWhite:[22:51] Found expr:[22:12->22:52] -JSX 22:43] > _children:None -Completable: Cjsx([CompletionSupport, TestComponent], "", []) -[{ - "label": "on", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "polyArg", - "kind": 4, - "tags": [], - "detail": "option<[#one | #three(int, bool) | #two | #two2]>", - "documentation": null - }, { - "label": "test", - "kind": 4, - "tags": [], - "detail": "testVariant", - "documentation": null - }, { - "label": "testArr", - "kind": 4, - "tags": [], - "detail": "array", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] - -Complete src/CompletionJsxProps.res 26:54 -posCursor:[26:54] posNoWhite:[26:53] Found expr:[26:12->26:56] -JSX 26:43] > _children:None -Attribute id:res.braces:[26:52->26:56] label:{[]} -Completable: Cjsx([CompletionSupport, TestComponent], "", []) -[{ - "label": "on", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "polyArg", - "kind": 4, - "tags": [], - "detail": "option<[#one | #three(int, bool) | #two | #two2]>", - "documentation": null - }, { - "label": "test", - "kind": 4, - "tags": [], - "detail": "testVariant", - "documentation": null - }, { - "label": "testArr", - "kind": 4, - "tags": [], - "detail": "array", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null + "detail": "Three(int)\n\ntype testVariant = One | Two | Three(int)", + "documentation": null, + "insertText": "Three(${1:_})", + "insertTextFormat": 2 }] diff --git a/analysis/tests/src/expected/Div.res.txt b/analysis/tests/src/expected/Div.res.txt index a2dcccfd4..03cbdf91f 100644 --- a/analysis/tests/src/expected/Div.res.txt +++ b/analysis/tests/src/expected/Div.res.txt @@ -4,2888 +4,14 @@ getLocItem #3: heuristic for
Complete src/Div.res 3:17 posCursor:[3:17] posNoWhite:[3:16] Found expr:[3:4->3:17] -JSX 3:7] > _children:None +JSX 3:7] dangerous[3:8->3:17]=...[3:8->3:17]> _children:None Attribute id:res.namedArgLoc:[3:8->3:17] label:dangerous -Completable: Cjsx([div], "", []) +Completable: Cjsx([div], dangerous, [dangerous]) [{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { "label": "dangerouslySetInnerHTML", "kind": 4, "tags": [], "detail": "{\"__html\": string}", "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] diff --git a/analysis/tests/src/expected/Jsx2.res.txt b/analysis/tests/src/expected/Jsx2.res.txt index 56c3b9f4a..1abc531e9 100644 --- a/analysis/tests/src/expected/Jsx2.res.txt +++ b/analysis/tests/src/expected/Jsx2.res.txt @@ -5,46 +5,16 @@ the type is not great but jump to definition works Complete src/Jsx2.res 8:15 posCursor:[8:15] posNoWhite:[8:14] Found expr:[8:4->8:15] -JSX 8:5] > _children:None -Completable: Cjsx([M], "", []) -[{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] +JSX 8:5] second[8:6->8:12]=...[8:13->8:15]> _children:None +Completable: Cexpression CJsxPropValue [M] second=fi +[] Complete src/Jsx2.res 11:20 posCursor:[11:20] posNoWhite:[11:19] Found expr:[11:4->11:20] -JSX 11:5] > _children:None +JSX 11:5] second[11:6->11:12]=...[11:13->11:18] f[11:19->11:20]=...[11:19->11:20]> _children:None Attribute id:res.namedArgLoc:[11:19->11:20] label:f -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], f, [second, f]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "first", "kind": 4, "tags": [], @@ -56,12 +26,6 @@ Completable: Cjsx([M], "", []) "tags": [], "detail": "option", "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] Complete src/Jsx2.res 14:13 @@ -96,28 +60,10 @@ Completable: Cpath Module[M] Complete src/Jsx2.res 22:19 posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:4->22:19] -JSX 22:5] > _children:None +JSX 22:5] prop[22:6->22:10]=...[22:12->22:16] k[22:18->22:19]=...[22:18->22:19]> _children:None Attribute id:res.namedArgLoc:[22:18->22:19] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -127,28 +73,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 25:17 posCursor:[25:17] posNoWhite:[25:16] Found expr:[25:4->25:17] -JSX 25:5] > _children:None +JSX 25:5] prop[25:6->25:10]=...[25:11->25:15] k[25:16->25:17]=...[25:16->25:17]> _children:None Attribute id:res.namedArgLoc:[25:16->25:17] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -158,28 +86,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 28:21 posCursor:[28:21] posNoWhite:[28:20] Found expr:[28:4->28:21] -JSX 28:5] > _children:None +JSX 28:5] prop[28:6->28:10]=...[28:11->28:19] k[28:20->28:21]=...[28:20->28:21]> _children:None Attribute id:res.namedArgLoc:[28:20->28:21] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -189,28 +99,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 31:24 posCursor:[31:24] posNoWhite:[31:23] Found expr:[31:4->31:24] -JSX 31:5] > _children:None +JSX 31:5] prop[31:6->31:10]=...[31:11->31:22] k[31:23->31:24]=...[31:23->31:24]> _children:None Attribute id:res.namedArgLoc:[31:23->31:24] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -220,28 +112,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 34:18 posCursor:[34:18] posNoWhite:[34:17] Found expr:[34:4->34:18] -JSX 34:5] > _children:None +JSX 34:5] prop[34:6->34:10]=...[34:12->34:16] k[34:17->34:18]=...[34:17->34:18]> _children:None Attribute id:res.namedArgLoc:[34:17->34:18] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -251,28 +125,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 37:16 posCursor:[37:16] posNoWhite:[37:15] Found expr:[37:4->37:16] -JSX 37:5] > _children:None +JSX 37:5] prop[37:6->37:10]=...[37:11->37:14] k[37:15->37:16]=...[37:15->37:16]> _children:None Attribute id:res.namedArgLoc:[37:15->37:16] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -282,28 +138,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 40:17 posCursor:[40:17] posNoWhite:[40:16] Found expr:[40:4->40:17] -JSX 40:5] > _children:None +JSX 40:5] prop[40:6->40:10]=...[40:11->40:15] k[40:16->40:17]=...[40:16->40:17]> _children:None Attribute id:res.namedArgLoc:[40:16->40:17] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -313,28 +151,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 43:18 posCursor:[43:18] posNoWhite:[43:17] Found expr:[43:4->43:18] -JSX 43:5] > _children:None +JSX 43:5] prop[43:6->43:10]=...[43:11->43:16] k[43:17->43:18]=...[43:17->43:18]> _children:None Attribute id:res.namedArgLoc:[43:17->43:18] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -344,28 +164,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 46:16 posCursor:[46:16] posNoWhite:[46:15] Found expr:[46:4->46:16] -JSX 46:5] > _children:None +JSX 46:5] prop[46:6->46:10]=...[46:11->46:14] k[46:15->46:16]=...[46:15->46:16]> _children:None Attribute id:res.namedArgLoc:[46:15->46:16] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -375,28 +177,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 49:27 posCursor:[49:27] posNoWhite:[49:26] Found expr:[49:4->49:27] -JSX 49:5] > _children:None +JSX 49:5] prop[49:6->49:10]=...[49:11->49:25] k[49:26->49:27]=...[49:26->49:27]> _children:None Attribute id:res.namedArgLoc:[49:26->49:27] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -406,28 +190,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 52:38 posCursor:[52:38] posNoWhite:[52:37] Found expr:[52:4->52:38] -JSX 52:5] > _children:None +JSX 52:5] prop[52:6->52:10]=...[52:11->52:36] k[52:37->52:38]=...[52:37->52:38]> _children:None Attribute id:res.namedArgLoc:[52:37->52:38] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -437,28 +203,10 @@ Completable: Cjsx([M], "", []) Complete src/Jsx2.res 55:25 posCursor:[55:25] posNoWhite:[55:24] Found expr:[55:4->55:25] -JSX 55:5] > _children:None +JSX 55:5] prop[55:6->55:10]=...[55:11->55:23] k[55:24->55:25]=...[55:24->55:25]> _children:None Attribute id:res.namedArgLoc:[55:24->55:25] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [prop, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -473,109 +221,43 @@ the type is not great but jump to definition works Complete src/Jsx2.res 68:10 posCursor:[68:10] posNoWhite:[68:9] Found expr:[68:4->68:10] -JSX 68:7] > _children:None +JSX 68:7] al[68:8->68:10]=...[68:8->68:10]> _children:None Attribute id:res.namedArgLoc:[68:8->68:10] label:al -Completable: Cjsx([Ext], "", []) +Completable: Cjsx([Ext], al, [al]) [{ "label": "align", "kind": 4, "tags": [], "detail": "option", "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] Complete src/Jsx2.res 71:11 posCursor:[71:11] posNoWhite:[71:10] Found expr:[71:4->71:11] -JSX 71:5] > _children:None +JSX 71:5] first[71:6->71:11]=...[71:6->71:11]> _children:None Attribute id:res.namedArgLoc:[71:6->71:11] label:first -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], first, [first]) +[] + +Complete src/Jsx2.res 74:16 +posCursor:[74:16] posNoWhite:[74:15] Found expr:[74:4->74:16] +JSX 74:5] first[74:6->74:11]=...[74:12->74:14] k[74:15->74:16]=...[74:15->74:16]> _children:None +Attribute id:res.namedArgLoc:[74:15->74:16] label:k +Completable: Cjsx([M], k, [first, k]) [{ - "label": "second", + "label": "key", "kind": 4, "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] - -Complete src/Jsx2.res 74:16 -posCursor:[74:16] posNoWhite:[74:15] Found expr:[74:4->74:16] -JSX 74:5] > _children:None -Attribute id:res.namedArgLoc:[74:15->74:16] label:k -Completable: Cjsx([M], "", []) -[{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", + "detail": "string", "documentation": null }] Complete src/Jsx2.res 77:23 posCursor:[77:23] posNoWhite:[77:22] Found expr:[77:4->77:23] -JSX 77:5] > _children:None +JSX 77:5] first[77:6->77:11]=...[77:19->77:21] k[77:22->77:23]=...[77:22->77:23]> _children:None Attribute id:res.namedArgLoc:[77:22->77:23] label:k -Completable: Cjsx([M], "", []) +Completable: Cjsx([M], k, [first, k]) [{ - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fun", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { "label": "key", "kind": 4, "tags": [], @@ -608,21 +290,15 @@ Completable: Cpath Module[WithChildren] Complete src/Jsx2.res 91:18 posCursor:[91:18] posNoWhite:[91:17] Found expr:[91:4->91:18] -JSX 91:16] > _children:None +JSX 91:16] n[91:17->91:18]=...[91:17->91:18]> _children:None Attribute id:res.namedArgLoc:[91:17->91:18] label:n -Completable: Cjsx([WithChildren], "", []) +Completable: Cjsx([WithChildren], n, [n]) [{ "label": "name", "kind": 4, "tags": [], "detail": "string", "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] Complete src/Jsx2.res 94:18 @@ -693,8665 +369,40 @@ Completable: Cpath Module[DefineSomeFields].th Complete src/Jsx2.res 122:20 posCursor:[122:20] posNoWhite:[122:19] Found expr:[121:3->125:4] -JSX 121:6] > _children:125:2 -Completable: Cjsx([div], "", []) +JSX 121:6] x[122:5->122:6]=...[122:7->122:20] name[124:4->124:8]=...[124:9->124:11]> _children:125:2 +posCursor:[122:20] posNoWhite:[122:19] Found expr:[122:7->122:20] +Pexp_ident Outer.Inner.h:[122:7->122:20] +Completable: Cpath Value[Outer, Inner, h] [{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, + "label": "hello", + "kind": 12, "tags": [], "detail": "int", "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, + }] + +Complete src/Jsx2.res 129:19 +posCursor:[129:19] posNoWhite:[129:18] Found expr:[128:3->131:9] +JSX 128:6] x[129:5->129:6]=...[129:7->131:8]> _children:None +posCursor:[129:19] posNoWhite:[129:18] Found expr:[129:7->131:8] +Pexp_ident Outer.Inner.:[129:7->131:8] +Completable: Cpath Value[Outer, Inner, ""] +[{ + "label": "hello", + "kind": 12, "tags": [], "detail": "int", "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] - -Complete src/Jsx2.res 129:19 -posCursor:[129:19] posNoWhite:[129:18] Found expr:[128:3->131:9] -JSX 128:6] > _children:None -Completable: Cjsx([div], "", []) -[{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] - -Complete src/Jsx2.res 136:7 -posCursor:[136:7] posNoWhite:[136:6] Found expr:[135:3->138:9] -JSX 135:6] > _children:None -Completable: Cjsx([div], "", []) -[{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] +Complete src/Jsx2.res 136:7 +posCursor:[136:7] posNoWhite:[136:6] Found expr:[135:3->138:9] +JSX 135:6] x[136:5->136:6]=...[138:4->138:8]> _children:None +[] + Complete src/Jsx2.res 150:21 posCursor:[150:21] posNoWhite:[150:20] Found expr:[150:12->150:32] -JSX 150:21] > _children:150:30 +JSX 150:21] name[150:22->150:26]=...[150:27->150:29]> _children:150:30 Completable: Cpath Module[Nested, Co] [{ "label": "Comp", diff --git a/analysis/tests/src/expected/JsxV4.res.txt b/analysis/tests/src/expected/JsxV4.res.txt index dca199b1d..592d05eba 100644 --- a/analysis/tests/src/expected/JsxV4.res.txt +++ b/analysis/tests/src/expected/JsxV4.res.txt @@ -3,33 +3,15 @@ Definition src/JsxV4.res 8:9 Complete src/JsxV4.res 11:20 posCursor:[11:20] posNoWhite:[11:19] Found expr:[11:4->11:20] -JSX 11:6] > _children:None +JSX 11:6] first[11:7->11:12]=...[11:13->11:18] f[11:19->11:20]=...[11:19->11:20]> _children:None Attribute id:res.namedArgLoc:[11:19->11:20] label:f -Completable: Cjsx([M4], "", []) +Completable: Cjsx([M4], f, [first, f]) [{ - "label": "first", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { "label": "fun", "kind": 4, "tags": [], "detail": "option", "documentation": null - }, { - "label": "second", - "kind": 4, - "tags": [], - "detail": "option", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null }] Hover src/JsxV4.res 14:9 diff --git a/analysis/tests/src/expected/RecoveryOnProp.res.txt b/analysis/tests/src/expected/RecoveryOnProp.res.txt index ffe1c7174..23642ba6d 100644 --- a/analysis/tests/src/expected/RecoveryOnProp.res.txt +++ b/analysis/tests/src/expected/RecoveryOnProp.res.txt @@ -1,2891 +1,11 @@ Complete src/RecoveryOnProp.res 6:26 posCursor:[6:26] posNoWhite:[6:25] Found expr:[3:3->11:8] -JSX 3:6] > _children:None +JSX 3:6] onClick[4:4->4:11]=...[4:13->0:-1]> _children:None Attribute id:res.braces:[4:12->11:8] label:{_ Attribute id:res.braces:[4:18->8:6] label:{ posCursor:[6:26] posNoWhite:[6:25] Found pattern:[6:20->8:5] posCursor:[6:26] posNoWhite:[6:25] Found type:[6:23->8:5] Ptyp_constr Res:[6:23->8:5] -Completable: Cjsx([div], "", []) -[{ - "label": "ariaDetails", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDisabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaHidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaKeyshortcuts", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaRoledescription", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaExpanded", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaLevel", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaModal", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaMultiselectable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaPlaceholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaReadonly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRequired", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSelected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaSort", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaValuemax", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuemin", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuenow", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "ariaValuetext", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaAtomic", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaBusy", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaRelevant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaGrabbed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "ariaActivedescendant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaColcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaColspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaControls", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaDescribedby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaErrormessage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaFlowto", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaLabelledby", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaOwns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ariaPosinset", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowcount", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowindex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaRowspan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "ariaSetsize", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "defaultChecked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defaultValue", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accessKey", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "className", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentEditable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "contextMenu", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dir", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "draggable", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "hidden", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "id", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "style", - "kind": 4, - "tags": [], - "detail": "style", - "documentation": null - }, { - "label": "spellCheck", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "tabIndex", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "title", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemID", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemProp", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "itemScope", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "itemType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "acceptCharset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "action", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowFullScreen", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "alt", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "async", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoComplete", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoCapitalize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoFocus", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "autoPlay", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "challenge", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "charSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "checked", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "cite", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "crossOrigin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cols", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "colSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "content", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "controls", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "coords", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "data", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dateTime", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "default", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "defer", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "disabled", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "download", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "encType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "form", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formAction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "formMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "headers", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "height", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "high", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "href", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hrefLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "htmlFor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "httpEquiv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "icon", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inputMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "integrity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "label", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "list", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "loop", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "low", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "manifest", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "max", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maxLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "media", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mediaGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "method", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "min", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "minLength", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "multiple", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "muted", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "nonce", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "noValidate", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "open_", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "optimum", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "pattern", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "placeholder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "playsInline", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "poster", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preload", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radioGroup", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "readOnly", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rel", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "required", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "reversed", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "rows", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "rowSpan", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sandbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scoped", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "scrolling", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "selected", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "shape", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "size", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "sizes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "span", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "src", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcDoc", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "srcSet", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "start", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }, { - "label": "step", - "kind": 4, - "tags": [], - "detail": "float", - "documentation": null - }, { - "label": "summary", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "target", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "type_", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "useMap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "value", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "width", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wrap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "onCopy", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onPaste", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Clipboard.t => unit", - "documentation": null - }, { - "label": "onCompositionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onCompositionUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Composition.t => unit", - "documentation": null - }, { - "label": "onKeyDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyPress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onKeyUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Keyboard.t => unit", - "documentation": null - }, { - "label": "onFocus", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onBlur", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Focus.t => unit", - "documentation": null - }, { - "label": "onChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInput", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onSubmit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onInvalid", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Form.t => unit", - "documentation": null - }, { - "label": "onClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onContextMenu", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDoubleClick", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrag", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragExit", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDragStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onDrop", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onMouseUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Mouse.t => unit", - "documentation": null - }, { - "label": "onSelect", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Selection.t => unit", - "documentation": null - }, { - "label": "onTouchCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onTouchStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Touch.t => unit", - "documentation": null - }, { - "label": "onPointerOver", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerEnter", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerDown", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerMove", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerUp", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerCancel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerOut", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onPointerLeave", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onGotPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onLostPointerCapture", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Pointer.t => unit", - "documentation": null - }, { - "label": "onScroll", - "kind": 4, - "tags": [], - "detail": "ReactEvent.UI.t => unit", - "documentation": null - }, { - "label": "onWheel", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Wheel.t => unit", - "documentation": null - }, { - "label": "onAbort", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onCanPlayThrough", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onDurationChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEmptied", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEncrypetd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onEnded", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onError", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedData", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadedMetadata", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onLoadStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPause", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlay", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onPlaying", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onProgress", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onRateChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeked", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSeeking", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onStalled", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onSuspend", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onTimeUpdate", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onVolumeChange", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onWaiting", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Media.t => unit", - "documentation": null - }, { - "label": "onAnimationStart", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onAnimationIteration", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Animation.t => unit", - "documentation": null - }, { - "label": "onTransitionEnd", - "kind": 4, - "tags": [], - "detail": "ReactEvent.Transition.t => unit", - "documentation": null - }, { - "label": "accentHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "accumulate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "additive", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alignmentBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "allowReorder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "alphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "amplitude", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "arabicForm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ascent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "attributeType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "autoReverse", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "azimuth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseFrequency", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baseProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "baselineShift", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bbox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "bias", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "by", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "calcMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "capHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clip", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPath", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipPathUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "clipRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorInterpolationFilters", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorProfile", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "colorRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentScriptType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "contentStyleType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cursor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "cy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "d", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "decelerate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "descent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "diffuseConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "direction", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "display", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "divisor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dominantBaseline", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "edgeMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "elevation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "enableBackground", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "exponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "externalResourcesRequired", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fill", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fillRule", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filter", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterRes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "filterUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "floodOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "focusable", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontFamily", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSize", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontSizeAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStretch", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontStyle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontVariant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fontWeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fomat", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "from", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "fy", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "g2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphName", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationHorizontal", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphOrientationVertical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "glyphRef", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "gradientUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "hanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "horizOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ideographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "imageRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "in2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "intercept", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k3", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "k4", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelMatrix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kernelUnitLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "kerning", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyPoints", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keySplines", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "keyTimes", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lengthAdjust", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "letterSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "lightingColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "limitingConeAngle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "local", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerEnd", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerMid", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerStart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "markerWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mask", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "maskUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "mode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "numOctaves", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "offset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "opacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "operator", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "order", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orient", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "orientation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "origin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overflowY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "overlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "paintOrder", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "panose1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pathLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternContentUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternTransform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "patternUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointerEvents", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "points", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "pointsAtZ", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAlpha", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "preserveAspectRatio", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "primitiveUnits", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "r", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "radius", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "refY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "renderingIntent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatCount", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "repeatDur", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredExtensions", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "requiredFeatures", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "restart", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "result", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rotate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "rx", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "ry", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "scale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "seed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "shapeRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "slope", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularConstant", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "specularExponent", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "speed", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "spreadMethod", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "startOffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stdDeviation", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemh", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stemv", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stitchTiles", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopColor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stopOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughPosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strikethroughThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "string", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "stroke", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDasharray", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeDashoffset", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinecap", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeLinejoin", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeMiterlimit", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeOpacity", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "strokeWidth", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "surfaceScale", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "systemLanguage", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "tableValues", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "targetY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textAnchor", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textDecoration", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textLength", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "textRendering", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "transform", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "u2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlinePosition", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "underlineThickness", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeBidi", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unicodeRange", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "unitsPerEm", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vAlphabetic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vHanging", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vIdeographic", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vMathematical", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "values", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vectorEffect", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "version", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertAdvY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginX", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vertOriginY", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewBox", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "viewTarget", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "visibility", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "widths", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "wordSpacing", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "writingMode", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "x2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xHeight", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkActuate", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkArcrole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkHref", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkRole", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkShow", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkTitle", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xlinkType", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlns", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlnsXlink", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlBase", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlLang", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "xmlSpace", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y1", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "y2", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "yChannelSelector", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "z", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "zoomAndPan", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "about", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "datatype", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "inlist", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "prefix", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "property", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "resource", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "typeof", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "vocab", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "dangerouslySetInnerHTML", - "kind": 4, - "tags": [], - "detail": "{\"__html\": string}", - "documentation": null - }, { - "label": "suppressContentEditableWarning", - "kind": 4, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "key", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }] +Completable: Cdecorator({_) +[] From d70077265da30223bd72c587397978798cc047df Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 17:45:06 +0100 Subject: [PATCH 06/12] ns.braces --- analysis/src/Utils.ml | 2 +- analysis/src/Xform.ml | 2 +- .../expected/CompletionExpressions.res.txt | 24 +++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/analysis/src/Utils.ml b/analysis/src/Utils.ml index c7f66b66c..ba1ac13cd 100644 --- a/analysis/src/Utils.ml +++ b/analysis/src/Utils.ml @@ -161,7 +161,7 @@ let rec skipWhite text i = | _ -> i let hasBraces attributes = - attributes |> List.exists (fun (loc, _) -> loc.Location.txt = "ns.braces") + attributes |> List.exists (fun (loc, _) -> loc.Location.txt = "res.braces") let rec unwrapIfOption (t : Types.type_expr) = match t.desc with diff --git a/analysis/src/Xform.ml b/analysis/src/Xform.ml index dd4f1b395..915b47273 100644 --- a/analysis/src/Xform.ml +++ b/analysis/src/Xform.ml @@ -146,7 +146,7 @@ module AddBracesToFn = struct }; } in - (Location.mkloc "ns.braces" loc, Parsetree.PStr []) + (Location.mkloc "res.braces" loc, Parsetree.PStr []) in let isFunction = function | {Parsetree.pexp_desc = Pexp_fun _} -> true diff --git a/analysis/tests/src/expected/CompletionExpressions.res.txt b/analysis/tests/src/expected/CompletionExpressions.res.txt index 7e7bdd5f2..1367c5608 100644 --- a/analysis/tests/src/expected/CompletionExpressions.res.txt +++ b/analysis/tests/src/expected/CompletionExpressions.res.txt @@ -57,8 +57,14 @@ Complete src/CompletionExpressions.res 29:28 posCursor:[29:28] posNoWhite:[29:27] Found expr:[29:11->29:30] Pexp_apply ...[29:11->29:25] (...[29:27->29:28]) Attribute id:res.braces:[29:26->29:29] label:{n} -Completable: Cexpression CArgument Value[fnTakingRecord]($0)=n -[] +Completable: Cexpression CArgument Value[fnTakingRecord]($0)=n->recordBody +[{ + "label": "nested", + "kind": 5, + "tags": [], + "detail": "nested: option\n\nsomeRecord", + "documentation": null + }] Complete src/CompletionExpressions.res 32:35 posCursor:[32:35] posNoWhite:[32:34] Found expr:[32:11->32:38] @@ -571,18 +577,12 @@ Complete src/CompletionExpressions.res 132:51 posCursor:[132:51] posNoWhite:[132:50] Found expr:[132:11->132:54] Pexp_apply ...[132:11->132:31] (...[132:32->132:53]) Attribute id:res.braces:[132:49->132:52] label:{s} -Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)=s->variantPayload::WithInlineRecord($0) +Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)=s->variantPayload::WithInlineRecord($0), recordBody [{ - "label": "someBoolVar", - "kind": 12, - "tags": [], - "detail": "bool", - "documentation": null - }, { - "label": "s", - "kind": 12, + "label": "someBoolField", + "kind": 4, "tags": [], - "detail": "bool", + "detail": "Inline record", "documentation": null }] From baf3c83a5f9788ec8513bee7145e444fe9a63a79 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 17:47:40 +0100 Subject: [PATCH 07/12] Internal attributes are res. --- analysis/src/CompletionFrontEnd.ml | 2 +- .../src/expected/BrokenParserCases.res.txt | 1 - .../tests/src/expected/Completion.res.txt | 78 +++++++++++++++---- .../expected/CompletionExpressions.res.txt | 2 - .../CompletionFunctionArguments.res.txt | 20 ++++- .../tests/src/expected/CompletionJsx.res.txt | 5 -- .../src/expected/CompletionJsxProps.res.txt | 1 - analysis/tests/src/expected/Div.res.txt | 1 - analysis/tests/src/expected/Jsx2.res.txt | 40 ++++------ analysis/tests/src/expected/JsxV4.res.txt | 1 - .../tests/src/expected/RecoveryOnProp.res.txt | 21 ++++- .../tests/src/expected/SignatureHelp.res.txt | 35 ++++++--- 12 files changed, 136 insertions(+), 71 deletions(-) diff --git a/analysis/src/CompletionFrontEnd.ml b/analysis/src/CompletionFrontEnd.ml index e8a66ea0f..e0d79bccf 100644 --- a/analysis/src/CompletionFrontEnd.ml +++ b/analysis/src/CompletionFrontEnd.ml @@ -566,7 +566,7 @@ let completionWithParser1 ~currentFile ~debug ~offset ~path ~posCursor ~text = in let attribute (iterator : Ast_iterator.iterator) ((id, payload) : Parsetree.attribute) = - (if String.length id.txt >= 3 && String.sub id.txt 0 3 = "ns." then + (if String.length id.txt >= 4 && String.sub id.txt 0 4 = "res." then (* skip: internal parser attribute *) () else if id.loc.loc_ghost then () else if id.loc |> Loc.hasPos ~pos:posBeforeCursor then diff --git a/analysis/tests/src/expected/BrokenParserCases.res.txt b/analysis/tests/src/expected/BrokenParserCases.res.txt index 0760cbb01..1c1134ac2 100644 --- a/analysis/tests/src/expected/BrokenParserCases.res.txt +++ b/analysis/tests/src/expected/BrokenParserCases.res.txt @@ -1,7 +1,6 @@ Complete src/BrokenParserCases.res 2:24 posCursor:[2:24] posNoWhite:[2:23] Found expr:[2:11->2:30] Pexp_apply ...[2:11->2:17] (~isOff2:19->2:24=...[2:27->2:29]) -Attribute id:res.namedArgLoc:[2:19->2:24] label:isOff Completable: CnamedArg(Value[someFn], isOff, [isOff]) [] diff --git a/analysis/tests/src/expected/Completion.res.txt b/analysis/tests/src/expected/Completion.res.txt index 2f6a5975b..c98e1a2c8 100644 --- a/analysis/tests/src/expected/Completion.res.txt +++ b/analysis/tests/src/expected/Completion.res.txt @@ -475,7 +475,6 @@ Completable: Cexpression CJsxPropValue [O, Comp] second=z Complete src/Completion.res 62:23 posCursor:[62:23] posNoWhite:[62:22] Found expr:[62:15->62:23] JSX 62:21] z[62:22->62:23]=...[62:22->62:23]> _children:None -Attribute id:res.namedArgLoc:[62:22->62:23] label:z Completable: Cjsx([O, Comp], z, [z]) [{ "label": "zoo", @@ -654,9 +653,16 @@ Completable: Cpath Value[Object, Rec, recordVal]."" Complete src/Completion.res 120:7 posCursor:[120:7] posNoWhite:[120:6] Found expr:[119:11->123:1] posCursor:[120:7] posNoWhite:[120:6] Found expr:[120:5->122:5] -Attribute id:res.braces:[119:17->123:1] label:{ -Completable: Cdecorator({) -[] +posCursor:[120:7] posNoWhite:[120:6] Found expr:[120:5->120:7] +Pexp_ident my:[120:5->120:7] +Completable: Cpath Value[my] +[{ + "label": "myAmazingFunction", + "kind": 12, + "tags": [], + "detail": "(int, int) => int", + "documentation": null + }] Complete src/Completion.res 125:18 posCursor:[125:18] posNoWhite:[125:17] Found expr:[125:3->145:32] @@ -1352,15 +1358,28 @@ Complete src/Completion.res 336:26 posCursor:[336:26] posNoWhite:[336:25] Found expr:[333:3->346:23] JSX 333:6] onClick[334:4->334:11]=...[334:13->346:23]> _children:None posCursor:[336:26] posNoWhite:[336:25] Found expr:[334:13->346:23] -Attribute id:res.braces:[334:12->346:23] label:{_ -Attribute id:res.braces:[334:18->338:6] label:{ +posCursor:[336:26] posNoWhite:[336:25] Found expr:[334:13->338:6] +posCursor:[336:26] posNoWhite:[336:25] Found expr:[335:6->338:5] +posCursor:[336:26] posNoWhite:[336:25] Found expr:[336:16->338:5] posCursor:[336:26] posNoWhite:[336:25] Found pattern:[336:20->338:5] posCursor:[336:26] posNoWhite:[336:25] Found type:[336:23->338:5] Ptyp_constr Res:[336:23->338:5] -Completable: Cdecorator({_) +Completable: Cpath Type[Res] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res -[] +[{ + "label": "RescriptReactErrorBoundary", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null + }, { + "label": "RescriptReactRouter", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null + }] Complete src/Completion.res 343:57 posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:10->346:23] @@ -1382,7 +1401,6 @@ Hover src/Completion.res 346:14 Nothing at that position. Now trying to use completion. posCursor:[346:14] posNoWhite:[346:13] Found expr:[346:9->346:23] JSX 346:12] name[346:13->346:17]=...[346:18->346:20]> _children:346:21 -Attribute id:res.namedArgLoc:[346:13->346:17] label:name Completable: Cjsx([div], name, [name]) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res @@ -1403,7 +1421,6 @@ Hover src/Completion.res 352:17 Nothing at that position. Now trying to use completion. posCursor:[352:17] posNoWhite:[352:16] Found expr:[352:11->352:22] Pexp_apply ...[352:11->352:13] (~opt1352:15->352:19=...[352:20->352:21]) -Attribute id:res.namedArgLoc:[352:15->352:19] label:opt1 Completable: CnamedArg(Value[ff], opt1, [opt1]) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res @@ -1641,20 +1658,49 @@ Resolved opens 2 Completion.res Completion.res Complete src/Completion.res 409:21 posCursor:[409:21] posNoWhite:[409:20] Found expr:[408:14->415:1] posCursor:[409:21] posNoWhite:[409:20] Found expr:[409:5->414:17] -Attribute id:res.braces:[408:21->415:1] label:{ -Completable: Cdecorator({) +posCursor:[409:21] posNoWhite:[409:20] Found expr:[409:5->411:42] +posCursor:[409:21] posNoWhite:[409:20] Found expr:[409:5->411:5] +Pexp_ident SomeLocalModule.:[409:5->411:5] +Completable: Cpath Value[SomeLocalModule, ""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res -[] +[{ + "label": "bb", + "kind": 12, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "aa", + "kind": 12, + "tags": [], + "detail": "int", + "documentation": null + }] Complete src/Completion.res 412:21 posCursor:[412:21] posNoWhite:[412:20] Found expr:[408:14->415:1] posCursor:[412:21] posNoWhite:[412:20] Found expr:[411:2->414:17] -Attribute id:res.braces:[408:21->415:1] label:{ -Completable: Cdecorator({) +posCursor:[412:21] posNoWhite:[412:20] Found expr:[412:5->414:17] +Pexp_apply ...[412:5->414:8] (...[414:9->414:16]) +posCursor:[412:21] posNoWhite:[412:20] Found expr:[412:5->414:8] +Pexp_ident SomeLocalModule.:[412:5->414:8] +Completable: Cpath Value[SomeLocalModule, ""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder Resolved opens 2 Completion.res Completion.res -[] +[{ + "label": "bb", + "kind": 12, + "tags": [], + "detail": "int", + "documentation": null + }, { + "label": "aa", + "kind": 12, + "tags": [], + "detail": "int", + "documentation": null + }] Complete src/Completion.res 417:17 posCursor:[417:17] posNoWhite:[417:16] Found expr:[417:11->417:17] diff --git a/analysis/tests/src/expected/CompletionExpressions.res.txt b/analysis/tests/src/expected/CompletionExpressions.res.txt index 1367c5608..5f3324514 100644 --- a/analysis/tests/src/expected/CompletionExpressions.res.txt +++ b/analysis/tests/src/expected/CompletionExpressions.res.txt @@ -56,7 +56,6 @@ Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordBody Complete src/CompletionExpressions.res 29:28 posCursor:[29:28] posNoWhite:[29:27] Found expr:[29:11->29:30] Pexp_apply ...[29:11->29:25] (...[29:27->29:28]) -Attribute id:res.braces:[29:26->29:29] label:{n} Completable: Cexpression CArgument Value[fnTakingRecord]($0)=n->recordBody [{ "label": "nested", @@ -576,7 +575,6 @@ Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)->variantPaylo Complete src/CompletionExpressions.res 132:51 posCursor:[132:51] posNoWhite:[132:50] Found expr:[132:11->132:54] Pexp_apply ...[132:11->132:31] (...[132:32->132:53]) -Attribute id:res.braces:[132:49->132:52] label:{s} Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)=s->variantPayload::WithInlineRecord($0), recordBody [{ "label": "someBoolField", diff --git a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt index 0dd2ce329..a2b6236f6 100644 --- a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt +++ b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt @@ -57,9 +57,23 @@ Complete src/CompletionFunctionArguments.res 21:27 posCursor:[21:27] posNoWhite:[21:26] Found expr:[19:8->25:1] Pexp_apply ...[19:8->19:14] (~isOn20:3->20:7=...[21:7->23:8]) posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:7->23:8] -Attribute id:res.braces:[20:8->24:3] label:{ -Completable: Cdecorator({) -[] +posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:7->21:28] +posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:14->21:28] +Pexp_apply ...[21:14->21:20] (~isOn21:22->21:26=...__ghost__[0:-1->0:-1]) +Completable: Cexpression CArgument Value[someFn](~isOn) +[{ + "label": "true", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }, { + "label": "false", + "kind": 4, + "tags": [], + "detail": "bool", + "documentation": null + }] Complete src/CompletionFunctionArguments.res 34:24 posCursor:[34:24] posNoWhite:[34:23] Found expr:[34:11->34:25] diff --git a/analysis/tests/src/expected/CompletionJsx.res.txt b/analysis/tests/src/expected/CompletionJsx.res.txt index b2ada0c90..aae7edac3 100644 --- a/analysis/tests/src/expected/CompletionJsx.res.txt +++ b/analysis/tests/src/expected/CompletionJsx.res.txt @@ -64,7 +64,6 @@ posCursor:[18:24] posNoWhite:[18:23] Found expr:[18:10->32:4] Pexp_construct :::[18:10->32:4] [18:10->32:4] posCursor:[18:24] posNoWhite:[18:23] Found expr:[18:10->32:4] posCursor:[18:24] posNoWhite:[18:23] Found expr:[18:10->18:24] -Attribute id:res.braces:[18:9->18:25] label:{someString->st} Completable: Cpath Value[someString]->st <> [{ "label": "React.string", @@ -106,7 +105,6 @@ posCursor:[20:27] posNoWhite:[20:26] Found expr:[20:10->32:4] Pexp_construct :::[20:10->32:4] [20:10->32:4] posCursor:[20:27] posNoWhite:[20:26] Found expr:[20:10->32:4] posCursor:[20:27] posNoWhite:[20:26] Found expr:[20:10->20:27] -Attribute id:res.braces:[20:9->20:28] label:{"Some Completable: Cpath string->st <> [{ "label": "React.string", @@ -148,7 +146,6 @@ posCursor:[22:44] posNoWhite:[22:43] Found expr:[22:10->32:4] Pexp_construct :::[22:10->32:4] [22:10->32:4] posCursor:[22:44] posNoWhite:[22:43] Found expr:[22:10->32:4] posCursor:[22:44] posNoWhite:[22:43] Found expr:[22:10->22:44] -Attribute id:res.braces:[22:9->22:45] label:{"Some Completable: Cpath Value[Js, String2, trim](Nolabel)->st <> [{ "label": "React.string", @@ -344,7 +341,6 @@ posCursor:[28:20] posNoWhite:[28:19] Found expr:[28:10->32:4] Pexp_construct :::[28:10->32:4] [28:10->32:4] posCursor:[28:20] posNoWhite:[28:19] Found expr:[28:10->32:4] posCursor:[28:20] posNoWhite:[28:19] Found expr:[28:10->28:20] -Attribute id:res.braces:[28:9->28:21] label:{someArr->a} Completable: Cpath Value[someArr]->a <> [{ "label": "React.array", @@ -408,7 +404,6 @@ Completable: ChtmlElement 45:23] JSX 45:21] n[45:22->45:23]=...[45:22->45:23]> _children:None -Attribute id:res.namedArgLoc:[45:22->45:23] label:n Completable: Cjsx([CompWithoutJsxPpx], n, [n]) [{ "label": "name", diff --git a/analysis/tests/src/expected/CompletionJsxProps.res.txt b/analysis/tests/src/expected/CompletionJsxProps.res.txt index 358794be1..45885f535 100644 --- a/analysis/tests/src/expected/CompletionJsxProps.res.txt +++ b/analysis/tests/src/expected/CompletionJsxProps.res.txt @@ -183,7 +183,6 @@ Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] testAr Complete src/CompletionJsxProps.res 26:54 posCursor:[26:54] posNoWhite:[26:53] Found expr:[26:12->26:56] JSX 26:43] testArr[26:44->26:51]=...[26:53->26:55]> _children:None -Attribute id:res.braces:[26:52->26:56] label:{[]} Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] testArr->array [{ "label": "One", diff --git a/analysis/tests/src/expected/Div.res.txt b/analysis/tests/src/expected/Div.res.txt index 03cbdf91f..9e09ba202 100644 --- a/analysis/tests/src/expected/Div.res.txt +++ b/analysis/tests/src/expected/Div.res.txt @@ -5,7 +5,6 @@ getLocItem #3: heuristic for
Complete src/Div.res 3:17 posCursor:[3:17] posNoWhite:[3:16] Found expr:[3:4->3:17] JSX 3:7] dangerous[3:8->3:17]=...[3:8->3:17]> _children:None -Attribute id:res.namedArgLoc:[3:8->3:17] label:dangerous Completable: Cjsx([div], dangerous, [dangerous]) [{ "label": "dangerouslySetInnerHTML", diff --git a/analysis/tests/src/expected/Jsx2.res.txt b/analysis/tests/src/expected/Jsx2.res.txt index 1abc531e9..5cd54d307 100644 --- a/analysis/tests/src/expected/Jsx2.res.txt +++ b/analysis/tests/src/expected/Jsx2.res.txt @@ -12,7 +12,6 @@ Completable: Cexpression CJsxPropValue [M] second=fi Complete src/Jsx2.res 11:20 posCursor:[11:20] posNoWhite:[11:19] Found expr:[11:4->11:20] JSX 11:5] second[11:6->11:12]=...[11:13->11:18] f[11:19->11:20]=...[11:19->11:20]> _children:None -Attribute id:res.namedArgLoc:[11:19->11:20] label:f Completable: Cjsx([M], f, [second, f]) [{ "label": "first", @@ -61,7 +60,6 @@ Completable: Cpath Module[M] Complete src/Jsx2.res 22:19 posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:4->22:19] JSX 22:5] prop[22:6->22:10]=...[22:12->22:16] k[22:18->22:19]=...[22:18->22:19]> _children:None -Attribute id:res.namedArgLoc:[22:18->22:19] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -74,7 +72,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 25:17 posCursor:[25:17] posNoWhite:[25:16] Found expr:[25:4->25:17] JSX 25:5] prop[25:6->25:10]=...[25:11->25:15] k[25:16->25:17]=...[25:16->25:17]> _children:None -Attribute id:res.namedArgLoc:[25:16->25:17] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -87,7 +84,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 28:21 posCursor:[28:21] posNoWhite:[28:20] Found expr:[28:4->28:21] JSX 28:5] prop[28:6->28:10]=...[28:11->28:19] k[28:20->28:21]=...[28:20->28:21]> _children:None -Attribute id:res.namedArgLoc:[28:20->28:21] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -100,7 +96,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 31:24 posCursor:[31:24] posNoWhite:[31:23] Found expr:[31:4->31:24] JSX 31:5] prop[31:6->31:10]=...[31:11->31:22] k[31:23->31:24]=...[31:23->31:24]> _children:None -Attribute id:res.namedArgLoc:[31:23->31:24] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -113,7 +108,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 34:18 posCursor:[34:18] posNoWhite:[34:17] Found expr:[34:4->34:18] JSX 34:5] prop[34:6->34:10]=...[34:12->34:16] k[34:17->34:18]=...[34:17->34:18]> _children:None -Attribute id:res.namedArgLoc:[34:17->34:18] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -126,7 +120,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 37:16 posCursor:[37:16] posNoWhite:[37:15] Found expr:[37:4->37:16] JSX 37:5] prop[37:6->37:10]=...[37:11->37:14] k[37:15->37:16]=...[37:15->37:16]> _children:None -Attribute id:res.namedArgLoc:[37:15->37:16] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -139,7 +132,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 40:17 posCursor:[40:17] posNoWhite:[40:16] Found expr:[40:4->40:17] JSX 40:5] prop[40:6->40:10]=...[40:11->40:15] k[40:16->40:17]=...[40:16->40:17]> _children:None -Attribute id:res.namedArgLoc:[40:16->40:17] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -152,7 +144,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 43:18 posCursor:[43:18] posNoWhite:[43:17] Found expr:[43:4->43:18] JSX 43:5] prop[43:6->43:10]=...[43:11->43:16] k[43:17->43:18]=...[43:17->43:18]> _children:None -Attribute id:res.namedArgLoc:[43:17->43:18] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -165,7 +156,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 46:16 posCursor:[46:16] posNoWhite:[46:15] Found expr:[46:4->46:16] JSX 46:5] prop[46:6->46:10]=...[46:11->46:14] k[46:15->46:16]=...[46:15->46:16]> _children:None -Attribute id:res.namedArgLoc:[46:15->46:16] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -178,7 +168,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 49:27 posCursor:[49:27] posNoWhite:[49:26] Found expr:[49:4->49:27] JSX 49:5] prop[49:6->49:10]=...[49:11->49:25] k[49:26->49:27]=...[49:26->49:27]> _children:None -Attribute id:res.namedArgLoc:[49:26->49:27] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -191,7 +180,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 52:38 posCursor:[52:38] posNoWhite:[52:37] Found expr:[52:4->52:38] JSX 52:5] prop[52:6->52:10]=...[52:11->52:36] k[52:37->52:38]=...[52:37->52:38]> _children:None -Attribute id:res.namedArgLoc:[52:37->52:38] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -204,7 +192,6 @@ Completable: Cjsx([M], k, [prop, k]) Complete src/Jsx2.res 55:25 posCursor:[55:25] posNoWhite:[55:24] Found expr:[55:4->55:25] JSX 55:5] prop[55:6->55:10]=...[55:11->55:23] k[55:24->55:25]=...[55:24->55:25]> _children:None -Attribute id:res.namedArgLoc:[55:24->55:25] label:k Completable: Cjsx([M], k, [prop, k]) [{ "label": "key", @@ -222,7 +209,6 @@ the type is not great but jump to definition works Complete src/Jsx2.res 68:10 posCursor:[68:10] posNoWhite:[68:9] Found expr:[68:4->68:10] JSX 68:7] al[68:8->68:10]=...[68:8->68:10]> _children:None -Attribute id:res.namedArgLoc:[68:8->68:10] label:al Completable: Cjsx([Ext], al, [al]) [{ "label": "align", @@ -235,14 +221,12 @@ Completable: Cjsx([Ext], al, [al]) Complete src/Jsx2.res 71:11 posCursor:[71:11] posNoWhite:[71:10] Found expr:[71:4->71:11] JSX 71:5] first[71:6->71:11]=...[71:6->71:11]> _children:None -Attribute id:res.namedArgLoc:[71:6->71:11] label:first Completable: Cjsx([M], first, [first]) [] Complete src/Jsx2.res 74:16 posCursor:[74:16] posNoWhite:[74:15] Found expr:[74:4->74:16] JSX 74:5] first[74:6->74:11]=...[74:12->74:14] k[74:15->74:16]=...[74:15->74:16]> _children:None -Attribute id:res.namedArgLoc:[74:15->74:16] label:k Completable: Cjsx([M], k, [first, k]) [{ "label": "key", @@ -255,7 +239,6 @@ Completable: Cjsx([M], k, [first, k]) Complete src/Jsx2.res 77:23 posCursor:[77:23] posNoWhite:[77:22] Found expr:[77:4->77:23] JSX 77:5] first[77:6->77:11]=...[77:19->77:21] k[77:22->77:23]=...[77:22->77:23]> _children:None -Attribute id:res.namedArgLoc:[77:22->77:23] label:k Completable: Cjsx([M], k, [first, k]) [{ "label": "key", @@ -291,7 +274,6 @@ Completable: Cpath Module[WithChildren] Complete src/Jsx2.res 91:18 posCursor:[91:18] posNoWhite:[91:17] Found expr:[91:4->91:18] JSX 91:16] n[91:17->91:18]=...[91:17->91:18]> _children:None -Attribute id:res.namedArgLoc:[91:17->91:18] label:n Completable: Cjsx([WithChildren], n, [n]) [{ "label": "name", @@ -428,18 +410,22 @@ Hover src/Jsx2.res 162:12 Nothing at that position. Now trying to use completion. posCursor:[162:12] posNoWhite:[162:11] Found expr:[162:3->162:21] Pexp_construct :::[162:6->162:21] [162:6->162:21] -Attribute id:res.braces:[161:8->164:1] label:{ -Attribute id:res.namedArgLoc:[162:11->162:14] label:age -Completable: Cdecorator({) -null +posCursor:[162:12] posNoWhite:[162:11] Found expr:[162:6->162:21] +posCursor:[162:12] posNoWhite:[162:11] Found expr:[162:6->162:20] +JSX 162:10] age[162:11->162:14]=...[162:15->162:17]> _children:162:18 +Completable: Cjsx([Comp], age, [age]) +{"contents": {"kind": "markdown", "value": "```rescript\nint\n```"}} Hover src/Jsx2.res 167:16 Nothing at that position. Now trying to use completion. posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:3->167:30] Pexp_construct :::[167:7->167:30] [167:7->167:30] -Attribute id:res.braces:[166:8->169:1] label:{ -Attribute id:res.braces:[167:5->167:29] label:{<> -Attribute id:res.namedArgLoc:[167:15->167:18] label:age -Completable: Cdecorator({) -null +posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:7->167:30] +posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:7->167:25] +Pexp_construct :::[167:10->167:25] [167:10->167:25] +posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:10->167:25] +posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:10->167:24] +JSX 167:14] age[167:15->167:18]=...[167:19->167:21]> _children:167:22 +Completable: Cjsx([Comp], age, [age]) +{"contents": {"kind": "markdown", "value": "```rescript\nint\n```"}} diff --git a/analysis/tests/src/expected/JsxV4.res.txt b/analysis/tests/src/expected/JsxV4.res.txt index 592d05eba..3ae47a79e 100644 --- a/analysis/tests/src/expected/JsxV4.res.txt +++ b/analysis/tests/src/expected/JsxV4.res.txt @@ -4,7 +4,6 @@ Definition src/JsxV4.res 8:9 Complete src/JsxV4.res 11:20 posCursor:[11:20] posNoWhite:[11:19] Found expr:[11:4->11:20] JSX 11:6] first[11:7->11:12]=...[11:13->11:18] f[11:19->11:20]=...[11:19->11:20]> _children:None -Attribute id:res.namedArgLoc:[11:19->11:20] label:f Completable: Cjsx([M4], f, [first, f]) [{ "label": "fun", diff --git a/analysis/tests/src/expected/RecoveryOnProp.res.txt b/analysis/tests/src/expected/RecoveryOnProp.res.txt index 23642ba6d..fe509d768 100644 --- a/analysis/tests/src/expected/RecoveryOnProp.res.txt +++ b/analysis/tests/src/expected/RecoveryOnProp.res.txt @@ -1,11 +1,24 @@ Complete src/RecoveryOnProp.res 6:26 posCursor:[6:26] posNoWhite:[6:25] Found expr:[3:3->11:8] JSX 3:6] onClick[4:4->4:11]=...[4:13->0:-1]> _children:None -Attribute id:res.braces:[4:12->11:8] label:{_ -Attribute id:res.braces:[4:18->8:6] label:{ +posCursor:[6:26] posNoWhite:[6:25] Found expr:[4:13->8:6] +posCursor:[6:26] posNoWhite:[6:25] Found expr:[5:6->8:5] +posCursor:[6:26] posNoWhite:[6:25] Found expr:[6:16->8:5] posCursor:[6:26] posNoWhite:[6:25] Found pattern:[6:20->8:5] posCursor:[6:26] posNoWhite:[6:25] Found type:[6:23->8:5] Ptyp_constr Res:[6:23->8:5] -Completable: Cdecorator({_) -[] +Completable: Cpath Type[Res] +[{ + "label": "RescriptReactErrorBoundary", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null + }, { + "label": "RescriptReactRouter", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null + }] diff --git a/analysis/tests/src/expected/SignatureHelp.res.txt b/analysis/tests/src/expected/SignatureHelp.res.txt index aefca3b70..802874b2f 100644 --- a/analysis/tests/src/expected/SignatureHelp.res.txt +++ b/analysis/tests/src/expected/SignatureHelp.res.txt @@ -271,11 +271,18 @@ posCursor:[71:28] posNoWhite:[71:27] Found expr:[71:11->71:33] Pexp_apply ...[71:11->71:13] (...[71:16->71:30]) posCursor:[71:28] posNoWhite:[71:27] Found expr:[71:16->71:30] Pexp_apply ...[71:16->71:28] (...[71:29->71:30]) -Attribute id:res.braces:[71:14->71:32] label:{ +posCursor:[71:28] posNoWhite:[71:27] Found expr:[71:16->71:28] +Pexp_ident iAmSoSpecial:[71:16->71:28] +argAtCursor: unlabelled<0> +extracted params: +[string] { - "signatures": [], - "activeSignature": null, - "activeParameter": null + "signatures": [{ + "label": "string => unit", + "parameters": [{"label": [0, 6], "documentation": {"kind": "markdown", "value": "```rescript\nstring\n```"}}] + }], + "activeSignature": 0, + "activeParameter": 0 } Signature help src/SignatureHelp.res 74:40 @@ -283,11 +290,21 @@ posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:11->74:47] Pexp_apply ...[74:11->74:13] (...[74:16->74:44]) posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:16->74:44] Pexp_apply ...[74:16->74:28] (...[74:31->74:41]) -Attribute id:res.braces:[74:14->74:46] label:{ -Attribute id:res.braces:[74:29->74:43] label:{ +posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:31->74:41] +Pexp_apply ...[74:31->74:39] (...[74:40->74:41]) +posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:31->74:39] +Pexp_ident someFunc:[74:31->74:39] +argAtCursor: unlabelled<0> +extracted params: +[( + int, ~two: string=?, ~three: unit => unit, ~four: someVariant, unit] { - "signatures": [], - "activeSignature": null, - "activeParameter": null + "signatures": [{ + "label": "(\n int,\n ~two: string=?,\n ~three: unit => unit,\n ~four: someVariant,\n unit,\n) => unit", + "parameters": [{"label": [0, 7], "documentation": {"kind": "markdown", "value": "```rescript\nint\n```"}}, {"label": [11, 25], "documentation": {"kind": "markdown", "value": "```rescript\noption\n```"}}, {"label": [29, 49], "documentation": {"kind": "markdown", "value": ""}}, {"label": [53, 71], "documentation": {"kind": "markdown", "value": "```rescript\nsomeVariant\n```\n```rescript\ntype someVariant = One | Two | Three\n```\nGo to: [Type definition](command:rescript-vscode.go_to_location?%5B%22SignatureHelp.res%22%2C0%2C0%5D)"}}, {"label": [75, 79], "documentation": {"kind": "markdown", "value": "```rescript\nint\n```"}}], + "documentation": {"kind": "markdown", "value": " Does stuff. "} + }], + "activeSignature": 0, + "activeParameter": 0 } From f2fdc907a4676d26b7f8b24d9b8cc4b658023f9b Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 17:57:19 +0100 Subject: [PATCH 08/12] sync dune file with compiler repo --- analysis/src/dune | 2 +- analysis/vendor/res_outcome_printer/dune | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/analysis/src/dune b/analysis/src/dune index 1c3d71145..bc16552c3 100644 --- a/analysis/src/dune +++ b/analysis/src/dune @@ -6,4 +6,4 @@ (flags (-w "+6+26+27+32+33+39")) ; Depends on: - (libraries unix str ext ml jsonlib outcomeprinter reanalyze)) + (libraries unix str ext ml jsonlib syntax reanalyze)) diff --git a/analysis/vendor/res_outcome_printer/dune b/analysis/vendor/res_outcome_printer/dune index c44781e52..7765dcbf6 100644 --- a/analysis/vendor/res_outcome_printer/dune +++ b/analysis/vendor/res_outcome_printer/dune @@ -1,6 +1,6 @@ (library - (name outcomeprinter) + (name syntax) (wrapped false) (flags - (-w "+26+27+32+33+39")) - (libraries ml ext)) + (:standard -w +a-4-42-40-9-48-70)) + (libraries ml)) From d2589d3cf6333a6d6ed63e0689b1c65bea8a1e35 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 18:01:07 +0100 Subject: [PATCH 09/12] Rename res_outcome_printer to res_syntax, like in the compiler. --- analysis/vendor/dune | 2 +- analysis/vendor/{res_outcome_printer => res_syntax}/dune | 0 .../{res_outcome_printer => res_syntax}/react_jsx_common.ml | 0 .../{res_outcome_printer => res_syntax}/reactjs_jsx_ppx.ml | 0 .../{res_outcome_printer => res_syntax}/reactjs_jsx_ppx.mli | 0 .../{res_outcome_printer => res_syntax}/reactjs_jsx_v3.ml | 0 .../{res_outcome_printer => res_syntax}/reactjs_jsx_v4.ml | 0 .../{res_outcome_printer => res_syntax}/res_ast_conversion.ml | 0 .../{res_outcome_printer => res_syntax}/res_ast_conversion.mli | 0 .../{res_outcome_printer => res_syntax}/res_ast_debugger.ml | 0 .../{res_outcome_printer => res_syntax}/res_ast_debugger.mli | 0 analysis/vendor/{res_outcome_printer => res_syntax}/res_cli.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_comment.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_comment.mli | 0 .../{res_outcome_printer => res_syntax}/res_comments_table.ml | 0 analysis/vendor/{res_outcome_printer => res_syntax}/res_core.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_core.mli | 0 .../{res_outcome_printer => res_syntax}/res_diagnostics.ml | 0 .../{res_outcome_printer => res_syntax}/res_diagnostics.mli | 0 .../res_diagnostics_printing_utils.ml | 0 analysis/vendor/{res_outcome_printer => res_syntax}/res_doc.ml | 0 analysis/vendor/{res_outcome_printer => res_syntax}/res_doc.mli | 0 .../vendor/{res_outcome_printer => res_syntax}/res_driver.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_driver.mli | 0 .../{res_outcome_printer => res_syntax}/res_driver_binary.ml | 0 .../{res_outcome_printer => res_syntax}/res_driver_binary.mli | 0 .../{res_outcome_printer => res_syntax}/res_driver_ml_parser.ml | 0 .../res_driver_ml_parser.mli | 0 .../vendor/{res_outcome_printer => res_syntax}/res_grammar.ml | 0 analysis/vendor/{res_outcome_printer => res_syntax}/res_io.ml | 0 analysis/vendor/{res_outcome_printer => res_syntax}/res_io.mli | 0 .../{res_outcome_printer => res_syntax}/res_minibuffer.ml | 0 .../{res_outcome_printer => res_syntax}/res_minibuffer.mli | 0 .../{res_outcome_printer => res_syntax}/res_multi_printer.ml | 0 .../{res_outcome_printer => res_syntax}/res_multi_printer.mli | 0 .../{res_outcome_printer => res_syntax}/res_outcome_printer.ml | 0 .../{res_outcome_printer => res_syntax}/res_outcome_printer.mli | 0 .../vendor/{res_outcome_printer => res_syntax}/res_parens.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_parens.mli | 0 .../vendor/{res_outcome_printer => res_syntax}/res_parser.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_parser.mli | 0 .../{res_outcome_printer => res_syntax}/res_parsetree_viewer.ml | 0 .../res_parsetree_viewer.mli | 0 .../vendor/{res_outcome_printer => res_syntax}/res_printer.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_printer.mli | 0 .../vendor/{res_outcome_printer => res_syntax}/res_reporting.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_scanner.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_scanner.mli | 0 .../vendor/{res_outcome_printer => res_syntax}/res_string.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_token.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_uncurried.ml | 0 analysis/vendor/{res_outcome_printer => res_syntax}/res_utf8.ml | 0 .../vendor/{res_outcome_printer => res_syntax}/res_utf8.mli | 0 53 files changed, 1 insertion(+), 1 deletion(-) rename analysis/vendor/{res_outcome_printer => res_syntax}/dune (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/react_jsx_common.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/reactjs_jsx_ppx.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/reactjs_jsx_ppx.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/reactjs_jsx_v3.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/reactjs_jsx_v4.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_ast_conversion.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_ast_conversion.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_ast_debugger.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_ast_debugger.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_cli.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_comment.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_comment.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_comments_table.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_core.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_core.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_diagnostics.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_diagnostics.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_diagnostics_printing_utils.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_doc.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_doc.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_driver.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_driver.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_driver_binary.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_driver_binary.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_driver_ml_parser.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_driver_ml_parser.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_grammar.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_io.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_io.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_minibuffer.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_minibuffer.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_multi_printer.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_multi_printer.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_outcome_printer.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_outcome_printer.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_parens.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_parens.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_parser.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_parser.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_parsetree_viewer.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_parsetree_viewer.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_printer.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_printer.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_reporting.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_scanner.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_scanner.mli (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_string.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_token.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_uncurried.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_utf8.ml (100%) rename analysis/vendor/{res_outcome_printer => res_syntax}/res_utf8.mli (100%) diff --git a/analysis/vendor/dune b/analysis/vendor/dune index 5d23f6980..e125ef55f 100644 --- a/analysis/vendor/dune +++ b/analysis/vendor/dune @@ -1 +1 @@ -(dirs compiler-libs-406 ext ml res_outcome_printer json) +(dirs ext ml res_syntax json) diff --git a/analysis/vendor/res_outcome_printer/dune b/analysis/vendor/res_syntax/dune similarity index 100% rename from analysis/vendor/res_outcome_printer/dune rename to analysis/vendor/res_syntax/dune diff --git a/analysis/vendor/res_outcome_printer/react_jsx_common.ml b/analysis/vendor/res_syntax/react_jsx_common.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/react_jsx_common.ml rename to analysis/vendor/res_syntax/react_jsx_common.ml diff --git a/analysis/vendor/res_outcome_printer/reactjs_jsx_ppx.ml b/analysis/vendor/res_syntax/reactjs_jsx_ppx.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/reactjs_jsx_ppx.ml rename to analysis/vendor/res_syntax/reactjs_jsx_ppx.ml diff --git a/analysis/vendor/res_outcome_printer/reactjs_jsx_ppx.mli b/analysis/vendor/res_syntax/reactjs_jsx_ppx.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/reactjs_jsx_ppx.mli rename to analysis/vendor/res_syntax/reactjs_jsx_ppx.mli diff --git a/analysis/vendor/res_outcome_printer/reactjs_jsx_v3.ml b/analysis/vendor/res_syntax/reactjs_jsx_v3.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/reactjs_jsx_v3.ml rename to analysis/vendor/res_syntax/reactjs_jsx_v3.ml diff --git a/analysis/vendor/res_outcome_printer/reactjs_jsx_v4.ml b/analysis/vendor/res_syntax/reactjs_jsx_v4.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/reactjs_jsx_v4.ml rename to analysis/vendor/res_syntax/reactjs_jsx_v4.ml diff --git a/analysis/vendor/res_outcome_printer/res_ast_conversion.ml b/analysis/vendor/res_syntax/res_ast_conversion.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_ast_conversion.ml rename to analysis/vendor/res_syntax/res_ast_conversion.ml diff --git a/analysis/vendor/res_outcome_printer/res_ast_conversion.mli b/analysis/vendor/res_syntax/res_ast_conversion.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_ast_conversion.mli rename to analysis/vendor/res_syntax/res_ast_conversion.mli diff --git a/analysis/vendor/res_outcome_printer/res_ast_debugger.ml b/analysis/vendor/res_syntax/res_ast_debugger.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_ast_debugger.ml rename to analysis/vendor/res_syntax/res_ast_debugger.ml diff --git a/analysis/vendor/res_outcome_printer/res_ast_debugger.mli b/analysis/vendor/res_syntax/res_ast_debugger.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_ast_debugger.mli rename to analysis/vendor/res_syntax/res_ast_debugger.mli diff --git a/analysis/vendor/res_outcome_printer/res_cli.ml b/analysis/vendor/res_syntax/res_cli.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_cli.ml rename to analysis/vendor/res_syntax/res_cli.ml diff --git a/analysis/vendor/res_outcome_printer/res_comment.ml b/analysis/vendor/res_syntax/res_comment.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_comment.ml rename to analysis/vendor/res_syntax/res_comment.ml diff --git a/analysis/vendor/res_outcome_printer/res_comment.mli b/analysis/vendor/res_syntax/res_comment.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_comment.mli rename to analysis/vendor/res_syntax/res_comment.mli diff --git a/analysis/vendor/res_outcome_printer/res_comments_table.ml b/analysis/vendor/res_syntax/res_comments_table.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_comments_table.ml rename to analysis/vendor/res_syntax/res_comments_table.ml diff --git a/analysis/vendor/res_outcome_printer/res_core.ml b/analysis/vendor/res_syntax/res_core.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_core.ml rename to analysis/vendor/res_syntax/res_core.ml diff --git a/analysis/vendor/res_outcome_printer/res_core.mli b/analysis/vendor/res_syntax/res_core.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_core.mli rename to analysis/vendor/res_syntax/res_core.mli diff --git a/analysis/vendor/res_outcome_printer/res_diagnostics.ml b/analysis/vendor/res_syntax/res_diagnostics.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_diagnostics.ml rename to analysis/vendor/res_syntax/res_diagnostics.ml diff --git a/analysis/vendor/res_outcome_printer/res_diagnostics.mli b/analysis/vendor/res_syntax/res_diagnostics.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_diagnostics.mli rename to analysis/vendor/res_syntax/res_diagnostics.mli diff --git a/analysis/vendor/res_outcome_printer/res_diagnostics_printing_utils.ml b/analysis/vendor/res_syntax/res_diagnostics_printing_utils.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_diagnostics_printing_utils.ml rename to analysis/vendor/res_syntax/res_diagnostics_printing_utils.ml diff --git a/analysis/vendor/res_outcome_printer/res_doc.ml b/analysis/vendor/res_syntax/res_doc.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_doc.ml rename to analysis/vendor/res_syntax/res_doc.ml diff --git a/analysis/vendor/res_outcome_printer/res_doc.mli b/analysis/vendor/res_syntax/res_doc.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_doc.mli rename to analysis/vendor/res_syntax/res_doc.mli diff --git a/analysis/vendor/res_outcome_printer/res_driver.ml b/analysis/vendor/res_syntax/res_driver.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_driver.ml rename to analysis/vendor/res_syntax/res_driver.ml diff --git a/analysis/vendor/res_outcome_printer/res_driver.mli b/analysis/vendor/res_syntax/res_driver.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_driver.mli rename to analysis/vendor/res_syntax/res_driver.mli diff --git a/analysis/vendor/res_outcome_printer/res_driver_binary.ml b/analysis/vendor/res_syntax/res_driver_binary.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_driver_binary.ml rename to analysis/vendor/res_syntax/res_driver_binary.ml diff --git a/analysis/vendor/res_outcome_printer/res_driver_binary.mli b/analysis/vendor/res_syntax/res_driver_binary.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_driver_binary.mli rename to analysis/vendor/res_syntax/res_driver_binary.mli diff --git a/analysis/vendor/res_outcome_printer/res_driver_ml_parser.ml b/analysis/vendor/res_syntax/res_driver_ml_parser.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_driver_ml_parser.ml rename to analysis/vendor/res_syntax/res_driver_ml_parser.ml diff --git a/analysis/vendor/res_outcome_printer/res_driver_ml_parser.mli b/analysis/vendor/res_syntax/res_driver_ml_parser.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_driver_ml_parser.mli rename to analysis/vendor/res_syntax/res_driver_ml_parser.mli diff --git a/analysis/vendor/res_outcome_printer/res_grammar.ml b/analysis/vendor/res_syntax/res_grammar.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_grammar.ml rename to analysis/vendor/res_syntax/res_grammar.ml diff --git a/analysis/vendor/res_outcome_printer/res_io.ml b/analysis/vendor/res_syntax/res_io.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_io.ml rename to analysis/vendor/res_syntax/res_io.ml diff --git a/analysis/vendor/res_outcome_printer/res_io.mli b/analysis/vendor/res_syntax/res_io.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_io.mli rename to analysis/vendor/res_syntax/res_io.mli diff --git a/analysis/vendor/res_outcome_printer/res_minibuffer.ml b/analysis/vendor/res_syntax/res_minibuffer.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_minibuffer.ml rename to analysis/vendor/res_syntax/res_minibuffer.ml diff --git a/analysis/vendor/res_outcome_printer/res_minibuffer.mli b/analysis/vendor/res_syntax/res_minibuffer.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_minibuffer.mli rename to analysis/vendor/res_syntax/res_minibuffer.mli diff --git a/analysis/vendor/res_outcome_printer/res_multi_printer.ml b/analysis/vendor/res_syntax/res_multi_printer.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_multi_printer.ml rename to analysis/vendor/res_syntax/res_multi_printer.ml diff --git a/analysis/vendor/res_outcome_printer/res_multi_printer.mli b/analysis/vendor/res_syntax/res_multi_printer.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_multi_printer.mli rename to analysis/vendor/res_syntax/res_multi_printer.mli diff --git a/analysis/vendor/res_outcome_printer/res_outcome_printer.ml b/analysis/vendor/res_syntax/res_outcome_printer.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_outcome_printer.ml rename to analysis/vendor/res_syntax/res_outcome_printer.ml diff --git a/analysis/vendor/res_outcome_printer/res_outcome_printer.mli b/analysis/vendor/res_syntax/res_outcome_printer.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_outcome_printer.mli rename to analysis/vendor/res_syntax/res_outcome_printer.mli diff --git a/analysis/vendor/res_outcome_printer/res_parens.ml b/analysis/vendor/res_syntax/res_parens.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_parens.ml rename to analysis/vendor/res_syntax/res_parens.ml diff --git a/analysis/vendor/res_outcome_printer/res_parens.mli b/analysis/vendor/res_syntax/res_parens.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_parens.mli rename to analysis/vendor/res_syntax/res_parens.mli diff --git a/analysis/vendor/res_outcome_printer/res_parser.ml b/analysis/vendor/res_syntax/res_parser.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_parser.ml rename to analysis/vendor/res_syntax/res_parser.ml diff --git a/analysis/vendor/res_outcome_printer/res_parser.mli b/analysis/vendor/res_syntax/res_parser.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_parser.mli rename to analysis/vendor/res_syntax/res_parser.mli diff --git a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml b/analysis/vendor/res_syntax/res_parsetree_viewer.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_parsetree_viewer.ml rename to analysis/vendor/res_syntax/res_parsetree_viewer.ml diff --git a/analysis/vendor/res_outcome_printer/res_parsetree_viewer.mli b/analysis/vendor/res_syntax/res_parsetree_viewer.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_parsetree_viewer.mli rename to analysis/vendor/res_syntax/res_parsetree_viewer.mli diff --git a/analysis/vendor/res_outcome_printer/res_printer.ml b/analysis/vendor/res_syntax/res_printer.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_printer.ml rename to analysis/vendor/res_syntax/res_printer.ml diff --git a/analysis/vendor/res_outcome_printer/res_printer.mli b/analysis/vendor/res_syntax/res_printer.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_printer.mli rename to analysis/vendor/res_syntax/res_printer.mli diff --git a/analysis/vendor/res_outcome_printer/res_reporting.ml b/analysis/vendor/res_syntax/res_reporting.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_reporting.ml rename to analysis/vendor/res_syntax/res_reporting.ml diff --git a/analysis/vendor/res_outcome_printer/res_scanner.ml b/analysis/vendor/res_syntax/res_scanner.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_scanner.ml rename to analysis/vendor/res_syntax/res_scanner.ml diff --git a/analysis/vendor/res_outcome_printer/res_scanner.mli b/analysis/vendor/res_syntax/res_scanner.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_scanner.mli rename to analysis/vendor/res_syntax/res_scanner.mli diff --git a/analysis/vendor/res_outcome_printer/res_string.ml b/analysis/vendor/res_syntax/res_string.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_string.ml rename to analysis/vendor/res_syntax/res_string.ml diff --git a/analysis/vendor/res_outcome_printer/res_token.ml b/analysis/vendor/res_syntax/res_token.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_token.ml rename to analysis/vendor/res_syntax/res_token.ml diff --git a/analysis/vendor/res_outcome_printer/res_uncurried.ml b/analysis/vendor/res_syntax/res_uncurried.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_uncurried.ml rename to analysis/vendor/res_syntax/res_uncurried.ml diff --git a/analysis/vendor/res_outcome_printer/res_utf8.ml b/analysis/vendor/res_syntax/res_utf8.ml similarity index 100% rename from analysis/vendor/res_outcome_printer/res_utf8.ml rename to analysis/vendor/res_syntax/res_utf8.ml diff --git a/analysis/vendor/res_outcome_printer/res_utf8.mli b/analysis/vendor/res_syntax/res_utf8.mli similarity index 100% rename from analysis/vendor/res_outcome_printer/res_utf8.mli rename to analysis/vendor/res_syntax/res_utf8.mli From f839975ca68225694cfae079b7a55b4f37810bfc Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 18:06:41 +0100 Subject: [PATCH 10/12] format --- analysis/vendor/res_syntax/res_comments_table.ml | 2 +- .../vendor/res_syntax/res_parsetree_viewer.ml | 16 +++++++++------- analysis/vendor/res_syntax/res_printer.ml | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/analysis/vendor/res_syntax/res_comments_table.ml b/analysis/vendor/res_syntax/res_comments_table.ml index e83f99ca8..d12ace528 100644 --- a/analysis/vendor/res_syntax/res_comments_table.ml +++ b/analysis/vendor/res_syntax/res_comments_table.ml @@ -360,7 +360,7 @@ let getLoc node = | _ -> expr.pexp_loc) | Expression e -> ( match e.pexp_attributes with - | ({txt = "res.braces"| "ns.braces"; loc}, _) :: _ -> loc + | ({txt = "res.braces" | "ns.braces"; loc}, _) :: _ -> loc | _ -> e.pexp_loc) | ExprRecordRow (li, e) -> {li.loc with loc_end = e.pexp_loc.loc_end} | ExtensionConstructor ec -> ec.pext_loc diff --git a/analysis/vendor/res_syntax/res_parsetree_viewer.ml b/analysis/vendor/res_syntax/res_parsetree_viewer.ml index 68a73f9af..1d2b43804 100644 --- a/analysis/vendor/res_syntax/res_parsetree_viewer.ml +++ b/analysis/vendor/res_syntax/res_parsetree_viewer.ml @@ -203,9 +203,9 @@ let filterParsingAttrs attrs = match attr with | ( { Location.txt = - ( "bs" | "res.uapp" | "res.arity" | "res.braces"| "ns.braces" | "res.iflet" - | "res.namedArgLoc" | "res.optional" | "res.ternary" | "res.async" - | "res.await" | "res.template" ); + ( "bs" | "res.uapp" | "res.arity" | "res.braces" | "ns.braces" + | "res.iflet" | "res.namedArgLoc" | "res.optional" | "res.ternary" + | "res.async" | "res.await" | "res.template" ); }, _ ) -> false @@ -357,8 +357,9 @@ let hasAttributes attrs = match attr with | ( { Location.txt = - ( "bs" | "res.uapp" | "res.arity" | "res.braces"| "ns.braces" | "res.iflet" - | "res.ternary" | "res.async" | "res.await" | "res.template" ); + ( "bs" | "res.uapp" | "res.arity" | "res.braces" | "ns.braces" + | "res.iflet" | "res.ternary" | "res.async" | "res.await" + | "res.template" ); }, _ ) -> false @@ -539,8 +540,9 @@ let isPrintableAttribute attr = match attr with | ( { Location.txt = - ( "bs" | "res.uapp" | "res.arity" | "res.iflet" | "res.braces"| "ns.braces" | "JSX" - | "res.async" | "res.await" | "res.template" | "res.ternary" ); + ( "bs" | "res.uapp" | "res.arity" | "res.iflet" | "res.braces" + | "ns.braces" | "JSX" | "res.async" | "res.await" | "res.template" + | "res.ternary" ); }, _ ) -> false diff --git a/analysis/vendor/res_syntax/res_printer.ml b/analysis/vendor/res_syntax/res_printer.ml index 26c193045..995d12c72 100644 --- a/analysis/vendor/res_syntax/res_printer.ml +++ b/analysis/vendor/res_syntax/res_printer.ml @@ -3270,7 +3270,7 @@ and printExpression ~state (e : Parsetree.expression) cmtTbl = pexp_attributes = List.filter (function - | {Location.txt = "res.braces"| "ns.braces"}, _ -> false + | {Location.txt = "res.braces" | "ns.braces"}, _ -> false | _ -> true) e.pexp_attributes; } From b0cd8778cbe71be3f3ea0988c1994da2ea686b08 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 18:08:25 +0100 Subject: [PATCH 11/12] More format. --- analysis/reanalyze/src/RunConfig.ml | 2 +- analysis/src/CompletionJsx.ml | 2 +- analysis/src/Markdown.ml | 2 +- analysis/vendor/.ocamlformat | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 analysis/vendor/.ocamlformat diff --git a/analysis/reanalyze/src/RunConfig.ml b/analysis/reanalyze/src/RunConfig.ml index 64a9ed101..3c33f7990 100644 --- a/analysis/reanalyze/src/RunConfig.ml +++ b/analysis/reanalyze/src/RunConfig.ml @@ -30,4 +30,4 @@ let dce () = runConfig.dce <- true let exception_ () = runConfig.exception_ <- true let termination () = runConfig.termination <- true -let transitive b = runConfig.transitive <- b \ No newline at end of file +let transitive b = runConfig.transitive <- b diff --git a/analysis/src/CompletionJsx.ml b/analysis/src/CompletionJsx.ml index c90244166..aede04516 100644 --- a/analysis/src/CompletionJsx.ml +++ b/analysis/src/CompletionJsx.ml @@ -911,4 +911,4 @@ let extractJsxProps ~(compName : Longident.t Location.loc) ~args = | None -> processProps ~acc rest) | _ -> thisCaseShouldNotHappen in - args |> processProps ~acc:[] \ No newline at end of file + args |> processProps ~acc:[] diff --git a/analysis/src/Markdown.ml b/analysis/src/Markdown.ml index 54b95872f..0f82050fb 100644 --- a/analysis/src/Markdown.ml +++ b/analysis/src/Markdown.ml @@ -20,4 +20,4 @@ let goToDefinitionText ~env ~pos = label = "Type definition"; file = Uri.toString env.SharedTypes.QueryEnv.file.uri; startPos = {line = startLine; character = startCol}; - } \ No newline at end of file + } diff --git a/analysis/vendor/.ocamlformat b/analysis/vendor/.ocamlformat new file mode 100644 index 000000000..593b6a1ff --- /dev/null +++ b/analysis/vendor/.ocamlformat @@ -0,0 +1 @@ +disable From a30693be53e42e428c08d9341103ad1c0deac83d Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Thu, 9 Mar 2023 18:15:39 +0100 Subject: [PATCH 12/12] Dead code. --- analysis/src/Hint.ml | 3 +-- analysis/src/Protocol.ml | 3 +-- analysis/src/SharedTypes.ml | 9 ++++----- analysis/src/Utils.ml | 16 ---------------- 4 files changed, 6 insertions(+), 25 deletions(-) diff --git a/analysis/src/Hint.ml b/analysis/src/Hint.ml index e502c4c7b..227d70f38 100644 --- a/analysis/src/Hint.ml +++ b/analysis/src/Hint.ml @@ -1,9 +1,8 @@ open SharedTypes -type inlayHintKind = Type | Parameter +type inlayHintKind = Type let inlayKindToNumber = function | Type -> 1 - | Parameter -> 2 let locItemToTypeHint ~full:{file; package} locItem = match locItem.locType with diff --git a/analysis/src/Protocol.ml b/analysis/src/Protocol.ml index b9b82b08f..1f23f522e 100644 --- a/analysis/src/Protocol.ml +++ b/analysis/src/Protocol.ml @@ -34,11 +34,10 @@ type signatureHelp = { } (* https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#insertTextFormat *) -type insertTextFormat = PlainText | Snippet +type insertTextFormat = Snippet let insertTextFormatToInt f = match f with - | PlainText -> 1 | Snippet -> 2 type completionItem = { diff --git a/analysis/src/SharedTypes.ml b/analysis/src/SharedTypes.ml index a14a0e6b3..524661503 100644 --- a/analysis/src/SharedTypes.ml +++ b/analysis/src/SharedTypes.ml @@ -354,8 +354,7 @@ module Completion = struct detail: string option; } - let create ~kind ~env ?(docstring = []) ?filterText ?insertText ?deprecated - ?detail name = + let create ~kind ~env ?(docstring = []) ?insertText ?deprecated ?detail name = { name; env; @@ -365,12 +364,12 @@ module Completion = struct sortText = None; insertText; insertTextFormat = None; - filterText; + filterText = None; detail; } let createWithSnippet ~name ?insertText ~kind ~env ?sortText ?deprecated - ?filterText ?(docstring = []) () = + ?(docstring = []) () = { name; env; @@ -380,7 +379,7 @@ module Completion = struct sortText; insertText; insertTextFormat = Some Protocol.Snippet; - filterText; + filterText = None; detail = None; } diff --git a/analysis/src/Utils.ml b/analysis/src/Utils.ml index ba1ac13cd..ff3e0fc43 100644 --- a/analysis/src/Utils.ml +++ b/analysis/src/Utils.ml @@ -137,22 +137,6 @@ let identifyPpat pat = | Ppat_extension _ -> "Ppat_extension" | Ppat_open _ -> "Ppat_open" -let identifyType type_desc = - match type_desc with - | Types.Tvar _ -> "Tvar" - | Tarrow _ -> "Tarrow" - | Ttuple _ -> "Ttuple" - | Tconstr _ -> "Tconstr" - | Tobject _ -> "Tobject" - | Tfield _ -> "Tfield" - | Tnil -> "Tnil" - | Tlink _ -> "Tlink" - | Tsubst _ -> "Tsubst" - | Tvariant _ -> "Tvariant" - | Tunivar _ -> "Tunivar" - | Tpoly _ -> "Tpoly" - | Tpackage _ -> "Tpackage" - let rec skipWhite text i = if i < 0 then 0 else