@univerjs/uniscript 0.4.1-nightly.202410271605 → 0.4.1-nightly.202410291249

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/cjs/index.js +1 -1
  2. package/lib/{cssMode-BuX-eUHc.mjs → cssMode-BCQBRdx1.mjs} +1 -1
  3. package/lib/{cssMode-B_of5tVd.js → cssMode-BFpUjq8v.js} +1 -1
  4. package/lib/es/index.js +1 -1
  5. package/lib/{freemarker2-S5ay_GEf.js → freemarker2-DdTiSBi2.js} +1 -1
  6. package/lib/{freemarker2-D8-fH4uC.mjs → freemarker2-DyRztPQN.mjs} +1 -1
  7. package/lib/{handlebars-CM3PRDRO.js → handlebars-BcCn01qB.js} +1 -1
  8. package/lib/{handlebars-CEMNnGaU.mjs → handlebars-Blgo7aqR.mjs} +1 -1
  9. package/lib/{html-Df-Osxjs.js → html-Babag4PV.js} +1 -1
  10. package/lib/{html-BSUn7oJR.mjs → html-CxEqoPGh.mjs} +1 -1
  11. package/lib/{htmlMode-Bj4CfAzA.js → htmlMode-BHLqs4-w.js} +1 -1
  12. package/lib/{htmlMode-xJPwX0cD.mjs → htmlMode-DkZMCebd.mjs} +1 -1
  13. package/lib/{index-rYV4VmC2.js → index-B3fJXKxC.js} +17 -17
  14. package/lib/{index-D6nY5NdF.mjs → index-CKu_pcs4.mjs} +22 -23
  15. package/lib/{javascript-c8D1_K05.mjs → javascript-BaDtklYB.mjs} +1 -1
  16. package/lib/{javascript-D1eKEotE.js → javascript-rn8o-ead.js} +1 -1
  17. package/lib/{jsonMode-BdBVsN9_.js → jsonMode-Csu0RiVw.js} +1 -1
  18. package/lib/{jsonMode-8-L3-E9k.mjs → jsonMode-DSD5Ik2f.mjs} +1 -1
  19. package/lib/{liquid-BmlJOXgY.js → liquid-8CCoxyQp.js} +1 -1
  20. package/lib/{liquid-Bs7DM5cg.mjs → liquid-q19teVI6.mjs} +1 -1
  21. package/lib/{mdx-DJV2KJ98.js → mdx-DzuJn6Wv.js} +1 -1
  22. package/lib/{mdx-BEI71kqO.mjs → mdx-PW21M9I1.mjs} +1 -1
  23. package/lib/{python-BOeTitp9.mjs → python-BwZ__8p3.mjs} +1 -1
  24. package/lib/{python-DRyE-VQQ.js → python-DVUPIVxh.js} +1 -1
  25. package/lib/{razor-D0RPXCAO.mjs → razor-DQMksoV9.mjs} +1 -1
  26. package/lib/{razor-DtDOotKq.js → razor-aXktutOF.js} +1 -1
  27. package/lib/{tsMode-N-LS5RKx.js → tsMode-CnRtVXQY.js} +1 -1
  28. package/lib/{tsMode-BB2mDc5d.mjs → tsMode-w7xtQAYq.mjs} +1 -1
  29. package/lib/{typescript-f9PHTVoW.mjs → typescript-98-SUXVw.mjs} +1 -1
  30. package/lib/{typescript-CZplv8KD.js → typescript-CHqNbo9C.js} +1 -1
  31. package/lib/umd/index.js +2 -2
  32. package/lib/{xml-Dv0cmUxw.mjs → xml-9CzKJT1G.mjs} +1 -1
  33. package/lib/{xml-BSe-ETnG.js → xml-DkULQKNC.js} +1 -1
  34. package/lib/{yaml-eXS7QSgG.mjs → yaml-BxP_V9uW.mjs} +1 -1
  35. package/lib/{yaml-O_DoXtBP.js → yaml-DNNNA-GG.js} +1 -1
  36. package/package.json +7 -7
@@ -1,4 +1,4 @@
1
- "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);const core=require("@univerjs/core"),ui=require("@univerjs/ui"),rxjs=require("rxjs"),require$$0=require("react"),design=require("@univerjs/design"),facade=require("@univerjs/facade"),sheetsUi=require("@univerjs/sheets-ui"),sheets=require("@univerjs/sheets"),PLUGIN_CONFIG_KEY="uniscript.config",defaultPluginConfig={},_ScriptPanelService=class _ScriptPanelService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_open$",new rxjs.BehaviorSubject(!1));__publicField(this,"open$",this._open$.pipe(rxjs.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};__name(_ScriptPanelService,"ScriptPanelService");let ScriptPanelService=_ScriptPanelService;const ScriptPanelComponentName="ScriptPanel",ToggleScriptPanelOperation={type:core.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:__name(accessor=>{const scriptPanelService=accessor.get(ScriptPanelService),sidebarService=accessor.get(ui.ISidebarService);return scriptPanelService.isOpen?(scriptPanelService.close(),sidebarService.close()):(scriptPanelService.open(),sidebarService.open({header:{title:"script-panel.title"},children:{label:ScriptPanelComponentName},width:600})),!0},"handler")};var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/**
1
+ "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);const core=require("@univerjs/core"),ui=require("@univerjs/ui"),rxjs=require("rxjs"),require$$0=require("react"),design=require("@univerjs/design"),sheetsUi=require("@univerjs/sheets-ui"),sheets=require("@univerjs/sheets"),PLUGIN_CONFIG_KEY="uniscript.config",defaultPluginConfig={},_ScriptPanelService=class _ScriptPanelService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_open$",new rxjs.BehaviorSubject(!1));__publicField(this,"open$",this._open$.pipe(rxjs.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};__name(_ScriptPanelService,"ScriptPanelService");let ScriptPanelService=_ScriptPanelService;const ScriptPanelComponentName="ScriptPanel",ToggleScriptPanelOperation={type:core.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:__name(accessor=>{const scriptPanelService=accessor.get(ScriptPanelService),sidebarService=accessor.get(ui.ISidebarService);return scriptPanelService.isOpen?(scriptPanelService.close(),sidebarService.close()):(scriptPanelService.open(),sidebarService.open({header:{title:"script-panel.title"},children:{label:ScriptPanelComponentName},width:600})),!0},"handler")};var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -770,7 +770,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
770
770
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
771
771
  * Released under the MIT license
772
772
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
773
- *-----------------------------------------------------------------------------*/registerLanguage({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-S5ay_GEf.js")).then(m2=>m2.TagAutoInterpolationDollar),"loader")});registerLanguage({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-S5ay_GEf.js")).then(m2=>m2.TagAngleInterpolationDollar),"loader")});registerLanguage({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-S5ay_GEf.js")).then(m2=>m2.TagBracketInterpolationDollar),"loader")});registerLanguage({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-S5ay_GEf.js")).then(m2=>m2.TagAngleInterpolationBracket),"loader")});registerLanguage({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-S5ay_GEf.js")).then(m2=>m2.TagBracketInterpolationBracket),"loader")});registerLanguage({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-S5ay_GEf.js")).then(m2=>m2.TagAutoInterpolationDollar),"loader")});registerLanguage({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-S5ay_GEf.js")).then(m2=>m2.TagAutoInterpolationBracket),"loader")});/*!-----------------------------------------------------------------------------
773
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-DdTiSBi2.js")).then(m2=>m2.TagAutoInterpolationDollar),"loader")});registerLanguage({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-DdTiSBi2.js")).then(m2=>m2.TagAngleInterpolationDollar),"loader")});registerLanguage({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-DdTiSBi2.js")).then(m2=>m2.TagBracketInterpolationDollar),"loader")});registerLanguage({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-DdTiSBi2.js")).then(m2=>m2.TagAngleInterpolationBracket),"loader")});registerLanguage({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-DdTiSBi2.js")).then(m2=>m2.TagBracketInterpolationBracket),"loader")});registerLanguage({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-DdTiSBi2.js")).then(m2=>m2.TagAutoInterpolationDollar),"loader")});registerLanguage({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:__name(()=>Promise.resolve().then(()=>require("./freemarker2-DdTiSBi2.js")).then(m2=>m2.TagAutoInterpolationBracket),"loader")});/*!-----------------------------------------------------------------------------
774
774
  * Copyright (c) Microsoft Corporation. All rights reserved.
775
775
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
776
776
  * Released under the MIT license
@@ -785,7 +785,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
785
785
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
786
786
  * Released under the MIT license
787
787
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
788
- *-----------------------------------------------------------------------------*/registerLanguage({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:__name(()=>Promise.resolve().then(()=>require("./handlebars-CM3PRDRO.js")),"loader")});/*!-----------------------------------------------------------------------------
788
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:__name(()=>Promise.resolve().then(()=>require("./handlebars-BcCn01qB.js")),"loader")});/*!-----------------------------------------------------------------------------
789
789
  * Copyright (c) Microsoft Corporation. All rights reserved.
790
790
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
791
791
  * Released under the MIT license
@@ -795,7 +795,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
795
795
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
796
796
  * Released under the MIT license
797
797
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
798
- *-----------------------------------------------------------------------------*/registerLanguage({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:__name(()=>Promise.resolve().then(()=>require("./html-Df-Osxjs.js")),"loader")});/*!-----------------------------------------------------------------------------
798
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:__name(()=>Promise.resolve().then(()=>require("./html-Babag4PV.js")),"loader")});/*!-----------------------------------------------------------------------------
799
799
  * Copyright (c) Microsoft Corporation. All rights reserved.
800
800
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
801
801
  * Released under the MIT license
@@ -810,7 +810,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
810
810
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
811
811
  * Released under the MIT license
812
812
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
813
- *-----------------------------------------------------------------------------*/registerLanguage({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:__name(()=>Promise.resolve().then(()=>require("./javascript-D1eKEotE.js")),"loader")});/*!-----------------------------------------------------------------------------
813
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:__name(()=>Promise.resolve().then(()=>require("./javascript-rn8o-ead.js")),"loader")});/*!-----------------------------------------------------------------------------
814
814
  * Copyright (c) Microsoft Corporation. All rights reserved.
815
815
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
816
816
  * Released under the MIT license
@@ -840,7 +840,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
840
840
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
841
841
  * Released under the MIT license
842
842
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
843
- *-----------------------------------------------------------------------------*/registerLanguage({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:__name(()=>Promise.resolve().then(()=>require("./liquid-BmlJOXgY.js")),"loader")});/*!-----------------------------------------------------------------------------
843
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:__name(()=>Promise.resolve().then(()=>require("./liquid-8CCoxyQp.js")),"loader")});/*!-----------------------------------------------------------------------------
844
844
  * Copyright (c) Microsoft Corporation. All rights reserved.
845
845
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
846
846
  * Released under the MIT license
@@ -855,7 +855,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
855
855
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
856
856
  * Released under the MIT license
857
857
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
858
- *-----------------------------------------------------------------------------*/registerLanguage({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:__name(()=>Promise.resolve().then(()=>require("./mdx-DJV2KJ98.js")),"loader")});/*!-----------------------------------------------------------------------------
858
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:__name(()=>Promise.resolve().then(()=>require("./mdx-DzuJn6Wv.js")),"loader")});/*!-----------------------------------------------------------------------------
859
859
  * Copyright (c) Microsoft Corporation. All rights reserved.
860
860
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
861
861
  * Released under the MIT license
@@ -935,7 +935,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
935
935
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
936
936
  * Released under the MIT license
937
937
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
938
- *-----------------------------------------------------------------------------*/registerLanguage({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:__name(()=>Promise.resolve().then(()=>require("./python-DRyE-VQQ.js")),"loader")});/*!-----------------------------------------------------------------------------
938
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:__name(()=>Promise.resolve().then(()=>require("./python-DVUPIVxh.js")),"loader")});/*!-----------------------------------------------------------------------------
939
939
  * Copyright (c) Microsoft Corporation. All rights reserved.
940
940
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
941
941
  * Released under the MIT license
@@ -950,7 +950,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
950
950
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
951
951
  * Released under the MIT license
952
952
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
953
- *-----------------------------------------------------------------------------*/registerLanguage({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:__name(()=>Promise.resolve().then(()=>require("./razor-DtDOotKq.js")),"loader")});/*!-----------------------------------------------------------------------------
953
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:__name(()=>Promise.resolve().then(()=>require("./razor-aXktutOF.js")),"loader")});/*!-----------------------------------------------------------------------------
954
954
  * Copyright (c) Microsoft Corporation. All rights reserved.
955
955
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
956
956
  * Released under the MIT license
@@ -1050,7 +1050,7 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
1050
1050
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
1051
1051
  * Released under the MIT license
1052
1052
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
1053
- *-----------------------------------------------------------------------------*/registerLanguage({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:__name(()=>Promise.resolve().then(()=>require("./typescript-CZplv8KD.js")),"loader")});/*!-----------------------------------------------------------------------------
1053
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:__name(()=>Promise.resolve().then(()=>require("./typescript-CHqNbo9C.js")),"loader")});/*!-----------------------------------------------------------------------------
1054
1054
  * Copyright (c) Microsoft Corporation. All rights reserved.
1055
1055
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
1056
1056
  * Released under the MIT license
@@ -1070,32 +1070,32 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
1070
1070
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
1071
1071
  * Released under the MIT license
1072
1072
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
1073
- *-----------------------------------------------------------------------------*/registerLanguage({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:__name(()=>Promise.resolve().then(()=>require("./xml-BSe-ETnG.js")),"loader")});/*!-----------------------------------------------------------------------------
1073
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:__name(()=>Promise.resolve().then(()=>require("./xml-DkULQKNC.js")),"loader")});/*!-----------------------------------------------------------------------------
1074
1074
  * Copyright (c) Microsoft Corporation. All rights reserved.
1075
1075
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
1076
1076
  * Released under the MIT license
1077
1077
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
1078
- *-----------------------------------------------------------------------------*/registerLanguage({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:__name(()=>Promise.resolve().then(()=>require("./yaml-O_DoXtBP.js")),"loader")});/*!-----------------------------------------------------------------------------
1078
+ *-----------------------------------------------------------------------------*/registerLanguage({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:__name(()=>Promise.resolve().then(()=>require("./yaml-DNNNA-GG.js")),"loader")});/*!-----------------------------------------------------------------------------
1079
1079
  * Copyright (c) Microsoft Corporation. All rights reserved.
1080
1080
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
1081
1081
  * Released under the MIT license
1082
1082
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
1083
- *-----------------------------------------------------------------------------*/var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__getOwnPropNames$3=Object.getOwnPropertyNames,__hasOwnProp$3=Object.prototype.hasOwnProperty,__copyProps$3=__name((to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames$3(from))!__hasOwnProp$3.call(to,key)&&key!==except&&__defProp$7(to,key,{get:__name(()=>from[key],"get"),enumerable:!(desc=__getOwnPropDesc$7(from,key))||desc.enumerable});return to},"__copyProps$3"),__reExport$3=__name((target,mod,secondTarget)=>(__copyProps$3(target,mod,"default"),secondTarget),"__reExport$3"),monaco_editor_core_exports$3={};__reExport$3(monaco_editor_core_exports$3,monaco_editor_core_star);var _a132,LanguageServiceDefaultsImpl$3=(_a132=class{constructor(languageId,options,modeConfiguration){this._onDidChange=new monaco_editor_core_exports$3.Emitter,this._languageId=languageId,this.setOptions(options),this.setModeConfiguration(modeConfiguration)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(options){this._options=options||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(options){this.setOptions(options)}setModeConfiguration(modeConfiguration){this._modeConfiguration=modeConfiguration||Object.create(null),this._onDidChange.fire(this)}},__name(_a132,"LanguageServiceDefaultsImpl"),_a132),optionsDefault$1={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},modeConfigurationDefault$2={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},cssDefaults=new LanguageServiceDefaultsImpl$3("css",optionsDefault$1,modeConfigurationDefault$2),scssDefaults=new LanguageServiceDefaultsImpl$3("scss",optionsDefault$1,modeConfigurationDefault$2),lessDefaults=new LanguageServiceDefaultsImpl$3("less",optionsDefault$1,modeConfigurationDefault$2);monaco_editor_core_exports$3.languages.css={cssDefaults,lessDefaults,scssDefaults};function getMode$3(){return Promise.resolve().then(()=>require("./cssMode-B_of5tVd.js"))}__name(getMode$3,"getMode$3");monaco_editor_core_exports$3.languages.onLanguage("less",()=>{getMode$3().then(mode=>mode.setupMode(lessDefaults))});monaco_editor_core_exports$3.languages.onLanguage("scss",()=>{getMode$3().then(mode=>mode.setupMode(scssDefaults))});monaco_editor_core_exports$3.languages.onLanguage("css",()=>{getMode$3().then(mode=>mode.setupMode(cssDefaults))});/*!-----------------------------------------------------------------------------
1083
+ *-----------------------------------------------------------------------------*/var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__getOwnPropNames$3=Object.getOwnPropertyNames,__hasOwnProp$3=Object.prototype.hasOwnProperty,__copyProps$3=__name((to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames$3(from))!__hasOwnProp$3.call(to,key)&&key!==except&&__defProp$7(to,key,{get:__name(()=>from[key],"get"),enumerable:!(desc=__getOwnPropDesc$7(from,key))||desc.enumerable});return to},"__copyProps$3"),__reExport$3=__name((target,mod,secondTarget)=>(__copyProps$3(target,mod,"default"),secondTarget),"__reExport$3"),monaco_editor_core_exports$3={};__reExport$3(monaco_editor_core_exports$3,monaco_editor_core_star);var _a132,LanguageServiceDefaultsImpl$3=(_a132=class{constructor(languageId,options,modeConfiguration){this._onDidChange=new monaco_editor_core_exports$3.Emitter,this._languageId=languageId,this.setOptions(options),this.setModeConfiguration(modeConfiguration)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(options){this._options=options||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(options){this.setOptions(options)}setModeConfiguration(modeConfiguration){this._modeConfiguration=modeConfiguration||Object.create(null),this._onDidChange.fire(this)}},__name(_a132,"LanguageServiceDefaultsImpl"),_a132),optionsDefault$1={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},modeConfigurationDefault$2={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},cssDefaults=new LanguageServiceDefaultsImpl$3("css",optionsDefault$1,modeConfigurationDefault$2),scssDefaults=new LanguageServiceDefaultsImpl$3("scss",optionsDefault$1,modeConfigurationDefault$2),lessDefaults=new LanguageServiceDefaultsImpl$3("less",optionsDefault$1,modeConfigurationDefault$2);monaco_editor_core_exports$3.languages.css={cssDefaults,lessDefaults,scssDefaults};function getMode$3(){return Promise.resolve().then(()=>require("./cssMode-BFpUjq8v.js"))}__name(getMode$3,"getMode$3");monaco_editor_core_exports$3.languages.onLanguage("less",()=>{getMode$3().then(mode=>mode.setupMode(lessDefaults))});monaco_editor_core_exports$3.languages.onLanguage("scss",()=>{getMode$3().then(mode=>mode.setupMode(scssDefaults))});monaco_editor_core_exports$3.languages.onLanguage("css",()=>{getMode$3().then(mode=>mode.setupMode(cssDefaults))});/*!-----------------------------------------------------------------------------
1084
1084
  * Copyright (c) Microsoft Corporation. All rights reserved.
1085
1085
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
1086
1086
  * Released under the MIT license
1087
1087
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
1088
- *-----------------------------------------------------------------------------*/var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__getOwnPropNames$2=Object.getOwnPropertyNames,__hasOwnProp$2=Object.prototype.hasOwnProperty,__copyProps$2=__name((to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames$2(from))!__hasOwnProp$2.call(to,key)&&key!==except&&__defProp$6(to,key,{get:__name(()=>from[key],"get"),enumerable:!(desc=__getOwnPropDesc$6(from,key))||desc.enumerable});return to},"__copyProps$2"),__reExport$2=__name((target,mod,secondTarget)=>(__copyProps$2(target,mod,"default"),secondTarget),"__reExport$2"),monaco_editor_core_exports$2={};__reExport$2(monaco_editor_core_exports$2,monaco_editor_core_star);var _a133,LanguageServiceDefaultsImpl$2=(_a133=class{constructor(languageId,options,modeConfiguration){this._onDidChange=new monaco_editor_core_exports$2.Emitter,this._languageId=languageId,this.setOptions(options),this.setModeConfiguration(modeConfiguration)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(options){this._options=options||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(modeConfiguration){this._modeConfiguration=modeConfiguration||Object.create(null),this._onDidChange.fire(this)}},__name(_a133,"LanguageServiceDefaultsImpl"),_a133),formatDefaults={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},optionsDefault={format:formatDefaults,suggest:{},data:{useDefaultDataProvider:!0}};function getConfigurationDefault(languageId){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:languageId===htmlLanguageId,documentFormattingEdits:languageId===htmlLanguageId,documentRangeFormattingEdits:languageId===htmlLanguageId}}__name(getConfigurationDefault,"getConfigurationDefault");var htmlLanguageId="html",handlebarsLanguageId="handlebars",razorLanguageId="razor",htmlLanguageService=registerHTMLLanguageService(htmlLanguageId,optionsDefault,getConfigurationDefault(htmlLanguageId)),htmlDefaults=htmlLanguageService.defaults,handlebarLanguageService=registerHTMLLanguageService(handlebarsLanguageId,optionsDefault,getConfigurationDefault(handlebarsLanguageId)),handlebarDefaults=handlebarLanguageService.defaults,razorLanguageService=registerHTMLLanguageService(razorLanguageId,optionsDefault,getConfigurationDefault(razorLanguageId)),razorDefaults=razorLanguageService.defaults;monaco_editor_core_exports$2.languages.html={htmlDefaults,razorDefaults,handlebarDefaults,htmlLanguageService,handlebarLanguageService,razorLanguageService,registerHTMLLanguageService};function getMode$2(){return Promise.resolve().then(()=>require("./htmlMode-Bj4CfAzA.js"))}__name(getMode$2,"getMode$2");function registerHTMLLanguageService(languageId,options=optionsDefault,modeConfiguration=getConfigurationDefault(languageId)){const defaults2=new LanguageServiceDefaultsImpl$2(languageId,options,modeConfiguration);let mode;const onLanguageListener=monaco_editor_core_exports$2.languages.onLanguage(languageId,async()=>{mode=(await getMode$2()).setupMode(defaults2)});return{defaults:defaults2,dispose(){onLanguageListener.dispose(),mode==null||mode.dispose(),mode=void 0}}}__name(registerHTMLLanguageService,"registerHTMLLanguageService");/*!-----------------------------------------------------------------------------
1088
+ *-----------------------------------------------------------------------------*/var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__getOwnPropNames$2=Object.getOwnPropertyNames,__hasOwnProp$2=Object.prototype.hasOwnProperty,__copyProps$2=__name((to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames$2(from))!__hasOwnProp$2.call(to,key)&&key!==except&&__defProp$6(to,key,{get:__name(()=>from[key],"get"),enumerable:!(desc=__getOwnPropDesc$6(from,key))||desc.enumerable});return to},"__copyProps$2"),__reExport$2=__name((target,mod,secondTarget)=>(__copyProps$2(target,mod,"default"),secondTarget),"__reExport$2"),monaco_editor_core_exports$2={};__reExport$2(monaco_editor_core_exports$2,monaco_editor_core_star);var _a133,LanguageServiceDefaultsImpl$2=(_a133=class{constructor(languageId,options,modeConfiguration){this._onDidChange=new monaco_editor_core_exports$2.Emitter,this._languageId=languageId,this.setOptions(options),this.setModeConfiguration(modeConfiguration)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(options){this._options=options||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(modeConfiguration){this._modeConfiguration=modeConfiguration||Object.create(null),this._onDidChange.fire(this)}},__name(_a133,"LanguageServiceDefaultsImpl"),_a133),formatDefaults={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},optionsDefault={format:formatDefaults,suggest:{},data:{useDefaultDataProvider:!0}};function getConfigurationDefault(languageId){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:languageId===htmlLanguageId,documentFormattingEdits:languageId===htmlLanguageId,documentRangeFormattingEdits:languageId===htmlLanguageId}}__name(getConfigurationDefault,"getConfigurationDefault");var htmlLanguageId="html",handlebarsLanguageId="handlebars",razorLanguageId="razor",htmlLanguageService=registerHTMLLanguageService(htmlLanguageId,optionsDefault,getConfigurationDefault(htmlLanguageId)),htmlDefaults=htmlLanguageService.defaults,handlebarLanguageService=registerHTMLLanguageService(handlebarsLanguageId,optionsDefault,getConfigurationDefault(handlebarsLanguageId)),handlebarDefaults=handlebarLanguageService.defaults,razorLanguageService=registerHTMLLanguageService(razorLanguageId,optionsDefault,getConfigurationDefault(razorLanguageId)),razorDefaults=razorLanguageService.defaults;monaco_editor_core_exports$2.languages.html={htmlDefaults,razorDefaults,handlebarDefaults,htmlLanguageService,handlebarLanguageService,razorLanguageService,registerHTMLLanguageService};function getMode$2(){return Promise.resolve().then(()=>require("./htmlMode-BHLqs4-w.js"))}__name(getMode$2,"getMode$2");function registerHTMLLanguageService(languageId,options=optionsDefault,modeConfiguration=getConfigurationDefault(languageId)){const defaults2=new LanguageServiceDefaultsImpl$2(languageId,options,modeConfiguration);let mode;const onLanguageListener=monaco_editor_core_exports$2.languages.onLanguage(languageId,async()=>{mode=(await getMode$2()).setupMode(defaults2)});return{defaults:defaults2,dispose(){onLanguageListener.dispose(),mode==null||mode.dispose(),mode=void 0}}}__name(registerHTMLLanguageService,"registerHTMLLanguageService");/*!-----------------------------------------------------------------------------
1089
1089
  * Copyright (c) Microsoft Corporation. All rights reserved.
1090
1090
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
1091
1091
  * Released under the MIT license
1092
1092
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
1093
- *-----------------------------------------------------------------------------*/var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__getOwnPropNames$1=Object.getOwnPropertyNames,__hasOwnProp$1=Object.prototype.hasOwnProperty,__copyProps$1=__name((to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames$1(from))!__hasOwnProp$1.call(to,key)&&key!==except&&__defProp$5(to,key,{get:__name(()=>from[key],"get"),enumerable:!(desc=__getOwnPropDesc$5(from,key))||desc.enumerable});return to},"__copyProps$1"),__reExport$1=__name((target,mod,secondTarget)=>(__copyProps$1(target,mod,"default"),secondTarget),"__reExport$1"),monaco_editor_core_exports$1={};__reExport$1(monaco_editor_core_exports$1,monaco_editor_core_star);var _a134,LanguageServiceDefaultsImpl$1=(_a134=class{constructor(languageId,diagnosticsOptions,modeConfiguration){this._onDidChange=new monaco_editor_core_exports$1.Emitter,this._languageId=languageId,this.setDiagnosticsOptions(diagnosticsOptions),this.setModeConfiguration(modeConfiguration)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(options){this._diagnosticsOptions=options||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(modeConfiguration){this._modeConfiguration=modeConfiguration||Object.create(null),this._onDidChange.fire(this)}},__name(_a134,"LanguageServiceDefaultsImpl"),_a134),diagnosticDefault={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},modeConfigurationDefault$1={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},jsonDefaults=new LanguageServiceDefaultsImpl$1("json",diagnosticDefault,modeConfigurationDefault$1),getWorker=__name(()=>getMode$1().then(mode=>mode.getWorker()),"getWorker");monaco_editor_core_exports$1.languages.json={jsonDefaults,getWorker};function getMode$1(){return Promise.resolve().then(()=>require("./jsonMode-BdBVsN9_.js"))}__name(getMode$1,"getMode$1");monaco_editor_core_exports$1.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});monaco_editor_core_exports$1.languages.onLanguage("json",()=>{getMode$1().then(mode=>mode.setupMode(jsonDefaults))});/*!-----------------------------------------------------------------------------
1093
+ *-----------------------------------------------------------------------------*/var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__getOwnPropNames$1=Object.getOwnPropertyNames,__hasOwnProp$1=Object.prototype.hasOwnProperty,__copyProps$1=__name((to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames$1(from))!__hasOwnProp$1.call(to,key)&&key!==except&&__defProp$5(to,key,{get:__name(()=>from[key],"get"),enumerable:!(desc=__getOwnPropDesc$5(from,key))||desc.enumerable});return to},"__copyProps$1"),__reExport$1=__name((target,mod,secondTarget)=>(__copyProps$1(target,mod,"default"),secondTarget),"__reExport$1"),monaco_editor_core_exports$1={};__reExport$1(monaco_editor_core_exports$1,monaco_editor_core_star);var _a134,LanguageServiceDefaultsImpl$1=(_a134=class{constructor(languageId,diagnosticsOptions,modeConfiguration){this._onDidChange=new monaco_editor_core_exports$1.Emitter,this._languageId=languageId,this.setDiagnosticsOptions(diagnosticsOptions),this.setModeConfiguration(modeConfiguration)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(options){this._diagnosticsOptions=options||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(modeConfiguration){this._modeConfiguration=modeConfiguration||Object.create(null),this._onDidChange.fire(this)}},__name(_a134,"LanguageServiceDefaultsImpl"),_a134),diagnosticDefault={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},modeConfigurationDefault$1={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},jsonDefaults=new LanguageServiceDefaultsImpl$1("json",diagnosticDefault,modeConfigurationDefault$1),getWorker=__name(()=>getMode$1().then(mode=>mode.getWorker()),"getWorker");monaco_editor_core_exports$1.languages.json={jsonDefaults,getWorker};function getMode$1(){return Promise.resolve().then(()=>require("./jsonMode-Csu0RiVw.js"))}__name(getMode$1,"getMode$1");monaco_editor_core_exports$1.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});monaco_editor_core_exports$1.languages.onLanguage("json",()=>{getMode$1().then(mode=>mode.setupMode(jsonDefaults))});/*!-----------------------------------------------------------------------------
1094
1094
  * Copyright (c) Microsoft Corporation. All rights reserved.
1095
1095
  * Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
1096
1096
  * Released under the MIT license
1097
1097
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
1098
- *-----------------------------------------------------------------------------*/var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__copyProps=__name((to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp$4(to,key,{get:__name(()=>from[key],"get"),enumerable:!(desc=__getOwnPropDesc$4(from,key))||desc.enumerable});return to},"__copyProps"),__reExport=__name((target,mod,secondTarget)=>(__copyProps(target,mod,"default"),secondTarget),"__reExport"),typescriptVersion="5.4.5",monaco_editor_core_exports={};__reExport(monaco_editor_core_exports,monaco_editor_core_star);var ModuleKind=(ModuleKind2=>(ModuleKind2[ModuleKind2.None=0]="None",ModuleKind2[ModuleKind2.CommonJS=1]="CommonJS",ModuleKind2[ModuleKind2.AMD=2]="AMD",ModuleKind2[ModuleKind2.UMD=3]="UMD",ModuleKind2[ModuleKind2.System=4]="System",ModuleKind2[ModuleKind2.ES2015=5]="ES2015",ModuleKind2[ModuleKind2.ESNext=99]="ESNext",ModuleKind2))(ModuleKind||{}),JsxEmit=(JsxEmit2=>(JsxEmit2[JsxEmit2.None=0]="None",JsxEmit2[JsxEmit2.Preserve=1]="Preserve",JsxEmit2[JsxEmit2.React=2]="React",JsxEmit2[JsxEmit2.ReactNative=3]="ReactNative",JsxEmit2[JsxEmit2.ReactJSX=4]="ReactJSX",JsxEmit2[JsxEmit2.ReactJSXDev=5]="ReactJSXDev",JsxEmit2))(JsxEmit||{}),NewLineKind=(NewLineKind2=>(NewLineKind2[NewLineKind2.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",NewLineKind2[NewLineKind2.LineFeed=1]="LineFeed",NewLineKind2))(NewLineKind||{}),ScriptTarget=(ScriptTarget2=>(ScriptTarget2[ScriptTarget2.ES3=0]="ES3",ScriptTarget2[ScriptTarget2.ES5=1]="ES5",ScriptTarget2[ScriptTarget2.ES2015=2]="ES2015",ScriptTarget2[ScriptTarget2.ES2016=3]="ES2016",ScriptTarget2[ScriptTarget2.ES2017=4]="ES2017",ScriptTarget2[ScriptTarget2.ES2018=5]="ES2018",ScriptTarget2[ScriptTarget2.ES2019=6]="ES2019",ScriptTarget2[ScriptTarget2.ES2020=7]="ES2020",ScriptTarget2[ScriptTarget2.ESNext=99]="ESNext",ScriptTarget2[ScriptTarget2.JSON=100]="JSON",ScriptTarget2[ScriptTarget2.Latest=99]="Latest",ScriptTarget2))(ScriptTarget||{}),ModuleResolutionKind=(ModuleResolutionKind2=>(ModuleResolutionKind2[ModuleResolutionKind2.Classic=1]="Classic",ModuleResolutionKind2[ModuleResolutionKind2.NodeJs=2]="NodeJs",ModuleResolutionKind2))(ModuleResolutionKind||{}),_a135,LanguageServiceDefaultsImpl=(_a135=class{constructor(compilerOptions,diagnosticsOptions,workerOptions,inlayHintsOptions,modeConfiguration){this._onDidChange=new monaco_editor_core_exports.Emitter,this._onDidExtraLibsChange=new monaco_editor_core_exports.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(compilerOptions),this.setDiagnosticsOptions(diagnosticsOptions),this.setWorkerOptions(workerOptions),this.setInlayHintsOptions(inlayHintsOptions),this.setModeConfiguration(modeConfiguration),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(content,_filePath){let filePath;if(typeof _filePath>"u"?filePath=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:filePath=_filePath,this._extraLibs[filePath]&&this._extraLibs[filePath].content===content)return{dispose:__name(()=>{},"dispose")};let myVersion=1;return this._removedExtraLibs[filePath]&&(myVersion=this._removedExtraLibs[filePath]+1),this._extraLibs[filePath]&&(myVersion=this._extraLibs[filePath].version+1),this._extraLibs[filePath]={content,version:myVersion},this._fireOnDidExtraLibsChangeSoon(),{dispose:__name(()=>{let extraLib=this._extraLibs[filePath];extraLib&&extraLib.version===myVersion&&(delete this._extraLibs[filePath],this._removedExtraLibs[filePath]=myVersion,this._fireOnDidExtraLibsChangeSoon())},"dispose")}}setExtraLibs(libs){for(const filePath in this._extraLibs)this._removedExtraLibs[filePath]=this._extraLibs[filePath].version;if(this._extraLibs=Object.create(null),libs&&libs.length>0)for(const lib of libs){const filePath=lib.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,content=lib.content;let myVersion=1;this._removedExtraLibs[filePath]&&(myVersion=this._removedExtraLibs[filePath]+1),this._extraLibs[filePath]={content,version:myVersion}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(options){this._compilerOptions=options||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(options){this._diagnosticsOptions=options||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(options){this._workerOptions=options||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(options){this._inlayHintsOptions=options||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(value){}setEagerModelSync(value){this._eagerModelSync=value}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(modeConfiguration){this._modeConfiguration=modeConfiguration||Object.create(null),this._onDidChange.fire(void 0)}},__name(_a135,"LanguageServiceDefaultsImpl"),_a135),typescriptVersion2=typescriptVersion,modeConfigurationDefault={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},typescriptDefaults=new LanguageServiceDefaultsImpl({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},modeConfigurationDefault),javascriptDefaults=new LanguageServiceDefaultsImpl({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},modeConfigurationDefault),getTypeScriptWorker=__name(()=>getMode().then(mode=>mode.getTypeScriptWorker()),"getTypeScriptWorker"),getJavaScriptWorker=__name(()=>getMode().then(mode=>mode.getJavaScriptWorker()),"getJavaScriptWorker");monaco_editor_core_exports.languages.typescript={ModuleKind,JsxEmit,NewLineKind,ScriptTarget,ModuleResolutionKind,typescriptVersion:typescriptVersion2,typescriptDefaults,javascriptDefaults,getTypeScriptWorker,getJavaScriptWorker};function getMode(){return Promise.resolve().then(()=>require("./tsMode-N-LS5RKx.js"))}__name(getMode,"getMode");monaco_editor_core_exports.languages.onLanguage("typescript",()=>getMode().then(mode=>mode.setupTypeScript(typescriptDefaults)));monaco_editor_core_exports.languages.onLanguage("javascript",()=>getMode().then(mode=>mode.setupJavaScript(javascriptDefaults)));const _ToggleCollapseUnchangedRegions=class _ToggleCollapseUnchangedRegions extends Action2{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:localize2("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Codicon.map,toggled:ContextKeyExpr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:ContextKeyExpr.has("isInDiffEditor"),menu:{when:ContextKeyExpr.has("isInDiffEditor"),id:MenuId.EditorTitle,order:22,group:"navigation"}})}run(accessor,...args){const configurationService=accessor.get(IConfigurationService),newValue=!configurationService.getValue("diffEditor.hideUnchangedRegions.enabled");configurationService.updateValue("diffEditor.hideUnchangedRegions.enabled",newValue)}};__name(_ToggleCollapseUnchangedRegions,"ToggleCollapseUnchangedRegions");let ToggleCollapseUnchangedRegions=_ToggleCollapseUnchangedRegions;const _ToggleShowMovedCodeBlocks=class _ToggleShowMovedCodeBlocks extends Action2{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:localize2("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:ContextKeyExpr.has("isInDiffEditor")})}run(accessor,...args){const configurationService=accessor.get(IConfigurationService),newValue=!configurationService.getValue("diffEditor.experimental.showMoves");configurationService.updateValue("diffEditor.experimental.showMoves",newValue)}};__name(_ToggleShowMovedCodeBlocks,"ToggleShowMovedCodeBlocks");let ToggleShowMovedCodeBlocks=_ToggleShowMovedCodeBlocks;const _ToggleUseInlineViewWhenSpaceIsLimited=class _ToggleUseInlineViewWhenSpaceIsLimited extends Action2{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:localize2("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:ContextKeyExpr.has("isInDiffEditor")})}run(accessor,...args){const configurationService=accessor.get(IConfigurationService),newValue=!configurationService.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");configurationService.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",newValue)}};__name(_ToggleUseInlineViewWhenSpaceIsLimited,"ToggleUseInlineViewWhenSpaceIsLimited");let ToggleUseInlineViewWhenSpaceIsLimited=_ToggleUseInlineViewWhenSpaceIsLimited;const diffEditorCategory=localize2("diffEditor","Diff Editor"),_SwitchSide=class _SwitchSide extends EditorAction2{constructor(){super({id:"diffEditor.switchSide",title:localize2("switchSide","Switch Side"),icon:Codicon.arrowSwap,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(accessor,editor2,arg){const diffEditor=findFocusedDiffEditor(accessor);if(diffEditor instanceof DiffEditorWidget){if(arg&&arg.dryRun)return{destinationSelection:diffEditor.mapToOtherSide().destinationSelection};diffEditor.switchSide()}}};__name(_SwitchSide,"SwitchSide");let SwitchSide=_SwitchSide;const _ExitCompareMove=class _ExitCompareMove extends EditorAction2{constructor(){super({id:"diffEditor.exitCompareMove",title:localize2("exitCompareMove","Exit Compare Move"),icon:Codicon.close,precondition:EditorContextKeys.comparingMovedCode,f1:!1,category:diffEditorCategory,keybinding:{weight:1e4,primary:9}})}runEditorCommand(accessor,editor2,...args){const diffEditor=findFocusedDiffEditor(accessor);diffEditor instanceof DiffEditorWidget&&diffEditor.exitCompareMove()}};__name(_ExitCompareMove,"ExitCompareMove");let ExitCompareMove=_ExitCompareMove;const _CollapseAllUnchangedRegions=class _CollapseAllUnchangedRegions extends EditorAction2{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:localize2("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Codicon.fold,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(accessor,editor2,...args){const diffEditor=findFocusedDiffEditor(accessor);diffEditor instanceof DiffEditorWidget&&diffEditor.collapseAllUnchangedRegions()}};__name(_CollapseAllUnchangedRegions,"CollapseAllUnchangedRegions");let CollapseAllUnchangedRegions=_CollapseAllUnchangedRegions;const _ShowAllUnchangedRegions=class _ShowAllUnchangedRegions extends EditorAction2{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:localize2("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Codicon.unfold,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(accessor,editor2,...args){const diffEditor=findFocusedDiffEditor(accessor);diffEditor instanceof DiffEditorWidget&&diffEditor.showAllUnchangedRegions()}};__name(_ShowAllUnchangedRegions,"ShowAllUnchangedRegions");let ShowAllUnchangedRegions=_ShowAllUnchangedRegions;const _RevertHunkOrSelection=class _RevertHunkOrSelection extends Action2{constructor(){super({id:"diffEditor.revert",title:localize2("revert","Revert"),f1:!1,category:diffEditorCategory})}run(accessor,arg){var _a300;const diffEditor=findDiffEditor(accessor,arg.originalUri,arg.modifiedUri);diffEditor instanceof DiffEditorWidget&&diffEditor.revertRangeMappings((_a300=arg.mapping.innerChanges)!=null?_a300:[])}};__name(_RevertHunkOrSelection,"RevertHunkOrSelection");let RevertHunkOrSelection=_RevertHunkOrSelection;const accessibleDiffViewerCategory=localize2("accessibleDiffViewer","Accessible Diff Viewer"),_AccessibleDiffViewerNext=class _AccessibleDiffViewerNext extends Action2{constructor(){super({id:_AccessibleDiffViewerNext.id,title:localize2("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:accessibleDiffViewerCategory,precondition:ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(accessor){const diffEditor=findFocusedDiffEditor(accessor);diffEditor==null||diffEditor.accessibleDiffViewerNext()}};__name(_AccessibleDiffViewerNext,"AccessibleDiffViewerNext"),_AccessibleDiffViewerNext.id="editor.action.accessibleDiffViewer.next";let AccessibleDiffViewerNext=_AccessibleDiffViewerNext;const _AccessibleDiffViewerPrev=class _AccessibleDiffViewerPrev extends Action2{constructor(){super({id:_AccessibleDiffViewerPrev.id,title:localize2("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:accessibleDiffViewerCategory,precondition:ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(accessor){const diffEditor=findFocusedDiffEditor(accessor);diffEditor==null||diffEditor.accessibleDiffViewerPrev()}};__name(_AccessibleDiffViewerPrev,"AccessibleDiffViewerPrev"),_AccessibleDiffViewerPrev.id="editor.action.accessibleDiffViewer.prev";let AccessibleDiffViewerPrev=_AccessibleDiffViewerPrev;function findDiffEditor(accessor,originalUri,modifiedUri){return accessor.get(ICodeEditorService).listDiffEditors().find(diffEditor=>{var _a300,_b2;const modified=diffEditor.getModifiedEditor(),original=diffEditor.getOriginalEditor();return modified&&((_a300=modified.getModel())==null?void 0:_a300.uri.toString())===modifiedUri.toString()&&original&&((_b2=original.getModel())==null?void 0:_b2.uri.toString())===originalUri.toString()})||null}__name(findDiffEditor,"findDiffEditor");function findFocusedDiffEditor(accessor){const diffEditors=accessor.get(ICodeEditorService).listDiffEditors(),activeElement=getActiveElement();if(activeElement)for(const d of diffEditors){const container=d.getContainerDomNode();if(isElementOrParentOf(container,activeElement))return d}return null}__name(findFocusedDiffEditor,"findFocusedDiffEditor");function isElementOrParentOf(elementOrParent,element){let e=element;for(;e;){if(e===elementOrParent)return!0;e=e.parentElement}return!1}__name(isElementOrParentOf,"isElementOrParentOf");registerAction2(ToggleCollapseUnchangedRegions);registerAction2(ToggleShowMovedCodeBlocks);registerAction2(ToggleUseInlineViewWhenSpaceIsLimited);MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:new ToggleUseInlineViewWhenSpaceIsLimited().desc.id,title:localize("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:ContextKeyExpr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:ContextKeyExpr.has("isInDiffEditor")},order:11,group:"1_diff",when:ContextKeyExpr.and(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,ContextKeyExpr.has("isInDiffEditor"))});MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:new ToggleShowMovedCodeBlocks().desc.id,title:localize("showMoves","Show Moved Code Blocks"),icon:Codicon.move,toggled:ContextKeyEqualsExpr.create("config.diffEditor.experimental.showMoves",!0),precondition:ContextKeyExpr.has("isInDiffEditor")},order:10,group:"1_diff",when:ContextKeyExpr.has("isInDiffEditor")});registerAction2(RevertHunkOrSelection);for(const ctx of[{icon:Codicon.arrowRight,key:EditorContextKeys.diffEditorInlineMode.toNegated()},{icon:Codicon.discard,key:EditorContextKeys.diffEditorInlineMode}])MenuRegistry.appendMenuItem(MenuId.DiffEditorHunkToolbar,{command:{id:new RevertHunkOrSelection().desc.id,title:localize("revertHunk","Revert Block"),icon:ctx.icon},when:ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable,ctx.key),order:5,group:"primary"}),MenuRegistry.appendMenuItem(MenuId.DiffEditorSelectionToolbar,{command:{id:new RevertHunkOrSelection().desc.id,title:localize("revertSelection","Revert Selection"),icon:ctx.icon},when:ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable,ctx.key),order:5,group:"primary"});registerAction2(SwitchSide);registerAction2(ExitCompareMove);registerAction2(CollapseAllUnchangedRegions);registerAction2(ShowAllUnchangedRegions);MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:AccessibleDiffViewerNext.id,title:localize("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:ContextKeyExpr.has("isInDiffEditor")},order:10,group:"2_diff",when:ContextKeyExpr.and(EditorContextKeys.accessibleDiffViewerVisible.negate(),ContextKeyExpr.has("isInDiffEditor"))});CommandsRegistry.registerCommandAlias("editor.action.diffReview.next",AccessibleDiffViewerNext.id);registerAction2(AccessibleDiffViewerNext);CommandsRegistry.registerCommandAlias("editor.action.diffReview.prev",AccessibleDiffViewerPrev.id);registerAction2(AccessibleDiffViewerPrev);var __decorate$1C=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$1C=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},SelectionAnchorController_1;const SelectionAnchorSet=new RawContextKey("selectionAnchorSet",!1);var _a136;let SelectionAnchorController=(_a136=class{static get(editor2){return editor2.getContribution(SelectionAnchorController_1.ID)}constructor(editor2,contextKeyService){this.editor=editor2,this.selectionAnchorSetContextKey=SelectionAnchorSet.bindTo(contextKeyService),this.modelChangeListener=editor2.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const position=this.editor.getPosition();this.editor.changeDecorations(accessor=>{this.decorationId&&accessor.removeDecoration(this.decorationId),this.decorationId=accessor.addDecoration(Selection$1.fromPositions(position,position),{description:"selection-anchor",stickiness:1,hoverMessage:new MarkdownString().appendText(localize("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),alert(localize("anchorSet","Anchor set at {0}:{1}",position.lineNumber,position.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const anchorPosition=this.editor.getModel().getDecorationRange(this.decorationId);anchorPosition&&this.editor.setPosition(anchorPosition.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const start=this.editor.getModel().getDecorationRange(this.decorationId);if(start){const end=this.editor.getPosition();this.editor.setSelection(Selection$1.fromPositions(start.getStartPosition(),end)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const decorationId=this.decorationId;this.editor.changeDecorations(accessor=>{accessor.removeDecoration(decorationId),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}},__name(_a136,"SelectionAnchorController"),SelectionAnchorController_1=_a136,_a136.ID="editor.contrib.selectionAnchorController",_a136);SelectionAnchorController=SelectionAnchorController_1=__decorate$1C([__param$1C(1,IContextKeyService)],SelectionAnchorController);const _SetSelectionAnchor=class _SetSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.setSelectionAnchor",label:localize("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2080),weight:100}})}async run(_accessor,editor2){var _a300;(_a300=SelectionAnchorController.get(editor2))==null||_a300.setSelectionAnchor()}};__name(_SetSelectionAnchor,"SetSelectionAnchor");let SetSelectionAnchor=_SetSelectionAnchor;const _GoToSelectionAnchor=class _GoToSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.goToSelectionAnchor",label:localize("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:SelectionAnchorSet})}async run(_accessor,editor2){var _a300;(_a300=SelectionAnchorController.get(editor2))==null||_a300.goToSelectionAnchor()}};__name(_GoToSelectionAnchor,"GoToSelectionAnchor");let GoToSelectionAnchor=_GoToSelectionAnchor;const _SelectFromAnchorToCursor=class _SelectFromAnchorToCursor extends EditorAction{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:localize("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:SelectionAnchorSet,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2089),weight:100}})}async run(_accessor,editor2){var _a300;(_a300=SelectionAnchorController.get(editor2))==null||_a300.selectFromAnchorToCursor()}};__name(_SelectFromAnchorToCursor,"SelectFromAnchorToCursor");let SelectFromAnchorToCursor=_SelectFromAnchorToCursor;const _CancelSelectionAnchor=class _CancelSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:localize("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:SelectionAnchorSet,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:9,weight:100}})}async run(_accessor,editor2){var _a300;(_a300=SelectionAnchorController.get(editor2))==null||_a300.cancelSelectionAnchor()}};__name(_CancelSelectionAnchor,"CancelSelectionAnchor");let CancelSelectionAnchor=_CancelSelectionAnchor;registerEditorContribution(SelectionAnchorController.ID,SelectionAnchorController,4);registerEditorAction(SetSelectionAnchor);registerEditorAction(GoToSelectionAnchor);registerEditorAction(SelectFromAnchorToCursor);registerEditorAction(CancelSelectionAnchor);const overviewRulerBracketMatchForeground=registerColor("editorOverviewRuler.bracketMatchForeground","#A0A0A0",localize("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets.")),_JumpToBracketAction=class _JumpToBracketAction extends EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:localize("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(accessor,editor2){var _a300;(_a300=BracketMatchingController.get(editor2))==null||_a300.jumpToBracket()}};__name(_JumpToBracketAction,"JumpToBracketAction");let JumpToBracketAction=_JumpToBracketAction;const _SelectToBracketAction=class _SelectToBracketAction extends EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:localize("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:localize2("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(accessor,editor2,args){var _a300;let selectBrackets=!0;args&&args.selectBrackets===!1&&(selectBrackets=!1),(_a300=BracketMatchingController.get(editor2))==null||_a300.selectToBracket(selectBrackets)}};__name(_SelectToBracketAction,"SelectToBracketAction");let SelectToBracketAction=_SelectToBracketAction;const _RemoveBracketsAction=class _RemoveBracketsAction extends EditorAction{constructor(){super({id:"editor.action.removeBrackets",label:localize("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2561,weight:100}})}run(accessor,editor2){var _a300;(_a300=BracketMatchingController.get(editor2))==null||_a300.removeBrackets(this.id)}};__name(_RemoveBracketsAction,"RemoveBracketsAction");let RemoveBracketsAction=_RemoveBracketsAction;const _BracketsData=class _BracketsData{constructor(position,brackets,options){this.position=position,this.brackets=brackets,this.options=options}};__name(_BracketsData,"BracketsData");let BracketsData=_BracketsData;const _BracketMatchingController=class _BracketMatchingController extends Disposable{static get(editor2){return editor2.getContribution(_BracketMatchingController.ID)}constructor(editor2){super(),this._editor=editor2,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(editor2.onDidChangeCursorPosition(e=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(editor2.onDidChangeModelContent(e=>{this._updateBracketsSoon.schedule()})),this._register(editor2.onDidChangeModel(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(editor2.onDidChangeModelLanguageConfiguration(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(editor2.onDidChangeConfiguration(e=>{e.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(editor2.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(editor2.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const model=this._editor.getModel(),newSelections=this._editor.getSelections().map(selection=>{const position=selection.getStartPosition(),brackets=model.bracketPairs.matchBracket(position);let newCursorPosition=null;if(brackets)brackets[0].containsPosition(position)&&!brackets[1].containsPosition(position)?newCursorPosition=brackets[1].getStartPosition():brackets[1].containsPosition(position)&&(newCursorPosition=brackets[0].getStartPosition());else{const enclosingBrackets=model.bracketPairs.findEnclosingBrackets(position);if(enclosingBrackets)newCursorPosition=enclosingBrackets[1].getStartPosition();else{const nextBracket=model.bracketPairs.findNextBracket(position);nextBracket&&nextBracket.range&&(newCursorPosition=nextBracket.range.getStartPosition())}}return newCursorPosition?new Selection$1(newCursorPosition.lineNumber,newCursorPosition.column,newCursorPosition.lineNumber,newCursorPosition.column):new Selection$1(position.lineNumber,position.column,position.lineNumber,position.column)});this._editor.setSelections(newSelections),this._editor.revealRange(newSelections[0])}selectToBracket(selectBrackets){if(!this._editor.hasModel())return;const model=this._editor.getModel(),newSelections=[];this._editor.getSelections().forEach(selection=>{const position=selection.getStartPosition();let brackets=model.bracketPairs.matchBracket(position);if(!brackets&&(brackets=model.bracketPairs.findEnclosingBrackets(position),!brackets)){const nextBracket=model.bracketPairs.findNextBracket(position);nextBracket&&nextBracket.range&&(brackets=model.bracketPairs.matchBracket(nextBracket.range.getStartPosition()))}let selectFrom=null,selectTo=null;if(brackets){brackets.sort(Range$2.compareRangesUsingStarts);const[open,close]=brackets;if(selectFrom=selectBrackets?open.getStartPosition():open.getEndPosition(),selectTo=selectBrackets?close.getEndPosition():close.getStartPosition(),close.containsPosition(position)){const tmp=selectFrom;selectFrom=selectTo,selectTo=tmp}}selectFrom&&selectTo&&newSelections.push(new Selection$1(selectFrom.lineNumber,selectFrom.column,selectTo.lineNumber,selectTo.column))}),newSelections.length>0&&(this._editor.setSelections(newSelections),this._editor.revealRange(newSelections[0]))}removeBrackets(editSource){if(!this._editor.hasModel())return;const model=this._editor.getModel();this._editor.getSelections().forEach(selection=>{const position=selection.getPosition();let brackets=model.bracketPairs.matchBracket(position);brackets||(brackets=model.bracketPairs.findEnclosingBrackets(position)),brackets&&(this._editor.pushUndoStop(),this._editor.executeEdits(editSource,[{range:brackets[0],text:""},{range:brackets[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const newDecorations=[];let newDecorationsLen=0;for(const bracketData of this._lastBracketsData){const brackets=bracketData.brackets;brackets&&(newDecorations[newDecorationsLen++]={range:brackets[0],options:bracketData.options},newDecorations[newDecorationsLen++]={range:brackets[1],options:bracketData.options})}this._decorations.set(newDecorations)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const selections=this._editor.getSelections();if(selections.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const model=this._editor.getModel(),versionId=model.getVersionId();let previousData=[];this._lastVersionId===versionId&&(previousData=this._lastBracketsData);const positions=[];let positionsLen=0;for(let i=0,len=selections.length;i<len;i++){const selection=selections[i];selection.isEmpty()&&(positions[positionsLen++]=selection.getStartPosition())}positions.length>1&&positions.sort(Position$1.compare);const newData=[];let newDataLen=0,previousIndex=0;const previousLen=previousData.length;for(let i=0,len=positions.length;i<len;i++){const position=positions[i];for(;previousIndex<previousLen&&previousData[previousIndex].position.isBefore(position);)previousIndex++;if(previousIndex<previousLen&&previousData[previousIndex].position.equals(position))newData[newDataLen++]=previousData[previousIndex];else{let brackets=model.bracketPairs.matchBracket(position,20),options=_BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!brackets&&this._matchBrackets==="always"&&(brackets=model.bracketPairs.findEnclosingBrackets(position,20),options=_BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),newData[newDataLen++]=new BracketsData(position,brackets,options)}}this._lastBracketsData=newData,this._lastVersionId=versionId}};__name(_BracketMatchingController,"BracketMatchingController"),_BracketMatchingController.ID="editor.contrib.bracketMatchingController",_BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=ModelDecorationOptions.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:themeColorFromId(overviewRulerBracketMatchForeground),position:OverviewRulerLane.Center}}),_BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=ModelDecorationOptions.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let BracketMatchingController=_BracketMatchingController;registerEditorContribution(BracketMatchingController.ID,BracketMatchingController,1);registerEditorAction(SelectToBracketAction);registerEditorAction(JumpToBracketAction);registerEditorAction(RemoveBracketsAction);MenuRegistry.appendMenuItem(MenuId.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:localize({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});const _MoveCaretCommand=class _MoveCaretCommand{constructor(selection,isMovingLeft){this._selection=selection,this._isMovingLeft=isMovingLeft}getEditOperations(model,builder){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const lineNumber=this._selection.startLineNumber,startColumn=this._selection.startColumn,endColumn=this._selection.endColumn;if(!(this._isMovingLeft&&startColumn===1)&&!(!this._isMovingLeft&&endColumn===model.getLineMaxColumn(lineNumber)))if(this._isMovingLeft){const rangeBefore=new Range$2(lineNumber,startColumn-1,lineNumber,startColumn),charBefore=model.getValueInRange(rangeBefore);builder.addEditOperation(rangeBefore,null),builder.addEditOperation(new Range$2(lineNumber,endColumn,lineNumber,endColumn),charBefore)}else{const rangeAfter=new Range$2(lineNumber,endColumn,lineNumber,endColumn+1),charAfter=model.getValueInRange(rangeAfter);builder.addEditOperation(rangeAfter,null),builder.addEditOperation(new Range$2(lineNumber,startColumn,lineNumber,startColumn),charAfter)}}computeCursorState(model,helper){return this._isMovingLeft?new Selection$1(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Selection$1(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}};__name(_MoveCaretCommand,"MoveCaretCommand");let MoveCaretCommand=_MoveCaretCommand;const _MoveCaretAction=class _MoveCaretAction extends EditorAction{constructor(left,opts){super(opts),this.left=left}run(accessor,editor2){if(!editor2.hasModel())return;const commands=[],selections=editor2.getSelections();for(const selection of selections)commands.push(new MoveCaretCommand(selection,this.left));editor2.pushUndoStop(),editor2.executeCommands(this.id,commands),editor2.pushUndoStop()}};__name(_MoveCaretAction,"MoveCaretAction");let MoveCaretAction=_MoveCaretAction;const _MoveCaretLeftAction=class _MoveCaretLeftAction extends MoveCaretAction{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:localize("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:EditorContextKeys.writable})}};__name(_MoveCaretLeftAction,"MoveCaretLeftAction");let MoveCaretLeftAction=_MoveCaretLeftAction;const _MoveCaretRightAction=class _MoveCaretRightAction extends MoveCaretAction{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:localize("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:EditorContextKeys.writable})}};__name(_MoveCaretRightAction,"MoveCaretRightAction");let MoveCaretRightAction=_MoveCaretRightAction;registerEditorAction(MoveCaretLeftAction);registerEditorAction(MoveCaretRightAction);const _TransposeLettersAction=class _TransposeLettersAction extends EditorAction{constructor(){super({id:"editor.action.transposeLetters",label:localize("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(accessor,editor2){if(!editor2.hasModel())return;const model=editor2.getModel(),commands=[],selections=editor2.getSelections();for(const selection of selections){if(!selection.isEmpty())continue;const lineNumber=selection.startLineNumber,column=selection.startColumn,lastColumn=model.getLineMaxColumn(lineNumber);if(lineNumber===1&&(column===1||column===2&&lastColumn===2))continue;const endPosition=column===lastColumn?selection.getPosition():MoveOperations.rightPosition(model,selection.getPosition().lineNumber,selection.getPosition().column),middlePosition=MoveOperations.leftPosition(model,endPosition),beginPosition=MoveOperations.leftPosition(model,middlePosition),leftChar=model.getValueInRange(Range$2.fromPositions(beginPosition,middlePosition)),rightChar=model.getValueInRange(Range$2.fromPositions(middlePosition,endPosition)),replaceRange=Range$2.fromPositions(beginPosition,endPosition);commands.push(new ReplaceCommand(replaceRange,rightChar+leftChar))}commands.length>0&&(editor2.pushUndoStop(),editor2.executeCommands(this.id,commands),editor2.pushUndoStop())}};__name(_TransposeLettersAction,"TransposeLettersAction");let TransposeLettersAction=_TransposeLettersAction;registerEditorAction(TransposeLettersAction);const generateUuid=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let getRandomValues;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?getRandomValues=crypto.getRandomValues.bind(crypto):getRandomValues=__name(function(bucket){for(let i=0;i<bucket.length;i++)bucket[i]=Math.floor(Math.random()*256);return bucket},"getRandomValues");const _data=new Uint8Array(16),_hex=[];for(let i=0;i<256;i++)_hex.push(i.toString(16).padStart(2,"0"));return __name(function(){getRandomValues(_data),_data[6]=_data[6]&15|64,_data[8]=_data[8]&63|128;let i=0,result="";return result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+="-",result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+="-",result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+="-",result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+="-",result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result},"generateUuid")}();function createStringDataTransferItem(stringOrPromise){return{asString:__name(async()=>stringOrPromise,"asString"),asFile:__name(()=>{},"asFile"),value:typeof stringOrPromise=="string"?stringOrPromise:void 0}}__name(createStringDataTransferItem,"createStringDataTransferItem");function createFileDataTransferItem(fileName,uri,data){const file={id:generateUuid(),name:fileName,uri,data};return{asString:__name(async()=>"","asString"),asFile:__name(()=>file,"asFile"),value:void 0}}__name(createFileDataTransferItem,"createFileDataTransferItem");const _VSDataTransfer=class _VSDataTransfer{constructor(){this._entries=new Map}get size(){let size2=0;for(const _ of this._entries)size2++;return size2}has(mimeType){return this._entries.has(this.toKey(mimeType))}matches(pattern){const mimes=[...this._entries.keys()];return Iterable.some(this,([_,item])=>item.asFile())&&mimes.push("files"),matchesMimeType_normalized(normalizeMimeType(pattern),mimes)}get(mimeType){var _a300;return(_a300=this._entries.get(this.toKey(mimeType)))==null?void 0:_a300[0]}append(mimeType,value){const existing=this._entries.get(mimeType);existing?existing.push(value):this._entries.set(this.toKey(mimeType),[value])}replace(mimeType,value){this._entries.set(this.toKey(mimeType),[value])}delete(mimeType){this._entries.delete(this.toKey(mimeType))}*[Symbol.iterator](){for(const[mine,items]of this._entries)for(const item of items)yield[mine,item]}toKey(mimeType){return normalizeMimeType(mimeType)}};__name(_VSDataTransfer,"VSDataTransfer");let VSDataTransfer=_VSDataTransfer;function normalizeMimeType(mimeType){return mimeType.toLowerCase()}__name(normalizeMimeType,"normalizeMimeType");function matchesMimeType(pattern,mimeTypes){return matchesMimeType_normalized(normalizeMimeType(pattern),mimeTypes.map(normalizeMimeType))}__name(matchesMimeType,"matchesMimeType");function matchesMimeType_normalized(normalizedPattern,normalizedMimeTypes){if(normalizedPattern==="*/*")return normalizedMimeTypes.length>0;if(normalizedMimeTypes.includes(normalizedPattern))return!0;const wildcard=normalizedPattern.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!wildcard)return!1;const[_,type,subtype]=wildcard;return subtype==="*"?normalizedMimeTypes.some(mime=>mime.startsWith(type+"/")):!1}__name(matchesMimeType_normalized,"matchesMimeType_normalized");const UriList=Object.freeze({create:__name(entries2=>distinct(entries2.map(x=>x.toString())).join(`\r
1098
+ *-----------------------------------------------------------------------------*/var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__copyProps=__name((to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp$4(to,key,{get:__name(()=>from[key],"get"),enumerable:!(desc=__getOwnPropDesc$4(from,key))||desc.enumerable});return to},"__copyProps"),__reExport=__name((target,mod,secondTarget)=>(__copyProps(target,mod,"default"),secondTarget),"__reExport"),typescriptVersion="5.4.5",monaco_editor_core_exports={};__reExport(monaco_editor_core_exports,monaco_editor_core_star);var ModuleKind=(ModuleKind2=>(ModuleKind2[ModuleKind2.None=0]="None",ModuleKind2[ModuleKind2.CommonJS=1]="CommonJS",ModuleKind2[ModuleKind2.AMD=2]="AMD",ModuleKind2[ModuleKind2.UMD=3]="UMD",ModuleKind2[ModuleKind2.System=4]="System",ModuleKind2[ModuleKind2.ES2015=5]="ES2015",ModuleKind2[ModuleKind2.ESNext=99]="ESNext",ModuleKind2))(ModuleKind||{}),JsxEmit=(JsxEmit2=>(JsxEmit2[JsxEmit2.None=0]="None",JsxEmit2[JsxEmit2.Preserve=1]="Preserve",JsxEmit2[JsxEmit2.React=2]="React",JsxEmit2[JsxEmit2.ReactNative=3]="ReactNative",JsxEmit2[JsxEmit2.ReactJSX=4]="ReactJSX",JsxEmit2[JsxEmit2.ReactJSXDev=5]="ReactJSXDev",JsxEmit2))(JsxEmit||{}),NewLineKind=(NewLineKind2=>(NewLineKind2[NewLineKind2.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",NewLineKind2[NewLineKind2.LineFeed=1]="LineFeed",NewLineKind2))(NewLineKind||{}),ScriptTarget=(ScriptTarget2=>(ScriptTarget2[ScriptTarget2.ES3=0]="ES3",ScriptTarget2[ScriptTarget2.ES5=1]="ES5",ScriptTarget2[ScriptTarget2.ES2015=2]="ES2015",ScriptTarget2[ScriptTarget2.ES2016=3]="ES2016",ScriptTarget2[ScriptTarget2.ES2017=4]="ES2017",ScriptTarget2[ScriptTarget2.ES2018=5]="ES2018",ScriptTarget2[ScriptTarget2.ES2019=6]="ES2019",ScriptTarget2[ScriptTarget2.ES2020=7]="ES2020",ScriptTarget2[ScriptTarget2.ESNext=99]="ESNext",ScriptTarget2[ScriptTarget2.JSON=100]="JSON",ScriptTarget2[ScriptTarget2.Latest=99]="Latest",ScriptTarget2))(ScriptTarget||{}),ModuleResolutionKind=(ModuleResolutionKind2=>(ModuleResolutionKind2[ModuleResolutionKind2.Classic=1]="Classic",ModuleResolutionKind2[ModuleResolutionKind2.NodeJs=2]="NodeJs",ModuleResolutionKind2))(ModuleResolutionKind||{}),_a135,LanguageServiceDefaultsImpl=(_a135=class{constructor(compilerOptions,diagnosticsOptions,workerOptions,inlayHintsOptions,modeConfiguration){this._onDidChange=new monaco_editor_core_exports.Emitter,this._onDidExtraLibsChange=new monaco_editor_core_exports.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(compilerOptions),this.setDiagnosticsOptions(diagnosticsOptions),this.setWorkerOptions(workerOptions),this.setInlayHintsOptions(inlayHintsOptions),this.setModeConfiguration(modeConfiguration),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(content,_filePath){let filePath;if(typeof _filePath>"u"?filePath=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:filePath=_filePath,this._extraLibs[filePath]&&this._extraLibs[filePath].content===content)return{dispose:__name(()=>{},"dispose")};let myVersion=1;return this._removedExtraLibs[filePath]&&(myVersion=this._removedExtraLibs[filePath]+1),this._extraLibs[filePath]&&(myVersion=this._extraLibs[filePath].version+1),this._extraLibs[filePath]={content,version:myVersion},this._fireOnDidExtraLibsChangeSoon(),{dispose:__name(()=>{let extraLib=this._extraLibs[filePath];extraLib&&extraLib.version===myVersion&&(delete this._extraLibs[filePath],this._removedExtraLibs[filePath]=myVersion,this._fireOnDidExtraLibsChangeSoon())},"dispose")}}setExtraLibs(libs){for(const filePath in this._extraLibs)this._removedExtraLibs[filePath]=this._extraLibs[filePath].version;if(this._extraLibs=Object.create(null),libs&&libs.length>0)for(const lib of libs){const filePath=lib.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,content=lib.content;let myVersion=1;this._removedExtraLibs[filePath]&&(myVersion=this._removedExtraLibs[filePath]+1),this._extraLibs[filePath]={content,version:myVersion}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(options){this._compilerOptions=options||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(options){this._diagnosticsOptions=options||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(options){this._workerOptions=options||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(options){this._inlayHintsOptions=options||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(value){}setEagerModelSync(value){this._eagerModelSync=value}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(modeConfiguration){this._modeConfiguration=modeConfiguration||Object.create(null),this._onDidChange.fire(void 0)}},__name(_a135,"LanguageServiceDefaultsImpl"),_a135),typescriptVersion2=typescriptVersion,modeConfigurationDefault={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},typescriptDefaults=new LanguageServiceDefaultsImpl({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},modeConfigurationDefault),javascriptDefaults=new LanguageServiceDefaultsImpl({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},modeConfigurationDefault),getTypeScriptWorker=__name(()=>getMode().then(mode=>mode.getTypeScriptWorker()),"getTypeScriptWorker"),getJavaScriptWorker=__name(()=>getMode().then(mode=>mode.getJavaScriptWorker()),"getJavaScriptWorker");monaco_editor_core_exports.languages.typescript={ModuleKind,JsxEmit,NewLineKind,ScriptTarget,ModuleResolutionKind,typescriptVersion:typescriptVersion2,typescriptDefaults,javascriptDefaults,getTypeScriptWorker,getJavaScriptWorker};function getMode(){return Promise.resolve().then(()=>require("./tsMode-CnRtVXQY.js"))}__name(getMode,"getMode");monaco_editor_core_exports.languages.onLanguage("typescript",()=>getMode().then(mode=>mode.setupTypeScript(typescriptDefaults)));monaco_editor_core_exports.languages.onLanguage("javascript",()=>getMode().then(mode=>mode.setupJavaScript(javascriptDefaults)));const _ToggleCollapseUnchangedRegions=class _ToggleCollapseUnchangedRegions extends Action2{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:localize2("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Codicon.map,toggled:ContextKeyExpr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:ContextKeyExpr.has("isInDiffEditor"),menu:{when:ContextKeyExpr.has("isInDiffEditor"),id:MenuId.EditorTitle,order:22,group:"navigation"}})}run(accessor,...args){const configurationService=accessor.get(IConfigurationService),newValue=!configurationService.getValue("diffEditor.hideUnchangedRegions.enabled");configurationService.updateValue("diffEditor.hideUnchangedRegions.enabled",newValue)}};__name(_ToggleCollapseUnchangedRegions,"ToggleCollapseUnchangedRegions");let ToggleCollapseUnchangedRegions=_ToggleCollapseUnchangedRegions;const _ToggleShowMovedCodeBlocks=class _ToggleShowMovedCodeBlocks extends Action2{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:localize2("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:ContextKeyExpr.has("isInDiffEditor")})}run(accessor,...args){const configurationService=accessor.get(IConfigurationService),newValue=!configurationService.getValue("diffEditor.experimental.showMoves");configurationService.updateValue("diffEditor.experimental.showMoves",newValue)}};__name(_ToggleShowMovedCodeBlocks,"ToggleShowMovedCodeBlocks");let ToggleShowMovedCodeBlocks=_ToggleShowMovedCodeBlocks;const _ToggleUseInlineViewWhenSpaceIsLimited=class _ToggleUseInlineViewWhenSpaceIsLimited extends Action2{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:localize2("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:ContextKeyExpr.has("isInDiffEditor")})}run(accessor,...args){const configurationService=accessor.get(IConfigurationService),newValue=!configurationService.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");configurationService.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",newValue)}};__name(_ToggleUseInlineViewWhenSpaceIsLimited,"ToggleUseInlineViewWhenSpaceIsLimited");let ToggleUseInlineViewWhenSpaceIsLimited=_ToggleUseInlineViewWhenSpaceIsLimited;const diffEditorCategory=localize2("diffEditor","Diff Editor"),_SwitchSide=class _SwitchSide extends EditorAction2{constructor(){super({id:"diffEditor.switchSide",title:localize2("switchSide","Switch Side"),icon:Codicon.arrowSwap,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(accessor,editor2,arg){const diffEditor=findFocusedDiffEditor(accessor);if(diffEditor instanceof DiffEditorWidget){if(arg&&arg.dryRun)return{destinationSelection:diffEditor.mapToOtherSide().destinationSelection};diffEditor.switchSide()}}};__name(_SwitchSide,"SwitchSide");let SwitchSide=_SwitchSide;const _ExitCompareMove=class _ExitCompareMove extends EditorAction2{constructor(){super({id:"diffEditor.exitCompareMove",title:localize2("exitCompareMove","Exit Compare Move"),icon:Codicon.close,precondition:EditorContextKeys.comparingMovedCode,f1:!1,category:diffEditorCategory,keybinding:{weight:1e4,primary:9}})}runEditorCommand(accessor,editor2,...args){const diffEditor=findFocusedDiffEditor(accessor);diffEditor instanceof DiffEditorWidget&&diffEditor.exitCompareMove()}};__name(_ExitCompareMove,"ExitCompareMove");let ExitCompareMove=_ExitCompareMove;const _CollapseAllUnchangedRegions=class _CollapseAllUnchangedRegions extends EditorAction2{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:localize2("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Codicon.fold,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(accessor,editor2,...args){const diffEditor=findFocusedDiffEditor(accessor);diffEditor instanceof DiffEditorWidget&&diffEditor.collapseAllUnchangedRegions()}};__name(_CollapseAllUnchangedRegions,"CollapseAllUnchangedRegions");let CollapseAllUnchangedRegions=_CollapseAllUnchangedRegions;const _ShowAllUnchangedRegions=class _ShowAllUnchangedRegions extends EditorAction2{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:localize2("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Codicon.unfold,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(accessor,editor2,...args){const diffEditor=findFocusedDiffEditor(accessor);diffEditor instanceof DiffEditorWidget&&diffEditor.showAllUnchangedRegions()}};__name(_ShowAllUnchangedRegions,"ShowAllUnchangedRegions");let ShowAllUnchangedRegions=_ShowAllUnchangedRegions;const _RevertHunkOrSelection=class _RevertHunkOrSelection extends Action2{constructor(){super({id:"diffEditor.revert",title:localize2("revert","Revert"),f1:!1,category:diffEditorCategory})}run(accessor,arg){var _a300;const diffEditor=findDiffEditor(accessor,arg.originalUri,arg.modifiedUri);diffEditor instanceof DiffEditorWidget&&diffEditor.revertRangeMappings((_a300=arg.mapping.innerChanges)!=null?_a300:[])}};__name(_RevertHunkOrSelection,"RevertHunkOrSelection");let RevertHunkOrSelection=_RevertHunkOrSelection;const accessibleDiffViewerCategory=localize2("accessibleDiffViewer","Accessible Diff Viewer"),_AccessibleDiffViewerNext=class _AccessibleDiffViewerNext extends Action2{constructor(){super({id:_AccessibleDiffViewerNext.id,title:localize2("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:accessibleDiffViewerCategory,precondition:ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(accessor){const diffEditor=findFocusedDiffEditor(accessor);diffEditor==null||diffEditor.accessibleDiffViewerNext()}};__name(_AccessibleDiffViewerNext,"AccessibleDiffViewerNext"),_AccessibleDiffViewerNext.id="editor.action.accessibleDiffViewer.next";let AccessibleDiffViewerNext=_AccessibleDiffViewerNext;const _AccessibleDiffViewerPrev=class _AccessibleDiffViewerPrev extends Action2{constructor(){super({id:_AccessibleDiffViewerPrev.id,title:localize2("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:accessibleDiffViewerCategory,precondition:ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(accessor){const diffEditor=findFocusedDiffEditor(accessor);diffEditor==null||diffEditor.accessibleDiffViewerPrev()}};__name(_AccessibleDiffViewerPrev,"AccessibleDiffViewerPrev"),_AccessibleDiffViewerPrev.id="editor.action.accessibleDiffViewer.prev";let AccessibleDiffViewerPrev=_AccessibleDiffViewerPrev;function findDiffEditor(accessor,originalUri,modifiedUri){return accessor.get(ICodeEditorService).listDiffEditors().find(diffEditor=>{var _a300,_b2;const modified=diffEditor.getModifiedEditor(),original=diffEditor.getOriginalEditor();return modified&&((_a300=modified.getModel())==null?void 0:_a300.uri.toString())===modifiedUri.toString()&&original&&((_b2=original.getModel())==null?void 0:_b2.uri.toString())===originalUri.toString()})||null}__name(findDiffEditor,"findDiffEditor");function findFocusedDiffEditor(accessor){const diffEditors=accessor.get(ICodeEditorService).listDiffEditors(),activeElement=getActiveElement();if(activeElement)for(const d of diffEditors){const container=d.getContainerDomNode();if(isElementOrParentOf(container,activeElement))return d}return null}__name(findFocusedDiffEditor,"findFocusedDiffEditor");function isElementOrParentOf(elementOrParent,element){let e=element;for(;e;){if(e===elementOrParent)return!0;e=e.parentElement}return!1}__name(isElementOrParentOf,"isElementOrParentOf");registerAction2(ToggleCollapseUnchangedRegions);registerAction2(ToggleShowMovedCodeBlocks);registerAction2(ToggleUseInlineViewWhenSpaceIsLimited);MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:new ToggleUseInlineViewWhenSpaceIsLimited().desc.id,title:localize("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:ContextKeyExpr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:ContextKeyExpr.has("isInDiffEditor")},order:11,group:"1_diff",when:ContextKeyExpr.and(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,ContextKeyExpr.has("isInDiffEditor"))});MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:new ToggleShowMovedCodeBlocks().desc.id,title:localize("showMoves","Show Moved Code Blocks"),icon:Codicon.move,toggled:ContextKeyEqualsExpr.create("config.diffEditor.experimental.showMoves",!0),precondition:ContextKeyExpr.has("isInDiffEditor")},order:10,group:"1_diff",when:ContextKeyExpr.has("isInDiffEditor")});registerAction2(RevertHunkOrSelection);for(const ctx of[{icon:Codicon.arrowRight,key:EditorContextKeys.diffEditorInlineMode.toNegated()},{icon:Codicon.discard,key:EditorContextKeys.diffEditorInlineMode}])MenuRegistry.appendMenuItem(MenuId.DiffEditorHunkToolbar,{command:{id:new RevertHunkOrSelection().desc.id,title:localize("revertHunk","Revert Block"),icon:ctx.icon},when:ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable,ctx.key),order:5,group:"primary"}),MenuRegistry.appendMenuItem(MenuId.DiffEditorSelectionToolbar,{command:{id:new RevertHunkOrSelection().desc.id,title:localize("revertSelection","Revert Selection"),icon:ctx.icon},when:ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable,ctx.key),order:5,group:"primary"});registerAction2(SwitchSide);registerAction2(ExitCompareMove);registerAction2(CollapseAllUnchangedRegions);registerAction2(ShowAllUnchangedRegions);MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:AccessibleDiffViewerNext.id,title:localize("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:ContextKeyExpr.has("isInDiffEditor")},order:10,group:"2_diff",when:ContextKeyExpr.and(EditorContextKeys.accessibleDiffViewerVisible.negate(),ContextKeyExpr.has("isInDiffEditor"))});CommandsRegistry.registerCommandAlias("editor.action.diffReview.next",AccessibleDiffViewerNext.id);registerAction2(AccessibleDiffViewerNext);CommandsRegistry.registerCommandAlias("editor.action.diffReview.prev",AccessibleDiffViewerPrev.id);registerAction2(AccessibleDiffViewerPrev);var __decorate$1C=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$1C=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},SelectionAnchorController_1;const SelectionAnchorSet=new RawContextKey("selectionAnchorSet",!1);var _a136;let SelectionAnchorController=(_a136=class{static get(editor2){return editor2.getContribution(SelectionAnchorController_1.ID)}constructor(editor2,contextKeyService){this.editor=editor2,this.selectionAnchorSetContextKey=SelectionAnchorSet.bindTo(contextKeyService),this.modelChangeListener=editor2.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const position=this.editor.getPosition();this.editor.changeDecorations(accessor=>{this.decorationId&&accessor.removeDecoration(this.decorationId),this.decorationId=accessor.addDecoration(Selection$1.fromPositions(position,position),{description:"selection-anchor",stickiness:1,hoverMessage:new MarkdownString().appendText(localize("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),alert(localize("anchorSet","Anchor set at {0}:{1}",position.lineNumber,position.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const anchorPosition=this.editor.getModel().getDecorationRange(this.decorationId);anchorPosition&&this.editor.setPosition(anchorPosition.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const start=this.editor.getModel().getDecorationRange(this.decorationId);if(start){const end=this.editor.getPosition();this.editor.setSelection(Selection$1.fromPositions(start.getStartPosition(),end)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const decorationId=this.decorationId;this.editor.changeDecorations(accessor=>{accessor.removeDecoration(decorationId),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}},__name(_a136,"SelectionAnchorController"),SelectionAnchorController_1=_a136,_a136.ID="editor.contrib.selectionAnchorController",_a136);SelectionAnchorController=SelectionAnchorController_1=__decorate$1C([__param$1C(1,IContextKeyService)],SelectionAnchorController);const _SetSelectionAnchor=class _SetSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.setSelectionAnchor",label:localize("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2080),weight:100}})}async run(_accessor,editor2){var _a300;(_a300=SelectionAnchorController.get(editor2))==null||_a300.setSelectionAnchor()}};__name(_SetSelectionAnchor,"SetSelectionAnchor");let SetSelectionAnchor=_SetSelectionAnchor;const _GoToSelectionAnchor=class _GoToSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.goToSelectionAnchor",label:localize("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:SelectionAnchorSet})}async run(_accessor,editor2){var _a300;(_a300=SelectionAnchorController.get(editor2))==null||_a300.goToSelectionAnchor()}};__name(_GoToSelectionAnchor,"GoToSelectionAnchor");let GoToSelectionAnchor=_GoToSelectionAnchor;const _SelectFromAnchorToCursor=class _SelectFromAnchorToCursor extends EditorAction{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:localize("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:SelectionAnchorSet,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2089),weight:100}})}async run(_accessor,editor2){var _a300;(_a300=SelectionAnchorController.get(editor2))==null||_a300.selectFromAnchorToCursor()}};__name(_SelectFromAnchorToCursor,"SelectFromAnchorToCursor");let SelectFromAnchorToCursor=_SelectFromAnchorToCursor;const _CancelSelectionAnchor=class _CancelSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:localize("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:SelectionAnchorSet,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:9,weight:100}})}async run(_accessor,editor2){var _a300;(_a300=SelectionAnchorController.get(editor2))==null||_a300.cancelSelectionAnchor()}};__name(_CancelSelectionAnchor,"CancelSelectionAnchor");let CancelSelectionAnchor=_CancelSelectionAnchor;registerEditorContribution(SelectionAnchorController.ID,SelectionAnchorController,4);registerEditorAction(SetSelectionAnchor);registerEditorAction(GoToSelectionAnchor);registerEditorAction(SelectFromAnchorToCursor);registerEditorAction(CancelSelectionAnchor);const overviewRulerBracketMatchForeground=registerColor("editorOverviewRuler.bracketMatchForeground","#A0A0A0",localize("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets.")),_JumpToBracketAction=class _JumpToBracketAction extends EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:localize("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(accessor,editor2){var _a300;(_a300=BracketMatchingController.get(editor2))==null||_a300.jumpToBracket()}};__name(_JumpToBracketAction,"JumpToBracketAction");let JumpToBracketAction=_JumpToBracketAction;const _SelectToBracketAction=class _SelectToBracketAction extends EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:localize("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:localize2("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(accessor,editor2,args){var _a300;let selectBrackets=!0;args&&args.selectBrackets===!1&&(selectBrackets=!1),(_a300=BracketMatchingController.get(editor2))==null||_a300.selectToBracket(selectBrackets)}};__name(_SelectToBracketAction,"SelectToBracketAction");let SelectToBracketAction=_SelectToBracketAction;const _RemoveBracketsAction=class _RemoveBracketsAction extends EditorAction{constructor(){super({id:"editor.action.removeBrackets",label:localize("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2561,weight:100}})}run(accessor,editor2){var _a300;(_a300=BracketMatchingController.get(editor2))==null||_a300.removeBrackets(this.id)}};__name(_RemoveBracketsAction,"RemoveBracketsAction");let RemoveBracketsAction=_RemoveBracketsAction;const _BracketsData=class _BracketsData{constructor(position,brackets,options){this.position=position,this.brackets=brackets,this.options=options}};__name(_BracketsData,"BracketsData");let BracketsData=_BracketsData;const _BracketMatchingController=class _BracketMatchingController extends Disposable{static get(editor2){return editor2.getContribution(_BracketMatchingController.ID)}constructor(editor2){super(),this._editor=editor2,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(editor2.onDidChangeCursorPosition(e=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(editor2.onDidChangeModelContent(e=>{this._updateBracketsSoon.schedule()})),this._register(editor2.onDidChangeModel(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(editor2.onDidChangeModelLanguageConfiguration(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(editor2.onDidChangeConfiguration(e=>{e.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(editor2.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(editor2.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const model=this._editor.getModel(),newSelections=this._editor.getSelections().map(selection=>{const position=selection.getStartPosition(),brackets=model.bracketPairs.matchBracket(position);let newCursorPosition=null;if(brackets)brackets[0].containsPosition(position)&&!brackets[1].containsPosition(position)?newCursorPosition=brackets[1].getStartPosition():brackets[1].containsPosition(position)&&(newCursorPosition=brackets[0].getStartPosition());else{const enclosingBrackets=model.bracketPairs.findEnclosingBrackets(position);if(enclosingBrackets)newCursorPosition=enclosingBrackets[1].getStartPosition();else{const nextBracket=model.bracketPairs.findNextBracket(position);nextBracket&&nextBracket.range&&(newCursorPosition=nextBracket.range.getStartPosition())}}return newCursorPosition?new Selection$1(newCursorPosition.lineNumber,newCursorPosition.column,newCursorPosition.lineNumber,newCursorPosition.column):new Selection$1(position.lineNumber,position.column,position.lineNumber,position.column)});this._editor.setSelections(newSelections),this._editor.revealRange(newSelections[0])}selectToBracket(selectBrackets){if(!this._editor.hasModel())return;const model=this._editor.getModel(),newSelections=[];this._editor.getSelections().forEach(selection=>{const position=selection.getStartPosition();let brackets=model.bracketPairs.matchBracket(position);if(!brackets&&(brackets=model.bracketPairs.findEnclosingBrackets(position),!brackets)){const nextBracket=model.bracketPairs.findNextBracket(position);nextBracket&&nextBracket.range&&(brackets=model.bracketPairs.matchBracket(nextBracket.range.getStartPosition()))}let selectFrom=null,selectTo=null;if(brackets){brackets.sort(Range$2.compareRangesUsingStarts);const[open,close]=brackets;if(selectFrom=selectBrackets?open.getStartPosition():open.getEndPosition(),selectTo=selectBrackets?close.getEndPosition():close.getStartPosition(),close.containsPosition(position)){const tmp=selectFrom;selectFrom=selectTo,selectTo=tmp}}selectFrom&&selectTo&&newSelections.push(new Selection$1(selectFrom.lineNumber,selectFrom.column,selectTo.lineNumber,selectTo.column))}),newSelections.length>0&&(this._editor.setSelections(newSelections),this._editor.revealRange(newSelections[0]))}removeBrackets(editSource){if(!this._editor.hasModel())return;const model=this._editor.getModel();this._editor.getSelections().forEach(selection=>{const position=selection.getPosition();let brackets=model.bracketPairs.matchBracket(position);brackets||(brackets=model.bracketPairs.findEnclosingBrackets(position)),brackets&&(this._editor.pushUndoStop(),this._editor.executeEdits(editSource,[{range:brackets[0],text:""},{range:brackets[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const newDecorations=[];let newDecorationsLen=0;for(const bracketData of this._lastBracketsData){const brackets=bracketData.brackets;brackets&&(newDecorations[newDecorationsLen++]={range:brackets[0],options:bracketData.options},newDecorations[newDecorationsLen++]={range:brackets[1],options:bracketData.options})}this._decorations.set(newDecorations)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const selections=this._editor.getSelections();if(selections.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const model=this._editor.getModel(),versionId=model.getVersionId();let previousData=[];this._lastVersionId===versionId&&(previousData=this._lastBracketsData);const positions=[];let positionsLen=0;for(let i=0,len=selections.length;i<len;i++){const selection=selections[i];selection.isEmpty()&&(positions[positionsLen++]=selection.getStartPosition())}positions.length>1&&positions.sort(Position$1.compare);const newData=[];let newDataLen=0,previousIndex=0;const previousLen=previousData.length;for(let i=0,len=positions.length;i<len;i++){const position=positions[i];for(;previousIndex<previousLen&&previousData[previousIndex].position.isBefore(position);)previousIndex++;if(previousIndex<previousLen&&previousData[previousIndex].position.equals(position))newData[newDataLen++]=previousData[previousIndex];else{let brackets=model.bracketPairs.matchBracket(position,20),options=_BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!brackets&&this._matchBrackets==="always"&&(brackets=model.bracketPairs.findEnclosingBrackets(position,20),options=_BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),newData[newDataLen++]=new BracketsData(position,brackets,options)}}this._lastBracketsData=newData,this._lastVersionId=versionId}};__name(_BracketMatchingController,"BracketMatchingController"),_BracketMatchingController.ID="editor.contrib.bracketMatchingController",_BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=ModelDecorationOptions.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:themeColorFromId(overviewRulerBracketMatchForeground),position:OverviewRulerLane.Center}}),_BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=ModelDecorationOptions.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let BracketMatchingController=_BracketMatchingController;registerEditorContribution(BracketMatchingController.ID,BracketMatchingController,1);registerEditorAction(SelectToBracketAction);registerEditorAction(JumpToBracketAction);registerEditorAction(RemoveBracketsAction);MenuRegistry.appendMenuItem(MenuId.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:localize({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});const _MoveCaretCommand=class _MoveCaretCommand{constructor(selection,isMovingLeft){this._selection=selection,this._isMovingLeft=isMovingLeft}getEditOperations(model,builder){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const lineNumber=this._selection.startLineNumber,startColumn=this._selection.startColumn,endColumn=this._selection.endColumn;if(!(this._isMovingLeft&&startColumn===1)&&!(!this._isMovingLeft&&endColumn===model.getLineMaxColumn(lineNumber)))if(this._isMovingLeft){const rangeBefore=new Range$2(lineNumber,startColumn-1,lineNumber,startColumn),charBefore=model.getValueInRange(rangeBefore);builder.addEditOperation(rangeBefore,null),builder.addEditOperation(new Range$2(lineNumber,endColumn,lineNumber,endColumn),charBefore)}else{const rangeAfter=new Range$2(lineNumber,endColumn,lineNumber,endColumn+1),charAfter=model.getValueInRange(rangeAfter);builder.addEditOperation(rangeAfter,null),builder.addEditOperation(new Range$2(lineNumber,startColumn,lineNumber,startColumn),charAfter)}}computeCursorState(model,helper){return this._isMovingLeft?new Selection$1(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Selection$1(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}};__name(_MoveCaretCommand,"MoveCaretCommand");let MoveCaretCommand=_MoveCaretCommand;const _MoveCaretAction=class _MoveCaretAction extends EditorAction{constructor(left,opts){super(opts),this.left=left}run(accessor,editor2){if(!editor2.hasModel())return;const commands=[],selections=editor2.getSelections();for(const selection of selections)commands.push(new MoveCaretCommand(selection,this.left));editor2.pushUndoStop(),editor2.executeCommands(this.id,commands),editor2.pushUndoStop()}};__name(_MoveCaretAction,"MoveCaretAction");let MoveCaretAction=_MoveCaretAction;const _MoveCaretLeftAction=class _MoveCaretLeftAction extends MoveCaretAction{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:localize("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:EditorContextKeys.writable})}};__name(_MoveCaretLeftAction,"MoveCaretLeftAction");let MoveCaretLeftAction=_MoveCaretLeftAction;const _MoveCaretRightAction=class _MoveCaretRightAction extends MoveCaretAction{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:localize("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:EditorContextKeys.writable})}};__name(_MoveCaretRightAction,"MoveCaretRightAction");let MoveCaretRightAction=_MoveCaretRightAction;registerEditorAction(MoveCaretLeftAction);registerEditorAction(MoveCaretRightAction);const _TransposeLettersAction=class _TransposeLettersAction extends EditorAction{constructor(){super({id:"editor.action.transposeLetters",label:localize("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(accessor,editor2){if(!editor2.hasModel())return;const model=editor2.getModel(),commands=[],selections=editor2.getSelections();for(const selection of selections){if(!selection.isEmpty())continue;const lineNumber=selection.startLineNumber,column=selection.startColumn,lastColumn=model.getLineMaxColumn(lineNumber);if(lineNumber===1&&(column===1||column===2&&lastColumn===2))continue;const endPosition=column===lastColumn?selection.getPosition():MoveOperations.rightPosition(model,selection.getPosition().lineNumber,selection.getPosition().column),middlePosition=MoveOperations.leftPosition(model,endPosition),beginPosition=MoveOperations.leftPosition(model,middlePosition),leftChar=model.getValueInRange(Range$2.fromPositions(beginPosition,middlePosition)),rightChar=model.getValueInRange(Range$2.fromPositions(middlePosition,endPosition)),replaceRange=Range$2.fromPositions(beginPosition,endPosition);commands.push(new ReplaceCommand(replaceRange,rightChar+leftChar))}commands.length>0&&(editor2.pushUndoStop(),editor2.executeCommands(this.id,commands),editor2.pushUndoStop())}};__name(_TransposeLettersAction,"TransposeLettersAction");let TransposeLettersAction=_TransposeLettersAction;registerEditorAction(TransposeLettersAction);const generateUuid=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let getRandomValues;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?getRandomValues=crypto.getRandomValues.bind(crypto):getRandomValues=__name(function(bucket){for(let i=0;i<bucket.length;i++)bucket[i]=Math.floor(Math.random()*256);return bucket},"getRandomValues");const _data=new Uint8Array(16),_hex=[];for(let i=0;i<256;i++)_hex.push(i.toString(16).padStart(2,"0"));return __name(function(){getRandomValues(_data),_data[6]=_data[6]&15|64,_data[8]=_data[8]&63|128;let i=0,result="";return result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+="-",result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+="-",result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+="-",result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+="-",result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result+=_hex[_data[i++]],result},"generateUuid")}();function createStringDataTransferItem(stringOrPromise){return{asString:__name(async()=>stringOrPromise,"asString"),asFile:__name(()=>{},"asFile"),value:typeof stringOrPromise=="string"?stringOrPromise:void 0}}__name(createStringDataTransferItem,"createStringDataTransferItem");function createFileDataTransferItem(fileName,uri,data){const file={id:generateUuid(),name:fileName,uri,data};return{asString:__name(async()=>"","asString"),asFile:__name(()=>file,"asFile"),value:void 0}}__name(createFileDataTransferItem,"createFileDataTransferItem");const _VSDataTransfer=class _VSDataTransfer{constructor(){this._entries=new Map}get size(){let size2=0;for(const _ of this._entries)size2++;return size2}has(mimeType){return this._entries.has(this.toKey(mimeType))}matches(pattern){const mimes=[...this._entries.keys()];return Iterable.some(this,([_,item])=>item.asFile())&&mimes.push("files"),matchesMimeType_normalized(normalizeMimeType(pattern),mimes)}get(mimeType){var _a300;return(_a300=this._entries.get(this.toKey(mimeType)))==null?void 0:_a300[0]}append(mimeType,value){const existing=this._entries.get(mimeType);existing?existing.push(value):this._entries.set(this.toKey(mimeType),[value])}replace(mimeType,value){this._entries.set(this.toKey(mimeType),[value])}delete(mimeType){this._entries.delete(this.toKey(mimeType))}*[Symbol.iterator](){for(const[mine,items]of this._entries)for(const item of items)yield[mine,item]}toKey(mimeType){return normalizeMimeType(mimeType)}};__name(_VSDataTransfer,"VSDataTransfer");let VSDataTransfer=_VSDataTransfer;function normalizeMimeType(mimeType){return mimeType.toLowerCase()}__name(normalizeMimeType,"normalizeMimeType");function matchesMimeType(pattern,mimeTypes){return matchesMimeType_normalized(normalizeMimeType(pattern),mimeTypes.map(normalizeMimeType))}__name(matchesMimeType,"matchesMimeType");function matchesMimeType_normalized(normalizedPattern,normalizedMimeTypes){if(normalizedPattern==="*/*")return normalizedMimeTypes.length>0;if(normalizedMimeTypes.includes(normalizedPattern))return!0;const wildcard=normalizedPattern.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!wildcard)return!1;const[_,type,subtype]=wildcard;return subtype==="*"?normalizedMimeTypes.some(mime=>mime.startsWith(type+"/")):!1}__name(matchesMimeType_normalized,"matchesMimeType_normalized");const UriList=Object.freeze({create:__name(entries2=>distinct(entries2.map(x=>x.toString())).join(`\r
1099
1099
  `),"create"),split:__name(str=>str.split(`\r
1100
1100
  `),"split"),parse:__name(str=>UriList.split(str).filter(value=>!value.startsWith("#")),"parse")}),_HierarchicalKind=class _HierarchicalKind{constructor(value){this.value=value}equals(other){return this.value===other.value}contains(other){return this.equals(other)||this.value===""||other.value.startsWith(this.value+_HierarchicalKind.sep)}intersects(other){return this.contains(other)||other.contains(this)}append(...parts){return new _HierarchicalKind((this.value?[this.value,...parts]:parts).join(_HierarchicalKind.sep))}};__name(_HierarchicalKind,"HierarchicalKind"),_HierarchicalKind.sep=".",_HierarchicalKind.None=new _HierarchicalKind("@@none@@"),_HierarchicalKind.Empty=new _HierarchicalKind("");let HierarchicalKind=_HierarchicalKind;const CodeDataTransfers={EDITORS:"CodeEditors",FILES:"CodeFiles"},_DragAndDropContributionRegistry=class _DragAndDropContributionRegistry{};__name(_DragAndDropContributionRegistry,"DragAndDropContributionRegistry");let DragAndDropContributionRegistry=_DragAndDropContributionRegistry;const Extensions={DragAndDropContribution:"workbench.contributions.dragAndDrop"};Registry.add(Extensions.DragAndDropContribution,new DragAndDropContributionRegistry);const _LocalSelectionTransfer=class _LocalSelectionTransfer{constructor(){}static getInstance(){return _LocalSelectionTransfer.INSTANCE}hasData(proto){return proto&&proto===this.proto}getData(proto){if(this.hasData(proto))return this.data}};__name(_LocalSelectionTransfer,"LocalSelectionTransfer"),_LocalSelectionTransfer.INSTANCE=new _LocalSelectionTransfer;let LocalSelectionTransfer=_LocalSelectionTransfer;function toVSDataTransfer(dataTransfer){const vsDataTransfer=new VSDataTransfer;for(const item of dataTransfer.items){const type=item.type;if(item.kind==="string"){const asStringValue=new Promise(resolve2=>item.getAsString(resolve2));vsDataTransfer.append(type,createStringDataTransferItem(asStringValue))}else if(item.kind==="file"){const file=item.getAsFile();file&&vsDataTransfer.append(type,createFileDataTransferItemFromFile(file))}}return vsDataTransfer}__name(toVSDataTransfer,"toVSDataTransfer");function createFileDataTransferItemFromFile(file){const uri=file.path?URI.parse(file.path):void 0;return createFileDataTransferItem(file.name,uri,async()=>new Uint8Array(await file.arrayBuffer()))}__name(createFileDataTransferItemFromFile,"createFileDataTransferItemFromFile");const INTERNAL_DND_MIME_TYPES=Object.freeze([CodeDataTransfers.EDITORS,CodeDataTransfers.FILES,DataTransfers.RESOURCES,DataTransfers.INTERNAL_URI_LIST]);function toExternalVSDataTransfer(sourceDataTransfer,overwriteUriList=!1){const vsDataTransfer=toVSDataTransfer(sourceDataTransfer),uriList=vsDataTransfer.get(DataTransfers.INTERNAL_URI_LIST);if(uriList)vsDataTransfer.replace(Mimes.uriList,uriList);else if(overwriteUriList||!vsDataTransfer.has(Mimes.uriList)){const editorData=[];for(const item of sourceDataTransfer.items){const file=item.getAsFile();if(file){const path=file.path;try{path?editorData.push(URI.file(path).toString()):editorData.push(URI.parse(file.name,!0).toString())}catch{}}}editorData.length&&vsDataTransfer.replace(Mimes.uriList,createStringDataTransferItem(UriList.create(editorData)))}for(const internal of INTERNAL_DND_MIME_TYPES)vsDataTransfer.delete(internal);return vsDataTransfer}__name(toExternalVSDataTransfer,"toExternalVSDataTransfer");var __decorate$1B=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$1B=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const _SimplePasteAndDropProvider=class _SimplePasteAndDropProvider{async provideDocumentPasteEdits(_model,_ranges,dataTransfer,context,token){const edit=await this.getEdit(dataTransfer,token);if(edit)return{edits:[{insertText:edit.insertText,title:edit.title,kind:edit.kind,handledMimeType:edit.handledMimeType,yieldTo:edit.yieldTo}],dispose(){}}}async provideDocumentDropEdits(_model,_position,dataTransfer,token){const edit=await this.getEdit(dataTransfer,token);if(edit)return{edits:[{insertText:edit.insertText,title:edit.title,kind:edit.kind,handledMimeType:edit.handledMimeType,yieldTo:edit.yieldTo}],dispose(){}}}};__name(_SimplePasteAndDropProvider,"SimplePasteAndDropProvider");let SimplePasteAndDropProvider=_SimplePasteAndDropProvider;const _DefaultTextPasteOrDropEditProvider=class _DefaultTextPasteOrDropEditProvider extends SimplePasteAndDropProvider{constructor(){super(...arguments),this.kind=_DefaultTextPasteOrDropEditProvider.kind,this.dropMimeTypes=[Mimes.text],this.pasteMimeTypes=[Mimes.text]}async getEdit(dataTransfer,_token){const textEntry=dataTransfer.get(Mimes.text);if(!textEntry||dataTransfer.has(Mimes.uriList))return;const insertText=await textEntry.asString();return{handledMimeType:Mimes.text,title:localize("text.label","Insert Plain Text"),insertText,kind:this.kind}}};__name(_DefaultTextPasteOrDropEditProvider,"DefaultTextPasteOrDropEditProvider"),_DefaultTextPasteOrDropEditProvider.id="text",_DefaultTextPasteOrDropEditProvider.kind=new HierarchicalKind("text.plain");let DefaultTextPasteOrDropEditProvider=_DefaultTextPasteOrDropEditProvider;const _PathProvider=class _PathProvider extends SimplePasteAndDropProvider{constructor(){super(...arguments),this.kind=new HierarchicalKind("uri.absolute"),this.dropMimeTypes=[Mimes.uriList],this.pasteMimeTypes=[Mimes.uriList]}async getEdit(dataTransfer,token){const entries2=await extractUriList(dataTransfer);if(!entries2.length||token.isCancellationRequested)return;let uriCount=0;const insertText=entries2.map(({uri,originalText})=>uri.scheme===Schemas.file?uri.fsPath:(uriCount++,originalText)).join(" ");let label;return uriCount>0?label=entries2.length>1?localize("defaultDropProvider.uriList.uris","Insert Uris"):localize("defaultDropProvider.uriList.uri","Insert Uri"):label=entries2.length>1?localize("defaultDropProvider.uriList.paths","Insert Paths"):localize("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:Mimes.uriList,insertText,title:label,kind:this.kind}}};__name(_PathProvider,"PathProvider");let PathProvider=_PathProvider;var _a137;let RelativePathProvider=(_a137=class extends SimplePasteAndDropProvider{constructor(_workspaceContextService){super(),this._workspaceContextService=_workspaceContextService,this.kind=new HierarchicalKind("uri.relative"),this.dropMimeTypes=[Mimes.uriList],this.pasteMimeTypes=[Mimes.uriList]}async getEdit(dataTransfer,token){const entries2=await extractUriList(dataTransfer);if(!entries2.length||token.isCancellationRequested)return;const relativeUris=coalesce(entries2.map(({uri})=>{const root=this._workspaceContextService.getWorkspaceFolder(uri);return root?relativePath(root.uri,uri):void 0}));if(relativeUris.length)return{handledMimeType:Mimes.uriList,insertText:relativeUris.join(" "),title:entries2.length>1?localize("defaultDropProvider.uriList.relativePaths","Insert Relative Paths"):localize("defaultDropProvider.uriList.relativePath","Insert Relative Path"),kind:this.kind}}},__name(_a137,"RelativePathProvider"),_a137);RelativePathProvider=__decorate$1B([__param$1B(0,IWorkspaceContextService)],RelativePathProvider);const _PasteHtmlProvider=class _PasteHtmlProvider{constructor(){this.kind=new HierarchicalKind("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Mimes.text}]}async provideDocumentPasteEdits(_model,_ranges,dataTransfer,context,token){var _a300;if(context.triggerKind!==DocumentPasteTriggerKind.PasteAs&&!((_a300=context.only)!=null&&_a300.contains(this.kind)))return;const entry=dataTransfer.get("text/html"),htmlText=await(entry==null?void 0:entry.asString());if(!(!htmlText||token.isCancellationRequested))return{dispose(){},edits:[{insertText:htmlText,yieldTo:this._yieldTo,title:localize("pasteHtmlLabel","Insert HTML"),kind:this.kind}]}}};__name(_PasteHtmlProvider,"PasteHtmlProvider");let PasteHtmlProvider=_PasteHtmlProvider;async function extractUriList(dataTransfer){const urlListEntry=dataTransfer.get(Mimes.uriList);if(!urlListEntry)return[];const strUriList=await urlListEntry.asString(),entries2=[];for(const entry of UriList.parse(strUriList))try{entries2.push({uri:URI.parse(entry),originalText:entry})}catch{}return entries2}__name(extractUriList,"extractUriList");var _a138;let DefaultDropProvidersFeature=(_a138=class extends Disposable{constructor(languageFeaturesService,workspaceContextService){super(),this._register(languageFeaturesService.documentDropEditProvider.register("*",new DefaultTextPasteOrDropEditProvider)),this._register(languageFeaturesService.documentDropEditProvider.register("*",new PathProvider)),this._register(languageFeaturesService.documentDropEditProvider.register("*",new RelativePathProvider(workspaceContextService)))}},__name(_a138,"DefaultDropProvidersFeature"),_a138);DefaultDropProvidersFeature=__decorate$1B([__param$1B(0,ILanguageFeaturesService),__param$1B(1,IWorkspaceContextService)],DefaultDropProvidersFeature);var _a139;let DefaultPasteProvidersFeature=(_a139=class extends Disposable{constructor(languageFeaturesService,workspaceContextService){super(),this._register(languageFeaturesService.documentPasteEditProvider.register("*",new DefaultTextPasteOrDropEditProvider)),this._register(languageFeaturesService.documentPasteEditProvider.register("*",new PathProvider)),this._register(languageFeaturesService.documentPasteEditProvider.register("*",new RelativePathProvider(workspaceContextService))),this._register(languageFeaturesService.documentPasteEditProvider.register("*",new PasteHtmlProvider))}},__name(_a139,"DefaultPasteProvidersFeature"),_a139);DefaultPasteProvidersFeature=__decorate$1B([__param$1B(0,ILanguageFeaturesService),__param$1B(1,IWorkspaceContextService)],DefaultPasteProvidersFeature);const _Scanner=class _Scanner{constructor(){this.value="",this.pos=0}static isDigitCharacter(ch){return ch>=48&&ch<=57}static isVariableCharacter(ch){return ch===95||ch>=97&&ch<=122||ch>=65&&ch<=90}text(value){this.value=value,this.pos=0}tokenText(token){return this.value.substr(token.pos,token.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const pos=this.pos;let len=0,ch=this.value.charCodeAt(pos),type;if(type=_Scanner._table[ch],typeof type=="number")return this.pos+=1,{type,pos,len:1};if(_Scanner.isDigitCharacter(ch)){type=8;do len+=1,ch=this.value.charCodeAt(pos+len);while(_Scanner.isDigitCharacter(ch));return this.pos+=len,{type,pos,len}}if(_Scanner.isVariableCharacter(ch)){type=9;do ch=this.value.charCodeAt(pos+ ++len);while(_Scanner.isVariableCharacter(ch)||_Scanner.isDigitCharacter(ch));return this.pos+=len,{type,pos,len}}type=10;do len+=1,ch=this.value.charCodeAt(pos+len);while(!isNaN(ch)&&typeof _Scanner._table[ch]>"u"&&!_Scanner.isDigitCharacter(ch)&&!_Scanner.isVariableCharacter(ch));return this.pos+=len,{type,pos,len}}};__name(_Scanner,"Scanner"),_Scanner._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let Scanner=_Scanner;const _Marker=class _Marker{constructor(){this._children=[]}appendChild(child){return child instanceof Text&&this._children[this._children.length-1]instanceof Text?this._children[this._children.length-1].value+=child.value:(child.parent=this,this._children.push(child)),this}replace(child,others){const{parent}=child,idx=parent.children.indexOf(child),newChildren=parent.children.slice(0);newChildren.splice(idx,1,...others),parent._children=newChildren,__name(function _fixParent(children,parent2){for(const child2 of children)child2.parent=parent2,_fixParent(child2.children,child2)},"_fixParent")(others,parent)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let candidate=this;for(;;){if(!candidate)return;if(candidate instanceof TextmateSnippet)return candidate;candidate=candidate.parent}}toString(){return this.children.reduce((prev,cur)=>prev+cur.toString(),"")}len(){return 0}};__name(_Marker,"Marker");let Marker=_Marker;const _Text=class _Text extends Marker{constructor(value){super(),this.value=value}toString(){return this.value}len(){return this.value.length}clone(){return new _Text(this.value)}};__name(_Text,"Text");let Text=_Text;const _TransformableMarker=class _TransformableMarker extends Marker{};__name(_TransformableMarker,"TransformableMarker");let TransformableMarker=_TransformableMarker;const _Placeholder=class _Placeholder extends TransformableMarker{static compareByIndex(a,b){return a.index===b.index?0:a.isFinalTabstop?1:b.isFinalTabstop||a.index<b.index?-1:a.index>b.index?1:0}constructor(index){super(),this.index=index}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Choice?this._children[0]:void 0}clone(){const ret=new _Placeholder(this.index);return this.transform&&(ret.transform=this.transform.clone()),ret._children=this.children.map(child=>child.clone()),ret}};__name(_Placeholder,"Placeholder");let Placeholder=_Placeholder;const _Choice=class _Choice extends Marker{constructor(){super(...arguments),this.options=[]}appendChild(marker){return marker instanceof Text&&(marker.parent=this,this.options.push(marker)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const ret=new _Choice;return this.options.forEach(ret.appendChild,ret),ret}};__name(_Choice,"Choice");let Choice=_Choice;const _Transform=class _Transform extends Marker{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(value){const _this=this;let didMatch=!1,ret=value.replace(this.regexp,function(){return didMatch=!0,_this._replace(Array.prototype.slice.call(arguments,0,-2))});return!didMatch&&this._children.some(child=>child instanceof FormatString&&!!child.elseValue)&&(ret=this._replace([])),ret}_replace(groups){let ret="";for(const marker of this._children)if(marker instanceof FormatString){let value=groups[marker.index]||"";value=marker.resolve(value),ret+=value}else ret+=marker.toString();return ret}toString(){return""}clone(){const ret=new _Transform;return ret.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),ret._children=this.children.map(child=>child.clone()),ret}};__name(_Transform,"Transform");let Transform=_Transform;const _FormatString=class _FormatString extends Marker{constructor(index,shorthandName,ifValue,elseValue){super(),this.index=index,this.shorthandName=shorthandName,this.ifValue=ifValue,this.elseValue=elseValue}resolve(value){return this.shorthandName==="upcase"?value?value.toLocaleUpperCase():"":this.shorthandName==="downcase"?value?value.toLocaleLowerCase():"":this.shorthandName==="capitalize"?value?value[0].toLocaleUpperCase()+value.substr(1):"":this.shorthandName==="pascalcase"?value?this._toPascalCase(value):"":this.shorthandName==="camelcase"?value?this._toCamelCase(value):"":value&&typeof this.ifValue=="string"?this.ifValue:!value&&typeof this.elseValue=="string"?this.elseValue:value||""}_toPascalCase(value){const match2=value.match(/[a-z0-9]+/gi);return match2?match2.map(word=>word.charAt(0).toUpperCase()+word.substr(1)).join(""):value}_toCamelCase(value){const match2=value.match(/[a-z0-9]+/gi);return match2?match2.map((word,index)=>index===0?word.charAt(0).toLowerCase()+word.substr(1):word.charAt(0).toUpperCase()+word.substr(1)).join(""):value}clone(){return new _FormatString(this.index,this.shorthandName,this.ifValue,this.elseValue)}};__name(_FormatString,"FormatString");let FormatString=_FormatString;const _Variable=class _Variable extends TransformableMarker{constructor(name){super(),this.name=name}resolve(resolver){let value=resolver.resolve(this);return this.transform&&(value=this.transform.resolve(value||"")),value!==void 0?(this._children=[new Text(value)],!0):!1}clone(){const ret=new _Variable(this.name);return this.transform&&(ret.transform=this.transform.clone()),ret._children=this.children.map(child=>child.clone()),ret}};__name(_Variable,"Variable");let Variable=_Variable;function walk(marker,visitor){const stack=[...marker];for(;stack.length>0;){const marker2=stack.shift();if(!visitor(marker2))break;stack.unshift(...marker2.children)}}__name(walk,"walk");const _TextmateSnippet=class _TextmateSnippet extends Marker{get placeholderInfo(){if(!this._placeholders){const all=[];let last;this.walk(function(candidate){return candidate instanceof Placeholder&&(all.push(candidate),last=!last||last.index<candidate.index?candidate:last),!0}),this._placeholders={all,last}}return this._placeholders}get placeholders(){const{all}=this.placeholderInfo;return all}offset(marker){let pos=0,found=!1;return this.walk(candidate=>candidate===marker?(found=!0,!1):(pos+=candidate.len(),!0)),found?pos:-1}fullLen(marker){let ret=0;return walk([marker],marker2=>(ret+=marker2.len(),!0)),ret}enclosingPlaceholders(placeholder){const ret=[];let{parent}=placeholder;for(;parent;)parent instanceof Placeholder&&ret.push(parent),parent=parent.parent;return ret}resolveVariables(resolver){return this.walk(candidate=>(candidate instanceof Variable&&candidate.resolve(resolver)&&(this._placeholders=void 0),!0)),this}appendChild(child){return this._placeholders=void 0,super.appendChild(child)}replace(child,others){return this._placeholders=void 0,super.replace(child,others)}clone(){const ret=new _TextmateSnippet;return this._children=this.children.map(child=>child.clone()),ret}walk(visitor){walk(this.children,visitor)}};__name(_TextmateSnippet,"TextmateSnippet");let TextmateSnippet=_TextmateSnippet;const _SnippetParser=class _SnippetParser{constructor(){this._scanner=new Scanner,this._token={type:14,pos:0,len:0}}static escape(value){return value.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(template){return/\${?CLIPBOARD/.test(template)}parse(value,insertFinalTabstop,enforceFinalTabstop){const snippet=new TextmateSnippet;return this.parseFragment(value,snippet),this.ensureFinalTabstop(snippet,enforceFinalTabstop!=null?enforceFinalTabstop:!1,insertFinalTabstop!=null?insertFinalTabstop:!1),snippet}parseFragment(value,snippet){const offset=snippet.children.length;for(this._scanner.text(value),this._token=this._scanner.next();this._parse(snippet););const placeholderDefaultValues=new Map,incompletePlaceholders=[];snippet.walk(marker=>(marker instanceof Placeholder&&(marker.isFinalTabstop?placeholderDefaultValues.set(0,void 0):!placeholderDefaultValues.has(marker.index)&&marker.children.length>0?placeholderDefaultValues.set(marker.index,marker.children):incompletePlaceholders.push(marker)),!0));const fillInIncompletePlaceholder=__name((placeholder,stack2)=>{const defaultValues=placeholderDefaultValues.get(placeholder.index);if(!defaultValues)return;const clone2=new Placeholder(placeholder.index);clone2.transform=placeholder.transform;for(const child of defaultValues){const newChild=child.clone();clone2.appendChild(newChild),newChild instanceof Placeholder&&placeholderDefaultValues.has(newChild.index)&&!stack2.has(newChild.index)&&(stack2.add(newChild.index),fillInIncompletePlaceholder(newChild,stack2),stack2.delete(newChild.index))}snippet.replace(placeholder,[clone2])},"fillInIncompletePlaceholder"),stack=new Set;for(const placeholder of incompletePlaceholders)fillInIncompletePlaceholder(placeholder,stack);return snippet.children.slice(offset)}ensureFinalTabstop(snippet,enforceFinalTabstop,insertFinalTabstop){(enforceFinalTabstop||insertFinalTabstop&&snippet.placeholders.length>0)&&(snippet.placeholders.find(p2=>p2.index===0)||snippet.appendChild(new Placeholder(0)))}_accept(type,value){if(type===void 0||this._token.type===type){const ret=value?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),ret}return!1}_backTo(token){return this._scanner.pos=token.pos+token.len,this._token=token,!1}_until(type){const start=this._token;for(;this._token.type!==type;){if(this._token.type===14)return!1;if(this._token.type===5){const nextToken=this._scanner.next();if(nextToken.type!==0&&nextToken.type!==4&&nextToken.type!==5)return!1}this._token=this._scanner.next()}const value=this._scanner.value.substring(start.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),value}_parse(marker){return this._parseEscaped(marker)||this._parseTabstopOrVariableName(marker)||this._parseComplexPlaceholder(marker)||this._parseComplexVariable(marker)||this._parseAnything(marker)}_parseEscaped(marker){let value;return(value=this._accept(5,!0))?(value=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||value,marker.appendChild(new Text(value)),!0):!1}_parseTabstopOrVariableName(parent){let value;const token=this._token;return this._accept(0)&&(value=this._accept(9,!0)||this._accept(8,!0))?(parent.appendChild(/^\d+$/.test(value)?new Placeholder(Number(value)):new Variable(value)),!0):this._backTo(token)}_parseComplexPlaceholder(parent){let index;const token=this._token;if(!(this._accept(0)&&this._accept(3)&&(index=this._accept(8,!0))))return this._backTo(token);const placeholder=new Placeholder(Number(index));if(this._accept(1))for(;;){if(this._accept(4))return parent.appendChild(placeholder),!0;if(!this._parse(placeholder))return parent.appendChild(new Text("${"+index+":")),placeholder.children.forEach(parent.appendChild,parent),!0}else if(placeholder.index>0&&this._accept(7)){const choice=new Choice;for(;;){if(this._parseChoiceElement(choice)){if(this._accept(2))continue;if(this._accept(7)&&(placeholder.appendChild(choice),this._accept(4)))return parent.appendChild(placeholder),!0}return this._backTo(token),!1}}else return this._accept(6)?this._parseTransform(placeholder)?(parent.appendChild(placeholder),!0):(this._backTo(token),!1):this._accept(4)?(parent.appendChild(placeholder),!0):this._backTo(token)}_parseChoiceElement(parent){const token=this._token,values=[];for(;!(this._token.type===2||this._token.type===7);){let value;if((value=this._accept(5,!0))?value=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||value:value=this._accept(void 0,!0),!value)return this._backTo(token),!1;values.push(value)}return values.length===0?(this._backTo(token),!1):(parent.appendChild(new Text(values.join(""))),!0)}_parseComplexVariable(parent){let name;const token=this._token;if(!(this._accept(0)&&this._accept(3)&&(name=this._accept(9,!0))))return this._backTo(token);const variable=new Variable(name);if(this._accept(1))for(;;){if(this._accept(4))return parent.appendChild(variable),!0;if(!this._parse(variable))return parent.appendChild(new Text("${"+name+":")),variable.children.forEach(parent.appendChild,parent),!0}else return this._accept(6)?this._parseTransform(variable)?(parent.appendChild(variable),!0):(this._backTo(token),!1):this._accept(4)?(parent.appendChild(variable),!0):this._backTo(token)}_parseTransform(parent){const transform=new Transform;let regexValue="",regexOptions="";for(;!this._accept(6);){let escaped;if(escaped=this._accept(5,!0)){escaped=this._accept(6,!0)||escaped,regexValue+=escaped;continue}if(this._token.type!==14){regexValue+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let escaped;if(escaped=this._accept(5,!0)){escaped=this._accept(5,!0)||this._accept(6,!0)||escaped,transform.appendChild(new Text(escaped));continue}if(!(this._parseFormatString(transform)||this._parseAnything(transform)))return!1}for(;!this._accept(4);){if(this._token.type!==14){regexOptions+=this._accept(void 0,!0);continue}return!1}try{transform.regexp=new RegExp(regexValue,regexOptions)}catch{return!1}return parent.transform=transform,!0}_parseFormatString(parent){const token=this._token;if(!this._accept(0))return!1;let complex=!1;this._accept(3)&&(complex=!0);const index=this._accept(8,!0);if(index)if(complex){if(this._accept(4))return parent.appendChild(new FormatString(Number(index))),!0;if(!this._accept(1))return this._backTo(token),!1}else return parent.appendChild(new FormatString(Number(index))),!0;else return this._backTo(token),!1;if(this._accept(6)){const shorthand=this._accept(9,!0);return!shorthand||!this._accept(4)?(this._backTo(token),!1):(parent.appendChild(new FormatString(Number(index),shorthand)),!0)}else if(this._accept(11)){const ifValue=this._until(4);if(ifValue)return parent.appendChild(new FormatString(Number(index),void 0,ifValue,void 0)),!0}else if(this._accept(12)){const elseValue=this._until(4);if(elseValue)return parent.appendChild(new FormatString(Number(index),void 0,void 0,elseValue)),!0}else if(this._accept(13)){const ifValue=this._until(1);if(ifValue){const elseValue=this._until(4);if(elseValue)return parent.appendChild(new FormatString(Number(index),void 0,ifValue,elseValue)),!0}}else{const elseValue=this._until(4);if(elseValue)return parent.appendChild(new FormatString(Number(index),void 0,void 0,elseValue)),!0}return this._backTo(token),!1}_parseAnything(marker){return this._token.type!==14?(marker.appendChild(new Text(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}};__name(_SnippetParser,"SnippetParser");let SnippetParser=_SnippetParser;function createCombinedWorkspaceEdit(uri,ranges,edit){var _a300,_b2,_c,_d;return(typeof edit.insertText=="string"?edit.insertText==="":edit.insertText.snippet==="")?{edits:(_b2=(_a300=edit.additionalEdit)==null?void 0:_a300.edits)!=null?_b2:[]}:{edits:[...ranges.map(range2=>new ResourceTextEdit(uri,{range:range2,text:typeof edit.insertText=="string"?SnippetParser.escape(edit.insertText)+"$0":edit.insertText.snippet,insertAsSnippet:!0})),...(_d=(_c=edit.additionalEdit)==null?void 0:_c.edits)!=null?_d:[]]}}__name(createCombinedWorkspaceEdit,"createCombinedWorkspaceEdit");function sortEditsByYieldTo(edits){var _a300;function yieldsTo(yTo,other){return"mimeType"in yTo?yTo.mimeType===other.handledMimeType:!!other.kind&&yTo.kind.contains(other.kind)}__name(yieldsTo,"yieldsTo");const yieldsToMap=new Map;for(const edit of edits)for(const yTo of(_a300=edit.yieldTo)!=null?_a300:[])for(const other of edits)if(other!==edit&&yieldsTo(yTo,other)){let arr=yieldsToMap.get(edit);arr||(arr=[],yieldsToMap.set(edit,arr)),arr.push(other)}if(!yieldsToMap.size)return Array.from(edits);const visited=new Set,tempStack=[];function visit(nodes){if(!nodes.length)return[];const node=nodes[0];if(tempStack.includes(node))return console.warn("Yield to cycle detected",node),nodes;if(visited.has(node))return visit(nodes.slice(1));let pre=[];const yTo=yieldsToMap.get(node);return yTo&&(tempStack.push(node),pre=visit(yTo),tempStack.pop()),visited.add(node),[...pre,node,...visit(nodes.slice(1))]}return __name(visit,"visit"),visit(Array.from(edits))}__name(sortEditsByYieldTo,"sortEditsByYieldTo");var __decorate$1A=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$1A=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const inlineProgressDecoration=ModelDecorationOptions.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:noBreakWhitespace,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),_InlineProgressWidget=class _InlineProgressWidget extends Disposable{constructor(typeId,editor2,range2,title,delegate){super(),this.typeId=typeId,this.editor=editor2,this.range=range2,this.delegate=delegate,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(title),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(title){this.domNode=$$e(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=title;const iconElement=$$e("span.icon");this.domNode.append(iconElement),iconElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.loading),"codicon-modifier-spin");const updateSize=__name(()=>{const lineHeight=this.editor.getOption(67);this.domNode.style.height=`${lineHeight}px`,this.domNode.style.width=`${Math.ceil(.8*lineHeight)}px`},"updateSize");updateSize(),this._register(this.editor.onDidChangeConfiguration(c=>{(c.hasChanged(52)||c.hasChanged(67))&&updateSize()})),this._register(addDisposableListener(this.domNode,EventType$1.CLICK,e=>{this.delegate.cancel()}))}getId(){return _InlineProgressWidget.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}};__name(_InlineProgressWidget,"InlineProgressWidget"),_InlineProgressWidget.baseId="editor.widget.inlineProgressWidget";let InlineProgressWidget=_InlineProgressWidget;var _a140;let InlineProgressManager=(_a140=class extends Disposable{constructor(id,_editor,_instantiationService){super(),this.id=id,this._editor=_editor,this._instantiationService=_instantiationService,this._showDelay=500,this._showPromise=this._register(new MutableDisposable),this._currentWidget=this._register(new MutableDisposable),this._operationIdPool=0,this._currentDecorations=_editor.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(position,title,promise,delegate,delayOverride){const operationId=this._operationIdPool++;this._currentOperation=operationId,this.clear(),this._showPromise.value=disposableTimeout(()=>{const range2=Range$2.fromPositions(position);this._currentDecorations.set([{range:range2,options:inlineProgressDecoration}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(InlineProgressWidget,this.id,this._editor,range2,title,delegate))},delayOverride!=null?delayOverride:this._showDelay);try{return await promise}finally{this._currentOperation===operationId&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}},__name(_a140,"InlineProgressManager"),_a140);InlineProgressManager=__decorate$1A([__param$1A(2,IInstantiationService)],InlineProgressManager);var __decorate$1z=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$1z=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},MessageController_1,_a141;let MessageController=(_a141=class{static get(editor2){return editor2.getContribution(MessageController_1.ID)}constructor(editor2,contextKeyService,_openerService){this._openerService=_openerService,this._messageWidget=new MutableDisposable,this._messageListeners=new DisposableStore,this._mouseOverMessage=!1,this._editor=editor2,this._visible=MessageController_1.MESSAGE_VISIBLE.bindTo(contextKeyService)}dispose(){var _a300;(_a300=this._message)==null||_a300.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(message,position){alert(isMarkdownString(message)?message.value:message),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=isMarkdownString(message)?renderMarkdown(message,{actionHandler:{callback:__name(url=>{this.closeMessage(),openLinkFromMarkdown(this._openerService,url,isMarkdownString(message)?message.isTrusted:void 0)},"callback"),disposables:this._messageListeners}}):void 0,this._messageWidget.value=new MessageWidget$1(this._editor,position,typeof message=="string"?message:this._message.element),this._messageListeners.add(Event.debounce(this._editor.onDidBlurEditorText,(last,event)=>event,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&isAncestor$1(getActiveElement(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(addDisposableListener(this._messageWidget.value.getDomNode(),EventType$1.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(addDisposableListener(this._messageWidget.value.getDomNode(),EventType$1.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let bounds;this._messageListeners.add(this._editor.onMouseMove(e=>{e.target.position&&(bounds?bounds.containsPosition(e.target.position)||this.closeMessage():bounds=new Range$2(position.lineNumber-3,1,e.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(MessageWidget$1.fadeOut(this._messageWidget.value))}},__name(_a141,"MessageController"),MessageController_1=_a141,_a141.ID="editor.contrib.messageController",_a141.MESSAGE_VISIBLE=new RawContextKey("messageVisible",!1,localize("messageVisible","Whether the editor is currently showing an inline message")),_a141);MessageController=MessageController_1=__decorate$1z([__param$1z(1,IContextKeyService),__param$1z(2,IOpenerService)],MessageController);const MessageCommand=EditorCommand.bindToContribution(MessageController.get);registerEditorCommand(new MessageCommand({id:"leaveEditorMessage",precondition:MessageController.MESSAGE_VISIBLE,handler:__name(c=>c.closeMessage(),"handler"),kbOpts:{weight:130,primary:9}}));var _a142;let MessageWidget$1=(_a142=class{static fadeOut(messageWidget){const dispose2=__name(()=>{messageWidget.dispose(),clearTimeout(handle),messageWidget.getDomNode().removeEventListener("animationend",dispose2)},"dispose"),handle=setTimeout(dispose2,110);return messageWidget.getDomNode().addEventListener("animationend",dispose2),messageWidget.getDomNode().classList.add("fadeOut"),{dispose:dispose2}}constructor(editor2,{lineNumber,column},text2){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=editor2,this._editor.revealLinesInCenterIfOutsideViewport(lineNumber,lineNumber,0),this._position={lineNumber,column},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const anchorTop=document.createElement("div");anchorTop.classList.add("anchor","top"),this._domNode.appendChild(anchorTop);const message=document.createElement("div");typeof text2=="string"?(message.classList.add("message"),message.textContent=text2):(text2.classList.add("message"),message.appendChild(text2)),this._domNode.appendChild(message);const anchorBottom=document.createElement("div");anchorBottom.classList.add("anchor","below"),this._domNode.appendChild(anchorBottom),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(position){this._domNode.classList.toggle("below",position===2)}},__name(_a142,"MessageWidget"),_a142);registerEditorContribution(MessageController.ID,MessageController,4);function exceptionToErrorMessage(exception,verbose){return verbose&&(exception.stack||exception.stacktrace)?localize("stackTrace.format","{0}: {1}",detectSystemErrorMessage(exception),stackToString(exception.stack)||stackToString(exception.stacktrace)):detectSystemErrorMessage(exception)}__name(exceptionToErrorMessage,"exceptionToErrorMessage");function stackToString(stack){return Array.isArray(stack)?stack.join(`
1101
1101
  `):stack}__name(stackToString,"stackToString");function detectSystemErrorMessage(exception){return exception.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${exception.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof exception.code=="string"&&typeof exception.errno=="number"&&typeof exception.syscall=="string"?localize("nodeExceptionMessage","A system error occurred ({0})",exception.message):exception.message||localize("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}__name(detectSystemErrorMessage,"detectSystemErrorMessage");function toErrorMessage(error=null,verbose=!1){if(!error)return localize("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(error)){const errors=coalesce(error),msg=toErrorMessage(errors[0],verbose);return errors.length>1?localize("error.moreErrors","{0} ({1} errors in total)",msg,errors.length):msg}if(isString$1(error))return error;if(error.detail){const detail=error.detail;if(detail.error)return exceptionToErrorMessage(detail.error,verbose);if(detail.exception)return exceptionToErrorMessage(detail.exception,verbose)}return error.stack?exceptionToErrorMessage(error,verbose):error.message?error.message:localize("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}__name(toErrorMessage,"toErrorMessage");var __decorate$1y=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$1y=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},PostEditWidget_1,_a143;let PostEditWidget=(_a143=class extends Disposable{constructor(typeId,editor2,visibleContext,showCommand,range2,edits,onSelectNewEdit,_contextMenuService,contextKeyService,_keybindingService){super(),this.typeId=typeId,this.editor=editor2,this.showCommand=showCommand,this.range=range2,this.edits=edits,this.onSelectNewEdit=onSelectNewEdit,this._contextMenuService=_contextMenuService,this._keybindingService=_keybindingService,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=visibleContext.bindTo(contextKeyService),this.visibleContext.set(!0),this._register(toDisposable(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(toDisposable(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(e=>{range2.containsPosition(e.position)||this.dispose()})),this._register(Event.runAndSubscribe(_keybindingService.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var _a300;const binding=(_a300=this._keybindingService.lookupKeybinding(this.showCommand.id))==null?void 0:_a300.getLabel();this.button.element.title=this.showCommand.label+(binding?` (${binding})`:"")}create(){this.domNode=$$e(".post-edit-widget"),this.button=this._register(new Button(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(addDisposableListener(this.domNode,EventType$1.CLICK,()=>this.showSelector()))}getId(){return PostEditWidget_1.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:__name(()=>{const pos=getDomNodePagePosition(this.button.element);return{x:pos.left+pos.width,y:pos.top+pos.height}},"getAnchor"),getActions:__name(()=>this.edits.allEdits.map((edit,i)=>toAction({id:"",label:edit.title,checked:i===this.edits.activeEditIndex,run:__name(()=>{if(i!==this.edits.activeEditIndex)return this.onSelectNewEdit(i)},"run")})),"getActions")})}},__name(_a143,"PostEditWidget"),PostEditWidget_1=_a143,_a143.baseId="editor.widget.postEditWidget",_a143);PostEditWidget=PostEditWidget_1=__decorate$1y([__param$1y(7,IContextMenuService),__param$1y(8,IContextKeyService),__param$1y(9,IKeybindingService)],PostEditWidget);var _a144;let PostEditWidgetManager=(_a144=class extends Disposable{constructor(_id,_editor,_visibleContext,_showCommand,_instantiationService,_bulkEditService,_notificationService){super(),this._id=_id,this._editor=_editor,this._visibleContext=_visibleContext,this._showCommand=_showCommand,this._instantiationService=_instantiationService,this._bulkEditService=_bulkEditService,this._notificationService=_notificationService,this._currentWidget=this._register(new MutableDisposable),this._register(Event.any(_editor.onDidChangeModel,_editor.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(ranges,edits,canShowWidget,resolve2,token){const model=this._editor.getModel();if(!model||!ranges.length)return;const edit=edits.allEdits.at(edits.activeEditIndex);if(!edit)return;const onDidSelectEdit=__name(async newEditIndex=>{const model2=this._editor.getModel();model2&&(await model2.undo(),this.applyEditAndShowIfNeeded(ranges,{activeEditIndex:newEditIndex,allEdits:edits.allEdits},canShowWidget,resolve2,token))},"onDidSelectEdit"),handleError=__name((e,message)=>{isCancellationError(e)||(this._notificationService.error(message),canShowWidget&&this.show(ranges[0],edits,onDidSelectEdit))},"handleError");let resolvedEdit;try{resolvedEdit=await resolve2(edit,token)}catch(e){return handleError(e,localize("resolveError",`Error resolving edit '{0}':
@@ -1160,4 +1160,4 @@ ${graph.toString()}`}};__name(_CyclicDependencyError,"CyclicDependencyError");le
1160
1160
  `));const d=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:"advanced"});return ObservablePromise.fromFn(async()=>{const result=await d.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},CancellationToken.None);if(!result.identical)return new InlineEdit(LineRange$1.fromRangeInclusive(range2),removeIndentation2(newLines),result.changes)})}),this._fetchStore=this._register(new DisposableStore),this._inlineEditsFetchResult=disposableObservableValue(this,void 0),this._inlineEdits=derivedOpts({owner:this,equalsFn:structuralEquals},reader=>{var _a300,_b2;return(_b2=(_a300=this._inlineEditsFetchResult.read(reader))==null?void 0:_a300.completions.map(c=>new InlineEditData(c)))!=null?_b2:[]}),this._fetchInlineEditsPromise=derivedHandleChanges({owner:this,createEmptyChangeSummary:__name(()=>({inlineCompletionTriggerKind:InlineCompletionTriggerKind$1.Automatic}),"createEmptyChangeSummary"),handleChange:__name((ctx,changeSummary)=>(ctx.didChange(this._forceUpdateExplicitlySignal)&&(changeSummary.inlineCompletionTriggerKind=InlineCompletionTriggerKind$1.Explicit),!0),"handleChange")},async(reader,changeSummary)=>{var _a300;this._fetchStore.clear(),this._forceUpdateExplicitlySignal.read(reader),this._textModelVersionId.read(reader);function mapValue(value,fn){return fn(value)}__name(mapValue,"mapValue");const selection=(_a300=this._pinnedRange.range.read(reader))!=null?_a300:mapValue(this._selection.read(reader),v=>v.isEmpty()?void 0:v);if(!selection){this._inlineEditsFetchResult.set(void 0,void 0),this.userPrompt.set(void 0,void 0);return}const context={triggerKind:changeSummary.inlineCompletionTriggerKind,selectedSuggestionInfo:void 0,userPrompt:this.userPrompt.read(reader)},token=cancelOnDispose(this._fetchStore);await timeout(200,token);const result=await provideInlineCompletions(this.languageFeaturesService.inlineCompletionsProvider,selection,this.textModel,context,token);token.isCancellationRequested||this._inlineEditsFetchResult.set(result,void 0)}),this._filteredInlineEditItems=derivedOpts({owner:this,equalsFn:itemsEquals()},reader=>this._inlineEdits.read(reader)),this.selectedInlineCompletionIndex=derived(this,reader=>{const selectedInlineCompletionId=this._selectedInlineCompletionId.read(reader),filteredCompletions=this._filteredInlineEditItems.read(reader),idx=this._selectedInlineCompletionId===void 0?-1:filteredCompletions.findIndex(v=>v.semanticId===selectedInlineCompletionId);return idx===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):idx}),this.selectedInlineEdit=derived(this,reader=>{const filteredCompletions=this._filteredInlineEditItems.read(reader),idx=this.selectedInlineCompletionIndex.read(reader);return filteredCompletions[idx]}),this._register(recomputeInitiallyAndOnChange(this._fetchInlineEditsPromise))}async triggerExplicitly(tx){subtransaction(tx,tx2=>{this._isActive.set(!0,tx2),this._forceUpdateExplicitlySignal.trigger(tx2)}),await this._fetchInlineEditsPromise.get()}stop(tx){subtransaction(tx,tx2=>{this.userPrompt.set(void 0,tx2),this._isActive.set(!1,tx2),this._inlineEditsFetchResult.set(void 0,tx2),this._pinnedRange.setRange(void 0,tx2)})}async _deltaSelectedInlineCompletionIndex(delta){await this.triggerExplicitly();const completions=this._filteredInlineEditItems.get()||[];if(completions.length>0){const newIdx=(this.selectedInlineCompletionIndex.get()+delta+completions.length)%completions.length;this._selectedInlineCompletionId.set(completions[newIdx].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(editor2){if(editor2.getModel()!==this.textModel)throw new BugIndicatingError;const edit=this.selectedInlineEdit.get();edit&&(editor2.pushUndoStop(),editor2.executeEdits("inlineSuggestion.accept",[edit.inlineCompletion.toSingleTextEdit().toSingleEditOperation()]),this.stop())}},__name(_a253,"InlineEditsModel"),InlineEditsModel_1=_a253,_a253._modelId=0,_a253);InlineEditsModel=InlineEditsModel_1=__decorate$t([__param$t(4,ILanguageFeaturesService),__param$t(5,IDiffProviderFactoryService),__param$t(6,IModelService)],InlineEditsModel);const _InlineEditData=class _InlineEditData{constructor(inlineCompletion){this.inlineCompletion=inlineCompletion,this.semanticId=this.inlineCompletion.hash()}};__name(_InlineEditData,"InlineEditData");let InlineEditData=_InlineEditData;const _TrackedRange=class _TrackedRange extends Disposable{constructor(_textModel,_versionId){super(),this._textModel=_textModel,this._versionId=_versionId,this._decorations=observableValue(this,[]),this.range=derived(this,reader=>{var _a300;this._versionId.read(reader);const deco=this._decorations.read(reader)[0];return deco&&(_a300=this._textModel.getDecorationRange(deco))!=null?_a300:null}),this._register(toDisposable(()=>{this._textModel.deltaDecorations(this._decorations.get(),[])}))}setRange(range2,tx){this._decorations.set(this._textModel.deltaDecorations(this._decorations.get(),range2?[{range:range2,options:{description:"trackedRange"}}]:[]),tx)}};__name(_TrackedRange,"TrackedRange");let TrackedRange=_TrackedRange;var __decorate$s=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$s=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},InlineEditsController_1,_a254;let InlineEditsController=(_a254=class extends Disposable{static get(editor2){return editor2.getContribution(InlineEditsController_1.ID)}constructor(editor2,_instantiationService,_contextKeyService,_debounceService,_languageFeaturesService,_configurationService){super(),this.editor=editor2,this._instantiationService=_instantiationService,this._contextKeyService=_contextKeyService,this._debounceService=_debounceService,this._languageFeaturesService=_languageFeaturesService,this._configurationService=_configurationService,this._enabled=observableConfigValue("editor.inlineEdits.enabled",!1,this._configurationService),this._editorObs=observableCodeEditor(this.editor),this._selection=derived(this,reader=>{var _a300;return(_a300=this._editorObs.cursorSelection.read(reader))!=null?_a300:new Selection$1(1,1,1,1)}),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineEditsDebounce",{min:50,max:50}),this.model=derivedDisposable(this,reader=>{if(!this._enabled.read(reader)||this._editorObs.isReadonly.read(reader))return;const textModel=this._editorObs.model.read(reader);return textModel?this._instantiationService.createInstance(readHotReloadableExport(InlineEditsModel,reader),textModel,this._editorObs.versionId,this._selection,this._debounceValue):void 0}),this._hadInlineEdit=derivedObservableWithCache(this,(reader,lastValue)=>{var _a300;return lastValue||((_a300=this.model.read(reader))==null?void 0:_a300.inlineEdit.read(reader))!==void 0}),this._widget=derivedDisposable(this,reader=>{if(this._hadInlineEdit.read(reader))return this._instantiationService.createInstance(readHotReloadableExport(InlineEditsWidget,reader),this.editor,this.model.map((m2,reader2)=>m2==null?void 0:m2.inlineEdit.read(reader2)),flattenSettableObservable(reader2=>{var _a300,_b2;return(_b2=(_a300=this.model.read(reader2))==null?void 0:_a300.userPrompt)!=null?_b2:observableValue("empty","")}))}),this._register(bindContextKey(inlineEditVisible,this._contextKeyService,r=>{var _a300;return!!((_a300=this.model.read(r))!=null&&_a300.inlineEdit.read(r))})),this._register(bindContextKey(isPinnedContextKey,this._contextKeyService,r=>{var _a300;return!!((_a300=this.model.read(r))!=null&&_a300.isPinned.read(r))})),this.model.recomputeInitiallyAndOnChange(this._store),this._widget.recomputeInitiallyAndOnChange(this._store)}},__name(_a254,"InlineEditsController"),InlineEditsController_1=_a254,_a254.ID="editor.contrib.inlineEditsController",_a254);InlineEditsController=InlineEditsController_1=__decorate$s([__param$s(1,IInstantiationService),__param$s(2,IContextKeyService),__param$s(3,ILanguageFeatureDebounceService),__param$s(4,ILanguageFeaturesService),__param$s(5,IConfigurationService)],InlineEditsController);function flattenSettableObservable(fn){return derivedWithSetter(void 0,reader=>fn(reader).read(reader),(value,tx)=>{fn(void 0).set(value,tx)})}__name(flattenSettableObservable,"flattenSettableObservable");function labelAndAlias(str){return{label:str.value,alias:str.original}}__name(labelAndAlias,"labelAndAlias");const _ShowNextInlineEditAction=class _ShowNextInlineEditAction extends EditorAction{constructor(){super({id:_ShowNextInlineEditAction.ID,...labelAndAlias(localize2("action.inlineEdits.showNext","Show Next Inline Edit")),precondition:ContextKeyExpr.and(EditorContextKeys.writable,inlineEditVisible),kbOpts:{weight:100,primary:606}})}async run(accessor,editor2){var _a300;const controller=InlineEditsController.get(editor2);(_a300=controller==null?void 0:controller.model.get())==null||_a300.next()}};__name(_ShowNextInlineEditAction,"ShowNextInlineEditAction"),_ShowNextInlineEditAction.ID=showNextInlineEditActionId;let ShowNextInlineEditAction=_ShowNextInlineEditAction;const _ShowPreviousInlineEditAction=class _ShowPreviousInlineEditAction extends EditorAction{constructor(){super({id:_ShowPreviousInlineEditAction.ID,...labelAndAlias(localize2("action.inlineEdits.showPrevious","Show Previous Inline Edit")),precondition:ContextKeyExpr.and(EditorContextKeys.writable,inlineEditVisible),kbOpts:{weight:100,primary:604}})}async run(accessor,editor2){var _a300;const controller=InlineEditsController.get(editor2);(_a300=controller==null?void 0:controller.model.get())==null||_a300.previous()}};__name(_ShowPreviousInlineEditAction,"ShowPreviousInlineEditAction"),_ShowPreviousInlineEditAction.ID=showPreviousInlineEditActionId;let ShowPreviousInlineEditAction=_ShowPreviousInlineEditAction;const _TriggerInlineEditAction=class _TriggerInlineEditAction extends EditorAction{constructor(){super({id:"editor.action.inlineEdits.trigger",...labelAndAlias(localize2("action.inlineEdits.trigger","Trigger Inline Edit")),precondition:EditorContextKeys.writable})}async run(accessor,editor2){const controller=InlineEditsController.get(editor2);await asyncTransaction(async tx=>{var _a300;await((_a300=controller==null?void 0:controller.model.get())==null?void 0:_a300.triggerExplicitly(tx))})}};__name(_TriggerInlineEditAction,"TriggerInlineEditAction");let TriggerInlineEditAction=_TriggerInlineEditAction;const _AcceptInlineEdit=class _AcceptInlineEdit extends EditorAction{constructor(){super({id:inlineEditAcceptId,...labelAndAlias(localize2("action.inlineEdits.accept","Accept Inline Edit")),precondition:inlineEditVisible,menuOpts:{menuId:MenuId.InlineEditsActions,title:localize("inlineEditsActions","Accept Inline Edit"),group:"primary",order:1,icon:Codicon.check},kbOpts:{primary:2058,weight:2e4,kbExpr:inlineEditVisible}})}async run(accessor,editor2){var _a300;editor2 instanceof EmbeddedCodeEditorWidget&&(editor2=editor2.getParentEditor());const controller=InlineEditsController.get(editor2);controller&&((_a300=controller.model.get())==null||_a300.accept(controller.editor),controller.editor.focus())}};__name(_AcceptInlineEdit,"AcceptInlineEdit");let AcceptInlineEdit=_AcceptInlineEdit;const _HideInlineEdit=class _HideInlineEdit extends EditorAction{constructor(){super({id:_HideInlineEdit.ID,...labelAndAlias(localize2("action.inlineEdits.hide","Hide Inline Edit")),precondition:inlineEditVisible,kbOpts:{weight:100,primary:9}})}async run(accessor,editor2){const controller=InlineEditsController.get(editor2);transaction(tx=>{var _a300;(_a300=controller==null?void 0:controller.model.get())==null||_a300.stop(tx)})}};__name(_HideInlineEdit,"HideInlineEdit"),_HideInlineEdit.ID="editor.action.inlineEdits.hide";let HideInlineEdit=_HideInlineEdit;registerEditorContribution(InlineEditsController.ID,InlineEditsController,3);registerEditorAction(TriggerInlineEditAction);registerEditorAction(ShowNextInlineEditAction);registerEditorAction(ShowPreviousInlineEditAction);registerEditorAction(AcceptInlineEdit);registerEditorAction(HideInlineEdit);const Context={Visible:new RawContextKey("parameterHintsVisible",!1),MultipleSignatures:new RawContextKey("parameterHintsMultipleSignatures",!1)};async function provideSignatureHelp(registry,model,position,context,token){const supports=registry.ordered(model);for(const support of supports)try{const result=await support.provideSignatureHelp(model,position,token,context);if(result)return result}catch(err){onUnexpectedExternalError(err)}}__name(provideSignatureHelp,"provideSignatureHelp");CommandsRegistry.registerCommand("_executeSignatureHelpProvider",async(accessor,...args)=>{const[uri,position,triggerCharacter]=args;assertType(URI.isUri(uri)),assertType(Position$1.isIPosition(position)),assertType(typeof triggerCharacter=="string"||!triggerCharacter);const languageFeaturesService=accessor.get(ILanguageFeaturesService),ref=await accessor.get(ITextModelService).createModelReference(uri);try{const result=await provideSignatureHelp(languageFeaturesService.signatureHelpProvider,ref.object.textEditorModel,Position$1.lift(position),{triggerKind:SignatureHelpTriggerKind$1.Invoke,isRetrigger:!1,triggerCharacter},CancellationToken.None);return result?(setTimeout(()=>result.dispose(),0),result.value):void 0}finally{ref.dispose()}});var ParameterHintState;(function(ParameterHintState2){ParameterHintState2.Default={type:0};const _Pending=class _Pending{constructor(request,previouslyActiveHints){this.request=request,this.previouslyActiveHints=previouslyActiveHints,this.type=2}};__name(_Pending,"Pending");let Pending=_Pending;ParameterHintState2.Pending=Pending;const _Active=class _Active{constructor(hints){this.hints=hints,this.type=1}};__name(_Active,"Active");let Active=_Active;ParameterHintState2.Active=Active})(ParameterHintState||(ParameterHintState={}));const _ParameterHintsModel=class _ParameterHintsModel extends Disposable{constructor(editor2,providers,delay=_ParameterHintsModel.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new Emitter$1),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=ParameterHintState.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new MutableDisposable),this.triggerChars=new CharacterSet,this.retriggerChars=new CharacterSet,this.triggerId=0,this.editor=editor2,this.providers=providers,this.throttledDelayer=new Delayer(delay),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(e=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(_=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(e=>this.onCursorChange(e))),this._register(this.editor.onDidChangeModelContent(e=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(text2=>this.onDidType(text2))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(value){this._state.type===2&&this._state.request.cancel(),this._state=value}cancel(silent=!1){this.state=ParameterHintState.Default,this.throttledDelayer.cancel(),silent||this._onChangedHints.fire(void 0)}trigger(context,delay){const model=this.editor.getModel();if(!model||!this.providers.has(model))return;const triggerId=++this.triggerId;this._pendingTriggers.push(context),this.throttledDelayer.trigger(()=>this.doTrigger(triggerId),delay).catch(onUnexpectedError)}next(){if(this.state.type!==1)return;const length=this.state.hints.signatures.length,activeSignature=this.state.hints.activeSignature,last=activeSignature%length===length-1,cycle=this.editor.getOption(86).cycle;if((length<2||last)&&!cycle){this.cancel();return}this.updateActiveSignature(last&&cycle?0:activeSignature+1)}previous(){if(this.state.type!==1)return;const length=this.state.hints.signatures.length,activeSignature=this.state.hints.activeSignature,first2=activeSignature===0,cycle=this.editor.getOption(86).cycle;if((length<2||first2)&&!cycle){this.cancel();return}this.updateActiveSignature(first2&&cycle?length-1:activeSignature-1)}updateActiveSignature(activeSignature){this.state.type===1&&(this.state=new ParameterHintState.Active({...this.state.hints,activeSignature}),this._onChangedHints.fire(this.state.hints))}async doTrigger(triggerId){const isRetrigger=this.state.type===1||this.state.type===2,activeSignatureHelp=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const context=this._pendingTriggers.reduce(mergeTriggerContexts);this._pendingTriggers=[];const triggerContext={triggerKind:context.triggerKind,triggerCharacter:context.triggerCharacter,isRetrigger,activeSignatureHelp};if(!this.editor.hasModel())return!1;const model=this.editor.getModel(),position=this.editor.getPosition();this.state=new ParameterHintState.Pending(createCancelablePromise(token=>provideSignatureHelp(this.providers,model,position,triggerContext,token)),activeSignatureHelp);try{const result=await this.state.request;return triggerId!==this.triggerId?(result==null||result.dispose(),!1):!result||!result.value.signatures||result.value.signatures.length===0?(result==null||result.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new ParameterHintState.Active(result.value),this._lastSignatureHelpResult.value=result,this._onChangedHints.fire(this.state.hints),!0)}catch(error){return triggerId===this.triggerId&&(this.state=ParameterHintState.Default),onUnexpectedError(error),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const model=this.editor.getModel();if(model)for(const support of this.providers.ordered(model)){for(const ch of support.signatureHelpTriggerCharacters||[])if(ch.length){const charCode=ch.charCodeAt(0);this.triggerChars.add(charCode),this.retriggerChars.add(charCode)}for(const ch of support.signatureHelpRetriggerCharacters||[])ch.length&&this.retriggerChars.add(ch.charCodeAt(0))}}onDidType(text2){if(!this.triggerOnType)return;const lastCharIndex=text2.length-1,triggerCharCode=text2.charCodeAt(lastCharIndex);(this.triggerChars.has(triggerCharCode)||this.isTriggered&&this.retriggerChars.has(triggerCharCode))&&this.trigger({triggerKind:SignatureHelpTriggerKind$1.TriggerCharacter,triggerCharacter:text2.charAt(lastCharIndex)})}onCursorChange(e){e.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:SignatureHelpTriggerKind$1.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:SignatureHelpTriggerKind$1.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}};__name(_ParameterHintsModel,"ParameterHintsModel"),_ParameterHintsModel.DEFAULT_DELAY=120;let ParameterHintsModel=_ParameterHintsModel;function mergeTriggerContexts(previous,current){switch(current.triggerKind){case SignatureHelpTriggerKind$1.Invoke:return current;case SignatureHelpTriggerKind$1.ContentChange:return previous;case SignatureHelpTriggerKind$1.TriggerCharacter:default:return current}}__name(mergeTriggerContexts,"mergeTriggerContexts");var __decorate$r=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$r=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},ParameterHintsWidget_1;const $=$$e,parameterHintsNextIcon=registerIcon("parameter-hints-next",Codicon.chevronDown,localize("parameterHintsNextIcon","Icon for show next parameter hint.")),parameterHintsPreviousIcon=registerIcon("parameter-hints-previous",Codicon.chevronUp,localize("parameterHintsPreviousIcon","Icon for show previous parameter hint."));var _a255;let ParameterHintsWidget=(_a255=class extends Disposable{constructor(editor2,model,contextKeyService,openerService,languageService,telemetryService){super(),this.editor=editor2,this.model=model,this.telemetryService=telemetryService,this.renderDisposeables=this._register(new DisposableStore),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new MarkdownRenderer({editor:editor2},languageService,openerService)),this.keyVisible=Context.Visible.bindTo(contextKeyService),this.keyMultipleSignatures=Context.MultipleSignatures.bindTo(contextKeyService)}createParameterHintDOMNodes(){const element=$(".editor-widget.parameter-hints-widget"),wrapper=append$1(element,$(".phwrapper"));wrapper.tabIndex=-1;const controls=append$1(wrapper,$(".controls")),previous=append$1(controls,$(".button"+ThemeIcon.asCSSSelector(parameterHintsPreviousIcon))),overloads=append$1(controls,$(".overloads")),next=append$1(controls,$(".button"+ThemeIcon.asCSSSelector(parameterHintsNextIcon)));this._register(addDisposableListener(previous,"click",e=>{EventHelper.stop(e),this.previous()})),this._register(addDisposableListener(next,"click",e=>{EventHelper.stop(e),this.next()}));const body=$(".body"),scrollbar=new DomScrollableElement(body,{alwaysConsumeMouseWheel:!0});this._register(scrollbar),wrapper.appendChild(scrollbar.getDomNode());const signature=append$1(body,$(".signature")),docs=append$1(body,$(".docs"));element.style.userSelect="text",this.domNodes={element,signature,overloads,docs,scrollbar},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(e=>{this.visible&&this.editor.layoutContentWidget(this)}));const updateFont=__name(()=>{if(!this.domNodes)return;const fontInfo=this.editor.getOption(50),element2=this.domNodes.element;element2.style.fontSize=`${fontInfo.fontSize}px`,element2.style.lineHeight=`${fontInfo.lineHeight/fontInfo.fontSize}`,element2.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",fontInfo.fontFamily),element2.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",EDITOR_FONT_DEFAULTS.fontFamily)},"updateFont");updateFont(),this._register(Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor),$2=>$2.filter(e=>e.hasChanged(50)))(updateFont)),this._register(this.editor.onDidLayoutChange(e=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var _a300;(_a300=this.domNodes)==null||_a300.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){var _a300;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(_a300=this.domNodes)==null||_a300.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(hints){var _a300;if(this.renderDisposeables.clear(),!this.domNodes)return;const multiple=hints.signatures.length>1;this.domNodes.element.classList.toggle("multiple",multiple),this.keyMultipleSignatures.set(multiple),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const signature=hints.signatures[hints.activeSignature];if(!signature)return;const code=append$1(this.domNodes.signature,$(".code")),hasParameters=signature.parameters.length>0,activeParameterIndex=(_a300=signature.activeParameter)!=null?_a300:hints.activeParameter;if(hasParameters)this.renderParameters(code,signature,activeParameterIndex);else{const label=append$1(code,$("span"));label.textContent=signature.label}const activeParameter=signature.parameters[activeParameterIndex];if(activeParameter!=null&&activeParameter.documentation){const documentation=$("span.documentation");if(typeof activeParameter.documentation=="string")documentation.textContent=activeParameter.documentation;else{const renderedContents=this.renderMarkdownDocs(activeParameter.documentation);documentation.appendChild(renderedContents.element)}append$1(this.domNodes.docs,$("p",{},documentation))}if(signature.documentation!==void 0)if(typeof signature.documentation=="string")append$1(this.domNodes.docs,$("p",{},signature.documentation));else{const renderedContents=this.renderMarkdownDocs(signature.documentation);append$1(this.domNodes.docs,renderedContents.element)}const hasDocs=this.hasDocs(signature,activeParameter);if(this.domNodes.signature.classList.toggle("has-docs",hasDocs),this.domNodes.docs.classList.toggle("empty",!hasDocs),this.domNodes.overloads.textContent=String(hints.activeSignature+1).padStart(hints.signatures.length.toString().length,"0")+"/"+hints.signatures.length,activeParameter){let labelToAnnounce="";const param=signature.parameters[activeParameterIndex];Array.isArray(param.label)?labelToAnnounce=signature.label.substring(param.label[0],param.label[1]):labelToAnnounce=param.label,param.documentation&&(labelToAnnounce+=typeof param.documentation=="string"?`, ${param.documentation}`:`, ${param.documentation.value}`),signature.documentation&&(labelToAnnounce+=typeof signature.documentation=="string"?`, ${signature.documentation}`:`, ${signature.documentation.value}`),this.announcedLabel!==labelToAnnounce&&(alert(localize("hint","{0}, hint",labelToAnnounce)),this.announcedLabel=labelToAnnounce)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(markdown){const stopWatch=new StopWatch,renderedContents=this.renderDisposeables.add(this.markdownRenderer.render(markdown,{asyncRenderCallback:__name(()=>{var _a300;(_a300=this.domNodes)==null||_a300.scrollbar.scanDomNode()},"asyncRenderCallback")}));renderedContents.element.classList.add("markdown-docs");const renderDuration=stopWatch.elapsed();return renderDuration>300&&this.telemetryService.publicLog2("parameterHints.parseMarkdown",{renderDuration}),renderedContents}hasDocs(signature,activeParameter){return!!(activeParameter&&typeof activeParameter.documentation=="string"&&assertIsDefined(activeParameter.documentation).length>0||activeParameter&&typeof activeParameter.documentation=="object"&&assertIsDefined(activeParameter.documentation).value.length>0||signature.documentation&&typeof signature.documentation=="string"&&assertIsDefined(signature.documentation).length>0||signature.documentation&&typeof signature.documentation=="object"&&assertIsDefined(signature.documentation.value).length>0)}renderParameters(parent,signature,activeParameterIndex){const[start,end]=this.getParameterLabelOffsets(signature,activeParameterIndex),beforeSpan=document.createElement("span");beforeSpan.textContent=signature.label.substring(0,start);const paramSpan=document.createElement("span");paramSpan.textContent=signature.label.substring(start,end),paramSpan.className="parameter active";const afterSpan=document.createElement("span");afterSpan.textContent=signature.label.substring(end),append$1(parent,beforeSpan,paramSpan,afterSpan)}getParameterLabelOffsets(signature,paramIdx){const param=signature.parameters[paramIdx];if(param){if(Array.isArray(param.label))return param.label;if(param.label.length){const regex=new RegExp(`(\\W|^)${escapeRegExpCharacters(param.label)}(?=\\W|$)`,"g");regex.test(signature.label);const idx=regex.lastIndex-param.label.length;return idx>=0?[idx,regex.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return ParameterHintsWidget_1.ID}updateMaxHeight(){if(!this.domNodes)return;const maxHeight=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=maxHeight;const wrapper=this.domNodes.element.getElementsByClassName("phwrapper");wrapper.length&&(wrapper[0].style.maxHeight=maxHeight)}},__name(_a255,"ParameterHintsWidget"),ParameterHintsWidget_1=_a255,_a255.ID="editor.widget.parameterHintsWidget",_a255);ParameterHintsWidget=ParameterHintsWidget_1=__decorate$r([__param$r(2,IContextKeyService),__param$r(3,IOpenerService),__param$r(4,ILanguageService),__param$r(5,ITelemetryService)],ParameterHintsWidget);registerColor("editorHoverWidget.highlightForeground",listHighlightForeground,localize("editorHoverWidgetHighlightForeground","Foreground color of the active item in the parameter hint."));var __decorate$q=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$q=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},ParameterHintsController_1,_a256;let ParameterHintsController=(_a256=class extends Disposable{static get(editor2){return editor2.getContribution(ParameterHintsController_1.ID)}constructor(editor2,instantiationService,languageFeaturesService){super(),this.editor=editor2,this.model=this._register(new ParameterHintsModel(editor2,languageFeaturesService.signatureHelpProvider)),this._register(this.model.onChangedHints(newParameterHints=>{var _a300;newParameterHints?(this.widget.value.show(),this.widget.value.render(newParameterHints)):(_a300=this.widget.rawValue)==null||_a300.hide()})),this.widget=new Lazy(()=>this._register(instantiationService.createInstance(ParameterHintsWidget,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var _a300;(_a300=this.widget.rawValue)==null||_a300.previous()}next(){var _a300;(_a300=this.widget.rawValue)==null||_a300.next()}trigger(context){this.model.trigger(context,0)}},__name(_a256,"ParameterHintsController"),ParameterHintsController_1=_a256,_a256.ID="editor.controller.parameterHints",_a256);ParameterHintsController=ParameterHintsController_1=__decorate$q([__param$q(1,IInstantiationService),__param$q(2,ILanguageFeaturesService)],ParameterHintsController);const _TriggerParameterHintsAction=class _TriggerParameterHintsAction extends EditorAction{constructor(){super({id:"editor.action.triggerParameterHints",label:localize("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3082,weight:100}})}run(accessor,editor2){const controller=ParameterHintsController.get(editor2);controller==null||controller.trigger({triggerKind:SignatureHelpTriggerKind$1.Invoke})}};__name(_TriggerParameterHintsAction,"TriggerParameterHintsAction");let TriggerParameterHintsAction=_TriggerParameterHintsAction;registerEditorContribution(ParameterHintsController.ID,ParameterHintsController,2);registerEditorAction(TriggerParameterHintsAction);const weight$1=175,ParameterHintsCommand=EditorCommand.bindToContribution(ParameterHintsController.get);registerEditorCommand(new ParameterHintsCommand({id:"closeParameterHints",precondition:Context.Visible,handler:__name(x=>x.cancel(),"handler"),kbOpts:{weight:weight$1,kbExpr:EditorContextKeys.focus,primary:9,secondary:[1033]}}));registerEditorCommand(new ParameterHintsCommand({id:"showPrevParameterHint",precondition:ContextKeyExpr.and(Context.Visible,Context.MultipleSignatures),handler:__name(x=>x.previous(),"handler"),kbOpts:{weight:weight$1,kbExpr:EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));registerEditorCommand(new ParameterHintsCommand({id:"showNextParameterHint",precondition:ContextKeyExpr.and(Context.Visible,Context.MultipleSignatures),handler:__name(x=>x.next(),"handler"),kbOpts:{weight:weight$1,kbExpr:EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var __decorate$p=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$p=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const _BaseClass=class _BaseClass{constructor(instantiationService){this.instantiationService=instantiationService}init(...params){}};__name(_BaseClass,"BaseClass");let BaseClass=_BaseClass;function createWrapper(getClass,B){var _a300;return _a300=class extends B{constructor(){super(...arguments),this._autorun=void 0}init(...params){this._autorun=autorunWithStore((reader,store)=>{const clazz=readHotReloadableExport(getClass(),reader);store.add(this.instantiationService.createInstance(clazz,...params))})}dispose(){var _a301;(_a301=this._autorun)==null||_a301.dispose()}},__name(_a300,"ReloadableWrapper"),_a300}__name(createWrapper,"createWrapper");function wrapInReloadableClass1(getClass){return isHotReloadEnabled()?createWrapper(getClass,BaseClass1):getClass()}__name(wrapInReloadableClass1,"wrapInReloadableClass1");var _a257;let BaseClass1=(_a257=class extends BaseClass{constructor(param1,i){super(i),this.init(param1)}},__name(_a257,"BaseClass1"),_a257);BaseClass1=__decorate$p([__param$p(1,IInstantiationService)],BaseClass1);registerEditorContribution(PlaceholderTextContribution.ID,wrapInReloadableClass1(()=>PlaceholderTextContribution),0);registerColor("editor.placeholder.foreground",ghostTextForeground,localize("placeholderForeground","Foreground color of the placeholder text in the editor."));var __decorate$o=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$o=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const CONTEXT_RENAME_INPUT_VISIBLE=new RawContextKey("renameInputVisible",!1,localize("renameInputVisible","Whether the rename input widget is visible"));new RawContextKey("renameInputFocused",!1,localize("renameInputFocused","Whether the rename input widget is focused"));var _a258;let RenameWidget=(_a258=class{constructor(_editor,_acceptKeybindings,_themeService,_keybindingService,contextKeyService,_logService){this._editor=_editor,this._acceptKeybindings=_acceptKeybindings,this._themeService=_themeService,this._keybindingService=_keybindingService,this._logService=_logService,this.allowEditorOverflow=!0,this._disposables=new DisposableStore,this._visibleContextKey=CONTEXT_RENAME_INPUT_VISIBLE.bindTo(contextKeyService),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new StopWatch,this._inputWithButton=new InputWithButton,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(50)&&this._updateFont()})),this._disposables.add(_themeService.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new RenameCandidateListView(this._domNode,{fontInfo:this._editor.getOption(50),onFocusChange:__name(newSymbolName=>{this._inputWithButton.input.value=newSymbolName,this._isEditingRenameCandidate=!1},"onFocusChange"),onSelectionChange:__name(()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)},"onSelectionChange")})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{var _a300,_b2,_c,_d;((_a300=this._renameCandidateListView)==null?void 0:_a300.focusedCandidate)!==void 0&&(this._isEditingRenameCandidate=!0),(_b2=this._timeBeforeFirstInputFieldEdit)!=null||(this._timeBeforeFirstInputFieldEdit=this._beforeFirstInputFieldEditSW.elapsed()),((_c=this._renameCandidateProvidersCts)==null?void 0:_c.token.isCancellationRequested)===!1&&this._renameCandidateProvidersCts.cancel(),(_d=this._renameCandidateListView)==null||_d.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(theme){var _a300,_b2,_c,_d,_e;if(!this._domNode)return;const widgetShadowColor=theme.getColor(widgetShadow),widgetBorderColor=theme.getColor(widgetBorder);this._domNode.style.backgroundColor=String((_a300=theme.getColor(editorWidgetBackground))!=null?_a300:""),this._domNode.style.boxShadow=widgetShadowColor?` 0 0 8px 2px ${widgetShadowColor}`:"",this._domNode.style.border=widgetBorderColor?`1px solid ${widgetBorderColor}`:"",this._domNode.style.color=String((_b2=theme.getColor(inputForeground))!=null?_b2:"");const border=theme.getColor(inputBorder);this._inputWithButton.domNode.style.backgroundColor=String((_c=theme.getColor(inputBackground))!=null?_c:""),this._inputWithButton.input.style.backgroundColor=String((_d=theme.getColor(inputBackground))!=null?_d:""),this._inputWithButton.domNode.style.borderWidth=border?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=border?"solid":"none",this._inputWithButton.domNode.style.borderColor=(_e=border==null?void 0:border.toString())!=null?_e:"none"}_updateFont(){if(this._domNode===void 0)return;assertType(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const fontInfo=this._editor.getOption(50);this._label.style.fontSize=`${this._computeLabelFontSize(fontInfo.fontSize)}px`}_computeLabelFontSize(editorFontSize){return editorFontSize*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const bodyBox=getClientArea(this.getDomNode().ownerDocument.body),editorBox=getDomNodePagePosition(this._editor.getDomNode()),cursorBoxTop=this._getTopForPosition();this._nPxAvailableAbove=cursorBoxTop+editorBox.top,this._nPxAvailableBelow=bodyBox.height-this._nPxAvailableAbove;const lineHeight=this._editor.getOption(67),{totalHeight:candidateViewHeight}=RenameCandidateView.getLayoutInfo({lineHeight}),positionPreference=this._nPxAvailableBelow>candidateViewHeight*6?[2,1]:[1,2];return{position:this._position,preference:positionPreference}}beforeRender(){var _a300,_b2;const[accept,preview]=this._acceptKeybindings;return this._label.innerText=localize({key:"label",comment:['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"']},"{0} to Rename, {1} to Preview",(_a300=this._keybindingService.lookupKeybinding(accept))==null?void 0:_a300.getLabel(),(_b2=this._keybindingService.lookupKeybinding(preview))==null?void 0:_b2.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(position){if(position===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;assertType(this._renameCandidateListView),assertType(this._nPxAvailableAbove!==void 0),assertType(this._nPxAvailableBelow!==void 0);const inputBoxHeight=getTotalHeight(this._inputWithButton.domNode),labelHeight=getTotalHeight(this._label);let totalHeightAvailable;position===2?totalHeightAvailable=this._nPxAvailableBelow:totalHeightAvailable=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:totalHeightAvailable-labelHeight-inputBoxHeight,width:getTotalWidth(this._inputWithButton.domNode)})}acceptInput(wantsPreview){var _a300;this._trace("invoking acceptInput"),(_a300=this._currentAcceptInput)==null||_a300.call(this,wantsPreview)}cancelInput(focusEditor,caller){var _a300;(_a300=this._currentCancelInput)==null||_a300.call(this,focusEditor)}focusNextRenameSuggestion(){var _a300;(_a300=this._renameCandidateListView)!=null&&_a300.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){var _a300;(_a300=this._renameCandidateListView)!=null&&_a300.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(where,currentName,supportPreview,requestRenameCandidates,cts){const{start:selectionStart,end:selectionEnd}=this._getSelection(where,currentName);this._renameCts=cts;const disposeOnDone=new DisposableStore;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,requestRenameCandidates===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=requestRenameCandidates,this._requestRenameCandidates(currentName,!1),disposeOnDone.add(addDisposableListener(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(currentName,!0))),disposeOnDone.add(addDisposableListener(this._inputWithButton.button,EventType$1.KEY_DOWN,e=>{const keyEvent=new StandardKeyboardEvent(e);(keyEvent.equals(3)||keyEvent.equals(10))&&(keyEvent.stopPropagation(),keyEvent.preventDefault(),this._requestRenameCandidates(currentName,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",supportPreview),this._position=new Position$1(where.startLineNumber,where.startColumn),this._currentName=currentName,this._inputWithButton.input.value=currentName,this._inputWithButton.input.setAttribute("selectionStart",selectionStart.toString()),this._inputWithButton.input.setAttribute("selectionEnd",selectionEnd.toString()),this._inputWithButton.input.size=Math.max((where.endColumn-where.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),disposeOnDone.add(toDisposable(()=>{this._renameCts=void 0,cts.dispose(!0)})),disposeOnDone.add(toDisposable(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),disposeOnDone.add(toDisposable(()=>this._candidates.clear()));const inputResult=new DeferredPromise;return inputResult.p.finally(()=>{disposeOnDone.dispose(),this._hide()}),this._currentCancelInput=focusEditor=>{var _a300;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(_a300=this._renameCandidateListView)==null||_a300.clearCandidates(),inputResult.complete(focusEditor),!0},this._currentAcceptInput=wantsPreview=>{this._trace("invoking _currentAcceptInput"),assertType(this._renameCandidateListView!==void 0);const nRenameSuggestions=this._renameCandidateListView.nCandidates;let newName,source;const focusedCandidate=this._renameCandidateListView.focusedCandidate;if(focusedCandidate!==void 0?(this._trace("using new name from renameSuggestion"),newName=focusedCandidate,source={k:"renameSuggestion"}):(this._trace("using new name from inputField"),newName=this._inputWithButton.input.value,source=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),newName===currentName||newName.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),inputResult.complete({newName,wantsPreview:supportPreview&&wantsPreview,stats:{source,nRenameSuggestions,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},disposeOnDone.add(cts.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),disposeOnDone.add(this._editor.onDidBlurEditorWidget(()=>{var _a300;return this.cancelInput(!((_a300=this._domNode)!=null&&_a300.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")})),this._show(),inputResult.p}_requestRenameCandidates(currentName,isManuallyTriggered){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),assertType(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new CancellationTokenSource$1;const triggerKind=isManuallyTriggered?NewSymbolNameTriggerKind$1.Invoke:NewSymbolNameTriggerKind$1.Automatic,candidates=this._requestRenameCandidatesOnce(triggerKind,this._renameCandidateProvidersCts.token);if(candidates.length===0){this._inputWithButton.setSparkleButton();return}isManuallyTriggered||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(candidates,currentName,this._renameCts.token)}}_getSelection(where,currentName){assertType(this._editor.hasModel());const selection=this._editor.getSelection();let start=0,end=currentName.length;return!Range$2.isEmpty(selection)&&!Range$2.spansMultipleLines(selection)&&Range$2.containsRange(where,selection)&&(start=Math.max(0,selection.startColumn-where.startColumn),end=Math.min(where.endColumn,selection.endColumn)-where.startColumn),{start,end}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(candidates,currentName,token){const trace=__name((...args)=>this._trace("_updateRenameCandidates",...args),"trace");trace("start");const namesListResults=await raceCancellation(Promise.allSettled(candidates),token);if(this._inputWithButton.setSparkleButton(),namesListResults===void 0){trace("returning early - received updateRenameCandidates results - undefined");return}const newNames=namesListResults.flatMap(namesListResult=>namesListResult.status==="fulfilled"&&isDefined(namesListResult.value)?namesListResult.value:[]);trace(`received updateRenameCandidates results - total (unfiltered) ${newNames.length} candidates.`);const distinctNames=distinct(newNames,v=>v.newSymbolName);trace(`distinct candidates - ${distinctNames.length} candidates.`);const validDistinctNames=distinctNames.filter(({newSymbolName})=>newSymbolName.trim().length>0&&newSymbolName!==this._inputWithButton.input.value&&newSymbolName!==currentName&&!this._candidates.has(newSymbolName));if(trace(`valid distinct candidates - ${newNames.length} candidates.`),validDistinctNames.forEach(n2=>this._candidates.add(n2.newSymbolName)),validDistinctNames.length<1){trace("returning early - no valid distinct candidates");return}trace("setting candidates"),this._renameCandidateListView.setCandidates(validDistinctNames),trace("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const visibleRanges=this._editor.getVisibleRanges();let firstLineInViewport;return visibleRanges.length>0?firstLineInViewport=visibleRanges[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),firstLineInViewport=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(firstLineInViewport)}_trace(...args){this._logService.trace("RenameWidget",...args)}},__name(_a258,"RenameWidget"),_a258);RenameWidget=__decorate$o([__param$o(2,IThemeService),__param$o(3,IKeybindingService),__param$o(4,IContextKeyService),__param$o(5,ILogService)],RenameWidget);const _RenameCandidateListView=class _RenameCandidateListView{constructor(parent,opts){this._disposables=new DisposableStore,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=opts.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=opts.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",parent.appendChild(this._listContainer),this._listWidget=_RenameCandidateListView._createListWidget(this._listContainer,this._candidateViewHeight,opts.fontInfo),this._listWidget.onDidChangeFocus(e=>{e.elements.length===1&&opts.onFocusChange(e.elements[0].newSymbolName)},this._disposables),this._listWidget.onDidChangeSelection(e=>{e.elements.length===1&&opts.onSelectionChange()},this._disposables),this._disposables.add(this._listWidget.onDidBlur(e=>{this._listWidget.setFocus([])})),this._listWidget.style(getListStyles({listInactiveFocusForeground:quickInputListFocusForeground,listInactiveFocusBackground:quickInputListFocusBackground}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height,width:width2}){this._availableHeight=height,this._minimumWidth=width2}setCandidates(candidates){this._listWidget.splice(0,0,candidates);const height=this._pickListHeight(this._listWidget.length),width2=this._pickListWidth(candidates);this._listWidget.layout(height,width2),this._listContainer.style.height=`${height}px`,this._listContainer.style.width=`${width2}px`,status(localize("renameSuggestionsReceivedAria","Received {0} rename suggestions",candidates.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const selectedElement=this._listWidget.getSelectedElements()[0];if(selectedElement!==void 0)return selectedElement.newSymbolName;const focusedElement=this._listWidget.getFocusedElements()[0];if(focusedElement!==void 0)return focusedElement.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const focusedIxs=this._listWidget.getFocus();if(focusedIxs.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(focusedIxs[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const focused=this._listWidget.getFocus()[0];return this._listWidget.reveal(focused),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const focusedIxs=this._listWidget.getFocus();if(focusedIxs.length===0){this._listWidget.focusLast();const focused=this._listWidget.getFocus()[0];return this._listWidget.reveal(focused),!0}else{if(focusedIxs[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const focused=this._listWidget.getFocus()[0];return this._listWidget.reveal(focused),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight}=RenameCandidateView.getLayoutInfo({lineHeight:this._lineHeight});return totalHeight}_pickListHeight(nCandidates){const heightToFitAllCandidates=this._candidateViewHeight*nCandidates;return Math.min(heightToFitAllCandidates,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(candidates){const longestCandidateWidth=Math.ceil(Math.max(...candidates.map(c=>c.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+longestCandidateWidth+10)}static _createListWidget(container,candidateViewHeight,fontInfo){const virtualDelegate=new class{getTemplateId(element){return"candidate"}getHeight(element){return candidateViewHeight}},renderer=new class{constructor(){this.templateId="candidate"}renderTemplate(container2){return new RenameCandidateView(container2,fontInfo)}renderElement(candidate,index,templateData){templateData.populate(candidate)}disposeTemplate(templateData){templateData.dispose()}};return new List("NewSymbolNameCandidates",container,virtualDelegate,[renderer],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}};__name(_RenameCandidateListView,"RenameCandidateListView");let RenameCandidateListView=_RenameCandidateListView;const _InputWithButton=class _InputWithButton{constructor(){this._onDidInputChange=new Emitter$1,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new DisposableStore}get domNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",localize("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=localize("generateRenameSuggestionsButton","Generate new name suggestions"),this._buttonCancelHoverText=localize("cancelRenameSuggestionsButton","Cancel"),this._buttonHover=getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate("element"),this._buttonNode,this._buttonGenHoverText),this._disposables.add(this._buttonHover),this._domNode.appendChild(this._buttonNode),this._disposables.add(addDisposableListener(this.input,EventType$1.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(addDisposableListener(this.input,EventType$1.KEY_DOWN,e=>{const keyEvent=new StandardKeyboardEvent(e);(keyEvent.keyCode===15||keyEvent.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(addDisposableListener(this.input,EventType$1.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(addDisposableListener(this.input,EventType$1.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(addDisposableListener(this.input,EventType$1.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return assertType(this._inputNode),this._inputNode}get button(){return assertType(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){var _a300,_b2;this._buttonState="sparkle",(_a300=this._sparkleIcon)!=null||(this._sparkleIcon=renderIcon(Codicon.sparkle)),clearNode(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),(_b2=this._buttonHover)==null||_b2.update(this._buttonGenHoverText),this.input.focus()}setStopButton(){var _a300,_b2;this._buttonState="stop",(_a300=this._stopIcon)!=null||(this._stopIcon=renderIcon(Codicon.primitiveSquare)),clearNode(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),(_b2=this._buttonHover)==null||_b2.update(this._buttonCancelHoverText),this.input.focus()}dispose(){this._disposables.dispose()}};__name(_InputWithButton,"InputWithButton");let InputWithButton=_InputWithButton;const _RenameCandidateView=class _RenameCandidateView{constructor(parent,fontInfo){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${fontInfo.lineHeight}px`,this._domNode.style.padding=`${_RenameCandidateView._PADDING}px`;const iconContainer=document.createElement("div");iconContainer.style.display="flex",iconContainer.style.alignItems="center",iconContainer.style.width=iconContainer.style.height=`${fontInfo.lineHeight*.8}px`,this._domNode.appendChild(iconContainer),this._icon=renderIcon(Codicon.sparkle),this._icon.style.display="none",iconContainer.appendChild(this._icon),this._label=document.createElement("div"),applyFontInfo(this._label,fontInfo),this._domNode.appendChild(this._label),parent.appendChild(this._domNode)}populate(value){this._updateIcon(value),this._updateLabel(value)}_updateIcon(value){var _a300;const isAIGenerated=!!((_a300=value.tags)!=null&&_a300.includes(NewSymbolNameTag$1.AIGenerated));this._icon.style.display=isAIGenerated?"inherit":"none"}_updateLabel(value){this._label.innerText=value.newSymbolName}static getLayoutInfo({lineHeight}){return{totalHeight:lineHeight+_RenameCandidateView._PADDING*2}}dispose(){}};__name(_RenameCandidateView,"RenameCandidateView"),_RenameCandidateView._PADDING=2;let RenameCandidateView=_RenameCandidateView;var __decorate$n=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$n=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},RenameController_1;const _RenameSkeleton=class _RenameSkeleton{constructor(model,position,registry){this.model=model,this.position=position,this._providerRenameIdx=0,this._providers=registry.ordered(model)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(token){const rejects=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const provider=this._providers[this._providerRenameIdx];if(!provider.resolveRenameLocation)break;const res=await provider.resolveRenameLocation(this.model,this.position,token);if(res){if(res.rejectReason){rejects.push(res.rejectReason);continue}return res}}this._providerRenameIdx=0;const word=this.model.getWordAtPosition(this.position);return word?{range:new Range$2(this.position.lineNumber,word.startColumn,this.position.lineNumber,word.endColumn),text:word.word,rejectReason:rejects.length>0?rejects.join(`
1161
1161
  `):void 0}:{range:Range$2.fromPositions(this.position),text:"",rejectReason:rejects.length>0?rejects.join(`
1162
1162
  `):void 0}}async provideRenameEdits(newName,token){return this._provideRenameEdits(newName,this._providerRenameIdx,[],token)}async _provideRenameEdits(newName,i,rejects,token){const provider=this._providers[i];if(!provider)return{edits:[],rejectReason:rejects.join(`
1163
- `)};const result=await provider.provideRenameEdits(this.model,this.position,newName,token);if(result){if(result.rejectReason)return this._provideRenameEdits(newName,i+1,rejects.concat(result.rejectReason),token)}else return this._provideRenameEdits(newName,i+1,rejects.concat(localize("no result","No result.")),token);return result}};__name(_RenameSkeleton,"RenameSkeleton");let RenameSkeleton=_RenameSkeleton;async function rename(registry,model,position,newName){const skeleton=new RenameSkeleton(model,position,registry),loc=await skeleton.resolveRenameLocation(CancellationToken.None);return loc!=null&&loc.rejectReason?{edits:[],rejectReason:loc.rejectReason}:skeleton.provideRenameEdits(newName,CancellationToken.None)}__name(rename,"rename");var _a259;let RenameController=(_a259=class{static get(editor2){return editor2.getContribution(RenameController_1.ID)}constructor(editor2,_instaService,_notificationService,_bulkEditService,_progressService,_logService,_configService,_languageFeaturesService,_telemetryService){this.editor=editor2,this._instaService=_instaService,this._notificationService=_notificationService,this._bulkEditService=_bulkEditService,this._progressService=_progressService,this._logService=_logService,this._configService=_configService,this._languageFeaturesService=_languageFeaturesService,this._telemetryService=_telemetryService,this._disposableStore=new DisposableStore,this._cts=new CancellationTokenSource$1,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(RenameWidget,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var _a300,_b2;const trace=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new CancellationTokenSource$1,!this.editor.hasModel()){trace("editor has no model");return}const position=this.editor.getPosition(),skeleton=new RenameSkeleton(this.editor.getModel(),position,this._languageFeaturesService.renameProvider);if(!skeleton.hasProvider()){trace("skeleton has no provider");return}const cts1=new EditorStateCancellationTokenSource(this.editor,5,void 0,this._cts.token);let loc;try{trace("resolving rename location");const resolveLocationOperation=skeleton.resolveRenameLocation(cts1.token);this._progressService.showWhile(resolveLocationOperation,250),loc=await resolveLocationOperation,trace("resolved rename location")}catch(e){e instanceof CancellationError?trace("resolve rename location cancelled",JSON.stringify(e,null," ")):(trace("resolve rename location failed",e instanceof Error?e:JSON.stringify(e,null," ")),(typeof e=="string"||isMarkdownString(e))&&((_a300=MessageController.get(this.editor))==null||_a300.showMessage(e||localize("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),position)));return}finally{cts1.dispose()}if(!loc){trace("returning early - no loc");return}if(loc.rejectReason){trace(`returning early - rejected with reason: ${loc.rejectReason}`,loc.rejectReason),(_b2=MessageController.get(this.editor))==null||_b2.showMessage(loc.rejectReason,position);return}if(cts1.token.isCancellationRequested){trace("returning early - cts1 cancelled");return}const cts2=new EditorStateCancellationTokenSource(this.editor,5,loc.range,this._cts.token),model=this.editor.getModel(),newSymbolNamesProviders=this._languageFeaturesService.newSymbolNamesProvider.all(model),resolvedNewSymbolnamesProviders=await Promise.all(newSymbolNamesProviders.map(async p2=>{var _a301;return[p2,(_a301=await p2.supportsAutomaticNewSymbolNamesTriggerKind)!=null?_a301:!1]})),requestRenameSuggestions=__name((triggerKind,cts)=>{let providers=resolvedNewSymbolnamesProviders.slice();return triggerKind===NewSymbolNameTriggerKind$1.Automatic&&(providers=providers.filter(([_,supportsAutomatic])=>supportsAutomatic)),providers.map(([p2])=>p2.provideNewSymbolNames(model,loc.range,triggerKind,cts))},"requestRenameSuggestions");trace("creating rename input field and awaiting its result");const supportPreview=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),inputFieldResult=await this._renameWidget.getInput(loc.range,loc.text,supportPreview,newSymbolNamesProviders.length>0?requestRenameSuggestions:void 0,cts2);if(trace("received response from rename input field"),newSymbolNamesProviders.length>0&&this._reportTelemetry(newSymbolNamesProviders.length,model.getLanguageId(),inputFieldResult),typeof inputFieldResult=="boolean"){trace(`returning early - rename input field response - ${inputFieldResult}`),inputFieldResult&&this.editor.focus(),cts2.dispose();return}this.editor.focus(),trace("requesting rename edits");const renameOperation=raceCancellation(skeleton.provideRenameEdits(inputFieldResult.newName,cts2.token),cts2.token).then(async renameResult=>{if(!renameResult){trace("returning early - no rename edits result");return}if(!this.editor.hasModel()){trace("returning early - no model after rename edits are provided");return}if(renameResult.rejectReason){trace(`returning early - rejected with reason: ${renameResult.rejectReason}`),this._notificationService.info(renameResult.rejectReason);return}this.editor.setSelection(Range$2.fromPositions(this.editor.getSelection().getPosition())),trace("applying edits"),this._bulkEditService.apply(renameResult,{editor:this.editor,showPreview:inputFieldResult.wantsPreview,label:localize("label","Renaming '{0}' to '{1}'",loc==null?void 0:loc.text,inputFieldResult.newName),code:"undoredo.rename",quotableLabel:localize("quotableLabel","Renaming {0} to {1}",loc==null?void 0:loc.text,inputFieldResult.newName),respectAutoSaveConfig:!0}).then(result=>{trace("edits applied"),result.ariaSummary&&alert(localize("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",loc.text,inputFieldResult.newName,result.ariaSummary))}).catch(err=>{trace(`error when applying edits ${JSON.stringify(err,null," ")}`),this._notificationService.error(localize("rename.failedApply","Rename failed to apply edits")),this._logService.error(err)})},err=>{trace("error when providing rename edits",JSON.stringify(err,null," ")),this._notificationService.error(localize("rename.failed","Rename failed to compute edits")),this._logService.error(err)}).finally(()=>{cts2.dispose()});return trace("returning rename operation"),this._progressService.showWhile(renameOperation,250),renameOperation}acceptRenameInput(wantsPreview){this._renameWidget.acceptInput(wantsPreview)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(nRenameSuggestionProviders,languageId,inputFieldResult){const value=typeof inputFieldResult=="boolean"?{kind:"cancelled",languageId,nRenameSuggestionProviders}:{kind:"accepted",languageId,nRenameSuggestionProviders,source:inputFieldResult.stats.source.k,nRenameSuggestions:inputFieldResult.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:inputFieldResult.stats.timeBeforeFirstInputFieldEdit,wantsPreview:inputFieldResult.wantsPreview,nRenameSuggestionsInvocations:inputFieldResult.stats.nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:inputFieldResult.stats.hadAutomaticRenameSuggestionsInvocation};this._telemetryService.publicLog2("renameInvokedEvent",value)}},__name(_a259,"RenameController"),RenameController_1=_a259,_a259.ID="editor.contrib.renameController",_a259);RenameController=RenameController_1=__decorate$n([__param$n(1,IInstantiationService),__param$n(2,INotificationService),__param$n(3,IBulkEditService),__param$n(4,IEditorProgressService),__param$n(5,ILogService),__param$n(6,ITextResourceConfigurationService),__param$n(7,ILanguageFeaturesService),__param$n(8,ITelemetryService)],RenameController);const _RenameAction=class _RenameAction extends EditorAction{constructor(){super({id:"editor.action.rename",label:localize("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(accessor,args){const editorService=accessor.get(ICodeEditorService),[uri,pos]=Array.isArray(args)&&args||[void 0,void 0];return URI.isUri(uri)&&Position$1.isIPosition(pos)?editorService.openCodeEditor({resource:uri},editorService.getActiveCodeEditor()).then(editor2=>{editor2&&(editor2.setPosition(pos),editor2.invokeWithinContext(accessor2=>(this.reportTelemetry(accessor2,editor2),this.run(accessor2,editor2))))},onUnexpectedError):super.runCommand(accessor,args)}run(accessor,editor2){const logService=accessor.get(ILogService),controller=RenameController.get(editor2);return controller?(logService.trace("[RenameAction] got controller, running..."),controller.run()):(logService.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}};__name(_RenameAction,"RenameAction");let RenameAction=_RenameAction;registerEditorContribution(RenameController.ID,RenameController,4);registerEditorAction(RenameAction);const RenameCommand=EditorCommand.bindToContribution(RenameController.get);registerEditorCommand(new RenameCommand({id:"acceptRenameInput",precondition:CONTEXT_RENAME_INPUT_VISIBLE,handler:__name(x=>x.acceptRenameInput(!1),"handler"),kbOpts:{weight:199,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,ContextKeyExpr.not("isComposing")),primary:3}}));registerEditorCommand(new RenameCommand({id:"acceptRenameInputWithPreview",precondition:ContextKeyExpr.and(CONTEXT_RENAME_INPUT_VISIBLE,ContextKeyExpr.has("config.editor.rename.enablePreview")),handler:__name(x=>x.acceptRenameInput(!0),"handler"),kbOpts:{weight:199,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,ContextKeyExpr.not("isComposing")),primary:2051}}));registerEditorCommand(new RenameCommand({id:"cancelRenameInput",precondition:CONTEXT_RENAME_INPUT_VISIBLE,handler:__name(x=>x.cancelRenameInput(),"handler"),kbOpts:{weight:199,kbExpr:EditorContextKeys.focus,primary:9,secondary:[1033]}}));var _a260;registerAction2((_a260=class extends Action2{constructor(){super({id:"focusNextRenameSuggestion",title:{...localize2("focusNextRenameSuggestion","Focus Next Rename Suggestion")},precondition:CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:18,weight:199}]})}run(accessor){const currentEditor=accessor.get(ICodeEditorService).getFocusedCodeEditor();if(!currentEditor)return;const controller=RenameController.get(currentEditor);controller&&controller.focusNextRenameSuggestion()}},__name(_a260,"FocusNextRenameSuggestion"),_a260));var _a261;registerAction2((_a261=class extends Action2{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...localize2("focusPreviousRenameSuggestion","Focus Previous Rename Suggestion")},precondition:CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:16,weight:199}]})}run(accessor){const currentEditor=accessor.get(ICodeEditorService).getFocusedCodeEditor();if(!currentEditor)return;const controller=RenameController.get(currentEditor);controller&&controller.focusPreviousRenameSuggestion()}},__name(_a261,"FocusPreviousRenameSuggestion"),_a261));registerModelAndPositionCommand("_executeDocumentRenameProvider",function(accessor,model,position,...args){const[newName]=args;assertType(typeof newName=="string");const{renameProvider}=accessor.get(ILanguageFeaturesService);return rename(renameProvider,model,position,newName)});registerModelAndPositionCommand("_executePrepareRename",async function(accessor,model,position){const{renameProvider}=accessor.get(ILanguageFeaturesService),loc=await new RenameSkeleton(model,position,renameProvider).resolveRenameLocation(CancellationToken.None);if(loc!=null&&loc.rejectReason)throw new Error(loc.rejectReason);return loc});Registry.as(Extensions$6.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:localize("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var __decorate$m=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$m=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a262;let SectionHeaderDetector=(_a262=class extends Disposable{constructor(editor2,languageConfigurationService,editorWorkerService){super(),this.editor=editor2,this.languageConfigurationService=languageConfigurationService,this.editorWorkerService=editorWorkerService,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(editor2.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(editor2.onDidChangeModel(e=>{this.currentOccurrences={},this.options=this.createOptions(editor2.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(editor2.onDidChangeModelLanguage(e=>{this.currentOccurrences={},this.options=this.createOptions(editor2.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(languageConfigurationService.onDidChange(e=>{var _a300;const editorLanguageId=(_a300=this.editor.getModel())==null?void 0:_a300.getLanguageId();editorLanguageId&&e.affects(editorLanguageId)&&(this.currentOccurrences={},this.options=this.createOptions(editor2.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(editor2.onDidChangeConfiguration(e=>{this.options&&!e.hasChanged(73)||(this.options=this.createOptions(editor2.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(e=>{this.computeSectionHeaders.schedule()})),this._register(editor2.onDidChangeModelTokens(e=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new RunOnceScheduler(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(minimap){if(!minimap||!this.editor.hasModel())return;const languageId=this.editor.getModel().getLanguageId();if(!languageId)return;const commentsConfiguration=this.languageConfigurationService.getLanguageConfiguration(languageId).comments,foldingRules=this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;if(!(!commentsConfiguration&&!(foldingRules!=null&&foldingRules.markers)))return{foldingRules,findMarkSectionHeaders:minimap.showMarkSectionHeaders,findRegionSectionHeaders:minimap.showRegionSectionHeaders}}findSectionHeaders(){var _a300,_b2;if(!this.editor.hasModel()||!((_a300=this.options)!=null&&_a300.findMarkSectionHeaders)&&!((_b2=this.options)!=null&&_b2.findRegionSectionHeaders))return;const model=this.editor.getModel();if(model.isDisposed()||model.isTooLargeForSyncing())return;const modelVersionId=model.getVersionId();this.editorWorkerService.findSectionHeaders(model.uri,this.options).then(sectionHeaders=>{model.isDisposed()||model.getVersionId()!==modelVersionId||this.updateDecorations(sectionHeaders)})}updateDecorations(sectionHeaders){const model=this.editor.getModel();model&&(sectionHeaders=sectionHeaders.filter(sectionHeader=>{if(!sectionHeader.shouldBeInComments)return!0;const validRange=model.validateRange(sectionHeader.range),tokens=model.tokenization.getLineTokens(validRange.startLineNumber),idx=tokens.findTokenIndexAtOffset(validRange.startColumn-1),tokenType=tokens.getStandardTokenType(idx);return tokens.getLanguageId(idx)===model.getLanguageId()&&tokenType===1}));const oldDecorations=Object.values(this.currentOccurrences).map(occurrence=>occurrence.decorationId),newDecorations=sectionHeaders.map(sectionHeader=>decoration(sectionHeader));this.editor.changeDecorations(changeAccessor=>{const decorations=changeAccessor.deltaDecorations(oldDecorations,newDecorations);this.currentOccurrences={};for(let i=0,len=decorations.length;i<len;i++){const occurrence={sectionHeader:sectionHeaders[i],decorationId:decorations[i]};this.currentOccurrences[occurrence.decorationId]=occurrence}})}stop(){this.computeSectionHeaders.cancel(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop(),this.decorations.clear()}},__name(_a262,"SectionHeaderDetector"),_a262.ID="editor.sectionHeaderDetector",_a262);SectionHeaderDetector=__decorate$m([__param$m(1,ILanguageConfigurationService),__param$m(2,IEditorWorkerService)],SectionHeaderDetector);function decoration(sectionHeader){return{range:sectionHeader.range,options:ModelDecorationOptions.createDynamic({description:"section-header",stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:sectionHeader.hasSeparatorLine?2:1,sectionHeaderText:sectionHeader.text}})}}__name(decoration,"decoration");registerEditorContribution(SectionHeaderDetector.ID,SectionHeaderDetector,1);function reverseEndianness(arr){for(let i=0,len=arr.length;i<len;i+=4){const b0=arr[i+0],b1=arr[i+1],b2=arr[i+2],b3=arr[i+3];arr[i+0]=b3,arr[i+1]=b2,arr[i+2]=b1,arr[i+3]=b0}}__name(reverseEndianness,"reverseEndianness");function toLittleEndianBuffer(arr){const uint8Arr=new Uint8Array(arr.buffer,arr.byteOffset,arr.length*4);return isLittleEndian()||reverseEndianness(uint8Arr),VSBuffer.wrap(uint8Arr)}__name(toLittleEndianBuffer,"toLittleEndianBuffer");function encodeSemanticTokensDto(semanticTokens){const dest=new Uint32Array(encodeSemanticTokensDtoSize(semanticTokens));let offset=0;if(dest[offset++]=semanticTokens.id,semanticTokens.type==="full")dest[offset++]=1,dest[offset++]=semanticTokens.data.length,dest.set(semanticTokens.data,offset),offset+=semanticTokens.data.length;else{dest[offset++]=2,dest[offset++]=semanticTokens.deltas.length;for(const delta of semanticTokens.deltas)dest[offset++]=delta.start,dest[offset++]=delta.deleteCount,delta.data?(dest[offset++]=delta.data.length,dest.set(delta.data,offset),offset+=delta.data.length):dest[offset++]=0}return toLittleEndianBuffer(dest)}__name(encodeSemanticTokensDto,"encodeSemanticTokensDto");function encodeSemanticTokensDtoSize(semanticTokens){let result=0;if(result+=2,semanticTokens.type==="full")result+=1+semanticTokens.data.length;else{result+=1,result+=3*semanticTokens.deltas.length;for(const delta of semanticTokens.deltas)delta.data&&(result+=delta.data.length)}return result}__name(encodeSemanticTokensDtoSize,"encodeSemanticTokensDtoSize");function isSemanticTokens(v){return v&&!!v.data}__name(isSemanticTokens,"isSemanticTokens");function isSemanticTokensEdits(v){return v&&Array.isArray(v.edits)}__name(isSemanticTokensEdits,"isSemanticTokensEdits");const _DocumentSemanticTokensResult=class _DocumentSemanticTokensResult{constructor(provider,tokens,error){this.provider=provider,this.tokens=tokens,this.error=error}};__name(_DocumentSemanticTokensResult,"DocumentSemanticTokensResult");let DocumentSemanticTokensResult=_DocumentSemanticTokensResult;function hasDocumentSemanticTokensProvider(registry,model){return registry.has(model)}__name(hasDocumentSemanticTokensProvider,"hasDocumentSemanticTokensProvider");function getDocumentSemanticTokensProviders(registry,model){const groups=registry.orderedGroups(model);return groups.length>0?groups[0]:[]}__name(getDocumentSemanticTokensProviders,"getDocumentSemanticTokensProviders");async function getDocumentSemanticTokens(registry,model,lastProvider,lastResultId,token){const providers=getDocumentSemanticTokensProviders(registry,model),results=await Promise.all(providers.map(async provider=>{let result,error=null;try{result=await provider.provideDocumentSemanticTokens(model,provider===lastProvider?lastResultId:null,token)}catch(err){error=err,result=null}return(!result||!isSemanticTokens(result)&&!isSemanticTokensEdits(result))&&(result=null),new DocumentSemanticTokensResult(provider,result,error)}));for(const result of results){if(result.error)throw result.error;if(result.tokens)return result}return results.length>0?results[0]:null}__name(getDocumentSemanticTokens,"getDocumentSemanticTokens");function _getDocumentSemanticTokensProviderHighestGroup(registry,model){const result=registry.orderedGroups(model);return result.length>0?result[0]:null}__name(_getDocumentSemanticTokensProviderHighestGroup,"_getDocumentSemanticTokensProviderHighestGroup");const _DocumentRangeSemanticTokensResult=class _DocumentRangeSemanticTokensResult{constructor(provider,tokens){this.provider=provider,this.tokens=tokens}};__name(_DocumentRangeSemanticTokensResult,"DocumentRangeSemanticTokensResult");let DocumentRangeSemanticTokensResult=_DocumentRangeSemanticTokensResult;function hasDocumentRangeSemanticTokensProvider(providers,model){return providers.has(model)}__name(hasDocumentRangeSemanticTokensProvider,"hasDocumentRangeSemanticTokensProvider");function getDocumentRangeSemanticTokensProviders(providers,model){const groups=providers.orderedGroups(model);return groups.length>0?groups[0]:[]}__name(getDocumentRangeSemanticTokensProviders,"getDocumentRangeSemanticTokensProviders");async function getDocumentRangeSemanticTokens(registry,model,range2,token){const providers=getDocumentRangeSemanticTokensProviders(registry,model),results=await Promise.all(providers.map(async provider=>{let result;try{result=await provider.provideDocumentRangeSemanticTokens(model,range2,token)}catch(err){onUnexpectedExternalError(err),result=null}return(!result||!isSemanticTokens(result))&&(result=null),new DocumentRangeSemanticTokensResult(provider,result)}));for(const result of results)if(result.tokens)return result;return results.length>0?results[0]:null}__name(getDocumentRangeSemanticTokens,"getDocumentRangeSemanticTokens");CommandsRegistry.registerCommand("_provideDocumentSemanticTokensLegend",async(accessor,...args)=>{const[uri]=args;assertType(uri instanceof URI);const model=accessor.get(IModelService).getModel(uri);if(!model)return;const{documentSemanticTokensProvider}=accessor.get(ILanguageFeaturesService),providers=_getDocumentSemanticTokensProviderHighestGroup(documentSemanticTokensProvider,model);return providers?providers[0].getLegend():accessor.get(ICommandService).executeCommand("_provideDocumentRangeSemanticTokensLegend",uri)});CommandsRegistry.registerCommand("_provideDocumentSemanticTokens",async(accessor,...args)=>{const[uri]=args;assertType(uri instanceof URI);const model=accessor.get(IModelService).getModel(uri);if(!model)return;const{documentSemanticTokensProvider}=accessor.get(ILanguageFeaturesService);if(!hasDocumentSemanticTokensProvider(documentSemanticTokensProvider,model))return accessor.get(ICommandService).executeCommand("_provideDocumentRangeSemanticTokens",uri,model.getFullModelRange());const r=await getDocumentSemanticTokens(documentSemanticTokensProvider,model,null,null,CancellationToken.None);if(!r)return;const{provider,tokens}=r;if(!tokens||!isSemanticTokens(tokens))return;const buff=encodeSemanticTokensDto({id:0,type:"full",data:tokens.data});return tokens.resultId&&provider.releaseDocumentSemanticTokens(tokens.resultId),buff});CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(accessor,...args)=>{const[uri,range2]=args;assertType(uri instanceof URI);const model=accessor.get(IModelService).getModel(uri);if(!model)return;const{documentRangeSemanticTokensProvider}=accessor.get(ILanguageFeaturesService),providers=getDocumentRangeSemanticTokensProviders(documentRangeSemanticTokensProvider,model);if(providers.length===0)return;if(providers.length===1)return providers[0].getLegend();if(!range2||!Range$2.isIRange(range2))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),providers[0].getLegend();const result=await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider,model,Range$2.lift(range2),CancellationToken.None);if(result)return result.provider.getLegend()});CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokens",async(accessor,...args)=>{const[uri,range2]=args;assertType(uri instanceof URI),assertType(Range$2.isIRange(range2));const model=accessor.get(IModelService).getModel(uri);if(!model)return;const{documentRangeSemanticTokensProvider}=accessor.get(ILanguageFeaturesService),result=await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider,model,Range$2.lift(range2),CancellationToken.None);if(!(!result||!result.tokens))return encodeSemanticTokensDto({id:0,type:"full",data:result.tokens.data})});const SEMANTIC_HIGHLIGHTING_SETTING_ID="editor.semanticHighlighting";function isSemanticColoringEnabled(model,themeService,configurationService){var _a300;const setting=(_a300=configurationService.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID,{overrideIdentifier:model.getLanguageId(),resource:model.uri}))==null?void 0:_a300.enabled;return typeof setting=="boolean"?setting:themeService.getColorTheme().semanticHighlighting}__name(isSemanticColoringEnabled,"isSemanticColoringEnabled");var __decorate$l=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$l=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},ModelSemanticColoring_1,_a263;let DocumentSemanticTokensFeature=(_a263=class extends Disposable{constructor(semanticTokensStylingService,modelService,themeService,configurationService,languageFeatureDebounceService,languageFeaturesService){super(),this._watchers=Object.create(null);const register2=__name(model=>{this._watchers[model.uri.toString()]=new ModelSemanticColoring(model,semanticTokensStylingService,themeService,languageFeatureDebounceService,languageFeaturesService)},"register"),deregister=__name((model,modelSemanticColoring)=>{modelSemanticColoring.dispose(),delete this._watchers[model.uri.toString()]},"deregister"),handleSettingOrThemeChange=__name(()=>{for(const model of modelService.getModels()){const curr=this._watchers[model.uri.toString()];isSemanticColoringEnabled(model,themeService,configurationService)?curr||register2(model):curr&&deregister(model,curr)}},"handleSettingOrThemeChange");modelService.getModels().forEach(model=>{isSemanticColoringEnabled(model,themeService,configurationService)&&register2(model)}),this._register(modelService.onModelAdded(model=>{isSemanticColoringEnabled(model,themeService,configurationService)&&register2(model)})),this._register(modelService.onModelRemoved(model=>{const curr=this._watchers[model.uri.toString()];curr&&deregister(model,curr)})),this._register(configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)&&handleSettingOrThemeChange()})),this._register(themeService.onDidColorThemeChange(handleSettingOrThemeChange))}dispose(){for(const watcher of Object.values(this._watchers))watcher.dispose();super.dispose()}},__name(_a263,"DocumentSemanticTokensFeature"),_a263);DocumentSemanticTokensFeature=__decorate$l([__param$l(0,ISemanticTokensStylingService),__param$l(1,IModelService),__param$l(2,IThemeService),__param$l(3,IConfigurationService),__param$l(4,ILanguageFeatureDebounceService),__param$l(5,ILanguageFeaturesService)],DocumentSemanticTokensFeature);var _a264;let ModelSemanticColoring=(_a264=class extends Disposable{constructor(model,_semanticTokensStylingService,themeService,languageFeatureDebounceService,languageFeaturesService){super(),this._semanticTokensStylingService=_semanticTokensStylingService,this._isDisposed=!1,this._model=model,this._provider=languageFeaturesService.documentSemanticTokensProvider,this._debounceInformation=languageFeatureDebounceService.for(this._provider,"DocumentSemanticTokens",{min:ModelSemanticColoring_1.REQUEST_MIN_DELAY,max:ModelSemanticColoring_1.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new RunOnceScheduler(()=>this._fetchDocumentSemanticTokensNow(),ModelSemanticColoring_1.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const bindDocumentChangeListeners=__name(()=>{dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const provider of this._provider.all(model))typeof provider.onDidChange=="function"&&this._documentProvidersChangeListeners.push(provider.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))},"bindDocumentChangeListeners");bindDocumentChangeListeners(),this._register(this._provider.onDidChange(()=>{bindDocumentChangeListeners(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(themeService.onDidColorThemeChange(_=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!hasDocumentSemanticTokensProvider(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const cancellationTokenSource=new CancellationTokenSource$1,lastProvider=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,lastResultId=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,request=getDocumentSemanticTokens(this._provider,this._model,lastProvider,lastResultId,cancellationTokenSource.token);this._currentDocumentRequestCancellationTokenSource=cancellationTokenSource,this._providersChangedDuringRequest=!1;const pendingChanges=[],contentChangeListener=this._model.onDidChangeContent(e=>{pendingChanges.push(e)}),sw=new StopWatch(!1);request.then(res=>{if(this._debounceInformation.update(this._model,sw.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,contentChangeListener.dispose(),!res)this._setDocumentSemanticTokens(null,null,null,pendingChanges);else{const{provider,tokens}=res,styling=this._semanticTokensStylingService.getStyling(provider);this._setDocumentSemanticTokens(provider,tokens||null,styling,pendingChanges)}},err=>{err&&(isCancellationError(err)||typeof err.message=="string"&&err.message.indexOf("busy")!==-1)||onUnexpectedError(err),this._currentDocumentRequestCancellationTokenSource=null,contentChangeListener.dispose(),(pendingChanges.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(src,srcOffset,dest,destOffset,length){length=Math.min(length,dest.length-destOffset,src.length-srcOffset);for(let i=0;i<length;i++)dest[destOffset+i]=src[srcOffset+i]}_setDocumentSemanticTokens(provider,tokens,styling,pendingChanges){const currentResponse=this._currentDocumentResponse,rescheduleIfNeeded=__name(()=>{(pendingChanges.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))},"rescheduleIfNeeded");if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){provider&&tokens&&provider.releaseDocumentSemanticTokens(tokens.resultId);return}if(!provider||!styling){this._model.tokenization.setSemanticTokens(null,!1);return}if(!tokens){this._model.tokenization.setSemanticTokens(null,!0),rescheduleIfNeeded();return}if(isSemanticTokensEdits(tokens)){if(!currentResponse){this._model.tokenization.setSemanticTokens(null,!0);return}if(tokens.edits.length===0)tokens={resultId:tokens.resultId,data:currentResponse.data};else{let deltaLength=0;for(const edit of tokens.edits)deltaLength+=(edit.data?edit.data.length:0)-edit.deleteCount;const srcData=currentResponse.data,destData=new Uint32Array(srcData.length+deltaLength);let srcLastStart=srcData.length,destLastStart=destData.length;for(let i=tokens.edits.length-1;i>=0;i--){const edit=tokens.edits[i];if(edit.start>srcData.length){styling.warnInvalidEditStart(currentResponse.resultId,tokens.resultId,i,edit.start,srcData.length),this._model.tokenization.setSemanticTokens(null,!0);return}const copyCount=srcLastStart-(edit.start+edit.deleteCount);copyCount>0&&(ModelSemanticColoring_1._copy(srcData,srcLastStart-copyCount,destData,destLastStart-copyCount,copyCount),destLastStart-=copyCount),edit.data&&(ModelSemanticColoring_1._copy(edit.data,0,destData,destLastStart-edit.data.length,edit.data.length),destLastStart-=edit.data.length),srcLastStart=edit.start}srcLastStart>0&&ModelSemanticColoring_1._copy(srcData,0,destData,0,srcLastStart),tokens={resultId:tokens.resultId,data:destData}}}if(isSemanticTokens(tokens)){this._currentDocumentResponse=new SemanticTokensResponse(provider,tokens.resultId,tokens.data);const result=toMultilineTokens2(tokens,styling,this._model.getLanguageId());if(pendingChanges.length>0)for(const change of pendingChanges)for(const area of result)for(const singleChange of change.changes)area.applyEdit(singleChange.range,singleChange.text);this._model.tokenization.setSemanticTokens(result,!0)}else this._model.tokenization.setSemanticTokens(null,!0);rescheduleIfNeeded()}},__name(_a264,"ModelSemanticColoring"),ModelSemanticColoring_1=_a264,_a264.REQUEST_MIN_DELAY=300,_a264.REQUEST_MAX_DELAY=2e3,_a264);ModelSemanticColoring=ModelSemanticColoring_1=__decorate$l([__param$l(1,ISemanticTokensStylingService),__param$l(2,IThemeService),__param$l(3,ILanguageFeatureDebounceService),__param$l(4,ILanguageFeaturesService)],ModelSemanticColoring);const _SemanticTokensResponse=class _SemanticTokensResponse{constructor(provider,resultId,data){this.provider=provider,this.resultId=resultId,this.data=data}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}};__name(_SemanticTokensResponse,"SemanticTokensResponse");let SemanticTokensResponse=_SemanticTokensResponse;registerEditorFeature(DocumentSemanticTokensFeature);var __decorate$k=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$k=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a265;let ViewportSemanticTokensContribution=(_a265=class extends Disposable{constructor(editor2,_semanticTokensStylingService,_themeService,_configurationService,languageFeatureDebounceService,languageFeaturesService){super(),this._semanticTokensStylingService=_semanticTokensStylingService,this._themeService=_themeService,this._configurationService=_configurationService,this._editor=editor2,this._provider=languageFeaturesService.documentRangeSemanticTokensProvider,this._debounceInformation=languageFeatureDebounceService.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new RunOnceScheduler(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const scheduleTokenizeViewport=__name(()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))},"scheduleTokenizeViewport");this._register(this._editor.onDidScrollChange(()=>{scheduleTokenizeViewport()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),scheduleTokenizeViewport()})),this._register(this._editor.onDidChangeModelContent(e=>{this._cancelAll(),scheduleTokenizeViewport()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),scheduleTokenizeViewport()})),this._register(this._configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)&&(this._cancelAll(),scheduleTokenizeViewport())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),scheduleTokenizeViewport()})),scheduleTokenizeViewport()}_cancelAll(){for(const request of this._outstandingRequests)request.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(req){for(let i=0,len=this._outstandingRequests.length;i<len;i++)if(this._outstandingRequests[i]===req){this._outstandingRequests.splice(i,1);return}}_tokenizeViewportNow(){if(!this._editor.hasModel())return;const model=this._editor.getModel();if(model.tokenization.hasCompleteSemanticTokens())return;if(!isSemanticColoringEnabled(model,this._themeService,this._configurationService)){model.tokenization.hasSomeSemanticTokens()&&model.tokenization.setSemanticTokens(null,!1);return}if(!hasDocumentRangeSemanticTokensProvider(this._provider,model)){model.tokenization.hasSomeSemanticTokens()&&model.tokenization.setSemanticTokens(null,!1);return}const visibleRanges=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(visibleRanges.map(range2=>this._requestRange(model,range2)))}_requestRange(model,range2){const requestVersionId=model.getVersionId(),request=createCancelablePromise(token=>Promise.resolve(getDocumentRangeSemanticTokens(this._provider,model,range2,token))),sw=new StopWatch(!1);return request.then(r=>{if(this._debounceInformation.update(model,sw.elapsed()),!r||!r.tokens||model.isDisposed()||model.getVersionId()!==requestVersionId)return;const{provider,tokens:result}=r,styling=this._semanticTokensStylingService.getStyling(provider);model.tokenization.setPartialSemanticTokens(range2,toMultilineTokens2(result,styling,model.getLanguageId()))}).then(()=>this._removeOutstandingRequest(request),()=>this._removeOutstandingRequest(request)),request}},__name(_a265,"ViewportSemanticTokensContribution"),_a265.ID="editor.contrib.viewportSemanticTokens",_a265);ViewportSemanticTokensContribution=__decorate$k([__param$k(1,ISemanticTokensStylingService),__param$k(2,IThemeService),__param$k(3,IConfigurationService),__param$k(4,ILanguageFeatureDebounceService),__param$k(5,ILanguageFeaturesService)],ViewportSemanticTokensContribution);registerEditorContribution(ViewportSemanticTokensContribution.ID,ViewportSemanticTokensContribution,1);const _WordSelectionRangeProvider=class _WordSelectionRangeProvider{constructor(selectSubwords=!0){this.selectSubwords=selectSubwords}provideSelectionRanges(model,positions){const result=[];for(const position of positions){const bucket=[];result.push(bucket),this.selectSubwords&&this._addInWordRanges(bucket,model,position),this._addWordRanges(bucket,model,position),this._addWhitespaceLine(bucket,model,position),bucket.push({range:model.getFullModelRange()})}return result}_addInWordRanges(bucket,model,pos){const obj=model.getWordAtPosition(pos);if(!obj)return;const{word,startColumn}=obj,offset=pos.column-startColumn;let start=offset,end=offset,lastCh=0;for(;start>=0;start--){const ch=word.charCodeAt(start);if(start!==offset&&(ch===95||ch===45))break;if(isLowerAsciiLetter(ch)&&isUpperAsciiLetter(lastCh))break;lastCh=ch}for(start+=1;end<word.length;end++){const ch=word.charCodeAt(end);if(isUpperAsciiLetter(ch)&&isLowerAsciiLetter(lastCh))break;if(ch===95||ch===45)break;lastCh=ch}start<end&&bucket.push({range:new Range$2(pos.lineNumber,startColumn+start,pos.lineNumber,startColumn+end)})}_addWordRanges(bucket,model,pos){const word=model.getWordAtPosition(pos);word&&bucket.push({range:new Range$2(pos.lineNumber,word.startColumn,pos.lineNumber,word.endColumn)})}_addWhitespaceLine(bucket,model,pos){model.getLineLength(pos.lineNumber)>0&&model.getLineFirstNonWhitespaceColumn(pos.lineNumber)===0&&model.getLineLastNonWhitespaceColumn(pos.lineNumber)===0&&bucket.push({range:new Range$2(pos.lineNumber,1,pos.lineNumber,model.getLineMaxColumn(pos.lineNumber))})}};__name(_WordSelectionRangeProvider,"WordSelectionRangeProvider");let WordSelectionRangeProvider=_WordSelectionRangeProvider;var __decorate$j=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$j=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},SmartSelectController_1;const _SelectionRanges=class _SelectionRanges{constructor(index,ranges){this.index=index,this.ranges=ranges}mov(fwd){const index=this.index+(fwd?1:-1);if(index<0||index>=this.ranges.length)return this;const res=new _SelectionRanges(index,this.ranges);return res.ranges[index].equalsRange(this.ranges[this.index])?res.mov(fwd):res}};__name(_SelectionRanges,"SelectionRanges");let SelectionRanges=_SelectionRanges;var _a266;let SmartSelectController=(_a266=class{static get(editor2){return editor2.getContribution(SmartSelectController_1.ID)}constructor(_editor,_languageFeaturesService){this._editor=_editor,this._languageFeaturesService=_languageFeaturesService,this._ignoreSelection=!1}dispose(){var _a300;(_a300=this._selectionListener)==null||_a300.dispose()}async run(forward){if(!this._editor.hasModel())return;const selections=this._editor.getSelections(),model=this._editor.getModel();if(this._state||await provideSelectionRanges(this._languageFeaturesService.selectionRangeProvider,model,selections.map(s=>s.getPosition()),this._editor.getOption(114),CancellationToken.None).then(ranges=>{var _a300;if(!(!isNonEmptyArray(ranges)||ranges.length!==selections.length)&&!(!this._editor.hasModel()||!equals$1(this._editor.getSelections(),selections,(a,b)=>a.equalsSelection(b)))){for(let i=0;i<ranges.length;i++)ranges[i]=ranges[i].filter(range2=>range2.containsPosition(selections[i].getStartPosition())&&range2.containsPosition(selections[i].getEndPosition())),ranges[i].unshift(selections[i]);this._state=ranges.map(ranges2=>new SelectionRanges(0,ranges2)),(_a300=this._selectionListener)==null||_a300.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var _a301;this._ignoreSelection||((_a301=this._selectionListener)==null||_a301.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(state=>state.mov(forward));const newSelections=this._state.map(state=>Selection$1.fromPositions(state.ranges[state.index].getStartPosition(),state.ranges[state.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(newSelections)}finally{this._ignoreSelection=!1}}},__name(_a266,"SmartSelectController"),SmartSelectController_1=_a266,_a266.ID="editor.contrib.smartSelectController",_a266);SmartSelectController=SmartSelectController_1=__decorate$j([__param$j(1,ILanguageFeaturesService)],SmartSelectController);const _AbstractSmartSelect=class _AbstractSmartSelect extends EditorAction{constructor(forward,opts){super(opts),this._forward=forward}async run(_accessor,editor2){const controller=SmartSelectController.get(editor2);controller&&await controller.run(this._forward)}};__name(_AbstractSmartSelect,"AbstractSmartSelect");let AbstractSmartSelect=_AbstractSmartSelect;const _GrowSelectionAction=class _GrowSelectionAction extends AbstractSmartSelect{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:localize("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"1_basic",title:localize({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}};__name(_GrowSelectionAction,"GrowSelectionAction");let GrowSelectionAction=_GrowSelectionAction;CommandsRegistry.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");const _ShrinkSelectionAction=class _ShrinkSelectionAction extends AbstractSmartSelect{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:localize("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"1_basic",title:localize({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}};__name(_ShrinkSelectionAction,"ShrinkSelectionAction");let ShrinkSelectionAction=_ShrinkSelectionAction;registerEditorContribution(SmartSelectController.ID,SmartSelectController,4);registerEditorAction(GrowSelectionAction);registerEditorAction(ShrinkSelectionAction);async function provideSelectionRanges(registry,model,positions,options,token){const providers=registry.all(model).concat(new WordSelectionRangeProvider(options.selectSubwords));providers.length===1&&providers.unshift(new BracketSelectionRangeProvider);const work=[],allRawRanges=[];for(const provider of providers)work.push(Promise.resolve(provider.provideSelectionRanges(model,positions,token)).then(allProviderRanges=>{if(isNonEmptyArray(allProviderRanges)&&allProviderRanges.length===positions.length)for(let i=0;i<positions.length;i++){allRawRanges[i]||(allRawRanges[i]=[]);for(const oneProviderRanges of allProviderRanges[i])Range$2.isIRange(oneProviderRanges.range)&&Range$2.containsPosition(oneProviderRanges.range,positions[i])&&allRawRanges[i].push(Range$2.lift(oneProviderRanges.range))}},onUnexpectedExternalError));return await Promise.all(work),allRawRanges.map(oneRawRanges=>{if(oneRawRanges.length===0)return[];oneRawRanges.sort((a,b)=>Position$1.isBefore(a.getStartPosition(),b.getStartPosition())?1:Position$1.isBefore(b.getStartPosition(),a.getStartPosition())||Position$1.isBefore(a.getEndPosition(),b.getEndPosition())?-1:Position$1.isBefore(b.getEndPosition(),a.getEndPosition())?1:0);const oneRanges=[];let last;for(const range2 of oneRawRanges)(!last||Range$2.containsRange(range2,last)&&!Range$2.equalsRange(range2,last))&&(oneRanges.push(range2),last=range2);if(!options.selectLeadingAndTrailingWhitespace)return oneRanges;const oneRangesWithTrivia=[oneRanges[0]];for(let i=1;i<oneRanges.length;i++){const prev=oneRanges[i-1],cur=oneRanges[i];if(cur.startLineNumber!==prev.startLineNumber||cur.endLineNumber!==prev.endLineNumber){const rangeNoWhitespace=new Range$2(prev.startLineNumber,model.getLineFirstNonWhitespaceColumn(prev.startLineNumber),prev.endLineNumber,model.getLineLastNonWhitespaceColumn(prev.endLineNumber));rangeNoWhitespace.containsRange(prev)&&!rangeNoWhitespace.equalsRange(prev)&&cur.containsRange(rangeNoWhitespace)&&!cur.equalsRange(rangeNoWhitespace)&&oneRangesWithTrivia.push(rangeNoWhitespace);const rangeFull=new Range$2(prev.startLineNumber,1,prev.endLineNumber,model.getLineMaxColumn(prev.endLineNumber));rangeFull.containsRange(prev)&&!rangeFull.equalsRange(rangeNoWhitespace)&&cur.containsRange(rangeFull)&&!cur.equalsRange(rangeFull)&&oneRangesWithTrivia.push(rangeFull)}oneRangesWithTrivia.push(cur)}return oneRangesWithTrivia})}__name(provideSelectionRanges,"provideSelectionRanges");CommandsRegistry.registerCommand("_executeSelectionRangeProvider",async function(accessor,...args){const[resource,positions]=args;assertType(URI.isUri(resource));const registry=accessor.get(ILanguageFeaturesService).selectionRangeProvider,reference=await accessor.get(ITextModelService).createModelReference(resource);try{return provideSelectionRanges(registry,reference.object.textEditorModel,positions,{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},CancellationToken.None)}finally{reference.dispose()}});const Categories=Object.freeze({View:localize2("view","View"),Help:localize2("help","Help"),Test:localize2("test","Test"),File:localize2("file","File"),Preferences:localize2("preferences","Preferences"),Developer:localize2({key:"developer",comment:["A developer on Code itself or someone diagnosing issues in Code"]},"Developer")}),_StickyScrollWidgetState=class _StickyScrollWidgetState{constructor(startLineNumbers,endLineNumbers,lastLineRelativePosition,showEndForLine=null){this.startLineNumbers=startLineNumbers,this.endLineNumbers=endLineNumbers,this.lastLineRelativePosition=lastLineRelativePosition,this.showEndForLine=showEndForLine}equals(other){return!!other&&this.lastLineRelativePosition===other.lastLineRelativePosition&&this.showEndForLine===other.showEndForLine&&equals$1(this.startLineNumbers,other.startLineNumbers)&&equals$1(this.endLineNumbers,other.endLineNumbers)}static get Empty(){return new _StickyScrollWidgetState([],[],0)}};__name(_StickyScrollWidgetState,"StickyScrollWidgetState");let StickyScrollWidgetState=_StickyScrollWidgetState;const _ttPolicy=createTrustedTypesPolicy("stickyScrollViewLayer",{createHTML:__name(value=>value,"createHTML")}),STICKY_INDEX_ATTR="data-sticky-line-index",STICKY_IS_LINE_ATTR="data-sticky-is-line",STICKY_IS_LINE_NUMBER_ATTR="data-sticky-is-line-number",STICKY_IS_FOLDING_ICON_ATTR="data-sticky-is-folding-icon",_StickyScrollWidget=class _StickyScrollWidget extends Disposable{constructor(_editor){super(),this._editor=_editor,this._foldingIconStore=new DisposableStore,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",_editor instanceof EmbeddedCodeEditorWidget),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const updateScrollLeftPosition=__name(()=>{this._linesDomNode.style.left=this._editor.getOption(116).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"},"updateScrollLeftPosition");this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(116)&&updateScrollLeftPosition(),e.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(e=>{e.scrollLeftChanged&&updateScrollLeftPosition(),e.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{updateScrollLeftPosition(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),updateScrollLeftPosition(),this._register(this._editor.onDidLayoutChange(e=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(lineNumber){return this._renderedStickyLines.find(stickyLine=>stickyLine.lineNumber===lineNumber)}getCurrentLines(){return this._lineNumbers}setState(_state,foldingModel,_rebuildFromLine){if(_rebuildFromLine===void 0&&(!this._previousState&&!_state||this._previousState&&this._previousState.equals(_state)))return;const isWidgetHeightZero=this._isWidgetHeightZero(_state),state=isWidgetHeightZero?void 0:_state,rebuildFromLine=isWidgetHeightZero?0:this._findLineToRebuildWidgetFrom(_state,_rebuildFromLine);this._renderRootNode(state,foldingModel,rebuildFromLine),this._previousState=_state}_isWidgetHeightZero(state){if(!state)return!0;const futureWidgetHeight=state.startLineNumbers.length*this._lineHeight+state.lastLineRelativePosition;if(futureWidgetHeight>0){this._lastLineRelativePosition=state.lastLineRelativePosition;const lineNumbers=[...state.startLineNumbers];state.showEndForLine!==null&&(lineNumbers[state.showEndForLine]=state.endLineNumbers[state.showEndForLine]),this._lineNumbers=lineNumbers}else this._lastLineRelativePosition=0,this._lineNumbers=[];return futureWidgetHeight===0}_findLineToRebuildWidgetFrom(state,_rebuildFromLine){if(!state||!this._previousState)return 0;if(_rebuildFromLine!==void 0)return _rebuildFromLine;const previousState=this._previousState,indexOfLinesAlreadyRendered=state.startLineNumbers.findIndex(startLineNumber=>!previousState.startLineNumbers.includes(startLineNumber));return indexOfLinesAlreadyRendered===-1?0:indexOfLinesAlreadyRendered}_updateWidgetWidth(){const layoutInfo=this._editor.getLayoutInfo(),lineNumbersWidth=layoutInfo.contentLeft;this._lineNumbersDomNode.style.width=`${lineNumbersWidth}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-layoutInfo.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${layoutInfo.width-layoutInfo.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(clearFromLine){this._foldingIconStore.clear();for(let i=clearFromLine;i<this._renderedStickyLines.length;i++){const stickyLine=this._renderedStickyLines[i];stickyLine.lineNumberDomNode.remove(),stickyLine.lineDomNode.remove()}this._renderedStickyLines=this._renderedStickyLines.slice(0,clearFromLine),this._rootDomNode.style.display="none"}_useFoldingOpacityTransition(requireTransitions){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${requireTransitions?.5:0}s`)}_setFoldingIconsVisibility(allVisible){for(const line of this._renderedStickyLines){const foldingIcon=line.foldingIcon;foldingIcon&&foldingIcon.setVisible(allVisible?!0:foldingIcon.isCollapsed)}}async _renderRootNode(state,foldingModel,rebuildFromLine){if(this._clearStickyLinesFromLine(rebuildFromLine),!state)return;for(const stickyLine of this._renderedStickyLines)this._updateTopAndZIndexOfStickyLine(stickyLine);const layoutInfo=this._editor.getLayoutInfo(),linesToRender=this._lineNumbers.slice(rebuildFromLine);for(const[index,line]of linesToRender.entries()){const stickyLine=this._renderChildNode(index+rebuildFromLine,line,foldingModel,layoutInfo);stickyLine&&(this._linesDomNode.appendChild(stickyLine.lineDomNode),this._lineNumbersDomNode.appendChild(stickyLine.lineNumberDomNode),this._renderedStickyLines.push(stickyLine))}foldingModel&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));const widgetHeight=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${widgetHeight}px`,this._linesDomNodeScrollable.style.height=`${widgetHeight}px`,this._rootDomNode.style.height=`${widgetHeight}px`,this._rootDomNode.style.marginLeft="0px",this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map(l2=>l2.scrollWidth))+layoutInfo.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(111)==="mouseover"&&(this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode,EventType$1.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode,EventType$1.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(index,line,foldingModel,layoutInfo){const viewModel=this._editor._getViewModel();if(!viewModel)return;const viewLineNumber=viewModel.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(line,1)).lineNumber,lineRenderingData=viewModel.getViewLineRenderingData(viewLineNumber),lineNumberOption=this._editor.getOption(68);let actualInlineDecorations;try{actualInlineDecorations=LineDecoration.filter(lineRenderingData.inlineDecorations,viewLineNumber,lineRenderingData.minColumn,lineRenderingData.maxColumn)}catch{actualInlineDecorations=[]}const renderLineInput=new RenderLineInput(!0,!0,lineRenderingData.content,lineRenderingData.continuesWithWrappedLine,lineRenderingData.isBasicASCII,lineRenderingData.containsRTL,0,lineRenderingData.tokens,actualInlineDecorations,lineRenderingData.tabSize,lineRenderingData.startVisibleColumn,1,1,1,500,"none",!0,!0,null),sb=new StringBuilder(2e3),renderOutput=renderViewLine(renderLineInput,sb);let newLine;_ttPolicy?newLine=_ttPolicy.createHTML(sb.build()):newLine=sb.build();const lineHTMLNode=document.createElement("span");lineHTMLNode.setAttribute(STICKY_INDEX_ATTR,String(index)),lineHTMLNode.setAttribute(STICKY_IS_LINE_ATTR,""),lineHTMLNode.setAttribute("role","listitem"),lineHTMLNode.tabIndex=0,lineHTMLNode.className="sticky-line-content",lineHTMLNode.classList.add(`stickyLine${line}`),lineHTMLNode.style.lineHeight=`${this._lineHeight}px`,lineHTMLNode.innerHTML=newLine;const lineNumberHTMLNode=document.createElement("span");lineNumberHTMLNode.setAttribute(STICKY_INDEX_ATTR,String(index)),lineNumberHTMLNode.setAttribute(STICKY_IS_LINE_NUMBER_ATTR,""),lineNumberHTMLNode.className="sticky-line-number",lineNumberHTMLNode.style.lineHeight=`${this._lineHeight}px`;const lineNumbersWidth=layoutInfo.contentLeft;lineNumberHTMLNode.style.width=`${lineNumbersWidth}px`;const innerLineNumberHTML=document.createElement("span");lineNumberOption.renderType===1||lineNumberOption.renderType===3&&line%10===0?innerLineNumberHTML.innerText=line.toString():lineNumberOption.renderType===2&&(innerLineNumberHTML.innerText=Math.abs(line-this._editor.getPosition().lineNumber).toString()),innerLineNumberHTML.className="sticky-line-number-inner",innerLineNumberHTML.style.lineHeight=`${this._lineHeight}px`,innerLineNumberHTML.style.width=`${layoutInfo.lineNumbersWidth}px`,innerLineNumberHTML.style.paddingLeft=`${layoutInfo.lineNumbersLeft}px`,lineNumberHTMLNode.appendChild(innerLineNumberHTML);const foldingIcon=this._renderFoldingIconForLine(foldingModel,line);foldingIcon&&lineNumberHTMLNode.appendChild(foldingIcon.domNode),this._editor.applyFontInfo(lineHTMLNode),this._editor.applyFontInfo(innerLineNumberHTML),lineNumberHTMLNode.style.lineHeight=`${this._lineHeight}px`,lineHTMLNode.style.lineHeight=`${this._lineHeight}px`,lineNumberHTMLNode.style.height=`${this._lineHeight}px`,lineHTMLNode.style.height=`${this._lineHeight}px`;const renderedLine=new RenderedStickyLine(index,line,lineHTMLNode,lineNumberHTMLNode,foldingIcon,renderOutput.characterMapping,lineHTMLNode.scrollWidth);return this._updateTopAndZIndexOfStickyLine(renderedLine)}_updateTopAndZIndexOfStickyLine(stickyLine){var _a300;const index=stickyLine.index,lineHTMLNode=stickyLine.lineDomNode,lineNumberHTMLNode=stickyLine.lineNumberDomNode,isLastLine=index===this._lineNumbers.length-1,lastLineZIndex="0",intermediateLineZIndex="1";lineHTMLNode.style.zIndex=isLastLine?lastLineZIndex:intermediateLineZIndex,lineNumberHTMLNode.style.zIndex=isLastLine?lastLineZIndex:intermediateLineZIndex;const lastLineTop=`${index*this._lineHeight+this._lastLineRelativePosition+((_a300=stickyLine.foldingIcon)!=null&&_a300.isCollapsed?1:0)}px`,intermediateLineTop=`${index*this._lineHeight}px`;return lineHTMLNode.style.top=isLastLine?lastLineTop:intermediateLineTop,lineNumberHTMLNode.style.top=isLastLine?lastLineTop:intermediateLineTop,stickyLine}_renderFoldingIconForLine(foldingModel,line){const showFoldingControls=this._editor.getOption(111);if(!foldingModel||showFoldingControls==="never")return;const foldingRegions=foldingModel.regions,indexOfFoldingRegion=foldingRegions.findRange(line),startLineNumber=foldingRegions.getStartLineNumber(indexOfFoldingRegion);if(!(line===startLineNumber))return;const isCollapsed=foldingRegions.isCollapsed(indexOfFoldingRegion),foldingIcon=new StickyFoldingIcon(isCollapsed,startLineNumber,foldingRegions.getEndLineNumber(indexOfFoldingRegion),this._lineHeight);return foldingIcon.setVisible(this._isOnGlyphMargin?!0:isCollapsed||showFoldingControls==="always"),foldingIcon.domNode.setAttribute(STICKY_IS_FOLDING_ICON_ATTR,""),foldingIcon}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(index){0<=index&&index<this._renderedStickyLines.length&&this._renderedStickyLines[index].lineDomNode.focus()}getEditorPositionFromNode(spanDomNode){if(!spanDomNode||spanDomNode.children.length>0)return null;const renderedStickyLine=this._getRenderedStickyLineFromChildDomNode(spanDomNode);if(!renderedStickyLine)return null;const column=getColumnOfNodeOffset(renderedStickyLine.characterMapping,spanDomNode,0);return new Position$1(renderedStickyLine.lineNumber,column)}getLineNumberFromChildDomNode(domNode){var _a300,_b2;return(_b2=(_a300=this._getRenderedStickyLineFromChildDomNode(domNode))==null?void 0:_a300.lineNumber)!=null?_b2:null}_getRenderedStickyLineFromChildDomNode(domNode){const index=this.getLineIndexFromChildDomNode(domNode);return index===null||index<0||index>=this._renderedStickyLines.length?null:this._renderedStickyLines[index]}getLineIndexFromChildDomNode(domNode){const lineIndex=this._getAttributeValue(domNode,STICKY_INDEX_ATTR);return lineIndex?parseInt(lineIndex,10):null}isInStickyLine(domNode){return this._getAttributeValue(domNode,STICKY_IS_LINE_ATTR)!==void 0}isInFoldingIconDomNode(domNode){return this._getAttributeValue(domNode,STICKY_IS_FOLDING_ICON_ATTR)!==void 0}_getAttributeValue(domNode,attribute){for(;domNode&&domNode!==this._rootDomNode;){const line=domNode.getAttribute(attribute);if(line!==null)return line;domNode=domNode.parentElement}}};__name(_StickyScrollWidget,"StickyScrollWidget");let StickyScrollWidget=_StickyScrollWidget;const _RenderedStickyLine=class _RenderedStickyLine{constructor(index,lineNumber,lineDomNode,lineNumberDomNode,foldingIcon,characterMapping,scrollWidth){this.index=index,this.lineNumber=lineNumber,this.lineDomNode=lineDomNode,this.lineNumberDomNode=lineNumberDomNode,this.foldingIcon=foldingIcon,this.characterMapping=characterMapping,this.scrollWidth=scrollWidth}};__name(_RenderedStickyLine,"RenderedStickyLine");let RenderedStickyLine=_RenderedStickyLine;const _StickyFoldingIcon=class _StickyFoldingIcon{constructor(isCollapsed,foldingStartLine,foldingEndLine,dimension){this.isCollapsed=isCollapsed,this.foldingStartLine=foldingStartLine,this.foldingEndLine=foldingEndLine,this.dimension=dimension,this.domNode=document.createElement("div"),this.domNode.style.width=`${dimension}px`,this.domNode.style.height=`${dimension}px`,this.domNode.className=ThemeIcon.asClassName(isCollapsed?foldingCollapsedIcon:foldingExpandedIcon)}setVisible(visible){this.domNode.style.cursor=visible?"pointer":"default",this.domNode.style.opacity=visible?"1":"0"}};__name(_StickyFoldingIcon,"StickyFoldingIcon");let StickyFoldingIcon=_StickyFoldingIcon;const _StickyRange=class _StickyRange{constructor(startLineNumber,endLineNumber){this.startLineNumber=startLineNumber,this.endLineNumber=endLineNumber}};__name(_StickyRange,"StickyRange");let StickyRange=_StickyRange;const _StickyElement=class _StickyElement{constructor(range2,children,parent){this.range=range2,this.children=children,this.parent=parent}};__name(_StickyElement,"StickyElement");let StickyElement=_StickyElement;const _StickyModel=class _StickyModel{constructor(uri,version,element,outlineProviderId){this.uri=uri,this.version=version,this.element=element,this.outlineProviderId=outlineProviderId}};__name(_StickyModel,"StickyModel");let StickyModel=_StickyModel;var __decorate$i=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$i=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},ModelProvider;(function(ModelProvider2){ModelProvider2.OUTLINE_MODEL="outlineModel",ModelProvider2.FOLDING_PROVIDER_MODEL="foldingProviderModel",ModelProvider2.INDENTATION_MODEL="indentationModel"})(ModelProvider||(ModelProvider={}));var Status;(function(Status2){Status2[Status2.VALID=0]="VALID",Status2[Status2.INVALID=1]="INVALID",Status2[Status2.CANCELED=2]="CANCELED"})(Status||(Status={}));var _a267;let StickyModelProvider=(_a267=class extends Disposable{constructor(_editor,onProviderUpdate,_languageConfigurationService,_languageFeaturesService){switch(super(),this._editor=_editor,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Delayer(300)),this._updateOperation=this._register(new DisposableStore),this._editor.getOption(116).defaultModel){case ModelProvider.OUTLINE_MODEL:this._modelProviders.push(new StickyModelFromCandidateOutlineProvider(this._editor,_languageFeaturesService));case ModelProvider.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new StickyModelFromCandidateSyntaxFoldingProvider(this._editor,onProviderUpdate,_languageFeaturesService));case ModelProvider.INDENTATION_MODEL:this._modelProviders.push(new StickyModelFromCandidateIndentationFoldingProvider(this._editor,_languageConfigurationService));break}}dispose(){this._modelProviders.forEach(provider=>provider.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(token){return this._updateOperation.clear(),this._updateOperation.add({dispose:__name(()=>{this._cancelModelPromise(),this._updateScheduler.cancel()},"dispose")}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const modelProvider of this._modelProviders){const{statusPromise,modelPromise}=modelProvider.computeStickyModel(token);this._modelPromise=modelPromise;const status2=await statusPromise;if(this._modelPromise!==modelPromise)return null;switch(status2){case Status.CANCELED:return this._updateOperation.clear(),null;case Status.VALID:return modelProvider.stickyModel}}return null}).catch(error=>(onUnexpectedError(error),null))}},__name(_a267,"StickyModelProvider"),_a267);StickyModelProvider=__decorate$i([__param$i(2,IInstantiationService),__param$i(3,ILanguageFeaturesService)],StickyModelProvider);const _StickyModelCandidateProvider=class _StickyModelCandidateProvider extends Disposable{constructor(_editor){super(),this._editor=_editor,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,Status.INVALID}computeStickyModel(token){if(token.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const providerModelPromise=createCancelablePromise(token2=>this.createModelFromProvider(token2));return{statusPromise:providerModelPromise.then(providerModel=>this.isModelValid(providerModel)?token.isCancellationRequested?Status.CANCELED:(this._stickyModel=this.createStickyModel(token,providerModel),Status.VALID):this._invalid()).then(void 0,err=>(onUnexpectedError(err),Status.CANCELED)),modelPromise:providerModelPromise}}isModelValid(model){return!0}isProviderValid(){return!0}};__name(_StickyModelCandidateProvider,"StickyModelCandidateProvider");let StickyModelCandidateProvider=_StickyModelCandidateProvider;var _a268;let StickyModelFromCandidateOutlineProvider=(_a268=class extends StickyModelCandidateProvider{constructor(_editor,_languageFeaturesService){super(_editor),this._languageFeaturesService=_languageFeaturesService}createModelFromProvider(token){return OutlineModel.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),token)}createStickyModel(token,model){var _a300;const{stickyOutlineElement,providerID}=this._stickyModelFromOutlineModel(model,(_a300=this._stickyModel)==null?void 0:_a300.outlineProviderId),textModel=this._editor.getModel();return new StickyModel(textModel.uri,textModel.getVersionId(),stickyOutlineElement,providerID)}isModelValid(model){return model&&model.children.size>0}_stickyModelFromOutlineModel(outlineModel,preferredProvider){let outlineElements;if(Iterable.first(outlineModel.children.values())instanceof OutlineGroup){const provider=Iterable.find(outlineModel.children.values(),outlineGroupOfModel=>outlineGroupOfModel.id===preferredProvider);if(provider)outlineElements=provider.children;else{let tempID="",maxTotalSumOfRanges=-1,optimalOutlineGroup;for(const[_key,outlineGroup]of outlineModel.children.entries()){const totalSumRanges=this._findSumOfRangesOfGroup(outlineGroup);totalSumRanges>maxTotalSumOfRanges&&(optimalOutlineGroup=outlineGroup,maxTotalSumOfRanges=totalSumRanges,tempID=outlineGroup.id)}preferredProvider=tempID,outlineElements=optimalOutlineGroup.children}}else outlineElements=outlineModel.children;const stickyChildren=[],outlineElementsArray=Array.from(outlineElements.values()).sort((element1,element2)=>{const range1=new StickyRange(element1.symbol.range.startLineNumber,element1.symbol.range.endLineNumber),range2=new StickyRange(element2.symbol.range.startLineNumber,element2.symbol.range.endLineNumber);return this._comparator(range1,range2)});for(const outlineElement of outlineElementsArray)stickyChildren.push(this._stickyModelFromOutlineElement(outlineElement,outlineElement.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new StickyElement(void 0,stickyChildren,void 0),providerID:preferredProvider}}_stickyModelFromOutlineElement(outlineElement,previousStartLine){const children=[];for(const child of outlineElement.children.values())if(child.symbol.selectionRange.startLineNumber!==child.symbol.range.endLineNumber)if(child.symbol.selectionRange.startLineNumber!==previousStartLine)children.push(this._stickyModelFromOutlineElement(child,child.symbol.selectionRange.startLineNumber));else for(const subchild of child.children.values())children.push(this._stickyModelFromOutlineElement(subchild,child.symbol.selectionRange.startLineNumber));children.sort((child1,child2)=>this._comparator(child1.range,child2.range));const range2=new StickyRange(outlineElement.symbol.selectionRange.startLineNumber,outlineElement.symbol.range.endLineNumber);return new StickyElement(range2,children,void 0)}_comparator(range1,range2){return range1.startLineNumber!==range2.startLineNumber?range1.startLineNumber-range2.startLineNumber:range2.endLineNumber-range1.endLineNumber}_findSumOfRangesOfGroup(outline){let res=0;for(const child of outline.children.values())res+=this._findSumOfRangesOfGroup(child);return outline instanceof OutlineElement?res+outline.symbol.range.endLineNumber-outline.symbol.selectionRange.startLineNumber:res}},__name(_a268,"StickyModelFromCandidateOutlineProvider"),_a268);StickyModelFromCandidateOutlineProvider=__decorate$i([__param$i(1,ILanguageFeaturesService)],StickyModelFromCandidateOutlineProvider);const _StickyModelFromCandidateFoldingProvider=class _StickyModelFromCandidateFoldingProvider extends StickyModelCandidateProvider{constructor(editor2){super(editor2),this._foldingLimitReporter=new RangesLimitReporter(editor2)}createStickyModel(token,model){const foldingElement=this._fromFoldingRegions(model),textModel=this._editor.getModel();return new StickyModel(textModel.uri,textModel.getVersionId(),foldingElement,void 0)}isModelValid(model){return model!==null}_fromFoldingRegions(foldingRegions){const length=foldingRegions.length,orderedStickyElements=[],stickyOutlineElement=new StickyElement(void 0,[],void 0);for(let i=0;i<length;i++){const parentIndex=foldingRegions.getParentIndex(i);let parentNode;parentIndex!==-1?parentNode=orderedStickyElements[parentIndex]:parentNode=stickyOutlineElement;const child=new StickyElement(new StickyRange(foldingRegions.getStartLineNumber(i),foldingRegions.getEndLineNumber(i)+1),[],parentNode);parentNode.children.push(child),orderedStickyElements.push(child)}return stickyOutlineElement}};__name(_StickyModelFromCandidateFoldingProvider,"StickyModelFromCandidateFoldingProvider");let StickyModelFromCandidateFoldingProvider=_StickyModelFromCandidateFoldingProvider;var _a269;let StickyModelFromCandidateIndentationFoldingProvider=(_a269=class extends StickyModelFromCandidateFoldingProvider{constructor(editor2,_languageConfigurationService){super(editor2),this._languageConfigurationService=_languageConfigurationService,this.provider=this._register(new IndentRangeProvider(editor2.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(token){return this.provider.compute(token)}},__name(_a269,"StickyModelFromCandidateIndentationFoldingProvider"),_a269);StickyModelFromCandidateIndentationFoldingProvider=__decorate$i([__param$i(1,ILanguageConfigurationService)],StickyModelFromCandidateIndentationFoldingProvider);var _a270;let StickyModelFromCandidateSyntaxFoldingProvider=(_a270=class extends StickyModelFromCandidateFoldingProvider{constructor(editor2,onProviderUpdate,_languageFeaturesService){super(editor2),this._languageFeaturesService=_languageFeaturesService;const selectedProviders=FoldingController.getFoldingRangeProviders(this._languageFeaturesService,editor2.getModel());selectedProviders.length>0&&(this.provider=this._register(new SyntaxRangeProvider(editor2.getModel(),selectedProviders,onProviderUpdate,this._foldingLimitReporter,void 0)))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(token){var _a300,_b2;return(_b2=(_a300=this.provider)==null?void 0:_a300.compute(token))!=null?_b2:null}},__name(_a270,"StickyModelFromCandidateSyntaxFoldingProvider"),_a270);StickyModelFromCandidateSyntaxFoldingProvider=__decorate$i([__param$i(2,ILanguageFeaturesService)],StickyModelFromCandidateSyntaxFoldingProvider);var __decorate$h=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$h=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const _StickyLineCandidate=class _StickyLineCandidate{constructor(startLineNumber,endLineNumber,nestingDepth){this.startLineNumber=startLineNumber,this.endLineNumber=endLineNumber,this.nestingDepth=nestingDepth}};__name(_StickyLineCandidate,"StickyLineCandidate");let StickyLineCandidate=_StickyLineCandidate;var _a271;let StickyLineCandidateProvider=(_a271=class extends Disposable{constructor(editor2,_languageFeaturesService,_languageConfigurationService){super(),this._languageFeaturesService=_languageFeaturesService,this._languageConfigurationService=_languageConfigurationService,this._onDidChangeStickyScroll=this._register(new Emitter$1),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=editor2,this._sessionStore=this._register(new DisposableStore),this._updateSoon=this._register(new RunOnceScheduler(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(116)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(116).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(toDisposable(()=>{var _a300;(_a300=this._stickyModelProvider)==null||_a300.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){var _a300;return(_a300=this._model)==null?void 0:_a300.version}updateStickyModelProvider(){var _a300;(_a300=this._stickyModelProvider)==null||_a300.dispose(),this._stickyModelProvider=null;const editor2=this._editor;editor2.hasModel()&&(this._stickyModelProvider=new StickyModelProvider(editor2,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){var _a300;(_a300=this._cts)==null||_a300.dispose(!0),this._cts=new CancellationTokenSource$1,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(token){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const model=await this._stickyModelProvider.update(token);token.isCancellationRequested||(this._model=model)}updateIndex(index){return index===-1?index=0:index<0&&(index=-index-2),index}getCandidateStickyLinesIntersectingFromStickyModel(range2,outlineModel,result,depth,lastStartLineNumber){if(outlineModel.children.length===0)return;let lastLine=lastStartLineNumber;const childrenStartLines=[];for(let i=0;i<outlineModel.children.length;i++){const child=outlineModel.children[i];child.range&&childrenStartLines.push(child.range.startLineNumber)}const lowerBound=this.updateIndex(binarySearch(childrenStartLines,range2.startLineNumber,(a,b)=>a-b)),upperBound=this.updateIndex(binarySearch(childrenStartLines,range2.startLineNumber+depth,(a,b)=>a-b));for(let i=lowerBound;i<=upperBound;i++){const child=outlineModel.children[i];if(!child)return;if(child.range){const childStartLine=child.range.startLineNumber,childEndLine=child.range.endLineNumber;range2.startLineNumber<=childEndLine+1&&childStartLine-1<=range2.endLineNumber&&childStartLine!==lastLine&&(lastLine=childStartLine,result.push(new StickyLineCandidate(childStartLine,childEndLine-1,depth+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(range2,child,result,depth+1,childStartLine))}else this.getCandidateStickyLinesIntersectingFromStickyModel(range2,child,result,depth,lastStartLineNumber)}}getCandidateStickyLinesIntersecting(range2){var _a300,_b2;if(!((_a300=this._model)!=null&&_a300.element))return[];let stickyLineCandidates=[];this.getCandidateStickyLinesIntersectingFromStickyModel(range2,this._model.element,stickyLineCandidates,0,-1);const hiddenRanges=(_b2=this._editor._getViewModel())==null?void 0:_b2.getHiddenAreas();if(hiddenRanges)for(const hiddenRange of hiddenRanges)stickyLineCandidates=stickyLineCandidates.filter(stickyLine=>!(stickyLine.startLineNumber>=hiddenRange.startLineNumber&&stickyLine.endLineNumber<=hiddenRange.endLineNumber+1));return stickyLineCandidates}},__name(_a271,"StickyLineCandidateProvider"),_a271);StickyLineCandidateProvider=__decorate$h([__param$h(1,ILanguageFeaturesService),__param$h(2,ILanguageConfigurationService)],StickyLineCandidateProvider);var __decorate$g=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$g=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},StickyScrollController_1,_a272;let StickyScrollController=(_a272=class extends Disposable{constructor(_editor,_contextMenuService,_languageFeaturesService,_instaService,_languageConfigurationService,_languageFeatureDebounceService,_contextKeyService){super(),this._editor=_editor,this._contextMenuService=_contextMenuService,this._languageFeaturesService=_languageFeaturesService,this._instaService=_instaService,this._contextKeyService=_contextKeyService,this._sessionStore=new DisposableStore,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._stickyScrollWidget=new StickyScrollWidget(this._editor),this._stickyLineCandidateProvider=new StickyLineCandidateProvider(this._editor,_languageFeaturesService,_languageConfigurationService),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=StickyScrollWidgetState.Empty,this._onDidResize(),this._readConfiguration();const stickyScrollDomNode=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(e=>{this._readConfigurationChange(e)})),this._register(addDisposableListener(stickyScrollDomNode,EventType$1.CONTEXT_MENU,async event=>{this._onContextMenu(getWindow(stickyScrollDomNode),event)})),this._stickyScrollFocusedContextKey=EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);const focusTracker=this._register(trackFocus(stickyScrollDomNode));this._register(focusTracker.onDidBlur(_=>{this._positionRevealed===!1&&stickyScrollDomNode.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(focusTracker.onDidFocus(_=>{this.focus()})),this._registerMouseListeners(),this._register(addDisposableListener(stickyScrollDomNode,EventType$1.MOUSE_DOWN,e=>{this._onMouseDown=!0}))}static get(editor2){return editor2.getContribution(StickyScrollController_1.ID)}_disposeFocusStickyScrollStore(){var _a300;this._stickyScrollFocusedContextKey.set(!1),(_a300=this._focusDisposableStore)==null||_a300.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new DisposableStore,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1&&this._focusNav(!0)}focusPrevious(){this._focusedStickyElementIndex>0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(direction){this._focusedStickyElementIndex=direction?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const lineNumbers=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:lineNumbers[this._focusedStickyElementIndex],column:1})}_revealPosition(position){this._reveaInEditor(position,()=>this._editor.revealPosition(position))}_revealLineInCenterIfOutsideViewport(position){this._reveaInEditor(position,()=>this._editor.revealLineInCenterIfOutsideViewport(position.lineNumber,0))}_reveaInEditor(position,revealFunction){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,revealFunction(),this._editor.setSelection(Range$2.fromPositions(position)),this._editor.focus()}_registerMouseListeners(){const sessionStore=this._register(new DisposableStore),gesture=this._register(new ClickLinkGesture(this._editor,{extractLineNumberFromMouseEvent:__name(e=>{const position=this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);return position?position.lineNumber:0},"extractLineNumberFromMouseEvent")})),getMouseEventTarget=__name(mouseEvent=>{if(!this._editor.hasModel()||mouseEvent.target.type!==12||mouseEvent.target.detail!==this._stickyScrollWidget.getId())return null;const mouseTargetElement=mouseEvent.target.element;if(!mouseTargetElement||mouseTargetElement.innerText!==mouseTargetElement.innerHTML)return null;const position=this._stickyScrollWidget.getEditorPositionFromNode(mouseTargetElement);return position?{range:new Range$2(position.lineNumber,position.column,position.lineNumber,position.column+mouseTargetElement.innerText.length),textElement:mouseTargetElement}:null},"getMouseEventTarget"),stickyScrollWidgetDomNode=this._stickyScrollWidget.getDomNode();this._register(addStandardDisposableListener(stickyScrollWidgetDomNode,EventType$1.CLICK,mouseEvent=>{if(mouseEvent.ctrlKey||mouseEvent.altKey||mouseEvent.metaKey||!mouseEvent.leftButton)return;if(mouseEvent.shiftKey){const lineIndex=this._stickyScrollWidget.getLineIndexFromChildDomNode(mouseEvent.target);if(lineIndex===null)return;const position2=new Position$1(this._endLineNumbers[lineIndex],1);this._revealLineInCenterIfOutsideViewport(position2);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(mouseEvent.target)){const lineNumber=this._stickyScrollWidget.getLineNumberFromChildDomNode(mouseEvent.target);this._toggleFoldingRegionForLine(lineNumber);return}if(!this._stickyScrollWidget.isInStickyLine(mouseEvent.target))return;let position=this._stickyScrollWidget.getEditorPositionFromNode(mouseEvent.target);if(!position){const lineNumber=this._stickyScrollWidget.getLineNumberFromChildDomNode(mouseEvent.target);if(lineNumber===null)return;position=new Position$1(lineNumber,1)}this._revealPosition(position)})),this._register(addStandardDisposableListener(stickyScrollWidgetDomNode,EventType$1.MOUSE_MOVE,mouseEvent=>{if(mouseEvent.shiftKey){const currentEndForLineIndex=this._stickyScrollWidget.getLineIndexFromChildDomNode(mouseEvent.target);if(currentEndForLineIndex===null||this._showEndForLine!==null&&this._showEndForLine===currentEndForLineIndex)return;this._showEndForLine=currentEndForLineIndex,this._renderStickyScroll();return}this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(addDisposableListener(stickyScrollWidgetDomNode,EventType$1.MOUSE_LEAVE,e=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(gesture.onMouseMoveOrRelevantKeyDown(([mouseEvent,_keyboardEvent])=>{const mouseTarget=getMouseEventTarget(mouseEvent);if(!mouseTarget||!mouseEvent.hasTriggerModifier||!this._editor.hasModel()){sessionStore.clear();return}const{range:range2,textElement}=mouseTarget;if(!range2.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=range2,sessionStore.clear();else if(textElement.style.textDecoration==="underline")return;const cancellationToken=new CancellationTokenSource$1;sessionStore.add(toDisposable(()=>cancellationToken.dispose(!0)));let currentHTMLChild;getDefinitionsAtPosition(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new Position$1(range2.startLineNumber,range2.startColumn+1),!1,cancellationToken.token).then(candidateDefinitions=>{if(!cancellationToken.token.isCancellationRequested)if(candidateDefinitions.length!==0){this._candidateDefinitionsLength=candidateDefinitions.length;const childHTML=textElement;currentHTMLChild!==childHTML?(sessionStore.clear(),currentHTMLChild=childHTML,currentHTMLChild.style.textDecoration="underline",sessionStore.add(toDisposable(()=>{currentHTMLChild.style.textDecoration="none"}))):currentHTMLChild||(currentHTMLChild=childHTML,currentHTMLChild.style.textDecoration="underline",sessionStore.add(toDisposable(()=>{currentHTMLChild.style.textDecoration="none"})))}else sessionStore.clear()})})),this._register(gesture.onCancel(()=>{sessionStore.clear()})),this._register(gesture.onExecute(async e=>{if(e.target.type!==12||e.target.detail!==this._stickyScrollWidget.getId())return;const position=this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);position&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:position.lineNumber,column:1})),this._instaService.invokeFunction(goToDefinitionWithLocation,e,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(targetWindow,e){const event=new StandardMouseEvent(targetWindow,e);this._contextMenuService.showContextMenu({menuId:MenuId.StickyScrollContext,getAnchor:__name(()=>event,"getAnchor")})}_toggleFoldingRegionForLine(line){if(!this._foldingModel||line===null)return;const stickyLine=this._stickyScrollWidget.getRenderedStickyLine(line),foldingIcon=stickyLine==null?void 0:stickyLine.foldingIcon;if(!foldingIcon)return;toggleCollapseState(this._foldingModel,Number.MAX_VALUE,[line]),foldingIcon.isCollapsed=!foldingIcon.isCollapsed;const scrollTop=(foldingIcon.isCollapsed?this._editor.getTopForLineNumber(foldingIcon.foldingEndLine):this._editor.getTopForLineNumber(foldingIcon.foldingStartLine))-this._editor.getOption(67)*stickyLine.index+1;this._editor.setScrollTop(scrollTop),this._renderStickyScroll(line)}_readConfiguration(){const options=this._editor.getOption(116);if(options.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else options.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(e=>{e.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(e=>this._onTokensChange(e))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(event){(event.hasChanged(116)||event.hasChanged(73)||event.hasChanged(67)||event.hasChanged(111)||event.hasChanged(68))&&this._readConfiguration(),event.hasChanged(68)&&this._renderStickyScroll(0)}_needsUpdate(event){const stickyLineNumbers=this._stickyScrollWidget.getCurrentLines();for(const stickyLineNumber of stickyLineNumbers)for(const range2 of event.ranges)if(stickyLineNumber>=range2.fromLineNumber&&stickyLineNumber<=range2.toLineNumber)return!0;return!1}_onTokensChange(event){this._needsUpdate(event)&&this._renderStickyScroll(0)}_onDidResize(){const theoreticalLines=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(theoreticalLines*.25)}async _renderStickyScroll(rebuildFromLine){const model=this._editor.getModel();if(!model||model.isTooLargeForTokenization()){this._resetState();return}const nextRebuildFromLine=this._updateAndGetMinRebuildFromLine(rebuildFromLine),stickyWidgetVersion=this._stickyLineCandidateProvider.getVersionId();if(stickyWidgetVersion===void 0||stickyWidgetVersion===model.getVersionId())if(!this._focused)await this._updateState(nextRebuildFromLine);else if(this._focusedStickyElementIndex===-1)await this._updateState(nextRebuildFromLine),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const focusedStickyElementLineNumber=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(nextRebuildFromLine),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(focusedStickyElementLineNumber)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(rebuildFromLine){if(rebuildFromLine!==void 0){const minRebuildFromLineOrInfinity=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(rebuildFromLine,minRebuildFromLineOrInfinity)}return this._minRebuildFromLine}async _updateState(rebuildFromLine){var _a300,_b2;this._minRebuildFromLine=void 0,this._foldingModel=(_b2=await((_a300=FoldingController.get(this._editor))==null?void 0:_a300.getFoldingModel()))!=null?_b2:void 0,this._widgetState=this.findScrollWidgetState();const stickyWidgetHasLines=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(stickyWidgetHasLines),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,rebuildFromLine)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=StickyScrollWidgetState.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const lineHeight=this._editor.getOption(67),maxNumberStickyLines=Math.min(this._maxStickyLines,this._editor.getOption(116).maxLineCount),scrollTop=this._editor.getScrollTop();let lastLineRelativePosition=0;const startLineNumbers=[],endLineNumbers=[],arrayVisibleRanges=this._editor.getVisibleRanges();if(arrayVisibleRanges.length!==0){const fullVisibleRange=new StickyRange(arrayVisibleRanges[0].startLineNumber,arrayVisibleRanges[arrayVisibleRanges.length-1].endLineNumber),candidateRanges=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(fullVisibleRange);for(const range2 of candidateRanges){const start=range2.startLineNumber,end=range2.endLineNumber,depth=range2.nestingDepth;if(end-start>0){const topOfElementAtDepth=(depth-1)*lineHeight,bottomOfElementAtDepth=depth*lineHeight,bottomOfBeginningLine=this._editor.getBottomForLineNumber(start)-scrollTop,topOfEndLine=this._editor.getTopForLineNumber(end)-scrollTop,bottomOfEndLine=this._editor.getBottomForLineNumber(end)-scrollTop;if(topOfElementAtDepth>topOfEndLine&&topOfElementAtDepth<=bottomOfEndLine){startLineNumbers.push(start),endLineNumbers.push(end+1),lastLineRelativePosition=bottomOfEndLine-bottomOfElementAtDepth;break}else bottomOfElementAtDepth>bottomOfBeginningLine&&bottomOfElementAtDepth<=bottomOfEndLine&&(startLineNumbers.push(start),endLineNumbers.push(end+1));if(startLineNumbers.length===maxNumberStickyLines)break}}}return this._endLineNumbers=endLineNumbers,new StickyScrollWidgetState(startLineNumbers,endLineNumbers,lastLineRelativePosition,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}},__name(_a272,"StickyScrollController"),StickyScrollController_1=_a272,_a272.ID="store.contrib.stickyScrollController",_a272);StickyScrollController=StickyScrollController_1=__decorate$g([__param$g(1,IContextMenuService),__param$g(2,ILanguageFeaturesService),__param$g(3,IInstantiationService),__param$g(4,ILanguageConfigurationService),__param$g(5,ILanguageFeatureDebounceService),__param$g(6,IContextKeyService)],StickyScrollController);const _ToggleStickyScroll=class _ToggleStickyScroll extends Action2{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...localize2("toggleEditorStickyScroll","Toggle Editor Sticky Scroll"),mnemonicTitle:localize({key:"mitoggleStickyScroll",comment:["&& denotes a mnemonic"]},"&&Toggle Editor Sticky Scroll")},metadata:{description:localize2("toggleEditorStickyScroll.description","Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:Categories.View,toggled:{condition:ContextKeyExpr.equals("config.editor.stickyScroll.enabled",!0),title:localize("stickyScroll","Sticky Scroll"),mnemonicTitle:localize({key:"miStickyScroll",comment:["&& denotes a mnemonic"]},"&&Sticky Scroll")},menu:[{id:MenuId.CommandPalette},{id:MenuId.MenubarAppearanceMenu,group:"4_editor",order:3},{id:MenuId.StickyScrollContext}]})}async run(accessor){const configurationService=accessor.get(IConfigurationService),newValue=!configurationService.getValue("editor.stickyScroll.enabled");return configurationService.updateValue("editor.stickyScroll.enabled",newValue)}};__name(_ToggleStickyScroll,"ToggleStickyScroll");let ToggleStickyScroll=_ToggleStickyScroll;const weight=100,_FocusStickyScroll=class _FocusStickyScroll extends EditorAction2{constructor(){super({id:"editor.action.focusStickyScroll",title:{...localize2("focusStickyScroll","Focus on the editor sticky scroll"),mnemonicTitle:localize({key:"mifocusStickyScroll",comment:["&& denotes a mnemonic"]},"&&Focus Sticky Scroll")},precondition:ContextKeyExpr.and(ContextKeyExpr.has("config.editor.stickyScroll.enabled"),EditorContextKeys.stickyScrollVisible),menu:[{id:MenuId.CommandPalette}]})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.focus()}};__name(_FocusStickyScroll,"FocusStickyScroll");let FocusStickyScroll=_FocusStickyScroll;const _SelectNextStickyScrollLine=class _SelectNextStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:localize2("selectNextStickyScrollLine.title","Select the next editor sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:18}})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.focusNext()}};__name(_SelectNextStickyScrollLine,"SelectNextStickyScrollLine");let SelectNextStickyScrollLine=_SelectNextStickyScrollLine;const _SelectPreviousStickyScrollLine=class _SelectPreviousStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:localize2("selectPreviousStickyScrollLine.title","Select the previous sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:16}})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.focusPrevious()}};__name(_SelectPreviousStickyScrollLine,"SelectPreviousStickyScrollLine");let SelectPreviousStickyScrollLine=_SelectPreviousStickyScrollLine;const _GoToStickyScrollLine=class _GoToStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:localize2("goToFocusedStickyScrollLine.title","Go to the focused sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:3}})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.goToFocused()}};__name(_GoToStickyScrollLine,"GoToStickyScrollLine");let GoToStickyScrollLine=_GoToStickyScrollLine;const _SelectEditor=class _SelectEditor extends EditorAction2{constructor(){super({id:"editor.action.selectEditor",title:localize2("selectEditor.title","Select Editor"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:9}})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.selectEditor()}};__name(_SelectEditor,"SelectEditor");let SelectEditor=_SelectEditor;registerEditorContribution(StickyScrollController.ID,StickyScrollController,1);registerAction2(ToggleStickyScroll);registerAction2(FocusStickyScroll);registerAction2(SelectPreviousStickyScrollLine);registerAction2(SelectNextStickyScrollLine);registerAction2(GoToStickyScrollLine);registerAction2(SelectEditor);var __decorate$f=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$f=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const _SuggestInlineCompletion=class _SuggestInlineCompletion{constructor(range2,insertText,filterText,additionalTextEdits,command,completion){this.range=range2,this.insertText=insertText,this.filterText=filterText,this.additionalTextEdits=additionalTextEdits,this.command=command,this.completion=completion}};__name(_SuggestInlineCompletion,"SuggestInlineCompletion");let SuggestInlineCompletion=_SuggestInlineCompletion;var _a273;let InlineCompletionResults=(_a273=class extends RefCountedDisposable{constructor(model,line,word,completionModel,completions,_suggestMemoryService){super(completions.disposable),this.model=model,this.line=line,this.word=word,this.completionModel=completionModel,this._suggestMemoryService=_suggestMemoryService}canBeReused(model,line,word){return this.model===model&&this.line===line&&this.word.word.length>0&&this.word.startColumn===word.startColumn&&this.word.endColumn<word.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){var _a300;const result=[],{items}=this.completionModel,selectedIndex=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},items),first2=Iterable.slice(items,selectedIndex),second=Iterable.slice(items,0,selectedIndex);let resolveCount=5;for(const item of Iterable.concat(first2,second)){if(item.score===FuzzyScore.Default)continue;const range2=new Range$2(item.editStart.lineNumber,item.editStart.column,item.editInsertEnd.lineNumber,item.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),insertText=item.completion.insertTextRules&&item.completion.insertTextRules&4?{snippet:item.completion.insertText}:item.completion.insertText;result.push(new SuggestInlineCompletion(range2,insertText,(_a300=item.filterTextLow)!=null?_a300:item.labelLow,item.completion.additionalTextEdits,item.completion.command,item)),resolveCount-->=0&&item.resolve(CancellationToken.None)}return result}},__name(_a273,"InlineCompletionResults"),_a273);InlineCompletionResults=__decorate$f([__param$f(5,ISuggestMemoryService)],InlineCompletionResults);var _a274;let SuggestInlineCompletions=(_a274=class extends Disposable{constructor(_languageFeatureService,_clipboardService,_suggestMemoryService,_editorService){super(),this._languageFeatureService=_languageFeatureService,this._clipboardService=_clipboardService,this._suggestMemoryService=_suggestMemoryService,this._editorService=_editorService,this._store.add(_languageFeatureService.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(model,position,context,token){var _a300;if(context.selectedSuggestionInfo)return;let editor2;for(const candidate of this._editorService.listCodeEditors())if(candidate.getModel()===model){editor2=candidate;break}if(!editor2)return;const config=editor2.getOption(90);if(QuickSuggestionsOptions.isAllOff(config))return;model.tokenization.tokenizeIfCheap(position.lineNumber);const lineTokens=model.tokenization.getLineTokens(position.lineNumber),tokenType=lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(Math.max(position.column-1-1,0)));if(QuickSuggestionsOptions.valueFor(config,tokenType)!=="inline")return;let wordInfo=model.getWordAtPosition(position),triggerCharacterInfo;if(wordInfo!=null&&wordInfo.word||(triggerCharacterInfo=this._getTriggerCharacterInfo(model,position)),!(wordInfo!=null&&wordInfo.word)&&!triggerCharacterInfo||(wordInfo||(wordInfo=model.getWordUntilPosition(position)),wordInfo.endColumn!==position.column))return;let result;const leadingLineContents=model.getValueInRange(new Range$2(position.lineNumber,1,position.lineNumber,position.column));if(!triggerCharacterInfo&&((_a300=this._lastResult)!=null&&_a300.canBeReused(model,position.lineNumber,wordInfo))){const newLineContext=new LineContext$1(leadingLineContents,position.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=newLineContext,this._lastResult.acquire(),result=this._lastResult}else{const completions=await provideSuggestionItems(this._languageFeatureService.completionProvider,model,position,new CompletionOptions(void 0,SuggestModel.createSuggestFilter(editor2).itemKind,triggerCharacterInfo==null?void 0:triggerCharacterInfo.providers),triggerCharacterInfo&&{triggerKind:1,triggerCharacter:triggerCharacterInfo.ch},token);let clipboardText;completions.needsClipboard&&(clipboardText=await this._clipboardService.readText());const completionModel=new CompletionModel(completions.items,position.column,new LineContext$1(leadingLineContents,0),WordDistance.None,editor2.getOption(119),editor2.getOption(113),{boostFullMatch:!1,firstMatchCanBeWeak:!1},clipboardText);result=new InlineCompletionResults(model,position.lineNumber,wordInfo,completionModel,completions,this._suggestMemoryService)}return this._lastResult=result,result}handleItemDidShow(_completions,item){item.completion.resolve(CancellationToken.None)}freeInlineCompletions(result){result.release()}_getTriggerCharacterInfo(model,position){var _a300;const ch=model.getValueInRange(Range$2.fromPositions({lineNumber:position.lineNumber,column:position.column-1},position)),providers=new Set;for(const provider of this._languageFeatureService.completionProvider.all(model))(_a300=provider.triggerCharacters)!=null&&_a300.includes(ch)&&providers.add(provider);if(providers.size!==0)return{providers,ch}}},__name(_a274,"SuggestInlineCompletions"),_a274);SuggestInlineCompletions=__decorate$f([__param$f(0,ILanguageFeaturesService),__param$f(1,IClipboardService),__param$f(2,ISuggestMemoryService),__param$f(3,ICodeEditorService)],SuggestInlineCompletions);registerEditorFeature(SuggestInlineCompletions);const _ForceRetokenizeAction=class _ForceRetokenizeAction extends EditorAction{constructor(){super({id:"editor.action.forceRetokenize",label:localize("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(accessor,editor2){if(!editor2.hasModel())return;const model=editor2.getModel();model.tokenization.resetTokenization();const sw=new StopWatch;model.tokenization.forceTokenization(model.getLineCount()),sw.stop(),console.log(`tokenization took ${sw.elapsed()}`)}};__name(_ForceRetokenizeAction,"ForceRetokenizeAction");let ForceRetokenizeAction=_ForceRetokenizeAction;registerEditorAction(ForceRetokenizeAction);const _ToggleTabFocusModeAction=class _ToggleTabFocusModeAction extends Action2{constructor(){super({id:_ToggleTabFocusModeAction.ID,title:localize2({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:localize2("tabMovesFocusDescriptions","Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const newValue=!TabFocus.getTabFocusMode();TabFocus.setTabFocusMode(newValue),alert(newValue?localize("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element"):localize("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}};__name(_ToggleTabFocusModeAction,"ToggleTabFocusModeAction"),_ToggleTabFocusModeAction.ID="editor.action.toggleTabFocusMode";let ToggleTabFocusModeAction=_ToggleTabFocusModeAction;registerAction2(ToggleTabFocusModeAction);var __decorate$e=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$e=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a275;let Link=(_a275=class extends Disposable{get enabled(){return this._enabled}set enabled(enabled){enabled?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=enabled}constructor(container,_link,options={},_hoverService,openerService){var _a300,_b2;super(),this._link=_link,this._hoverService=_hoverService,this._enabled=!0,this.el=append$1(container,$$e("a.monaco-link",{tabIndex:(_a300=_link.tabIndex)!=null?_a300:0,href:_link.href},_link.label)),this.hoverDelegate=(_b2=options.hoverDelegate)!=null?_b2:getDefaultHoverDelegate("mouse"),this.setTooltip(_link.title),this.el.setAttribute("role","button");const onClickEmitter=this._register(new DomEmitter(this.el,"click")),onKeyPress=this._register(new DomEmitter(this.el,"keypress")),onEnterPress=Event.chain(onKeyPress.event,$2=>$2.map(e=>new StandardKeyboardEvent(e)).filter(e=>e.keyCode===3)),onTap=this._register(new DomEmitter(this.el,EventType.Tap)).event;this._register(Gesture.addTarget(this.el));const onOpen=Event.any(onClickEmitter.event,onEnterPress,onTap);this._register(onOpen(e=>{this.enabled&&(EventHelper.stop(e,!0),options!=null&&options.opener?options.opener(this._link.href):openerService.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(title){this.hoverDelegate.showNativeHover?this.el.title=title!=null?title:"":!this.hover&&title?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,title)):this.hover&&this.hover.update(title)}},__name(_a275,"Link"),_a275);Link=__decorate$e([__param$e(3,IHoverService),__param$e(4,IOpenerService)],Link);var __decorate$d=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$d=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const BANNER_ELEMENT_HEIGHT=26;var _a276;let BannerController=(_a276=class extends Disposable{constructor(_editor,instantiationService){super(),this._editor=_editor,this.instantiationService=instantiationService,this.banner=this._register(this.instantiationService.createInstance(Banner))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(item){this.banner.show({...item,onClose:__name(()=>{var _a300;this.hide(),(_a300=item.onClose)==null||_a300.call(item)},"onClose")}),this._editor.setBanner(this.banner.element,BANNER_ELEMENT_HEIGHT)}},__name(_a276,"BannerController"),_a276);BannerController=__decorate$d([__param$d(1,IInstantiationService)],BannerController);var _a277;let Banner=(_a277=class extends Disposable{constructor(instantiationService){super(),this.instantiationService=instantiationService,this.markdownRenderer=this.instantiationService.createInstance(MarkdownRenderer,{}),this.element=$$e("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(item){if(item.ariaLabel)return item.ariaLabel;if(typeof item.message=="string")return item.message}getBannerMessage(message){if(typeof message=="string"){const element=$$e("span");return element.innerText=message,element}return this.markdownRenderer.render(message).element}clear(){clearNode(this.element)}show(item){clearNode(this.element);const ariaLabel=this.getAriaLabel(item);ariaLabel&&this.element.setAttribute("aria-label",ariaLabel);const iconContainer=append$1(this.element,$$e("div.icon-container"));iconContainer.setAttribute("aria-hidden","true"),item.icon&&iconContainer.appendChild($$e(`div${ThemeIcon.asCSSSelector(item.icon)}`));const messageContainer=append$1(this.element,$$e("div.message-container"));if(messageContainer.setAttribute("aria-hidden","true"),messageContainer.appendChild(this.getBannerMessage(item.message)),this.messageActionsContainer=append$1(this.element,$$e("div.message-actions-container")),item.actions)for(const action of item.actions)this._register(this.instantiationService.createInstance(Link,this.messageActionsContainer,{...action,tabIndex:-1},{}));const actionBarContainer=append$1(this.element,$$e("div.action-container"));this.actionBar=this._register(new ActionBar(actionBarContainer)),this.actionBar.push(this._register(new Action("banner.close","Close Banner",ThemeIcon.asClassName(widgetClose),!0,()=>{typeof item.onClose=="function"&&item.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}},__name(_a277,"Banner"),_a277);Banner=__decorate$d([__param$d(0,IInstantiationService)],Banner);var __decorate$c=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$c=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const warningIcon=registerIcon("extensions-warning-message",Codicon.warning,localize("warningIcon","Icon shown with a warning message in the extensions editor."));var _a278;let UnicodeHighlighter=(_a278=class extends Disposable{constructor(_editor,_editorWorkerService,_workspaceTrustService,instantiationService){super(),this._editor=_editor,this._editorWorkerService=_editorWorkerService,this._workspaceTrustService=_workspaceTrustService,this._highlighter=null,this._bannerClosed=!1,this._updateState=state=>{if(state&&state.hasMore){if(this._bannerClosed)return;const max=Math.max(state.ambiguousCharacterCount,state.nonBasicAsciiCharacterCount,state.invisibleCharacterCount);let data;if(state.nonBasicAsciiCharacterCount>=max)data={message:localize("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new DisableHighlightingOfNonBasicAsciiCharactersAction};else if(state.ambiguousCharacterCount>=max)data={message:localize("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new DisableHighlightingOfAmbiguousCharactersAction};else if(state.invisibleCharacterCount>=max)data={message:localize("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new DisableHighlightingOfInvisibleCharactersAction};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:data.message,icon:warningIcon,actions:[{label:data.command.shortLabel,href:`command:${data.command.id}`}],onClose:__name(()=>{this._bannerClosed=!0},"onClose")})}else this._bannerController.hide()},this._bannerController=this._register(instantiationService.createInstance(BannerController,_editor)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=_editor.getOption(126),this._register(_workspaceTrustService.onDidChangeTrust(e=>{this._updateHighlighter()})),this._register(_editor.onDidChangeConfiguration(e=>{e.hasChanged(126)&&(this._options=_editor.getOption(126),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const options=resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([options.nonBasicASCII,options.ambiguousCharacters,options.invisibleCharacters].every(option=>option===!1))return;const highlightOptions={nonBasicASCII:options.nonBasicASCII,ambiguousCharacters:options.ambiguousCharacters,invisibleCharacters:options.invisibleCharacters,includeComments:options.includeComments,includeStrings:options.includeStrings,allowedCodePoints:Object.keys(options.allowedCharacters).map(c=>c.codePointAt(0)),allowedLocales:Object.keys(options.allowedLocales).map(locale=>locale==="_os"?new Intl.NumberFormat().resolvedOptions().locale:locale==="_vscode"?language:locale)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new DocumentUnicodeHighlighter(this._editor,highlightOptions,this._updateState,this._editorWorkerService):this._highlighter=new ViewportUnicodeHighlighter(this._editor,highlightOptions,this._updateState)}getDecorationInfo(decoration2){return this._highlighter?this._highlighter.getDecorationInfo(decoration2):null}},__name(_a278,"UnicodeHighlighter"),_a278.ID="editor.contrib.unicodeHighlighter",_a278);UnicodeHighlighter=__decorate$c([__param$c(1,IEditorWorkerService),__param$c(2,IWorkspaceTrustManagementService),__param$c(3,IInstantiationService)],UnicodeHighlighter);function resolveOptions(trusted,options){return{nonBasicASCII:options.nonBasicASCII===inUntrustedWorkspace?!trusted:options.nonBasicASCII,ambiguousCharacters:options.ambiguousCharacters,invisibleCharacters:options.invisibleCharacters,includeComments:options.includeComments===inUntrustedWorkspace?!trusted:options.includeComments,includeStrings:options.includeStrings===inUntrustedWorkspace?!trusted:options.includeStrings,allowedCharacters:options.allowedCharacters,allowedLocales:options.allowedLocales}}__name(resolveOptions,"resolveOptions");var _a279;let DocumentUnicodeHighlighter=(_a279=class extends Disposable{constructor(_editor,_options,_updateState,_editorWorkerService){super(),this._editor=_editor,this._options=_options,this._updateState=_updateState,this._editorWorkerService=_editorWorkerService,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const modelVersionId=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(info=>{if(this._model.isDisposed()||this._model.getVersionId()!==modelVersionId)return;this._updateState(info);const decorations=[];if(!info.hasMore)for(const range2 of info.ranges)decorations.push({range:range2,options:Decorations.instance.getDecorationFromOptions(this._options)});this._decorations.set(decorations)})}getDecorationInfo(decoration2){if(!this._decorations.has(decoration2))return null;const model=this._editor.getModel();if(!isModelDecorationVisible(model,decoration2))return null;const text2=model.getValueInRange(decoration2.range);return{reason:computeReason(text2,this._options),inComment:isModelDecorationInComment(model,decoration2),inString:isModelDecorationInString(model,decoration2)}}},__name(_a279,"DocumentUnicodeHighlighter"),_a279);DocumentUnicodeHighlighter=__decorate$c([__param$c(3,IEditorWorkerService)],DocumentUnicodeHighlighter);const _ViewportUnicodeHighlighter=class _ViewportUnicodeHighlighter extends Disposable{constructor(_editor,_options,_updateState){super(),this._editor=_editor,this._options=_options,this._updateState=_updateState,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const ranges=this._editor.getVisibleRanges(),decorations=[],totalResult={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const range2 of ranges){const result=UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model,this._options,range2);for(const r of result.ranges)totalResult.ranges.push(r);totalResult.ambiguousCharacterCount+=totalResult.ambiguousCharacterCount,totalResult.invisibleCharacterCount+=totalResult.invisibleCharacterCount,totalResult.nonBasicAsciiCharacterCount+=totalResult.nonBasicAsciiCharacterCount,totalResult.hasMore=totalResult.hasMore||result.hasMore}if(!totalResult.hasMore)for(const range2 of totalResult.ranges)decorations.push({range:range2,options:Decorations.instance.getDecorationFromOptions(this._options)});this._updateState(totalResult),this._decorations.set(decorations)}getDecorationInfo(decoration2){if(!this._decorations.has(decoration2))return null;const model=this._editor.getModel(),text2=model.getValueInRange(decoration2.range);return isModelDecorationVisible(model,decoration2)?{reason:computeReason(text2,this._options),inComment:isModelDecorationInComment(model,decoration2),inString:isModelDecorationInString(model,decoration2)}:null}};__name(_ViewportUnicodeHighlighter,"ViewportUnicodeHighlighter");let ViewportUnicodeHighlighter=_ViewportUnicodeHighlighter;const configureUnicodeHighlightOptionsStr=localize("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options");var _a280;let UnicodeHighlighterHoverParticipant=(_a280=class{constructor(_editor,_languageService,_openerService){this._editor=_editor,this._languageService=_languageService,this._openerService=_openerService,this.hoverOrdinal=5}computeSync(anchor,lineDecorations){if(!this._editor.hasModel()||anchor.type!==1)return[];const model=this._editor.getModel(),unicodeHighlighter=this._editor.getContribution(UnicodeHighlighter.ID);if(!unicodeHighlighter)return[];const result=[],existedReason=new Set;let index=300;for(const d of lineDecorations){const highlightInfo=unicodeHighlighter.getDecorationInfo(d);if(!highlightInfo)continue;const codePoint=model.getValueInRange(d.range).codePointAt(0),codePointStr=formatCodePointMarkdown(codePoint);let reason;switch(highlightInfo.reason.kind){case 0:{isBasicASCII(highlightInfo.reason.confusableWith)?reason=localize("unicodeHighlight.characterIsAmbiguousASCII","The character {0} could be confused with the ASCII character {1}, which is more common in source code.",codePointStr,formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0))):reason=localize("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",codePointStr,formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));break}case 1:reason=localize("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",codePointStr);break;case 2:reason=localize("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",codePointStr);break}if(existedReason.has(reason))continue;existedReason.add(reason);const adjustSettingsArgs={codePoint,reason:highlightInfo.reason,inComment:highlightInfo.inComment,inString:highlightInfo.inString},adjustSettings=localize("unicodeHighlight.adjustSettings","Adjust settings"),uri=`command:${ShowExcludeOptions.ID}?${encodeURIComponent(JSON.stringify(adjustSettingsArgs))}`,markdown=new MarkdownString("",!0).appendMarkdown(reason).appendText(" ").appendLink(uri,adjustSettings,configureUnicodeHighlightOptionsStr);result.push(new MarkdownHover(this,d.range,[markdown],!1,index++))}return result}renderHoverParts(context,hoverParts){return renderMarkdownHovers(context,hoverParts,this._editor,this._languageService,this._openerService)}},__name(_a280,"UnicodeHighlighterHoverParticipant"),_a280);UnicodeHighlighterHoverParticipant=__decorate$c([__param$c(1,ILanguageService),__param$c(2,IOpenerService)],UnicodeHighlighterHoverParticipant);function codePointToHex(codePoint){return`U+${codePoint.toString(16).padStart(4,"0")}`}__name(codePointToHex,"codePointToHex");function formatCodePointMarkdown(codePoint){let value=`\`${codePointToHex(codePoint)}\``;return InvisibleCharacters.isInvisibleCharacter(codePoint)||(value+=` "${`${renderCodePointAsInlineCode(codePoint)}`}"`),value}__name(formatCodePointMarkdown,"formatCodePointMarkdown");function renderCodePointAsInlineCode(codePoint){return codePoint===96?"`` ` ``":"`"+String.fromCodePoint(codePoint)+"`"}__name(renderCodePointAsInlineCode,"renderCodePointAsInlineCode");function computeReason(char,options){return UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char,options)}__name(computeReason,"computeReason");const _Decorations=class _Decorations{constructor(){this.map=new Map}getDecorationFromOptions(options){return this.getDecoration(!options.includeComments,!options.includeStrings)}getDecoration(hideInComments,hideInStrings){const key=`${hideInComments}${hideInStrings}`;let options=this.map.get(key);return options||(options=ModelDecorationOptions.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:hideInComments,hideInStringTokens:hideInStrings}),this.map.set(key,options)),options}};__name(_Decorations,"Decorations"),_Decorations.instance=new _Decorations;let Decorations=_Decorations;const _DisableHighlightingInCommentsAction=class _DisableHighlightingInCommentsAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.includeComments,!1,2)}};__name(_DisableHighlightingInCommentsAction,"DisableHighlightingInCommentsAction");let DisableHighlightingInCommentsAction=_DisableHighlightingInCommentsAction;const _DisableHighlightingInStringsAction=class _DisableHighlightingInStringsAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.includeStrings,!1,2)}};__name(_DisableHighlightingInStringsAction,"DisableHighlightingInStringsAction");let DisableHighlightingInStringsAction=_DisableHighlightingInStringsAction;const _DisableHighlightingOfAmbiguousCharactersAction=class _DisableHighlightingOfAmbiguousCharactersAction extends EditorAction{constructor(){super({id:_DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters,!1,2)}};__name(_DisableHighlightingOfAmbiguousCharactersAction,"DisableHighlightingOfAmbiguousCharactersAction"),_DisableHighlightingOfAmbiguousCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";let DisableHighlightingOfAmbiguousCharactersAction=_DisableHighlightingOfAmbiguousCharactersAction;const _DisableHighlightingOfInvisibleCharactersAction=class _DisableHighlightingOfInvisibleCharactersAction extends EditorAction{constructor(){super({id:_DisableHighlightingOfInvisibleCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.invisibleCharacters,!1,2)}};__name(_DisableHighlightingOfInvisibleCharactersAction,"DisableHighlightingOfInvisibleCharactersAction"),_DisableHighlightingOfInvisibleCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";let DisableHighlightingOfInvisibleCharactersAction=_DisableHighlightingOfInvisibleCharactersAction;const _DisableHighlightingOfNonBasicAsciiCharactersAction=class _DisableHighlightingOfNonBasicAsciiCharactersAction extends EditorAction{constructor(){super({id:_DisableHighlightingOfNonBasicAsciiCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.nonBasicASCII,!1,2)}};__name(_DisableHighlightingOfNonBasicAsciiCharactersAction,"DisableHighlightingOfNonBasicAsciiCharactersAction"),_DisableHighlightingOfNonBasicAsciiCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";let DisableHighlightingOfNonBasicAsciiCharactersAction=_DisableHighlightingOfNonBasicAsciiCharactersAction;const _ShowExcludeOptions=class _ShowExcludeOptions extends EditorAction{constructor(){super({id:_ShowExcludeOptions.ID,label:localize("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(accessor,editor2,args){const{codePoint,reason,inString,inComment}=args,char=String.fromCodePoint(codePoint),quickPickService=accessor.get(IQuickInputService),configurationService=accessor.get(IConfigurationService);function getExcludeCharFromBeingHighlightedLabel(codePoint2){return InvisibleCharacters.isInvisibleCharacter(codePoint2)?localize("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",codePointToHex(codePoint2)):localize("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted",`${codePointToHex(codePoint2)} "${char}"`)}__name(getExcludeCharFromBeingHighlightedLabel,"getExcludeCharFromBeingHighlightedLabel");const options=[];if(reason.kind===0)for(const locale of reason.notAmbiguousInLocales)options.push({label:localize("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',locale),run:__name(async()=>{excludeLocaleFromBeingHighlighted(configurationService,[locale])},"run")});if(options.push({label:getExcludeCharFromBeingHighlightedLabel(codePoint),run:__name(()=>excludeCharFromBeingHighlighted(configurationService,[codePoint]),"run")}),inComment){const action=new DisableHighlightingInCommentsAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}else if(inString){const action=new DisableHighlightingInStringsAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}if(reason.kind===0){const action=new DisableHighlightingOfAmbiguousCharactersAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}else if(reason.kind===1){const action=new DisableHighlightingOfInvisibleCharactersAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}else if(reason.kind===2){const action=new DisableHighlightingOfNonBasicAsciiCharactersAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}else expectNever(reason);const result=await quickPickService.pick(options,{title:configureUnicodeHighlightOptionsStr});result&&await result.run()}};__name(_ShowExcludeOptions,"ShowExcludeOptions"),_ShowExcludeOptions.ID="editor.action.unicodeHighlight.showExcludeOptions";let ShowExcludeOptions=_ShowExcludeOptions;async function excludeCharFromBeingHighlighted(configurationService,charCodes){const existingValue=configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);let value;typeof existingValue=="object"&&existingValue?value=existingValue:value={};for(const charCode of charCodes)value[String.fromCodePoint(charCode)]=!0;await configurationService.updateValue(unicodeHighlightConfigKeys.allowedCharacters,value,2)}__name(excludeCharFromBeingHighlighted,"excludeCharFromBeingHighlighted");async function excludeLocaleFromBeingHighlighted(configurationService,locales){var _a300;const existingValue=(_a300=configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user)==null?void 0:_a300.value;let value;typeof existingValue=="object"&&existingValue?value=Object.assign({},existingValue):value={};for(const locale of locales)value[locale]=!0;await configurationService.updateValue(unicodeHighlightConfigKeys.allowedLocales,value,2)}__name(excludeLocaleFromBeingHighlighted,"excludeLocaleFromBeingHighlighted");function expectNever(value){throw new Error(`Unexpected value: ${value}`)}__name(expectNever,"expectNever");registerEditorAction(DisableHighlightingOfAmbiguousCharactersAction);registerEditorAction(DisableHighlightingOfInvisibleCharactersAction);registerEditorAction(DisableHighlightingOfNonBasicAsciiCharactersAction);registerEditorAction(ShowExcludeOptions);registerEditorContribution(UnicodeHighlighter.ID,UnicodeHighlighter,1);HoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);var __decorate$b=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$b=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const ignoreUnusualLineTerminators="ignoreUnusualLineTerminators";function writeIgnoreState(codeEditorService,model,state){codeEditorService.setModelProperty(model.uri,ignoreUnusualLineTerminators,state)}__name(writeIgnoreState,"writeIgnoreState");function readIgnoreState(codeEditorService,model){return codeEditorService.getModelProperty(model.uri,ignoreUnusualLineTerminators)}__name(readIgnoreState,"readIgnoreState");var _a281;let UnusualLineTerminatorsDetector=(_a281=class extends Disposable{constructor(_editor,_dialogService,_codeEditorService){super(),this._editor=_editor,this._dialogService=_dialogService,this._codeEditorService=_codeEditorService,this._isPresentingDialog=!1,this._config=this._editor.getOption(127),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(127)&&(this._config=this._editor.getOption(127),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(e=>{e.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const model=this._editor.getModel();if(!model.mightContainUnusualLineTerminators()||readIgnoreState(this._codeEditorService,model)===!0||this._editor.getOption(92))return;if(this._config==="auto"){model.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let result;try{this._isPresentingDialog=!0,result=await this._dialogService.confirm({title:localize("unusualLineTerminators.title","Unusual Line Terminators"),message:localize("unusualLineTerminators.message","Detected unusual line terminators"),detail:localize("unusualLineTerminators.detail","The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",basename(model.uri)),primaryButton:localize({key:"unusualLineTerminators.fix",comment:["&& denotes a mnemonic"]},"&&Remove Unusual Line Terminators"),cancelButton:localize("unusualLineTerminators.ignore","Ignore")})}finally{this._isPresentingDialog=!1}if(!result.confirmed){writeIgnoreState(this._codeEditorService,model,!0);return}model.removeUnusualLineTerminators(this._editor.getSelections())}},__name(_a281,"UnusualLineTerminatorsDetector"),_a281.ID="editor.contrib.unusualLineTerminatorsDetector",_a281);UnusualLineTerminatorsDetector=__decorate$b([__param$b(1,IDialogService),__param$b(2,ICodeEditorService)],UnusualLineTerminatorsDetector);registerEditorContribution(UnusualLineTerminatorsDetector.ID,UnusualLineTerminatorsDetector,1);var __decorate$a=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$a=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const _TextualDocumentHighlightProvider=class _TextualDocumentHighlightProvider{constructor(){this.selector={language:"*"}}provideDocumentHighlights(model,position,token){const result=[],word=model.getWordAtPosition({lineNumber:position.lineNumber,column:position.column});return word?model.isDisposed()?void 0:model.findMatches(word.word,!0,!1,!0,USUAL_WORD_SEPARATORS,!1).map(m2=>({range:m2.range,kind:DocumentHighlightKind$1.Text})):Promise.resolve(result)}provideMultiDocumentHighlights(primaryModel,position,otherModels,token){const result=new ResourceMap,word=primaryModel.getWordAtPosition({lineNumber:position.lineNumber,column:position.column});if(!word)return Promise.resolve(result);for(const model of[primaryModel,...otherModels]){if(model.isDisposed())continue;const highlights=model.findMatches(word.word,!0,!1,!0,USUAL_WORD_SEPARATORS,!1).map(m2=>({range:m2.range,kind:DocumentHighlightKind$1.Text}));highlights&&result.set(model.uri,highlights)}return result}};__name(_TextualDocumentHighlightProvider,"TextualDocumentHighlightProvider");let TextualDocumentHighlightProvider=_TextualDocumentHighlightProvider;var _a282;let TextualMultiDocumentHighlightFeature=(_a282=class extends Disposable{constructor(languageFeaturesService){super(),this._register(languageFeaturesService.documentHighlightProvider.register("*",new TextualDocumentHighlightProvider)),this._register(languageFeaturesService.multiDocumentHighlightProvider.register("*",new TextualDocumentHighlightProvider))}},__name(_a282,"TextualMultiDocumentHighlightFeature"),_a282);TextualMultiDocumentHighlightFeature=__decorate$a([__param$a(0,ILanguageFeaturesService)],TextualMultiDocumentHighlightFeature);var __decorate$9=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$9=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},WordHighlighter_1,WordHighlighterContribution_1;const ctxHasWordHighlights=new RawContextKey("hasWordHighlights",!1);function getOccurrencesAtPosition(registry,model,position,token){const orderedByScore=registry.ordered(model);return first(orderedByScore.map(provider=>()=>Promise.resolve(provider.provideDocumentHighlights(model,position,token)).then(void 0,onUnexpectedExternalError)),result=>result!=null).then(result=>{if(result){const map=new ResourceMap;return map.set(model.uri,result),map}return new ResourceMap})}__name(getOccurrencesAtPosition,"getOccurrencesAtPosition");function getOccurrencesAcrossMultipleModels(registry,model,position,wordSeparators2,token,otherModels){const orderedByScore=registry.ordered(model);return first(orderedByScore.map(provider=>()=>{const filteredModels=otherModels.filter(otherModel=>shouldSynchronizeModel(otherModel)).filter(otherModel=>score(provider.selector,otherModel.uri,otherModel.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(provider.provideMultiDocumentHighlights(model,position,filteredModels,token)).then(void 0,onUnexpectedExternalError)}),result=>result!=null)}__name(getOccurrencesAcrossMultipleModels,"getOccurrencesAcrossMultipleModels");const _OccurenceAtPositionRequest=class _OccurenceAtPositionRequest{constructor(_model,_selection,_wordSeparators){this._model=_model,this._selection=_selection,this._wordSeparators=_wordSeparators,this._wordRange=this._getCurrentWordRange(_model,_selection),this._result=null}get result(){return this._result||(this._result=createCancelablePromise(token=>this._compute(this._model,this._selection,this._wordSeparators,token))),this._result}_getCurrentWordRange(model,selection){const word=model.getWordAtPosition(selection.getPosition());return word?new Range$2(selection.startLineNumber,word.startColumn,selection.startLineNumber,word.endColumn):null}isValid(model,selection,decorations){const lineNumber=selection.startLineNumber,startColumn=selection.startColumn,endColumn=selection.endColumn,currentWordRange=this._getCurrentWordRange(model,selection);let requestIsValid=!!(this._wordRange&&this._wordRange.equalsRange(currentWordRange));for(let i=0,len=decorations.length;!requestIsValid&&i<len;i++){const range2=decorations.getRange(i);range2&&range2.startLineNumber===lineNumber&&range2.startColumn<=startColumn&&range2.endColumn>=endColumn&&(requestIsValid=!0)}return requestIsValid}cancel(){this.result.cancel()}};__name(_OccurenceAtPositionRequest,"OccurenceAtPositionRequest");let OccurenceAtPositionRequest=_OccurenceAtPositionRequest;const _SemanticOccurenceAtPositionRequest=class _SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest{constructor(model,selection,wordSeparators2,providers){super(model,selection,wordSeparators2),this._providers=providers}_compute(model,selection,wordSeparators2,token){return getOccurrencesAtPosition(this._providers,model,selection.getPosition(),token).then(value=>value||new ResourceMap)}};__name(_SemanticOccurenceAtPositionRequest,"SemanticOccurenceAtPositionRequest");let SemanticOccurenceAtPositionRequest=_SemanticOccurenceAtPositionRequest;const _MultiModelOccurenceRequest=class _MultiModelOccurenceRequest extends OccurenceAtPositionRequest{constructor(model,selection,wordSeparators2,providers,otherModels){super(model,selection,wordSeparators2),this._providers=providers,this._otherModels=otherModels}_compute(model,selection,wordSeparators2,token){return getOccurrencesAcrossMultipleModels(this._providers,model,selection.getPosition(),wordSeparators2,token,this._otherModels).then(value=>value||new ResourceMap)}};__name(_MultiModelOccurenceRequest,"MultiModelOccurenceRequest");let MultiModelOccurenceRequest=_MultiModelOccurenceRequest;function computeOccurencesAtPosition(registry,model,selection,word,wordSeparators2){return new SemanticOccurenceAtPositionRequest(model,selection,wordSeparators2,registry)}__name(computeOccurencesAtPosition,"computeOccurencesAtPosition");function computeOccurencesMultiModel(registry,model,selection,word,wordSeparators2,otherModels){return new MultiModelOccurenceRequest(model,selection,wordSeparators2,registry,otherModels)}__name(computeOccurencesMultiModel,"computeOccurencesMultiModel");registerModelAndPositionCommand("_executeDocumentHighlights",async(accessor,model,position)=>{const languageFeaturesService=accessor.get(ILanguageFeaturesService),map=await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider,model,position,CancellationToken.None);return map==null?void 0:map.get(model.uri)});var _a283;let WordHighlighter=(_a283=class{constructor(editor2,providers,multiProviders,contextKeyService,codeEditorService){this.toUnhook=new DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new ResourceMap,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.runDelayer=this.toUnhook.add(new Delayer(50)),this.editor=editor2,this.providers=providers,this.multiDocumentProviders=multiProviders,this.codeEditorService=codeEditorService,this._hasWordHighlights=ctxHasWordHighlights.bindTo(contextKeyService),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(editor2.onDidChangeCursorPosition(e=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!=="off"&&this.runDelayer.trigger(()=>{this._onPositionChanged(e)})})),this.toUnhook.add(editor2.onDidFocusEditorText(e=>{this.occurrencesHighlight!=="off"&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}))})),this.toUnhook.add(editor2.onDidChangeModelContent(e=>{matchesScheme(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(editor2.onDidChangeModel(e=>{!e.newModelUrl&&e.oldModelUrl?this._stopSingular():WordHighlighter_1.query&&this._run()})),this.toUnhook.add(editor2.onDidChangeConfiguration(e=>{var _a300,_b2;const newValue=this.editor.getOption(81);if(this.occurrencesHighlight!==newValue)switch(this.occurrencesHighlight=newValue,newValue){case"off":this._stopAll();break;case"singleFile":this._stopAll((_b2=(_a300=WordHighlighter_1.query)==null?void 0:_a300.modelInfo)==null?void 0:_b2.model);break;case"multiFile":WordHighlighter_1.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",newValue);break}})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,WordHighlighter_1.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!=="off"&&(this.runDelayer.cancel(),this._run())}_getSortedHighlights(){return this.decorations.getRanges().sort(Range$2.compareRangesUsingStarts)}moveNext(){const highlights=this._getSortedHighlights(),newIndex=(highlights.findIndex(range2=>range2.containsPosition(this.editor.getPosition()))+1)%highlights.length,dest=highlights[newIndex];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(dest.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(dest);const word=this._getWord();if(word){const lineContent=this.editor.getModel().getLineContent(dest.startLineNumber);alert(`${lineContent}, ${newIndex+1} of ${highlights.length} for '${word.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const highlights=this._getSortedHighlights(),newIndex=(highlights.findIndex(range2=>range2.containsPosition(this.editor.getPosition()))-1+highlights.length)%highlights.length,dest=highlights[newIndex];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(dest.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(dest);const word=this._getWord();if(word){const lineContent=this.editor.getModel().getLineContent(dest.startLineNumber);alert(`${lineContent}, ${newIndex+1} of ${highlights.length} for '${word.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const currentDecorationIDs=WordHighlighter_1.storedDecorationIDs.get(this.editor.getModel().uri);currentDecorationIDs&&(this.editor.removeDecorations(currentDecorationIDs),WordHighlighter_1.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(preservedModel){const currentEditors=this.codeEditorService.listCodeEditors(),deleteURI=[];for(const editor2 of currentEditors){if(!editor2.hasModel()||isEqual(editor2.getModel().uri,preservedModel==null?void 0:preservedModel.uri))continue;const currentDecorationIDs=WordHighlighter_1.storedDecorationIDs.get(editor2.getModel().uri);if(!currentDecorationIDs)continue;editor2.removeDecorations(currentDecorationIDs),deleteURI.push(editor2.getModel().uri);const editorHighlighterContrib=WordHighlighterContribution.get(editor2);editorHighlighterContrib!=null&&editorHighlighterContrib.wordHighlighter&&editorHighlighterContrib.wordHighlighter.decorations.length>0&&(editorHighlighterContrib.wordHighlighter.decorations.clear(),editorHighlighterContrib.wordHighlighter.workerRequest=null,editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(!1))}for(const uri of deleteURI)WordHighlighter_1.storedDecorationIDs.delete(uri)}_stopSingular(){var _a300,_b2,_c,_d;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((_a300=this.editor.getModel())==null?void 0:_a300.uri.scheme)!==Schemas.vscodeNotebookCell&&((_c=(_b2=WordHighlighter_1.query)==null?void 0:_b2.modelInfo)==null?void 0:_c.model.uri.scheme)!==Schemas.vscodeNotebookCell?(WordHighlighter_1.query=null,this._run()):(_d=WordHighlighter_1.query)!=null&&_d.modelInfo&&(WordHighlighter_1.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(preservedModel){this._removeAllDecorations(preservedModel),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){var _a300;if(this.occurrencesHighlight==="off"){this._stopAll();return}if(e.reason!==3&&((_a300=this.editor.getModel())==null?void 0:_a300.uri.scheme)!==Schemas.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const editorSelection=this.editor.getSelection(),lineNumber=editorSelection.startLineNumber,startColumn=editorSelection.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber,column:startColumn})}getOtherModelsToHighlight(model){if(!model)return[];if(model.uri.scheme===Schemas.vscodeNotebookCell){const currentModels2=[],currentEditors2=this.codeEditorService.listCodeEditors();for(const editor2 of currentEditors2){const tempModel=editor2.getModel();tempModel&&tempModel!==model&&tempModel.uri.scheme===Schemas.vscodeNotebookCell&&currentModels2.push(tempModel)}return currentModels2}const currentModels=[],currentEditors=this.codeEditorService.listCodeEditors();for(const editor2 of currentEditors){if(!isDiffEditor(editor2))continue;const diffModel=editor2.getModel();diffModel&&model===diffModel.modified&&currentModels.push(diffModel.modified)}if(currentModels.length)return currentModels;if(this.occurrencesHighlight==="singleFile")return[];for(const editor2 of currentEditors){const tempModel=editor2.getModel();tempModel&&tempModel!==model&&currentModels.push(tempModel)}return currentModels}_run(multiFileConfigChange){var _a300,_b2;let workerRequestIsValid;if(this.editor.hasTextFocus()){const editorSelection=this.editor.getSelection();if(!editorSelection||editorSelection.startLineNumber!==editorSelection.endLineNumber){WordHighlighter_1.query=null,this._stopAll();return}const startColumn=editorSelection.startColumn,endColumn=editorSelection.endColumn,word=this._getWord();if(!word||word.startColumn>startColumn||word.endColumn<endColumn){WordHighlighter_1.query=null,this._stopAll();return}workerRequestIsValid=this.workerRequest&&this.workerRequest.isValid(this.model,editorSelection,this.decorations),WordHighlighter_1.query={modelInfo:{model:this.model,selection:editorSelection},word}}else if(!WordHighlighter_1.query){this._stopAll();return}if(this.lastCursorPositionChangeTime=new Date().getTime(),workerRequestIsValid)this.workerRequestCompleted&&this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else if(isEqual(this.editor.getModel().uri,(_a300=WordHighlighter_1.query.modelInfo)==null?void 0:_a300.model.uri)){if(!multiFileConfigChange){const currentModelDecorationRanges=this.decorations.getRanges();for(const storedRange of currentModelDecorationRanges)if(storedRange.containsPosition(this.editor.getPosition()))return}this._stopAll(multiFileConfigChange?this.model:void 0);const myRequestId=++this.workerRequestTokenId;this.workerRequestCompleted=!1;const otherModelsToHighlight=this.getOtherModelsToHighlight(this.editor.getModel());if(!WordHighlighter_1.query||!WordHighlighter_1.query.modelInfo||WordHighlighter_1.query.modelInfo.model.isDisposed())return;this.workerRequest=this.computeWithModel(WordHighlighter_1.query.modelInfo.model,WordHighlighter_1.query.modelInfo.selection,WordHighlighter_1.query.word,otherModelsToHighlight),(_b2=this.workerRequest)==null||_b2.result.then(data=>{myRequestId===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=data||[],this._beginRenderDecorations())},onUnexpectedError)}}computeWithModel(model,selection,word,otherModels){return otherModels.length?computeOccurencesMultiModel(this.multiDocumentProviders,model,selection,word,this.editor.getOption(132),otherModels):computeOccurencesAtPosition(this.providers,model,selection,word,this.editor.getOption(132))}_beginRenderDecorations(){const currentTime=new Date().getTime(),minimumRenderTime=this.lastCursorPositionChangeTime+250;currentTime>=minimumRenderTime?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},minimumRenderTime-currentTime)}renderDecorations(){var _a300,_b2,_c;this.renderDecorationsTimer=-1;const currentEditors=this.codeEditorService.listCodeEditors();for(const editor2 of currentEditors){const editorHighlighterContrib=WordHighlighterContribution.get(editor2);if(!editorHighlighterContrib)continue;const newDecorations=[],uri=(_a300=editor2.getModel())==null?void 0:_a300.uri;if(uri&&this.workerRequestValue.has(uri)){const oldDecorationIDs=WordHighlighter_1.storedDecorationIDs.get(uri),newDocumentHighlights=this.workerRequestValue.get(uri);if(newDocumentHighlights)for(const highlight of newDocumentHighlights)highlight.range&&newDecorations.push({range:highlight.range,options:getHighlightDecorationOptions(highlight.kind)});let newDecorationIDs=[];editor2.changeDecorations(changeAccessor=>{newDecorationIDs=changeAccessor.deltaDecorations(oldDecorationIDs!=null?oldDecorationIDs:[],newDecorations)}),WordHighlighter_1.storedDecorationIDs=WordHighlighter_1.storedDecorationIDs.set(uri,newDecorationIDs),newDecorations.length>0&&((_b2=editorHighlighterContrib.wordHighlighter)==null||_b2.decorations.set(newDecorations),(_c=editorHighlighterContrib.wordHighlighter)==null||_c._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}},__name(_a283,"WordHighlighter"),WordHighlighter_1=_a283,_a283.storedDecorationIDs=new ResourceMap,_a283.query=null,_a283);WordHighlighter=WordHighlighter_1=__decorate$9([__param$9(4,ICodeEditorService)],WordHighlighter);var _a284;let WordHighlighterContribution=(_a284=class extends Disposable{static get(editor2){return editor2.getContribution(WordHighlighterContribution_1.ID)}constructor(editor2,contextKeyService,languageFeaturesService,codeEditorService){super(),this._wordHighlighter=null;const createWordHighlighterIfPossible=__name(()=>{editor2.hasModel()&&!editor2.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new WordHighlighter(editor2,languageFeaturesService.documentHighlightProvider,languageFeaturesService.multiDocumentHighlightProvider,contextKeyService,codeEditorService))},"createWordHighlighterIfPossible");this._register(editor2.onDidChangeModel(e=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),createWordHighlighterIfPossible()})),createWordHighlighterIfPossible()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var _a300;(_a300=this._wordHighlighter)==null||_a300.moveNext()}moveBack(){var _a300;(_a300=this._wordHighlighter)==null||_a300.moveBack()}restoreViewState(state){this._wordHighlighter&&state&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}},__name(_a284,"WordHighlighterContribution"),WordHighlighterContribution_1=_a284,_a284.ID="editor.contrib.wordHighlighter",_a284);WordHighlighterContribution=WordHighlighterContribution_1=__decorate$9([__param$9(1,IContextKeyService),__param$9(2,ILanguageFeaturesService),__param$9(3,ICodeEditorService)],WordHighlighterContribution);const _WordHighlightNavigationAction=class _WordHighlightNavigationAction extends EditorAction{constructor(next,opts){super(opts),this._isNext=next}run(accessor,editor2){const controller=WordHighlighterContribution.get(editor2);controller&&(this._isNext?controller.moveNext():controller.moveBack())}};__name(_WordHighlightNavigationAction,"WordHighlightNavigationAction");let WordHighlightNavigationAction=_WordHighlightNavigationAction;const _NextWordHighlightAction=class _NextWordHighlightAction extends WordHighlightNavigationAction{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:localize("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:ctxHasWordHighlights,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:65,weight:100}})}};__name(_NextWordHighlightAction,"NextWordHighlightAction");let NextWordHighlightAction=_NextWordHighlightAction;const _PrevWordHighlightAction=class _PrevWordHighlightAction extends WordHighlightNavigationAction{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:localize("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:ctxHasWordHighlights,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1089,weight:100}})}};__name(_PrevWordHighlightAction,"PrevWordHighlightAction");let PrevWordHighlightAction=_PrevWordHighlightAction;const _TriggerWordHighlightAction=class _TriggerWordHighlightAction extends EditorAction{constructor(){super({id:"editor.action.wordHighlight.trigger",label:localize("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:0,weight:100}})}run(accessor,editor2,args){const controller=WordHighlighterContribution.get(editor2);controller&&controller.restoreViewState(!0)}};__name(_TriggerWordHighlightAction,"TriggerWordHighlightAction");let TriggerWordHighlightAction=_TriggerWordHighlightAction;registerEditorContribution(WordHighlighterContribution.ID,WordHighlighterContribution,0);registerEditorAction(NextWordHighlightAction);registerEditorAction(PrevWordHighlightAction);registerEditorAction(TriggerWordHighlightAction);registerEditorFeature(TextualMultiDocumentHighlightFeature);const _MoveWordCommand=class _MoveWordCommand extends EditorCommand{constructor(opts){super(opts),this._inSelectionMode=opts.inSelectionMode,this._wordNavigationType=opts.wordNavigationType}runEditorCommand(accessor,editor2,args){if(!editor2.hasModel())return;const wordSeparators2=getMapForWordSeparators(editor2.getOption(132),editor2.getOption(131)),model=editor2.getModel(),selections=editor2.getSelections(),hasMulticursor=selections.length>1,result=selections.map(sel=>{const inPosition=new Position$1(sel.positionLineNumber,sel.positionColumn),outPosition=this._move(wordSeparators2,model,inPosition,this._wordNavigationType,hasMulticursor);return this._moveTo(sel,outPosition,this._inSelectionMode)});if(model.pushStackElement(),editor2._getViewModel().setCursorStates("moveWordCommand",3,result.map(r=>CursorState$1.fromModelSelection(r))),result.length===1){const pos=new Position$1(result[0].positionLineNumber,result[0].positionColumn);editor2.revealPosition(pos,0)}}_moveTo(from,to,inSelectionMode){return inSelectionMode?new Selection$1(from.selectionStartLineNumber,from.selectionStartColumn,to.lineNumber,to.column):new Selection$1(to.lineNumber,to.column,to.lineNumber,to.column)}};__name(_MoveWordCommand,"MoveWordCommand");let MoveWordCommand=_MoveWordCommand;const _WordLeftCommand=class _WordLeftCommand extends MoveWordCommand{_move(wordSeparators2,model,position,wordNavigationType,hasMulticursor){return WordOperations.moveWordLeft(wordSeparators2,model,position,wordNavigationType,hasMulticursor)}};__name(_WordLeftCommand,"WordLeftCommand");let WordLeftCommand=_WordLeftCommand;const _WordRightCommand=class _WordRightCommand extends MoveWordCommand{_move(wordSeparators2,model,position,wordNavigationType,hasMulticursor){return WordOperations.moveWordRight(wordSeparators2,model,position,wordNavigationType)}};__name(_WordRightCommand,"WordRightCommand");let WordRightCommand=_WordRightCommand;const _CursorWordStartLeft=class _CursorWordStartLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}};__name(_CursorWordStartLeft,"CursorWordStartLeft");let CursorWordStartLeft=_CursorWordStartLeft;const _CursorWordEndLeft=class _CursorWordEndLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}};__name(_CursorWordEndLeft,"CursorWordEndLeft");let CursorWordEndLeft=_CursorWordEndLeft;const _CursorWordLeft=class _CursorWordLeft extends WordLeftCommand{constructor(){var _a300;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(_a300=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))==null?void 0:_a300.negate()),primary:2063,mac:{primary:527},weight:100}})}};__name(_CursorWordLeft,"CursorWordLeft");let CursorWordLeft=_CursorWordLeft;const _CursorWordStartLeftSelect=class _CursorWordStartLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}};__name(_CursorWordStartLeftSelect,"CursorWordStartLeftSelect");let CursorWordStartLeftSelect=_CursorWordStartLeftSelect;const _CursorWordEndLeftSelect=class _CursorWordEndLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}};__name(_CursorWordEndLeftSelect,"CursorWordEndLeftSelect");let CursorWordEndLeftSelect=_CursorWordEndLeftSelect;const _CursorWordLeftSelect=class _CursorWordLeftSelect extends WordLeftCommand{constructor(){var _a300;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(_a300=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))==null?void 0:_a300.negate()),primary:3087,mac:{primary:1551},weight:100}})}};__name(_CursorWordLeftSelect,"CursorWordLeftSelect");let CursorWordLeftSelect=_CursorWordLeftSelect;const _CursorWordAccessibilityLeft=class _CursorWordAccessibilityLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(wordCharacterClassifier,model,position,wordNavigationType,hasMulticursor){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,wordCharacterClassifier.intlSegmenterLocales),model,position,wordNavigationType,hasMulticursor)}};__name(_CursorWordAccessibilityLeft,"CursorWordAccessibilityLeft");let CursorWordAccessibilityLeft=_CursorWordAccessibilityLeft;const _CursorWordAccessibilityLeftSelect=class _CursorWordAccessibilityLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(wordCharacterClassifier,model,position,wordNavigationType,hasMulticursor){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,wordCharacterClassifier.intlSegmenterLocales),model,position,wordNavigationType,hasMulticursor)}};__name(_CursorWordAccessibilityLeftSelect,"CursorWordAccessibilityLeftSelect");let CursorWordAccessibilityLeftSelect=_CursorWordAccessibilityLeftSelect;const _CursorWordStartRight=class _CursorWordStartRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}};__name(_CursorWordStartRight,"CursorWordStartRight");let CursorWordStartRight=_CursorWordStartRight;const _CursorWordEndRight=class _CursorWordEndRight extends WordRightCommand{constructor(){var _a300;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(_a300=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))==null?void 0:_a300.negate()),primary:2065,mac:{primary:529},weight:100}})}};__name(_CursorWordEndRight,"CursorWordEndRight");let CursorWordEndRight=_CursorWordEndRight;const _CursorWordRight=class _CursorWordRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}};__name(_CursorWordRight,"CursorWordRight");let CursorWordRight=_CursorWordRight;const _CursorWordStartRightSelect=class _CursorWordStartRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}};__name(_CursorWordStartRightSelect,"CursorWordStartRightSelect");let CursorWordStartRightSelect=_CursorWordStartRightSelect;const _CursorWordEndRightSelect=class _CursorWordEndRightSelect extends WordRightCommand{constructor(){var _a300;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(_a300=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))==null?void 0:_a300.negate()),primary:3089,mac:{primary:1553},weight:100}})}};__name(_CursorWordEndRightSelect,"CursorWordEndRightSelect");let CursorWordEndRightSelect=_CursorWordEndRightSelect;const _CursorWordRightSelect=class _CursorWordRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}};__name(_CursorWordRightSelect,"CursorWordRightSelect");let CursorWordRightSelect=_CursorWordRightSelect;const _CursorWordAccessibilityRight=class _CursorWordAccessibilityRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(wordCharacterClassifier,model,position,wordNavigationType,hasMulticursor){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,wordCharacterClassifier.intlSegmenterLocales),model,position,wordNavigationType,hasMulticursor)}};__name(_CursorWordAccessibilityRight,"CursorWordAccessibilityRight");let CursorWordAccessibilityRight=_CursorWordAccessibilityRight;const _CursorWordAccessibilityRightSelect=class _CursorWordAccessibilityRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(wordCharacterClassifier,model,position,wordNavigationType,hasMulticursor){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,wordCharacterClassifier.intlSegmenterLocales),model,position,wordNavigationType,hasMulticursor)}};__name(_CursorWordAccessibilityRightSelect,"CursorWordAccessibilityRightSelect");let CursorWordAccessibilityRightSelect=_CursorWordAccessibilityRightSelect;const _DeleteWordCommand=class _DeleteWordCommand extends EditorCommand{constructor(opts){super(opts),this._whitespaceHeuristics=opts.whitespaceHeuristics,this._wordNavigationType=opts.wordNavigationType}runEditorCommand(accessor,editor2,args){const languageConfigurationService=accessor.get(ILanguageConfigurationService);if(!editor2.hasModel())return;const wordSeparators2=getMapForWordSeparators(editor2.getOption(132),editor2.getOption(131)),model=editor2.getModel(),selections=editor2.getSelections(),autoClosingBrackets=editor2.getOption(6),autoClosingQuotes=editor2.getOption(11),autoClosingPairs=languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getAutoClosingPairs(),viewModel=editor2._getViewModel(),commands=selections.map(sel=>{const deleteRange=this._delete({wordSeparators:wordSeparators2,model,selection:sel,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:editor2.getOption(9),autoClosingBrackets,autoClosingQuotes,autoClosingPairs,autoClosedCharacters:viewModel.getCursorAutoClosedCharacters()},this._wordNavigationType);return new ReplaceCommand(deleteRange,"")});editor2.pushUndoStop(),editor2.executeCommands(this.id,commands),editor2.pushUndoStop()}};__name(_DeleteWordCommand,"DeleteWordCommand");let DeleteWordCommand=_DeleteWordCommand;const _DeleteWordLeftCommand=class _DeleteWordLeftCommand extends DeleteWordCommand{_delete(ctx,wordNavigationType){const r=WordOperations.deleteWordLeft(ctx,wordNavigationType);return r||new Range$2(1,1,1,1)}};__name(_DeleteWordLeftCommand,"DeleteWordLeftCommand");let DeleteWordLeftCommand=_DeleteWordLeftCommand;const _DeleteWordRightCommand=class _DeleteWordRightCommand extends DeleteWordCommand{_delete(ctx,wordNavigationType){const r=WordOperations.deleteWordRight(ctx,wordNavigationType);if(r)return r;const lineCount=ctx.model.getLineCount(),maxColumn=ctx.model.getLineMaxColumn(lineCount);return new Range$2(lineCount,maxColumn,lineCount,maxColumn)}};__name(_DeleteWordRightCommand,"DeleteWordRightCommand");let DeleteWordRightCommand=_DeleteWordRightCommand;const _DeleteWordStartLeft=class _DeleteWordStartLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:EditorContextKeys.writable})}};__name(_DeleteWordStartLeft,"DeleteWordStartLeft");let DeleteWordStartLeft=_DeleteWordStartLeft;const _DeleteWordEndLeft=class _DeleteWordEndLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:EditorContextKeys.writable})}};__name(_DeleteWordEndLeft,"DeleteWordEndLeft");let DeleteWordEndLeft=_DeleteWordEndLeft;const _DeleteWordLeft=class _DeleteWordLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}};__name(_DeleteWordLeft,"DeleteWordLeft");let DeleteWordLeft=_DeleteWordLeft;const _DeleteWordStartRight=class _DeleteWordStartRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:EditorContextKeys.writable})}};__name(_DeleteWordStartRight,"DeleteWordStartRight");let DeleteWordStartRight=_DeleteWordStartRight;const _DeleteWordEndRight=class _DeleteWordEndRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:EditorContextKeys.writable})}};__name(_DeleteWordEndRight,"DeleteWordEndRight");let DeleteWordEndRight=_DeleteWordEndRight;const _DeleteWordRight=class _DeleteWordRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}};__name(_DeleteWordRight,"DeleteWordRight");let DeleteWordRight=_DeleteWordRight;const _DeleteInsideWord=class _DeleteInsideWord extends EditorAction{constructor(){super({id:"deleteInsideWord",precondition:EditorContextKeys.writable,label:localize("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(accessor,editor2,args){if(!editor2.hasModel())return;const wordSeparators2=getMapForWordSeparators(editor2.getOption(132),editor2.getOption(131)),model=editor2.getModel(),commands=editor2.getSelections().map(sel=>{const deleteRange=WordOperations.deleteInsideWord(wordSeparators2,model,sel);return new ReplaceCommand(deleteRange,"")});editor2.pushUndoStop(),editor2.executeCommands(this.id,commands),editor2.pushUndoStop()}};__name(_DeleteInsideWord,"DeleteInsideWord");let DeleteInsideWord=_DeleteInsideWord;registerEditorCommand(new CursorWordStartLeft);registerEditorCommand(new CursorWordEndLeft);registerEditorCommand(new CursorWordLeft);registerEditorCommand(new CursorWordStartLeftSelect);registerEditorCommand(new CursorWordEndLeftSelect);registerEditorCommand(new CursorWordLeftSelect);registerEditorCommand(new CursorWordStartRight);registerEditorCommand(new CursorWordEndRight);registerEditorCommand(new CursorWordRight);registerEditorCommand(new CursorWordStartRightSelect);registerEditorCommand(new CursorWordEndRightSelect);registerEditorCommand(new CursorWordRightSelect);registerEditorCommand(new CursorWordAccessibilityLeft);registerEditorCommand(new CursorWordAccessibilityLeftSelect);registerEditorCommand(new CursorWordAccessibilityRight);registerEditorCommand(new CursorWordAccessibilityRightSelect);registerEditorCommand(new DeleteWordStartLeft);registerEditorCommand(new DeleteWordEndLeft);registerEditorCommand(new DeleteWordLeft);registerEditorCommand(new DeleteWordStartRight);registerEditorCommand(new DeleteWordEndRight);registerEditorCommand(new DeleteWordRight);registerEditorAction(DeleteInsideWord);const _DeleteWordPartLeft=class _DeleteWordPartLeft extends DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(ctx,wordNavigationType){const r=WordPartOperations.deleteWordPartLeft(ctx);return r||new Range$2(1,1,1,1)}};__name(_DeleteWordPartLeft,"DeleteWordPartLeft");let DeleteWordPartLeft=_DeleteWordPartLeft;const _DeleteWordPartRight=class _DeleteWordPartRight extends DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(ctx,wordNavigationType){const r=WordPartOperations.deleteWordPartRight(ctx);if(r)return r;const lineCount=ctx.model.getLineCount(),maxColumn=ctx.model.getLineMaxColumn(lineCount);return new Range$2(lineCount,maxColumn,lineCount,maxColumn)}};__name(_DeleteWordPartRight,"DeleteWordPartRight");let DeleteWordPartRight=_DeleteWordPartRight;const _WordPartLeftCommand=class _WordPartLeftCommand extends MoveWordCommand{_move(wordSeparators2,model,position,wordNavigationType,hasMulticursor){return WordPartOperations.moveWordPartLeft(wordSeparators2,model,position,hasMulticursor)}};__name(_WordPartLeftCommand,"WordPartLeftCommand");let WordPartLeftCommand=_WordPartLeftCommand;const _CursorWordPartLeft=class _CursorWordPartLeft extends WordPartLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})}};__name(_CursorWordPartLeft,"CursorWordPartLeft");let CursorWordPartLeft=_CursorWordPartLeft;CommandsRegistry.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");const _CursorWordPartLeftSelect=class _CursorWordPartLeftSelect extends WordPartLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}};__name(_CursorWordPartLeftSelect,"CursorWordPartLeftSelect");let CursorWordPartLeftSelect=_CursorWordPartLeftSelect;CommandsRegistry.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");const _WordPartRightCommand=class _WordPartRightCommand extends MoveWordCommand{_move(wordSeparators2,model,position,wordNavigationType,hasMulticursor){return WordPartOperations.moveWordPartRight(wordSeparators2,model,position)}};__name(_WordPartRightCommand,"WordPartRightCommand");let WordPartRightCommand=_WordPartRightCommand;const _CursorWordPartRight=class _CursorWordPartRight extends WordPartRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})}};__name(_CursorWordPartRight,"CursorWordPartRight");let CursorWordPartRight=_CursorWordPartRight;const _CursorWordPartRightSelect=class _CursorWordPartRightSelect extends WordPartRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}};__name(_CursorWordPartRightSelect,"CursorWordPartRightSelect");let CursorWordPartRightSelect=_CursorWordPartRightSelect;registerEditorCommand(new DeleteWordPartLeft);registerEditorCommand(new DeleteWordPartRight);registerEditorCommand(new CursorWordPartLeft);registerEditorCommand(new CursorWordPartLeftSelect);registerEditorCommand(new CursorWordPartRight);registerEditorCommand(new CursorWordPartRightSelect);const _ReadOnlyMessageController=class _ReadOnlyMessageController extends Disposable{constructor(editor2){super(),this.editor=editor2,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const messageController=MessageController.get(this.editor);if(messageController&&this.editor.hasModel()){let message=this.editor.getOptions().get(93);message||(this.editor.isSimpleWidget?message=new MarkdownString(localize("editor.simple.readonly","Cannot edit in read-only input")):message=new MarkdownString(localize("editor.readonly","Cannot edit in read-only editor"))),messageController.showMessage(message,this.editor.getPosition())}}};__name(_ReadOnlyMessageController,"ReadOnlyMessageController"),_ReadOnlyMessageController.ID="editor.contrib.readOnlyMessageController";let ReadOnlyMessageController=_ReadOnlyMessageController;registerEditorContribution(ReadOnlyMessageController.ID,ReadOnlyMessageController,2);var __decorate$8=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$8=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a285;let DiffEditorBreadcrumbsSource=(_a285=class extends Disposable{constructor(_textModel,_languageFeaturesService,_outlineModelService){super(),this._textModel=_textModel,this._languageFeaturesService=_languageFeaturesService,this._outlineModelService=_outlineModelService,this._currentModel=observableValue(this,void 0);const documentSymbolProviderChanged=observableSignalFromEvent("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),textModelChanged=observableSignalFromEvent("_textModel.onDidChangeContent",Event.debounce(e=>this._textModel.onDidChangeContent(e),()=>{},100));this._register(autorunWithStore(async(reader,store)=>{documentSymbolProviderChanged.read(reader),textModelChanged.read(reader);const src=store.add(new DisposableCancellationTokenSource),model=await this._outlineModelService.getOrCreate(this._textModel,src.token);store.isDisposed||this._currentModel.set(model,void 0)}))}getBreadcrumbItems(startRange,reader){const m2=this._currentModel.read(reader);if(!m2)return[];const symbols=m2.asListOfDocumentSymbols().filter(s=>startRange.contains(s.range.startLineNumber)&&!startRange.contains(s.range.endLineNumber));return symbols.sort(reverseOrder(compareBy(s=>s.range.endLineNumber-s.range.startLineNumber,numberComparator))),symbols.map(s=>({name:s.name,kind:s.kind,startLineNumber:s.range.startLineNumber}))}},__name(_a285,"DiffEditorBreadcrumbsSource"),_a285);DiffEditorBreadcrumbsSource=__decorate$8([__param$8(1,ILanguageFeaturesService),__param$8(2,IOutlineModelService)],DiffEditorBreadcrumbsSource);HideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((textModel,instantiationService)=>instantiationService.createInstance(DiffEditorBreadcrumbsSource,textModel));const _IPadShowKeyboard=class _IPadShowKeyboard extends Disposable{constructor(editor2){super(),this.editor=editor2,this.widget=null,isIOS&&(this._register(editor2.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const shouldHaveWidget=!this.editor.getOption(92);!this.widget&&shouldHaveWidget?this.widget=new ShowKeyboardWidget(this.editor):this.widget&&!shouldHaveWidget&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}};__name(_IPadShowKeyboard,"IPadShowKeyboard"),_IPadShowKeyboard.ID="editor.contrib.iPadShowKeyboard";let IPadShowKeyboard=_IPadShowKeyboard;const _ShowKeyboardWidget=class _ShowKeyboardWidget extends Disposable{constructor(editor2){super(),this.editor=editor2,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(addDisposableListener(this._domNode,"touchstart",e=>{this.editor.focus()})),this._register(addDisposableListener(this._domNode,"focus",e=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return _ShowKeyboardWidget.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};__name(_ShowKeyboardWidget,"ShowKeyboardWidget"),_ShowKeyboardWidget.ID="editor.contrib.ShowKeyboardWidget";let ShowKeyboardWidget=_ShowKeyboardWidget;registerEditorContribution(IPadShowKeyboard.ID,IPadShowKeyboard,3);var __decorate$7=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$7=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},InspectTokensController_1,_a286;let InspectTokensController=(_a286=class extends Disposable{static get(editor2){return editor2.getContribution(InspectTokensController_1.ID)}constructor(editor2,standaloneColorService,languageService){super(),this._editor=editor2,this._languageService=languageService,this._widget=null,this._register(this._editor.onDidChangeModel(e=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(e=>this.stop())),this._register(TokenizationRegistry.onDidChange(e=>this.stop())),this._register(this._editor.onKeyUp(e=>e.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new InspectTokensWidget(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}},__name(_a286,"InspectTokensController"),InspectTokensController_1=_a286,_a286.ID="editor.contrib.inspectTokens",_a286);InspectTokensController=InspectTokensController_1=__decorate$7([__param$7(1,IStandaloneThemeService),__param$7(2,ILanguageService)],InspectTokensController);const _InspectTokens=class _InspectTokens extends EditorAction{constructor(){super({id:"editor.action.inspectTokens",label:InspectTokensNLS.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(accessor,editor2){const controller=InspectTokensController.get(editor2);controller==null||controller.launch()}};__name(_InspectTokens,"InspectTokens");let InspectTokens=_InspectTokens;function renderTokenText(tokenText){let result="";for(let charIndex=0,len=tokenText.length;charIndex<len;charIndex++){const charCode=tokenText.charCodeAt(charIndex);switch(charCode){case 9:result+="→";break;case 32:result+="·";break;default:result+=String.fromCharCode(charCode)}}return result}__name(renderTokenText,"renderTokenText");function getSafeTokenizationSupport(languageIdCodec,languageId){const tokenizationSupport=TokenizationRegistry.get(languageId);if(tokenizationSupport)return tokenizationSupport;const encodedLanguageId=languageIdCodec.encodeLanguageId(languageId);return{getInitialState:__name(()=>NullState,"getInitialState"),tokenize:__name((line,hasEOL,state)=>nullTokenize(languageId,state),"tokenize"),tokenizeEncoded:__name((line,hasEOL,state)=>nullTokenizeEncoded(encodedLanguageId,state),"tokenizeEncoded")}}__name(getSafeTokenizationSupport,"getSafeTokenizationSupport");const _InspectTokensWidget=class _InspectTokensWidget extends Disposable{constructor(editor2,languageService){super(),this.allowEditorOverflow=!0,this._editor=editor2,this._languageService=languageService,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=getSafeTokenizationSupport(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(e=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return _InspectTokensWidget._ID}_compute(position){const data=this._getTokensAtLine(position.lineNumber);let token1Index=0;for(let i=data.tokens1.length-1;i>=0;i--){const t=data.tokens1[i];if(position.column-1>=t.offset){token1Index=i;break}}let token2Index=0;for(let i=data.tokens2.length>>>1;i>=0;i--)if(position.column-1>=data.tokens2[i<<1]){token2Index=i;break}const lineContent=this._model.getLineContent(position.lineNumber);let tokenText="";if(token1Index<data.tokens1.length){const tokenStartIndex=data.tokens1[token1Index].offset,tokenEndIndex=token1Index+1<data.tokens1.length?data.tokens1[token1Index+1].offset:lineContent.length;tokenText=lineContent.substring(tokenStartIndex,tokenEndIndex)}reset(this._domNode,$$e("h2.tm-token",void 0,renderTokenText(tokenText),$$e("span.tm-token-length",void 0,`${tokenText.length} ${tokenText.length===1?"char":"chars"}`))),append$1(this._domNode,$$e("hr.tokens-inspect-separator",{style:"clear:both"}));const metadata=(token2Index<<1)+1<data.tokens2.length?this._decodeMetadata(data.tokens2[(token2Index<<1)+1]):null;append$1(this._domNode,$$e("table.tm-metadata-table",void 0,$$e("tbody",void 0,$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"language"),$$e("td.tm-metadata-value",void 0,`${metadata?metadata.languageId:"-?-"}`)),$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"token type"),$$e("td.tm-metadata-value",void 0,`${metadata?this._tokenTypeToString(metadata.tokenType):"-?-"}`)),$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"font style"),$$e("td.tm-metadata-value",void 0,`${metadata?this._fontStyleToString(metadata.fontStyle):"-?-"}`)),$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"foreground"),$$e("td.tm-metadata-value",void 0,`${metadata?Color.Format.CSS.formatHex(metadata.foreground):"-?-"}`)),$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"background"),$$e("td.tm-metadata-value",void 0,`${metadata?Color.Format.CSS.formatHex(metadata.background):"-?-"}`))))),append$1(this._domNode,$$e("hr.tokens-inspect-separator")),token1Index<data.tokens1.length&&append$1(this._domNode,$$e("span.tm-token-type",void 0,data.tokens1[token1Index].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(metadata){const colorMap=TokenizationRegistry.getColorMap(),languageId=TokenMetadata.getLanguageId(metadata),tokenType=TokenMetadata.getTokenType(metadata),fontStyle=TokenMetadata.getFontStyle(metadata),foreground2=TokenMetadata.getForeground(metadata),background=TokenMetadata.getBackground(metadata);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(languageId),tokenType,fontStyle,foreground:colorMap[foreground2],background:colorMap[background]}}_tokenTypeToString(tokenType){switch(tokenType){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 3:return"RegEx";default:return"??"}}_fontStyleToString(fontStyle){let r="";return fontStyle&1&&(r+="italic "),fontStyle&2&&(r+="bold "),fontStyle&4&&(r+="underline "),fontStyle&8&&(r+="strikethrough "),r.length===0&&(r="---"),r}_getTokensAtLine(lineNumber){const stateBeforeLine=this._getStateBeforeLine(lineNumber),tokenizationResult1=this._tokenizationSupport.tokenize(this._model.getLineContent(lineNumber),!0,stateBeforeLine),tokenizationResult2=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(lineNumber),!0,stateBeforeLine);return{startState:stateBeforeLine,tokens1:tokenizationResult1.tokens,tokens2:tokenizationResult2.tokens,endState:tokenizationResult1.endState}}_getStateBeforeLine(lineNumber){let state=this._tokenizationSupport.getInitialState();for(let i=1;i<lineNumber;i++)state=this._tokenizationSupport.tokenize(this._model.getLineContent(i),!0,state).endState;return state}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}};__name(_InspectTokensWidget,"InspectTokensWidget"),_InspectTokensWidget._ID="editor.contrib.inspectTokensWidget";let InspectTokensWidget=_InspectTokensWidget;registerEditorContribution(InspectTokensController.ID,InspectTokensController,4);registerEditorAction(InspectTokens);var __decorate$6=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$6=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},HelpQuickAccessProvider_1,_a287;let HelpQuickAccessProvider=(_a287=class{constructor(quickInputService,keybindingService){this.quickInputService=quickInputService,this.keybindingService=keybindingService,this.registry=Registry.as(Extensions$2.Quickaccess)}provide(picker){const disposables=new DisposableStore;return disposables.add(picker.onDidAccept(()=>{const[item]=picker.selectedItems;item&&this.quickInputService.quickAccess.show(item.prefix,{preserveValue:!0})})),disposables.add(picker.onDidChangeValue(value=>{const providerDescriptor=this.registry.getQuickAccessProvider(value.substr(HelpQuickAccessProvider_1.PREFIX.length));providerDescriptor&&providerDescriptor.prefix&&providerDescriptor.prefix!==HelpQuickAccessProvider_1.PREFIX&&this.quickInputService.quickAccess.show(providerDescriptor.prefix,{preserveValue:!0})})),picker.items=this.getQuickAccessProviders().filter(p2=>p2.prefix!==HelpQuickAccessProvider_1.PREFIX),disposables}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((providerA,providerB)=>providerA.prefix.localeCompare(providerB.prefix)).flatMap(provider=>this.createPicks(provider))}createPicks(provider){return provider.helpEntries.map(helpEntry=>{const prefix=helpEntry.prefix||provider.prefix,label=prefix||"…";return{prefix,label,keybinding:helpEntry.commandId?this.keybindingService.lookupKeybinding(helpEntry.commandId):void 0,ariaLabel:localize("helpPickAriaLabel","{0}, {1}",label,helpEntry.description),description:helpEntry.description}})}},__name(_a287,"HelpQuickAccessProvider"),HelpQuickAccessProvider_1=_a287,_a287.PREFIX="?",_a287);HelpQuickAccessProvider=HelpQuickAccessProvider_1=__decorate$6([__param$6(0,IQuickInputService),__param$6(1,IKeybindingService)],HelpQuickAccessProvider);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:HelpQuickAccessProvider,prefix:"",helpEntries:[{description:QuickHelpNLS.helpQuickAccessActionLabel}]});const _AbstractEditorNavigationQuickAccessProvider=class _AbstractEditorNavigationQuickAccessProvider{constructor(options){this.options=options,this.rangeHighlightDecorationId=void 0}provide(picker,token,runOptions){var _a300;const disposables=new DisposableStore;picker.canAcceptInBackground=!!((_a300=this.options)!=null&&_a300.canAcceptInBackground),picker.matchOnLabel=picker.matchOnDescription=picker.matchOnDetail=picker.sortByLabel=!1;const pickerDisposable=disposables.add(new MutableDisposable);return pickerDisposable.value=this.doProvide(picker,token,runOptions),disposables.add(this.onDidActiveTextEditorControlChange(()=>{pickerDisposable.value=void 0,pickerDisposable.value=this.doProvide(picker,token)})),disposables}doProvide(picker,token,runOptions){var _a300;const disposables=new DisposableStore,editor2=this.activeTextEditorControl;if(editor2&&this.canProvideWithTextEditor(editor2)){const context={editor:editor2},codeEditor=getCodeEditor(editor2);if(codeEditor){let lastKnownEditorViewState=(_a300=editor2.saveViewState())!=null?_a300:void 0;disposables.add(codeEditor.onDidChangeCursorPosition(()=>{var _a301;lastKnownEditorViewState=(_a301=editor2.saveViewState())!=null?_a301:void 0})),context.restoreViewState=()=>{lastKnownEditorViewState&&editor2===this.activeTextEditorControl&&editor2.restoreViewState(lastKnownEditorViewState)},disposables.add(createSingleCallFunction(token.onCancellationRequested)(()=>{var _a301;return(_a301=context.restoreViewState)==null?void 0:_a301.call(context)}))}disposables.add(toDisposable(()=>this.clearDecorations(editor2))),disposables.add(this.provideWithTextEditor(context,picker,token,runOptions))}else disposables.add(this.provideWithoutTextEditor(picker,token));return disposables}canProvideWithTextEditor(editor2){return!0}gotoLocation({editor:editor2},options){editor2.setSelection(options.range,"code.jump"),editor2.revealRangeInCenter(options.range,0),options.preserveFocus||editor2.focus();const model=editor2.getModel();model&&"getLineContent"in model&&status(`${model.getLineContent(options.range.startLineNumber)}`)}getModel(editor2){var _a300;return isDiffEditor(editor2)?(_a300=editor2.getModel())==null?void 0:_a300.modified:editor2.getModel()}addDecorations(editor2,range2){editor2.changeDecorations(changeAccessor=>{const deleteDecorations=[];this.rangeHighlightDecorationId&&(deleteDecorations.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),deleteDecorations.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const newDecorations=[{range:range2,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:range2,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:themeColorFromId(overviewRulerRangeHighlight),position:OverviewRulerLane.Full}}}],[rangeHighlightId,overviewRulerDecorationId]=changeAccessor.deltaDecorations(deleteDecorations,newDecorations);this.rangeHighlightDecorationId={rangeHighlightId,overviewRulerDecorationId}})}clearDecorations(editor2){const rangeHighlightDecorationId=this.rangeHighlightDecorationId;rangeHighlightDecorationId&&(editor2.changeDecorations(changeAccessor=>{changeAccessor.deltaDecorations([rangeHighlightDecorationId.overviewRulerDecorationId,rangeHighlightDecorationId.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}};__name(_AbstractEditorNavigationQuickAccessProvider,"AbstractEditorNavigationQuickAccessProvider");let AbstractEditorNavigationQuickAccessProvider=_AbstractEditorNavigationQuickAccessProvider;const _AbstractGotoLineQuickAccessProvider=class _AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(picker){const label=localize("cannotRunGotoLine","Open a text editor first to go to a line.");return picker.items=[{label}],picker.ariaLabel=label,Disposable.None}provideWithTextEditor(context,picker,token){const editor2=context.editor,disposables=new DisposableStore;disposables.add(picker.onDidAccept(event=>{const[item]=picker.selectedItems;if(item){if(!this.isValidLineNumber(editor2,item.lineNumber))return;this.gotoLocation(context,{range:this.toRange(item.lineNumber,item.column),keyMods:picker.keyMods,preserveFocus:event.inBackground}),event.inBackground||picker.hide()}}));const updatePickerAndEditor=__name(()=>{const position=this.parsePosition(editor2,picker.value.trim().substr(_AbstractGotoLineQuickAccessProvider.PREFIX.length)),label=this.getPickLabel(editor2,position.lineNumber,position.column);if(picker.items=[{lineNumber:position.lineNumber,column:position.column,label}],picker.ariaLabel=label,!this.isValidLineNumber(editor2,position.lineNumber)){this.clearDecorations(editor2);return}const range2=this.toRange(position.lineNumber,position.column);editor2.revealRangeInCenter(range2,0),this.addDecorations(editor2,range2)},"updatePickerAndEditor");updatePickerAndEditor(),disposables.add(picker.onDidChangeValue(()=>updatePickerAndEditor()));const codeEditor=getCodeEditor(editor2);return codeEditor&&codeEditor.getOptions().get(68).renderType===2&&(codeEditor.updateOptions({lineNumbers:"on"}),disposables.add(toDisposable(()=>codeEditor.updateOptions({lineNumbers:"relative"})))),disposables}toRange(lineNumber=1,column=1){return{startLineNumber:lineNumber,startColumn:column,endLineNumber:lineNumber,endColumn:column}}parsePosition(editor2,value){const numbers=value.split(/,|:|#/).map(part=>parseInt(part,10)).filter(part=>!isNaN(part)),endLine=this.lineCount(editor2)+1;return{lineNumber:numbers[0]>0?numbers[0]:endLine+numbers[0],column:numbers[1]}}getPickLabel(editor2,lineNumber,column){if(this.isValidLineNumber(editor2,lineNumber))return this.isValidColumn(editor2,lineNumber,column)?localize("gotoLineColumnLabel","Go to line {0} and character {1}.",lineNumber,column):localize("gotoLineLabel","Go to line {0}.",lineNumber);const position=editor2.getPosition()||{lineNumber:1,column:1},lineCount=this.lineCount(editor2);return lineCount>1?localize("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",position.lineNumber,position.column,lineCount):localize("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",position.lineNumber,position.column)}isValidLineNumber(editor2,lineNumber){return!lineNumber||typeof lineNumber!="number"?!1:lineNumber>0&&lineNumber<=this.lineCount(editor2)}isValidColumn(editor2,lineNumber,column){if(!column||typeof column!="number")return!1;const model=this.getModel(editor2);if(!model)return!1;const positionCandidate={lineNumber,column};return model.validatePosition(positionCandidate).equals(positionCandidate)}lineCount(editor2){var _a300,_b2;return(_b2=(_a300=this.getModel(editor2))==null?void 0:_a300.getLineCount())!=null?_b2:0}};__name(_AbstractGotoLineQuickAccessProvider,"AbstractGotoLineQuickAccessProvider"),_AbstractGotoLineQuickAccessProvider.PREFIX=":";let AbstractGotoLineQuickAccessProvider=_AbstractGotoLineQuickAccessProvider;var __decorate$5=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$5=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a288;let StandaloneGotoLineQuickAccessProvider=(_a288=class extends AbstractGotoLineQuickAccessProvider{constructor(editorService){super(),this.editorService=editorService,this.onDidActiveTextEditorControlChange=Event.None}get activeTextEditorControl(){var _a300;return(_a300=this.editorService.getFocusedCodeEditor())!=null?_a300:void 0}},__name(_a288,"StandaloneGotoLineQuickAccessProvider"),_a288);StandaloneGotoLineQuickAccessProvider=__decorate$5([__param$5(0,ICodeEditorService)],StandaloneGotoLineQuickAccessProvider);var _a289;let GotoLineAction$1=(_a289=class extends EditorAction{constructor(){super({id:_a289.ID,label:GoToLineNLS.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})}run(accessor){accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX)}},__name(_a289,"GotoLineAction"),_a289.ID="editor.action.gotoLine",_a289);registerEditorAction(GotoLineAction$1);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneGotoLineQuickAccessProvider,prefix:StandaloneGotoLineQuickAccessProvider.PREFIX,helpEntries:[{description:GoToLineNLS.gotoLineActionLabel,commandId:GotoLineAction$1.ID}]});const NO_SCORE2=[void 0,[]];function scoreFuzzy2(target,query,patternStart=0,wordStart=0){const preparedQuery=query;return preparedQuery.values&&preparedQuery.values.length>1?doScoreFuzzy2Multiple(target,preparedQuery.values,patternStart,wordStart):doScoreFuzzy2Single(target,query,patternStart,wordStart)}__name(scoreFuzzy2,"scoreFuzzy2");function doScoreFuzzy2Multiple(target,query,patternStart,wordStart){let totalScore=0;const totalMatches=[];for(const queryPiece of query){const[score2,matches]=doScoreFuzzy2Single(target,queryPiece,patternStart,wordStart);if(typeof score2!="number")return NO_SCORE2;totalScore+=score2,totalMatches.push(...matches)}return[totalScore,normalizeMatches(totalMatches)]}__name(doScoreFuzzy2Multiple,"doScoreFuzzy2Multiple");function doScoreFuzzy2Single(target,query,patternStart,wordStart){const score2=fuzzyScore(query.original,query.originalLowercase,patternStart,target,target.toLowerCase(),wordStart,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return score2?[score2[0],createMatches(score2)]:NO_SCORE2}__name(doScoreFuzzy2Single,"doScoreFuzzy2Single");function normalizeMatches(matches){const sortedMatches=matches.sort((matchA,matchB)=>matchA.start-matchB.start),normalizedMatches=[];let currentMatch;for(const match2 of sortedMatches)!currentMatch||!matchOverlaps(currentMatch,match2)?(currentMatch=match2,normalizedMatches.push(match2)):(currentMatch.start=Math.min(currentMatch.start,match2.start),currentMatch.end=Math.max(currentMatch.end,match2.end));return normalizedMatches}__name(normalizeMatches,"normalizeMatches");function matchOverlaps(matchA,matchB){return!(matchA.end<matchB.start||matchB.end<matchA.start)}__name(matchOverlaps,"matchOverlaps");function queryExpectsExactMatch(query){return query.startsWith('"')&&query.endsWith('"')}__name(queryExpectsExactMatch,"queryExpectsExactMatch");const MULTIPLE_QUERY_VALUES_SEPARATOR=" ";function prepareQuery(original){typeof original!="string"&&(original="");const originalLowercase=original.toLowerCase(),{pathNormalized,normalized,normalizedLowercase}=normalizeQuery(original),containsPathSeparator=pathNormalized.indexOf(sep)>=0,expectExactMatch=queryExpectsExactMatch(original);let values;const originalSplit=original.split(MULTIPLE_QUERY_VALUES_SEPARATOR);if(originalSplit.length>1)for(const originalPiece of originalSplit){const expectExactMatchPiece=queryExpectsExactMatch(originalPiece),{pathNormalized:pathNormalizedPiece,normalized:normalizedPiece,normalizedLowercase:normalizedLowercasePiece}=normalizeQuery(originalPiece);normalizedPiece&&(values||(values=[]),values.push({original:originalPiece,originalLowercase:originalPiece.toLowerCase(),pathNormalized:pathNormalizedPiece,normalized:normalizedPiece,normalizedLowercase:normalizedLowercasePiece,expectContiguousMatch:expectExactMatchPiece}))}return{original,originalLowercase,pathNormalized,normalized,normalizedLowercase,values,containsPathSeparator,expectContiguousMatch:expectExactMatch}}__name(prepareQuery,"prepareQuery");function normalizeQuery(original){let pathNormalized;isWindows?pathNormalized=original.replace(/\//g,sep):pathNormalized=original.replace(/\\/g,sep);const normalized=stripWildcards(pathNormalized).replace(/\s|"/g,"");return{pathNormalized,normalized,normalizedLowercase:normalized.toLowerCase()}}__name(normalizeQuery,"normalizeQuery");function pieceToQuery(arg1){return Array.isArray(arg1)?prepareQuery(arg1.map(piece=>piece.original).join(MULTIPLE_QUERY_VALUES_SEPARATOR)):prepareQuery(arg1.original)}__name(pieceToQuery,"pieceToQuery");var __decorate$4=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$4=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},AbstractGotoSymbolQuickAccessProvider_1,_a290;let AbstractGotoSymbolQuickAccessProvider=(_a290=class extends AbstractEditorNavigationQuickAccessProvider{constructor(_languageFeaturesService,_outlineModelService,options=Object.create(null)){super(options),this._languageFeaturesService=_languageFeaturesService,this._outlineModelService=_outlineModelService,this.options=options,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(picker){return this.provideLabelPick(picker,localize("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),Disposable.None}provideWithTextEditor(context,picker,token,runOptions){const editor2=context.editor,model=this.getModel(editor2);return model?this._languageFeaturesService.documentSymbolProvider.has(model)?this.doProvideWithEditorSymbols(context,model,picker,token,runOptions):this.doProvideWithoutEditorSymbols(context,model,picker,token):Disposable.None}doProvideWithoutEditorSymbols(context,model,picker,token){const disposables=new DisposableStore;return this.provideLabelPick(picker,localize("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(model,disposables)||token.isCancellationRequested||disposables.add(this.doProvideWithEditorSymbols(context,model,picker,token)))(),disposables}provideLabelPick(picker,label){picker.items=[{label,index:0,kind:14}],picker.ariaLabel=label}async waitForLanguageSymbolRegistry(model,disposables){if(this._languageFeaturesService.documentSymbolProvider.has(model))return!0;const symbolProviderRegistryPromise=new DeferredPromise,symbolProviderListener=disposables.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(model)&&(symbolProviderListener.dispose(),symbolProviderRegistryPromise.complete(!0))}));return disposables.add(toDisposable(()=>symbolProviderRegistryPromise.complete(!1))),symbolProviderRegistryPromise.p}doProvideWithEditorSymbols(context,model,picker,token,runOptions){var _a300;const editor2=context.editor,disposables=new DisposableStore;disposables.add(picker.onDidAccept(event=>{var _a301;const[item]=picker.selectedItems;item&&item.range&&(this.gotoLocation(context,{range:item.range.selection,keyMods:picker.keyMods,preserveFocus:event.inBackground}),(_a301=runOptions==null?void 0:runOptions.handleAccept)==null||_a301.call(runOptions,item),event.inBackground||picker.hide())})),disposables.add(picker.onDidTriggerItemButton(({item})=>{item&&item.range&&(this.gotoLocation(context,{range:item.range.selection,keyMods:picker.keyMods,forceSideBySide:!0}),picker.hide())}));const symbolsPromise=this.getDocumentSymbols(model,token);let picksCts;const updatePickerItems=__name(async positionToEnclose=>{picksCts==null||picksCts.dispose(!0),picker.busy=!1,picksCts=new CancellationTokenSource$1(token),picker.busy=!0;try{const query=prepareQuery(picker.value.substr(AbstractGotoSymbolQuickAccessProvider_1.PREFIX.length).trim()),items=await this.doGetSymbolPicks(symbolsPromise,query,void 0,picksCts.token,model);if(token.isCancellationRequested)return;if(items.length>0){if(picker.items=items,positionToEnclose&&query.original.length===0){const candidate=findLast(items,item=>!!(item.type!=="separator"&&item.range&&Range$2.containsPosition(item.range.decoration,positionToEnclose)));candidate&&(picker.activeItems=[candidate])}}else query.original.length>0?this.provideLabelPick(picker,localize("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(picker,localize("noSymbolResults","No editor symbols"))}finally{token.isCancellationRequested||(picker.busy=!1)}},"updatePickerItems");return disposables.add(picker.onDidChangeValue(()=>updatePickerItems(void 0))),updatePickerItems((_a300=editor2.getSelection())==null?void 0:_a300.getPosition()),disposables.add(picker.onDidChangeActive(()=>{const[item]=picker.activeItems;item&&item.range&&(editor2.revealRangeInCenter(item.range.selection,0),this.addDecorations(editor2,item.range.decoration))})),disposables}async doGetSymbolPicks(symbolsPromise,query,options,token,model){var _a300,_b2;const symbols=await symbolsPromise;if(token.isCancellationRequested)return[];const filterBySymbolKind=query.original.indexOf(AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX)===0,filterPos=filterBySymbolKind?1:0;let symbolQuery,containerQuery;query.values&&query.values.length>1?(symbolQuery=pieceToQuery(query.values[0]),containerQuery=pieceToQuery(query.values.slice(1))):symbolQuery=query;let buttons;const openSideBySideDirection=(_b2=(_a300=this.options)==null?void 0:_a300.openSideBySideDirection)==null?void 0:_b2.call(_a300);openSideBySideDirection&&(buttons=[{iconClass:openSideBySideDirection==="right"?ThemeIcon.asClassName(Codicon.splitHorizontal):ThemeIcon.asClassName(Codicon.splitVertical),tooltip:openSideBySideDirection==="right"?localize("openToSide","Open to the Side"):localize("openToBottom","Open to the Bottom")}]);const filteredSymbolPicks=[];for(let index=0;index<symbols.length;index++){const symbol=symbols[index],symbolLabel=trim(symbol.name),symbolLabelWithIcon=`$(${SymbolKinds.toIcon(symbol.kind).id}) ${symbolLabel}`,symbolLabelIconOffset=symbolLabelWithIcon.length-symbolLabel.length;let containerLabel=symbol.containerName;options!=null&&options.extraContainerLabel&&(containerLabel?containerLabel=`${options.extraContainerLabel} • ${containerLabel}`:containerLabel=options.extraContainerLabel);let symbolScore,symbolMatches,containerScore,containerMatches;if(query.original.length>filterPos){let skipContainerQuery=!1;if(symbolQuery!==query&&([symbolScore,symbolMatches]=scoreFuzzy2(symbolLabelWithIcon,{...query,values:void 0},filterPos,symbolLabelIconOffset),typeof symbolScore=="number"&&(skipContainerQuery=!0)),typeof symbolScore!="number"&&([symbolScore,symbolMatches]=scoreFuzzy2(symbolLabelWithIcon,symbolQuery,filterPos,symbolLabelIconOffset),typeof symbolScore!="number"))continue;if(!skipContainerQuery&&containerQuery){if(containerLabel&&containerQuery.original.length>0&&([containerScore,containerMatches]=scoreFuzzy2(containerLabel,containerQuery)),typeof containerScore!="number")continue;typeof symbolScore=="number"&&(symbolScore+=containerScore)}}const deprecated=symbol.tags&&symbol.tags.indexOf(1)>=0;filteredSymbolPicks.push({index,kind:symbol.kind,score:symbolScore,label:symbolLabelWithIcon,ariaLabel:getAriaLabelForSymbol(symbol.name,symbol.kind),description:containerLabel,highlights:deprecated?void 0:{label:symbolMatches,description:containerMatches},range:{selection:Range$2.collapseToStart(symbol.selectionRange),decoration:symbol.range},uri:model.uri,symbolName:symbolLabel,strikethrough:deprecated,buttons})}const sortedFilteredSymbolPicks=filteredSymbolPicks.sort((symbolA,symbolB)=>filterBySymbolKind?this.compareByKindAndScore(symbolA,symbolB):this.compareByScore(symbolA,symbolB));let symbolPicks=[];if(filterBySymbolKind){let updateLastSeparatorLabel=function(){lastSeparator&&typeof lastSymbolKind=="number"&&lastSymbolKindCounter>0&&(lastSeparator.label=format(NLS_SYMBOL_KIND_CACHE[lastSymbolKind]||FALLBACK_NLS_SYMBOL_KIND,lastSymbolKindCounter))};__name(updateLastSeparatorLabel,"updateLastSeparatorLabel");let lastSymbolKind,lastSeparator,lastSymbolKindCounter=0;for(const symbolPick of sortedFilteredSymbolPicks)lastSymbolKind!==symbolPick.kind?(updateLastSeparatorLabel(),lastSymbolKind=symbolPick.kind,lastSymbolKindCounter=1,lastSeparator={type:"separator"},symbolPicks.push(lastSeparator)):lastSymbolKindCounter++,symbolPicks.push(symbolPick);updateLastSeparatorLabel()}else sortedFilteredSymbolPicks.length>0&&(symbolPicks=[{label:localize("symbols","symbols ({0})",filteredSymbolPicks.length),type:"separator"},...sortedFilteredSymbolPicks]);return symbolPicks}compareByScore(symbolA,symbolB){if(typeof symbolA.score!="number"&&typeof symbolB.score=="number")return 1;if(typeof symbolA.score=="number"&&typeof symbolB.score!="number")return-1;if(typeof symbolA.score=="number"&&typeof symbolB.score=="number"){if(symbolA.score>symbolB.score)return-1;if(symbolA.score<symbolB.score)return 1}return symbolA.index<symbolB.index?-1:symbolA.index>symbolB.index?1:0}compareByKindAndScore(symbolA,symbolB){const kindA=NLS_SYMBOL_KIND_CACHE[symbolA.kind]||FALLBACK_NLS_SYMBOL_KIND,kindB=NLS_SYMBOL_KIND_CACHE[symbolB.kind]||FALLBACK_NLS_SYMBOL_KIND,result=kindA.localeCompare(kindB);return result===0?this.compareByScore(symbolA,symbolB):result}async getDocumentSymbols(document2,token){const model=await this._outlineModelService.getOrCreate(document2,token);return token.isCancellationRequested?[]:model.asListOfDocumentSymbols()}},__name(_a290,"AbstractGotoSymbolQuickAccessProvider"),AbstractGotoSymbolQuickAccessProvider_1=_a290,_a290.PREFIX="@",_a290.SCOPE_PREFIX=":",_a290.PREFIX_BY_CATEGORY=`${_a290.PREFIX}${_a290.SCOPE_PREFIX}`,_a290);AbstractGotoSymbolQuickAccessProvider=AbstractGotoSymbolQuickAccessProvider_1=__decorate$4([__param$4(0,ILanguageFeaturesService),__param$4(1,IOutlineModelService)],AbstractGotoSymbolQuickAccessProvider);const FALLBACK_NLS_SYMBOL_KIND=localize("property","properties ({0})"),NLS_SYMBOL_KIND_CACHE={5:localize("method","methods ({0})"),11:localize("function","functions ({0})"),8:localize("_constructor","constructors ({0})"),12:localize("variable","variables ({0})"),4:localize("class","classes ({0})"),22:localize("struct","structs ({0})"),23:localize("event","events ({0})"),24:localize("operator","operators ({0})"),10:localize("interface","interfaces ({0})"),2:localize("namespace","namespaces ({0})"),3:localize("package","packages ({0})"),25:localize("typeParameter","type parameters ({0})"),1:localize("modules","modules ({0})"),6:localize("property","properties ({0})"),9:localize("enum","enumerations ({0})"),21:localize("enumMember","enumeration members ({0})"),14:localize("string","strings ({0})"),0:localize("file","files ({0})"),17:localize("array","arrays ({0})"),15:localize("number","numbers ({0})"),16:localize("boolean","booleans ({0})"),18:localize("object","objects ({0})"),19:localize("key","keys ({0})"),7:localize("field","fields ({0})"),13:localize("constant","constants ({0})")};var __decorate$3=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$3=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a291;let StandaloneGotoSymbolQuickAccessProvider=(_a291=class extends AbstractGotoSymbolQuickAccessProvider{constructor(editorService,languageFeaturesService,outlineModelService){super(languageFeaturesService,outlineModelService),this.editorService=editorService,this.onDidActiveTextEditorControlChange=Event.None}get activeTextEditorControl(){var _a300;return(_a300=this.editorService.getFocusedCodeEditor())!=null?_a300:void 0}},__name(_a291,"StandaloneGotoSymbolQuickAccessProvider"),_a291);StandaloneGotoSymbolQuickAccessProvider=__decorate$3([__param$3(0,ICodeEditorService),__param$3(1,ILanguageFeaturesService),__param$3(2,IOutlineModelService)],StandaloneGotoSymbolQuickAccessProvider);const _GotoSymbolAction=class _GotoSymbolAction extends EditorAction{constructor(){super({id:_GotoSymbolAction.ID,label:QuickOutlineNLS.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(accessor){accessor.get(IQuickInputService).quickAccess.show(AbstractGotoSymbolQuickAccessProvider.PREFIX,{itemActivation:ItemActivation.NONE})}};__name(_GotoSymbolAction,"GotoSymbolAction"),_GotoSymbolAction.ID="editor.action.quickOutline";let GotoSymbolAction=_GotoSymbolAction;registerEditorAction(GotoSymbolAction);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneGotoSymbolQuickAccessProvider,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX,helpEntries:[{description:QuickOutlineNLS.quickOutlineActionLabel,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX,commandId:GotoSymbolAction.ID},{description:QuickOutlineNLS.quickOutlineByCategoryActionLabel,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY}]});function countMapFrom(values){var _a300;const map=new Map;for(const value of values)map.set(value,((_a300=map.get(value))!=null?_a300:0)+1);return map}__name(countMapFrom,"countMapFrom");const _TfIdfCalculator=class _TfIdfCalculator{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(query,token){const embedding=this.computeEmbedding(query),idfCache=new Map,scores=[];for(const[key,doc]of this.documents){if(token.isCancellationRequested)return[];for(const chunk of doc.chunks){const score2=this.computeSimilarityScore(chunk,embedding,idfCache);score2>0&&scores.push({key,score:score2})}}return scores}static termFrequencies(input){return countMapFrom(_TfIdfCalculator.splitTerms(input))}static*splitTerms(input){const normalize2=__name(word=>word.toLowerCase(),"normalize");for(const[word]of input.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield normalize2(word);const camelParts=word.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(camelParts.length>1)for(const part of camelParts)part.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(part)&&(yield normalize2(part))}}updateDocuments(documents){var _a300;for(const{key}of documents)this.deleteDocument(key);for(const doc of documents){const chunks=[];for(const text2 of doc.textChunks){const tf=_TfIdfCalculator.termFrequencies(text2);for(const term of tf.keys())this.chunkOccurrences.set(term,((_a300=this.chunkOccurrences.get(term))!=null?_a300:0)+1);chunks.push({text:text2,tf})}this.chunkCount+=chunks.length,this.documents.set(doc.key,{chunks})}return this}deleteDocument(key){const doc=this.documents.get(key);if(doc){this.documents.delete(key),this.chunkCount-=doc.chunks.length;for(const chunk of doc.chunks)for(const term of chunk.tf.keys()){const currentOccurrences=this.chunkOccurrences.get(term);if(typeof currentOccurrences=="number"){const newOccurrences=currentOccurrences-1;newOccurrences<=0?this.chunkOccurrences.delete(term):this.chunkOccurrences.set(term,newOccurrences)}}}}computeSimilarityScore(chunk,queryEmbedding,idfCache){let sum=0;for(const[term,termTfidf]of Object.entries(queryEmbedding)){const chunkTf=chunk.tf.get(term);if(!chunkTf)continue;let chunkIdf=idfCache.get(term);typeof chunkIdf!="number"&&(chunkIdf=this.computeIdf(term),idfCache.set(term,chunkIdf));const chunkTfidf=chunkTf*chunkIdf;sum+=chunkTfidf*termTfidf}return sum}computeEmbedding(input){const tf=_TfIdfCalculator.termFrequencies(input);return this.computeTfidf(tf)}computeIdf(term){var _a300;const chunkOccurrences=(_a300=this.chunkOccurrences.get(term))!=null?_a300:0;return chunkOccurrences>0?Math.log((this.chunkCount+1)/chunkOccurrences):0}computeTfidf(termFrequencies){const embedding=Object.create(null);for(const[word,occurrences]of termFrequencies){const idf=this.computeIdf(word);idf>0&&(embedding[word]=occurrences*idf)}return embedding}};__name(_TfIdfCalculator,"TfIdfCalculator");let TfIdfCalculator=_TfIdfCalculator;function normalizeTfIdfScores(scores){var _a300,_b2;const result=scores.slice(0);result.sort((a,b)=>b.score-a.score);const max=(_b2=(_a300=result[0])==null?void 0:_a300.score)!=null?_b2:0;if(max>0)for(const score2 of result)score2.score/=max;return result}__name(normalizeTfIdfScores,"normalizeTfIdfScores");var TriggerAction;(function(TriggerAction2){TriggerAction2[TriggerAction2.NO_ACTION=0]="NO_ACTION",TriggerAction2[TriggerAction2.CLOSE_PICKER=1]="CLOSE_PICKER",TriggerAction2[TriggerAction2.REFRESH_PICKER=2]="REFRESH_PICKER",TriggerAction2[TriggerAction2.REMOVE_ITEM=3]="REMOVE_ITEM"})(TriggerAction||(TriggerAction={}));function isPicksWithActive(obj){const candidate=obj;return Array.isArray(candidate.items)}__name(isPicksWithActive,"isPicksWithActive");function isFastAndSlowPicks(obj){const candidate=obj;return!!candidate.picks&&candidate.additionalPicks instanceof Promise}__name(isFastAndSlowPicks,"isFastAndSlowPicks");const _PickerQuickAccessProvider=class _PickerQuickAccessProvider extends Disposable{constructor(prefix,options){super(),this.prefix=prefix,this.options=options}provide(picker,token,runOptions){var _a300;const disposables=new DisposableStore;picker.canAcceptInBackground=!!((_a300=this.options)!=null&&_a300.canAcceptInBackground),picker.matchOnLabel=picker.matchOnDescription=picker.matchOnDetail=picker.sortByLabel=!1;let picksCts;const picksDisposable=disposables.add(new MutableDisposable),updatePickerItems=__name(async()=>{var _a301;const picksDisposables=picksDisposable.value=new DisposableStore;picksCts==null||picksCts.dispose(!0),picker.busy=!1,picksCts=new CancellationTokenSource$1(token);const picksToken=picksCts.token;let picksFilter=picker.value.substring(this.prefix.length);(_a301=this.options)!=null&&_a301.shouldSkipTrimPickFilter||(picksFilter=picksFilter.trim());const providedPicks=this._getPicks(picksFilter,picksDisposables,picksToken,runOptions),applyPicks=__name((picks,skipEmpty)=>{var _a302;let items,activeItem;if(isPicksWithActive(picks)?(items=picks.items,activeItem=picks.active):items=picks,items.length===0){if(skipEmpty)return!1;(picksFilter.length>0||picker.hideInput)&&((_a302=this.options)!=null&&_a302.noResultsPick)&&(isFunction(this.options.noResultsPick)?items=[this.options.noResultsPick(picksFilter)]:items=[this.options.noResultsPick])}return picker.items=items,activeItem&&(picker.activeItems=[activeItem]),!0},"applyPicks"),applyFastAndSlowPicks=__name(async fastAndSlowPicks=>{let fastPicksApplied=!1,slowPicksApplied=!1;await Promise.all([(async()=>{typeof fastAndSlowPicks.mergeDelay=="number"&&(await timeout(fastAndSlowPicks.mergeDelay),picksToken.isCancellationRequested)||slowPicksApplied||(fastPicksApplied=applyPicks(fastAndSlowPicks.picks,!0))})(),(async()=>{picker.busy=!0;try{const awaitedAdditionalPicks=await fastAndSlowPicks.additionalPicks;if(picksToken.isCancellationRequested)return;let picks,activePick;isPicksWithActive(fastAndSlowPicks.picks)?(picks=fastAndSlowPicks.picks.items,activePick=fastAndSlowPicks.picks.active):picks=fastAndSlowPicks.picks;let additionalPicks,additionalActivePick;if(isPicksWithActive(awaitedAdditionalPicks)?(additionalPicks=awaitedAdditionalPicks.items,additionalActivePick=awaitedAdditionalPicks.active):additionalPicks=awaitedAdditionalPicks,additionalPicks.length>0||!fastPicksApplied){let fallbackActivePick;if(!activePick&&!additionalActivePick){const fallbackActivePickCandidate=picker.activeItems[0];fallbackActivePickCandidate&&picks.indexOf(fallbackActivePickCandidate)!==-1&&(fallbackActivePick=fallbackActivePickCandidate)}applyPicks({items:[...picks,...additionalPicks],active:activePick||additionalActivePick||fallbackActivePick})}}finally{picksToken.isCancellationRequested||(picker.busy=!1),slowPicksApplied=!0}})()])},"applyFastAndSlowPicks");if(providedPicks!==null)if(isFastAndSlowPicks(providedPicks))await applyFastAndSlowPicks(providedPicks);else if(!(providedPicks instanceof Promise))applyPicks(providedPicks);else{picker.busy=!0;try{const awaitedPicks=await providedPicks;if(picksToken.isCancellationRequested)return;isFastAndSlowPicks(awaitedPicks)?await applyFastAndSlowPicks(awaitedPicks):applyPicks(awaitedPicks)}finally{picksToken.isCancellationRequested||(picker.busy=!1)}}},"updatePickerItems");disposables.add(picker.onDidChangeValue(()=>updatePickerItems())),updatePickerItems(),disposables.add(picker.onDidAccept(event=>{var _a301;if(runOptions!=null&&runOptions.handleAccept){event.inBackground||picker.hide(),(_a301=runOptions.handleAccept)==null||_a301.call(runOptions,picker.activeItems[0]);return}const[item]=picker.selectedItems;typeof(item==null?void 0:item.accept)=="function"&&(event.inBackground||picker.hide(),item.accept(picker.keyMods,event))}));const buttonTrigger=__name(async(button,item)=>{var _a301,_b2;if(typeof item.trigger!="function")return;const buttonIndex=(_b2=(_a301=item.buttons)==null?void 0:_a301.indexOf(button))!=null?_b2:-1;if(buttonIndex>=0){const result=item.trigger(buttonIndex,picker.keyMods),action=typeof result=="number"?result:await result;if(token.isCancellationRequested)return;switch(action){case TriggerAction.NO_ACTION:break;case TriggerAction.CLOSE_PICKER:picker.hide();break;case TriggerAction.REFRESH_PICKER:updatePickerItems();break;case TriggerAction.REMOVE_ITEM:{const index=picker.items.indexOf(item);if(index!==-1){const items=picker.items.slice(),removed=items.splice(index,1),activeItems=picker.activeItems.filter(activeItem=>activeItem!==removed[0]),keepScrollPositionBefore=picker.keepScrollPosition;picker.keepScrollPosition=!0,picker.items=items,activeItems&&(picker.activeItems=activeItems),picker.keepScrollPosition=keepScrollPositionBefore}break}}}},"buttonTrigger");return disposables.add(picker.onDidTriggerItemButton(({button,item})=>buttonTrigger(button,item))),disposables.add(picker.onDidTriggerSeparatorButton(({button,separator})=>buttonTrigger(button,separator))),disposables}};__name(_PickerQuickAccessProvider,"PickerQuickAccessProvider");let PickerQuickAccessProvider=_PickerQuickAccessProvider;var __decorate$2=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$2=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},AbstractCommandsQuickAccessProvider_1,CommandsHistory_1,_a292;let AbstractCommandsQuickAccessProvider=(_a292=class extends PickerQuickAccessProvider{constructor(options,instantiationService,keybindingService,commandService,telemetryService,dialogService){super(AbstractCommandsQuickAccessProvider_1.PREFIX,options),this.instantiationService=instantiationService,this.keybindingService=keybindingService,this.commandService=commandService,this.telemetryService=telemetryService,this.dialogService=dialogService,this.commandsHistory=this._register(this.instantiationService.createInstance(CommandsHistory)),this.options=options}async _getPicks(filter,_disposables,token,runOptions){var _a300,_b2,_c,_d;const allCommandPicks=await this.getCommandPicks(token);if(token.isCancellationRequested)return[];const runTfidf=createSingleCallFunction(()=>{const tfidf=new TfIdfCalculator;tfidf.updateDocuments(allCommandPicks.map(commandPick=>({key:commandPick.commandId,textChunks:[this.getTfIdfChunk(commandPick)]})));const result=tfidf.calculateScores(filter,token);return normalizeTfIdfScores(result).filter(score2=>score2.score>AbstractCommandsQuickAccessProvider_1.TFIDF_THRESHOLD).slice(0,AbstractCommandsQuickAccessProvider_1.TFIDF_MAX_RESULTS)}),filteredCommandPicks=[];for(const commandPick of allCommandPicks){const labelHighlights=(_a300=AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter,commandPick.label))!=null?_a300:void 0,aliasHighlights=commandPick.commandAlias&&(_b2=AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter,commandPick.commandAlias))!=null?_b2:void 0;if(labelHighlights||aliasHighlights)commandPick.highlights={label:labelHighlights,detail:this.options.showAlias?aliasHighlights:void 0},filteredCommandPicks.push(commandPick);else if(filter===commandPick.commandId)filteredCommandPicks.push(commandPick);else if(filter.length>=3){const tfidf=runTfidf();if(token.isCancellationRequested)return[];const tfidfScore=tfidf.find(score2=>score2.key===commandPick.commandId);tfidfScore&&(commandPick.tfIdfScore=tfidfScore.score,filteredCommandPicks.push(commandPick))}}const mapLabelToCommand=new Map;for(const commandPick of filteredCommandPicks){const existingCommandForLabel=mapLabelToCommand.get(commandPick.label);existingCommandForLabel?(commandPick.description=commandPick.commandId,existingCommandForLabel.description=existingCommandForLabel.commandId):mapLabelToCommand.set(commandPick.label,commandPick)}filteredCommandPicks.sort((commandPickA,commandPickB)=>{if(commandPickA.tfIdfScore&&commandPickB.tfIdfScore)return commandPickA.tfIdfScore===commandPickB.tfIdfScore?commandPickA.label.localeCompare(commandPickB.label):commandPickB.tfIdfScore-commandPickA.tfIdfScore;if(commandPickA.tfIdfScore)return 1;if(commandPickB.tfIdfScore)return-1;const commandACounter=this.commandsHistory.peek(commandPickA.commandId),commandBCounter=this.commandsHistory.peek(commandPickB.commandId);if(commandACounter&&commandBCounter)return commandACounter>commandBCounter?-1:1;if(commandACounter)return-1;if(commandBCounter)return 1;if(this.options.suggestedCommandIds){const commandASuggestion=this.options.suggestedCommandIds.has(commandPickA.commandId),commandBSuggestion=this.options.suggestedCommandIds.has(commandPickB.commandId);if(commandASuggestion&&commandBSuggestion)return 0;if(commandASuggestion)return-1;if(commandBSuggestion)return 1}return commandPickA.label.localeCompare(commandPickB.label)});const commandPicks=[];let addOtherSeparator=!1,addSuggestedSeparator=!0,addCommonlyUsedSeparator=!!this.options.suggestedCommandIds;for(let i=0;i<filteredCommandPicks.length;i++){const commandPick=filteredCommandPicks[i];i===0&&this.commandsHistory.peek(commandPick.commandId)&&(commandPicks.push({type:"separator",label:localize("recentlyUsed","recently used")}),addOtherSeparator=!0),addSuggestedSeparator&&commandPick.tfIdfScore!==void 0&&(commandPicks.push({type:"separator",label:localize("suggested","similar commands")}),addSuggestedSeparator=!1),addCommonlyUsedSeparator&&commandPick.tfIdfScore===void 0&&!this.commandsHistory.peek(commandPick.commandId)&&((_c=this.options.suggestedCommandIds)!=null&&_c.has(commandPick.commandId))&&(commandPicks.push({type:"separator",label:localize("commonlyUsed","commonly used")}),addOtherSeparator=!0,addCommonlyUsedSeparator=!1),addOtherSeparator&&commandPick.tfIdfScore===void 0&&!this.commandsHistory.peek(commandPick.commandId)&&!((_d=this.options.suggestedCommandIds)!=null&&_d.has(commandPick.commandId))&&(commandPicks.push({type:"separator",label:localize("morecCommands","other commands")}),addOtherSeparator=!1),commandPicks.push(this.toCommandPick(commandPick,runOptions))}return this.hasAdditionalCommandPicks(filter,token)?{picks:commandPicks,additionalPicks:(async()=>{var _a301;const additionalCommandPicks=await this.getAdditionalCommandPicks(allCommandPicks,filteredCommandPicks,filter,token);if(token.isCancellationRequested)return[];const commandPicks2=additionalCommandPicks.map(commandPick=>this.toCommandPick(commandPick,runOptions));return addSuggestedSeparator&&((_a301=commandPicks2[0])==null?void 0:_a301.type)!=="separator"&&commandPicks2.unshift({type:"separator",label:localize("suggested","similar commands")}),commandPicks2})()}:commandPicks}toCommandPick(commandPick,runOptions){if(commandPick.type==="separator")return commandPick;const keybinding=this.keybindingService.lookupKeybinding(commandPick.commandId),ariaLabel=keybinding?localize("commandPickAriaLabelWithKeybinding","{0}, {1}",commandPick.label,keybinding.getAriaLabel()):commandPick.label;return{...commandPick,ariaLabel,detail:this.options.showAlias&&commandPick.commandAlias!==commandPick.label?commandPick.commandAlias:void 0,keybinding,accept:__name(async()=>{var _a300,_b2;this.commandsHistory.push(commandPick.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:commandPick.commandId,from:(_a300=runOptions==null?void 0:runOptions.from)!=null?_a300:"quick open"});try{(_b2=commandPick.args)!=null&&_b2.length?await this.commandService.executeCommand(commandPick.commandId,...commandPick.args):await this.commandService.executeCommand(commandPick.commandId)}catch(error){isCancellationError(error)||this.dialogService.error(localize("canNotRun","Command '{0}' resulted in an error",commandPick.label),toErrorMessage(error))}},"accept")}}getTfIdfChunk({label,commandAlias,commandDescription}){let chunk=label;return commandAlias&&commandAlias!==label&&(chunk+=` - ${commandAlias}`),commandDescription&&commandDescription.value!==label&&(chunk+=` - ${commandDescription.value===commandDescription.original?commandDescription.value:`${commandDescription.value} (${commandDescription.original})`}`),chunk}},__name(_a292,"AbstractCommandsQuickAccessProvider"),AbstractCommandsQuickAccessProvider_1=_a292,_a292.PREFIX=">",_a292.TFIDF_THRESHOLD=.5,_a292.TFIDF_MAX_RESULTS=5,_a292.WORD_FILTER=or(matchesPrefix,matchesWords,matchesContiguousSubString),_a292);AbstractCommandsQuickAccessProvider=AbstractCommandsQuickAccessProvider_1=__decorate$2([__param$2(1,IInstantiationService),__param$2(2,IKeybindingService),__param$2(3,ICommandService),__param$2(4,ITelemetryService),__param$2(5,IDialogService)],AbstractCommandsQuickAccessProvider);var _a293;let CommandsHistory=(_a293=class extends Disposable{constructor(storageService,configurationService,logService){super(),this.storageService=storageService,this.configurationService=configurationService,this.logService=logService,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(e=>{e.reason===WillSaveStateReason.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=CommandsHistory_1.getConfiguredCommandHistoryLength(this.configurationService),CommandsHistory_1.cache&&CommandsHistory_1.cache.limit!==this.configuredCommandsHistoryLength&&(CommandsHistory_1.cache.limit=this.configuredCommandsHistoryLength,CommandsHistory_1.hasChanges=!0))}load(){const raw=this.storageService.get(CommandsHistory_1.PREF_KEY_CACHE,0);let serializedCache;if(raw)try{serializedCache=JSON.parse(raw)}catch(error){this.logService.error(`[CommandsHistory] invalid data: ${error}`)}const cache=CommandsHistory_1.cache=new LRUCache(this.configuredCommandsHistoryLength,1);if(serializedCache){let entries2;serializedCache.usesLRU?entries2=serializedCache.entries:entries2=serializedCache.entries.sort((a,b)=>a.value-b.value),entries2.forEach(entry=>cache.set(entry.key,entry.value))}CommandsHistory_1.counter=this.storageService.getNumber(CommandsHistory_1.PREF_KEY_COUNTER,0,CommandsHistory_1.counter)}push(commandId){CommandsHistory_1.cache&&(CommandsHistory_1.cache.set(commandId,CommandsHistory_1.counter++),CommandsHistory_1.hasChanges=!0)}peek(commandId){var _a300;return(_a300=CommandsHistory_1.cache)==null?void 0:_a300.peek(commandId)}saveState(){if(!CommandsHistory_1.cache||!CommandsHistory_1.hasChanges)return;const serializedCache={usesLRU:!0,entries:[]};CommandsHistory_1.cache.forEach((value,key)=>serializedCache.entries.push({key,value})),this.storageService.store(CommandsHistory_1.PREF_KEY_CACHE,JSON.stringify(serializedCache),0,0),this.storageService.store(CommandsHistory_1.PREF_KEY_COUNTER,CommandsHistory_1.counter,0,0),CommandsHistory_1.hasChanges=!1}static getConfiguredCommandHistoryLength(configurationService){var _a300,_b2;const configuredCommandHistoryLength=(_b2=(_a300=configurationService.getValue().workbench)==null?void 0:_a300.commandPalette)==null?void 0:_b2.history;return typeof configuredCommandHistoryLength=="number"?configuredCommandHistoryLength:CommandsHistory_1.DEFAULT_COMMANDS_HISTORY_LENGTH}},__name(_a293,"CommandsHistory"),CommandsHistory_1=_a293,_a293.DEFAULT_COMMANDS_HISTORY_LENGTH=50,_a293.PREF_KEY_CACHE="commandPalette.mru.cache",_a293.PREF_KEY_COUNTER="commandPalette.mru.counter",_a293.counter=1,_a293.hasChanges=!1,_a293);CommandsHistory=CommandsHistory_1=__decorate$2([__param$2(0,IStorageService),__param$2(1,IConfigurationService),__param$2(2,ILogService)],CommandsHistory);const _AbstractEditorCommandsQuickAccessProvider=class _AbstractEditorCommandsQuickAccessProvider extends AbstractCommandsQuickAccessProvider{constructor(options,instantiationService,keybindingService,commandService,telemetryService,dialogService){super(options,instantiationService,keybindingService,commandService,telemetryService,dialogService)}getCodeEditorCommandPicks(){var _a300;const activeTextEditorControl=this.activeTextEditorControl;if(!activeTextEditorControl)return[];const editorCommandPicks=[];for(const editorAction of activeTextEditorControl.getSupportedActions()){let commandDescription;(_a300=editorAction.metadata)!=null&&_a300.description&&(isLocalizedString(editorAction.metadata.description)?commandDescription=editorAction.metadata.description:commandDescription={original:editorAction.metadata.description,value:editorAction.metadata.description}),editorCommandPicks.push({commandId:editorAction.id,commandAlias:editorAction.alias,commandDescription,label:stripIcons(editorAction.label)||editorAction.id})}return editorCommandPicks}};__name(_AbstractEditorCommandsQuickAccessProvider,"AbstractEditorCommandsQuickAccessProvider");let AbstractEditorCommandsQuickAccessProvider=_AbstractEditorCommandsQuickAccessProvider;var __decorate$1=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$1=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a294;let StandaloneCommandsQuickAccessProvider=(_a294=class extends AbstractEditorCommandsQuickAccessProvider{get activeTextEditorControl(){var _a300;return(_a300=this.codeEditorService.getFocusedCodeEditor())!=null?_a300:void 0}constructor(instantiationService,codeEditorService,keybindingService,commandService,telemetryService,dialogService){super({showAlias:!1},instantiationService,keybindingService,commandService,telemetryService,dialogService),this.codeEditorService=codeEditorService}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}},__name(_a294,"StandaloneCommandsQuickAccessProvider"),_a294);StandaloneCommandsQuickAccessProvider=__decorate$1([__param$1(0,IInstantiationService),__param$1(1,ICodeEditorService),__param$1(2,IKeybindingService),__param$1(3,ICommandService),__param$1(4,ITelemetryService),__param$1(5,IDialogService)],StandaloneCommandsQuickAccessProvider);const _GotoLineAction=class _GotoLineAction extends EditorAction{constructor(){super({id:_GotoLineAction.ID,label:QuickCommandNLS.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(accessor){accessor.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX)}};__name(_GotoLineAction,"GotoLineAction"),_GotoLineAction.ID="editor.action.quickCommand";let GotoLineAction=_GotoLineAction;registerEditorAction(GotoLineAction);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneCommandsQuickAccessProvider,prefix:StandaloneCommandsQuickAccessProvider.PREFIX,helpEntries:[{description:QuickCommandNLS.quickCommandHelp,commandId:GotoLineAction.ID}]});var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a295;let StandaloneReferencesController=(_a295=class extends ReferencesController{constructor(editor2,contextKeyService,editorService,notificationService,instantiationService,storageService,configurationService){super(!0,editor2,contextKeyService,editorService,notificationService,instantiationService,storageService,configurationService)}},__name(_a295,"StandaloneReferencesController"),_a295);StandaloneReferencesController=__decorate([__param(1,IContextKeyService),__param(2,ICodeEditorService),__param(3,INotificationService),__param(4,IInstantiationService),__param(5,IStorageService),__param(6,IConfigurationService)],StandaloneReferencesController);registerEditorContribution(ReferencesController.ID,StandaloneReferencesController,4);const _ToggleHighContrast=class _ToggleHighContrast extends EditorAction{constructor(){super({id:"editor.action.toggleHighContrast",label:ToggleHighContrastNLS.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(accessor,editor2){const standaloneThemeService=accessor.get(IStandaloneThemeService),currentTheme=standaloneThemeService.getColorTheme();isHighContrast(currentTheme.type)?(standaloneThemeService.setTheme(this._originalThemeName||(isDark(currentTheme.type)?VS_DARK_THEME_NAME:VS_LIGHT_THEME_NAME)),this._originalThemeName=null):(standaloneThemeService.setTheme(isDark(currentTheme.type)?HC_BLACK_THEME_NAME:HC_LIGHT_THEME_NAME),this._originalThemeName=currentTheme.themeName)}};__name(_ToggleHighContrast,"ToggleHighContrast");let ToggleHighContrast=_ToggleHighContrast;registerEditorAction(ToggleHighContrast);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a296;exports.ScriptEditorService=(_a296=class extends core.Disposable{constructor(_configService){super();__publicField(this,"_editorInstance",null);this._configService=_configService}setEditorInstance(editor2){return this._editorInstance=editor2,core.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){const config=this._configService.getConfig(PLUGIN_CONFIG_KEY);window.MonacoEnvironment={getWorkerUrl:config==null?void 0:config.getWorkerUrl}}}},__name(_a296,"ScriptEditorService"),_a296);exports.ScriptEditorService=__decorateClass$3([__decorateParam$3(0,core.IConfigService)],exports.ScriptEditorService);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");const IUniscriptExecutionService=core.createIdentifier("univer.uniscript.execution-service");var _a297;let UniscriptExecutionService=(_a297=class extends core.Disposable{constructor(_logService,_injector){super(),this._logService=_logService,this._injector=_injector}async execute(code){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const apiInstance=facade.FUniver.newAPI(this._injector),scriptFunction=new Function("univerAPI",`(() => {${code}})()`);try{return scriptFunction(apiInstance),!0}catch(e){return this._logService.error(e),!1}}},__name(_a297,"UniscriptExecutionService"),_a297);UniscriptExecutionService=__decorateClass$2([__decorateParam$2(0,core.ILogService),__decorateParam$2(1,core.Inject(core.Injector))],UniscriptExecutionService);const scriptEditorPanel="univer-script-editor-panel",scriptEditorContent="univer-script-editor-content",scriptEditorActions="univer-script-editor-actions",styles={scriptEditorPanel,scriptEditorContent,scriptEditorActions};function ScriptEditorPanel(){const editorContentRef=require$$0.useRef(null),editorContainerRef=require$$0.useRef(null),monacoEditorRef=require$$0.useRef(null),localeService=core.useDependency(core.LocaleService),shortcutService=core.useDependency(ui.IShortcutService),editorService=core.useDependency(exports.ScriptEditorService);require$$0.useEffect(()=>{const containerElement=editorContainerRef.current,contentElement=editorContentRef.current;let disposableCollection=null,resizeObserver=null;if(containerElement&&contentElement){editorService.requireVscodeEditor();const monacoEditor=monacoEditorRef.current=editor.create(containerElement,{value:"",language:"javascript"});resizeObserver=new ResizeObserver(()=>{let timer=requestIdleCallback(()=>{if(!timer)return;const{height,width:width2}=contentElement.getBoundingClientRect();monacoEditor.layout({width:width2,height}),timer=void 0})}),resizeObserver.observe(contentElement);let terminateEscaping;disposableCollection=new core.DisposableCollection,disposableCollection.add(editorService.setEditorInstance(monacoEditor)),disposableCollection.add(monacoEditor.onDidFocusEditorWidget(()=>{terminateEscaping=shortcutService.forceEscape()})),disposableCollection.add(monacoEditor.onDidBlurEditorWidget(()=>{terminateEscaping==null||terminateEscaping.dispose(),terminateEscaping=void 0})),disposableCollection.add(core.toDisposable(()=>terminateEscaping==null?void 0:terminateEscaping.dispose()))}return()=>{resizeObserver&&contentElement&&resizeObserver.unobserve(contentElement),disposableCollection==null||disposableCollection.dispose()}},[editorService,shortcutService]);const startExecution=useExecution(monacoEditorRef);return jsxRuntimeExports.jsxs("div",{className:styles.scriptEditorPanel,children:[jsxRuntimeExports.jsx("div",{className:styles.scriptEditorContent,ref:editorContentRef,children:jsxRuntimeExports.jsx("div",{className:styles.scriptEditorContainer,ref:editorContainerRef})}),jsxRuntimeExports.jsx("div",{className:styles.scriptEditorActions,children:jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:startExecution,children:localeService.t("script-panel.panel.execute")})})]})}__name(ScriptEditorPanel,"ScriptEditorPanel");function useExecution(monacoEditorRef){const scriptService=core.useDependency(IUniscriptExecutionService),messageService=core.useDependency(ui.IMessageService),localeService=core.useDependency(core.LocaleService);return require$$0.useCallback(()=>{var _a300;const model=(_a300=monacoEditorRef.current)==null?void 0:_a300.getModel();model&&scriptService.execute(model.getValue()).then(()=>{messageService.show({content:localeService.t("uniscript.message.success"),type:design.MessageType.Success})}).catch(()=>{messageService.show({content:localeService.t("uniscript.message.failed"),type:design.MessageType.Error})})},[localeService,messageService,monacoEditorRef,scriptService])}__name(useExecution,"useExecution");function UniscriptMenuItemFactory(accessor){return{id:ToggleScriptPanelOperation.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:ui.MenuItemType.BUTTON,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(UniscriptMenuItemFactory,"UniscriptMenuItemFactory");const menuSchema={[ui.RibbonStartGroup.OTHERS]:{[ToggleScriptPanelOperation.id]:{order:5,menuItemFactory:UniscriptMenuItemFactory}}};var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a298;let UniscriptController=(_a298=class extends core.Disposable{constructor(_menuManagerService,commandService,componentManager){super(),this._menuManagerService=_menuManagerService,this._menuManagerService.mergeMenu(menuSchema),this.disposeWithMe(componentManager.register(ScriptPanelComponentName,ScriptEditorPanel)),this.disposeWithMe(commandService.registerCommand(ToggleScriptPanelOperation))}},__name(_a298,"UniscriptController"),_a298);UniscriptController=__decorateClass$1([__decorateParam$1(0,ui.IMenuManagerService),__decorateParam$1(1,core.ICommandService),__decorateParam$1(2,core.Inject(ui.ComponentManager))],UniscriptController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const PLUGIN_NAME="UNIVER_UNISCRIPT_PLUGIN";var _a299;exports.UniverUniscriptPlugin=(_a299=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_configService){super(),this._config=_config,this._injector=_injector,this._configService=_configService;const{menu,...rest}=this._config;menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(PLUGIN_CONFIG_KEY,rest)}onStarting(){const injector=this._injector;[[UniscriptController],[exports.ScriptEditorService],[ScriptPanelService]].forEach(d=>injector.add(d)),this.registerExecution()}onSteady(){this._injector.get(UniscriptController)}registerExecution(){this._injector.add([IUniscriptExecutionService,{useClass:UniscriptExecutionService}])}},__name(_a299,"UniverUniscriptPlugin"),__publicField(_a299,"pluginName",PLUGIN_NAME),_a299);exports.UniverUniscriptPlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,core.IConfigService)],exports.UniverUniscriptPlugin);exports.IUniscriptExecutionService=IUniscriptExecutionService;exports.ToggleScriptPanelOperation=ToggleScriptPanelOperation;exports.monaco_editor_core_star=monaco_editor_core_star;exports.typescriptDefaults=typescriptDefaults;
1163
+ `)};const result=await provider.provideRenameEdits(this.model,this.position,newName,token);if(result){if(result.rejectReason)return this._provideRenameEdits(newName,i+1,rejects.concat(result.rejectReason),token)}else return this._provideRenameEdits(newName,i+1,rejects.concat(localize("no result","No result.")),token);return result}};__name(_RenameSkeleton,"RenameSkeleton");let RenameSkeleton=_RenameSkeleton;async function rename(registry,model,position,newName){const skeleton=new RenameSkeleton(model,position,registry),loc=await skeleton.resolveRenameLocation(CancellationToken.None);return loc!=null&&loc.rejectReason?{edits:[],rejectReason:loc.rejectReason}:skeleton.provideRenameEdits(newName,CancellationToken.None)}__name(rename,"rename");var _a259;let RenameController=(_a259=class{static get(editor2){return editor2.getContribution(RenameController_1.ID)}constructor(editor2,_instaService,_notificationService,_bulkEditService,_progressService,_logService,_configService,_languageFeaturesService,_telemetryService){this.editor=editor2,this._instaService=_instaService,this._notificationService=_notificationService,this._bulkEditService=_bulkEditService,this._progressService=_progressService,this._logService=_logService,this._configService=_configService,this._languageFeaturesService=_languageFeaturesService,this._telemetryService=_telemetryService,this._disposableStore=new DisposableStore,this._cts=new CancellationTokenSource$1,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(RenameWidget,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var _a300,_b2;const trace=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new CancellationTokenSource$1,!this.editor.hasModel()){trace("editor has no model");return}const position=this.editor.getPosition(),skeleton=new RenameSkeleton(this.editor.getModel(),position,this._languageFeaturesService.renameProvider);if(!skeleton.hasProvider()){trace("skeleton has no provider");return}const cts1=new EditorStateCancellationTokenSource(this.editor,5,void 0,this._cts.token);let loc;try{trace("resolving rename location");const resolveLocationOperation=skeleton.resolveRenameLocation(cts1.token);this._progressService.showWhile(resolveLocationOperation,250),loc=await resolveLocationOperation,trace("resolved rename location")}catch(e){e instanceof CancellationError?trace("resolve rename location cancelled",JSON.stringify(e,null," ")):(trace("resolve rename location failed",e instanceof Error?e:JSON.stringify(e,null," ")),(typeof e=="string"||isMarkdownString(e))&&((_a300=MessageController.get(this.editor))==null||_a300.showMessage(e||localize("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),position)));return}finally{cts1.dispose()}if(!loc){trace("returning early - no loc");return}if(loc.rejectReason){trace(`returning early - rejected with reason: ${loc.rejectReason}`,loc.rejectReason),(_b2=MessageController.get(this.editor))==null||_b2.showMessage(loc.rejectReason,position);return}if(cts1.token.isCancellationRequested){trace("returning early - cts1 cancelled");return}const cts2=new EditorStateCancellationTokenSource(this.editor,5,loc.range,this._cts.token),model=this.editor.getModel(),newSymbolNamesProviders=this._languageFeaturesService.newSymbolNamesProvider.all(model),resolvedNewSymbolnamesProviders=await Promise.all(newSymbolNamesProviders.map(async p2=>{var _a301;return[p2,(_a301=await p2.supportsAutomaticNewSymbolNamesTriggerKind)!=null?_a301:!1]})),requestRenameSuggestions=__name((triggerKind,cts)=>{let providers=resolvedNewSymbolnamesProviders.slice();return triggerKind===NewSymbolNameTriggerKind$1.Automatic&&(providers=providers.filter(([_,supportsAutomatic])=>supportsAutomatic)),providers.map(([p2])=>p2.provideNewSymbolNames(model,loc.range,triggerKind,cts))},"requestRenameSuggestions");trace("creating rename input field and awaiting its result");const supportPreview=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),inputFieldResult=await this._renameWidget.getInput(loc.range,loc.text,supportPreview,newSymbolNamesProviders.length>0?requestRenameSuggestions:void 0,cts2);if(trace("received response from rename input field"),newSymbolNamesProviders.length>0&&this._reportTelemetry(newSymbolNamesProviders.length,model.getLanguageId(),inputFieldResult),typeof inputFieldResult=="boolean"){trace(`returning early - rename input field response - ${inputFieldResult}`),inputFieldResult&&this.editor.focus(),cts2.dispose();return}this.editor.focus(),trace("requesting rename edits");const renameOperation=raceCancellation(skeleton.provideRenameEdits(inputFieldResult.newName,cts2.token),cts2.token).then(async renameResult=>{if(!renameResult){trace("returning early - no rename edits result");return}if(!this.editor.hasModel()){trace("returning early - no model after rename edits are provided");return}if(renameResult.rejectReason){trace(`returning early - rejected with reason: ${renameResult.rejectReason}`),this._notificationService.info(renameResult.rejectReason);return}this.editor.setSelection(Range$2.fromPositions(this.editor.getSelection().getPosition())),trace("applying edits"),this._bulkEditService.apply(renameResult,{editor:this.editor,showPreview:inputFieldResult.wantsPreview,label:localize("label","Renaming '{0}' to '{1}'",loc==null?void 0:loc.text,inputFieldResult.newName),code:"undoredo.rename",quotableLabel:localize("quotableLabel","Renaming {0} to {1}",loc==null?void 0:loc.text,inputFieldResult.newName),respectAutoSaveConfig:!0}).then(result=>{trace("edits applied"),result.ariaSummary&&alert(localize("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",loc.text,inputFieldResult.newName,result.ariaSummary))}).catch(err=>{trace(`error when applying edits ${JSON.stringify(err,null," ")}`),this._notificationService.error(localize("rename.failedApply","Rename failed to apply edits")),this._logService.error(err)})},err=>{trace("error when providing rename edits",JSON.stringify(err,null," ")),this._notificationService.error(localize("rename.failed","Rename failed to compute edits")),this._logService.error(err)}).finally(()=>{cts2.dispose()});return trace("returning rename operation"),this._progressService.showWhile(renameOperation,250),renameOperation}acceptRenameInput(wantsPreview){this._renameWidget.acceptInput(wantsPreview)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(nRenameSuggestionProviders,languageId,inputFieldResult){const value=typeof inputFieldResult=="boolean"?{kind:"cancelled",languageId,nRenameSuggestionProviders}:{kind:"accepted",languageId,nRenameSuggestionProviders,source:inputFieldResult.stats.source.k,nRenameSuggestions:inputFieldResult.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:inputFieldResult.stats.timeBeforeFirstInputFieldEdit,wantsPreview:inputFieldResult.wantsPreview,nRenameSuggestionsInvocations:inputFieldResult.stats.nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:inputFieldResult.stats.hadAutomaticRenameSuggestionsInvocation};this._telemetryService.publicLog2("renameInvokedEvent",value)}},__name(_a259,"RenameController"),RenameController_1=_a259,_a259.ID="editor.contrib.renameController",_a259);RenameController=RenameController_1=__decorate$n([__param$n(1,IInstantiationService),__param$n(2,INotificationService),__param$n(3,IBulkEditService),__param$n(4,IEditorProgressService),__param$n(5,ILogService),__param$n(6,ITextResourceConfigurationService),__param$n(7,ILanguageFeaturesService),__param$n(8,ITelemetryService)],RenameController);const _RenameAction=class _RenameAction extends EditorAction{constructor(){super({id:"editor.action.rename",label:localize("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(accessor,args){const editorService=accessor.get(ICodeEditorService),[uri,pos]=Array.isArray(args)&&args||[void 0,void 0];return URI.isUri(uri)&&Position$1.isIPosition(pos)?editorService.openCodeEditor({resource:uri},editorService.getActiveCodeEditor()).then(editor2=>{editor2&&(editor2.setPosition(pos),editor2.invokeWithinContext(accessor2=>(this.reportTelemetry(accessor2,editor2),this.run(accessor2,editor2))))},onUnexpectedError):super.runCommand(accessor,args)}run(accessor,editor2){const logService=accessor.get(ILogService),controller=RenameController.get(editor2);return controller?(logService.trace("[RenameAction] got controller, running..."),controller.run()):(logService.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}};__name(_RenameAction,"RenameAction");let RenameAction=_RenameAction;registerEditorContribution(RenameController.ID,RenameController,4);registerEditorAction(RenameAction);const RenameCommand=EditorCommand.bindToContribution(RenameController.get);registerEditorCommand(new RenameCommand({id:"acceptRenameInput",precondition:CONTEXT_RENAME_INPUT_VISIBLE,handler:__name(x=>x.acceptRenameInput(!1),"handler"),kbOpts:{weight:199,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,ContextKeyExpr.not("isComposing")),primary:3}}));registerEditorCommand(new RenameCommand({id:"acceptRenameInputWithPreview",precondition:ContextKeyExpr.and(CONTEXT_RENAME_INPUT_VISIBLE,ContextKeyExpr.has("config.editor.rename.enablePreview")),handler:__name(x=>x.acceptRenameInput(!0),"handler"),kbOpts:{weight:199,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,ContextKeyExpr.not("isComposing")),primary:2051}}));registerEditorCommand(new RenameCommand({id:"cancelRenameInput",precondition:CONTEXT_RENAME_INPUT_VISIBLE,handler:__name(x=>x.cancelRenameInput(),"handler"),kbOpts:{weight:199,kbExpr:EditorContextKeys.focus,primary:9,secondary:[1033]}}));var _a260;registerAction2((_a260=class extends Action2{constructor(){super({id:"focusNextRenameSuggestion",title:{...localize2("focusNextRenameSuggestion","Focus Next Rename Suggestion")},precondition:CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:18,weight:199}]})}run(accessor){const currentEditor=accessor.get(ICodeEditorService).getFocusedCodeEditor();if(!currentEditor)return;const controller=RenameController.get(currentEditor);controller&&controller.focusNextRenameSuggestion()}},__name(_a260,"FocusNextRenameSuggestion"),_a260));var _a261;registerAction2((_a261=class extends Action2{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...localize2("focusPreviousRenameSuggestion","Focus Previous Rename Suggestion")},precondition:CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:16,weight:199}]})}run(accessor){const currentEditor=accessor.get(ICodeEditorService).getFocusedCodeEditor();if(!currentEditor)return;const controller=RenameController.get(currentEditor);controller&&controller.focusPreviousRenameSuggestion()}},__name(_a261,"FocusPreviousRenameSuggestion"),_a261));registerModelAndPositionCommand("_executeDocumentRenameProvider",function(accessor,model,position,...args){const[newName]=args;assertType(typeof newName=="string");const{renameProvider}=accessor.get(ILanguageFeaturesService);return rename(renameProvider,model,position,newName)});registerModelAndPositionCommand("_executePrepareRename",async function(accessor,model,position){const{renameProvider}=accessor.get(ILanguageFeaturesService),loc=await new RenameSkeleton(model,position,renameProvider).resolveRenameLocation(CancellationToken.None);if(loc!=null&&loc.rejectReason)throw new Error(loc.rejectReason);return loc});Registry.as(Extensions$6.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:localize("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var __decorate$m=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$m=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a262;let SectionHeaderDetector=(_a262=class extends Disposable{constructor(editor2,languageConfigurationService,editorWorkerService){super(),this.editor=editor2,this.languageConfigurationService=languageConfigurationService,this.editorWorkerService=editorWorkerService,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(editor2.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(editor2.onDidChangeModel(e=>{this.currentOccurrences={},this.options=this.createOptions(editor2.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(editor2.onDidChangeModelLanguage(e=>{this.currentOccurrences={},this.options=this.createOptions(editor2.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(languageConfigurationService.onDidChange(e=>{var _a300;const editorLanguageId=(_a300=this.editor.getModel())==null?void 0:_a300.getLanguageId();editorLanguageId&&e.affects(editorLanguageId)&&(this.currentOccurrences={},this.options=this.createOptions(editor2.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(editor2.onDidChangeConfiguration(e=>{this.options&&!e.hasChanged(73)||(this.options=this.createOptions(editor2.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(e=>{this.computeSectionHeaders.schedule()})),this._register(editor2.onDidChangeModelTokens(e=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new RunOnceScheduler(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(minimap){if(!minimap||!this.editor.hasModel())return;const languageId=this.editor.getModel().getLanguageId();if(!languageId)return;const commentsConfiguration=this.languageConfigurationService.getLanguageConfiguration(languageId).comments,foldingRules=this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;if(!(!commentsConfiguration&&!(foldingRules!=null&&foldingRules.markers)))return{foldingRules,findMarkSectionHeaders:minimap.showMarkSectionHeaders,findRegionSectionHeaders:minimap.showRegionSectionHeaders}}findSectionHeaders(){var _a300,_b2;if(!this.editor.hasModel()||!((_a300=this.options)!=null&&_a300.findMarkSectionHeaders)&&!((_b2=this.options)!=null&&_b2.findRegionSectionHeaders))return;const model=this.editor.getModel();if(model.isDisposed()||model.isTooLargeForSyncing())return;const modelVersionId=model.getVersionId();this.editorWorkerService.findSectionHeaders(model.uri,this.options).then(sectionHeaders=>{model.isDisposed()||model.getVersionId()!==modelVersionId||this.updateDecorations(sectionHeaders)})}updateDecorations(sectionHeaders){const model=this.editor.getModel();model&&(sectionHeaders=sectionHeaders.filter(sectionHeader=>{if(!sectionHeader.shouldBeInComments)return!0;const validRange=model.validateRange(sectionHeader.range),tokens=model.tokenization.getLineTokens(validRange.startLineNumber),idx=tokens.findTokenIndexAtOffset(validRange.startColumn-1),tokenType=tokens.getStandardTokenType(idx);return tokens.getLanguageId(idx)===model.getLanguageId()&&tokenType===1}));const oldDecorations=Object.values(this.currentOccurrences).map(occurrence=>occurrence.decorationId),newDecorations=sectionHeaders.map(sectionHeader=>decoration(sectionHeader));this.editor.changeDecorations(changeAccessor=>{const decorations=changeAccessor.deltaDecorations(oldDecorations,newDecorations);this.currentOccurrences={};for(let i=0,len=decorations.length;i<len;i++){const occurrence={sectionHeader:sectionHeaders[i],decorationId:decorations[i]};this.currentOccurrences[occurrence.decorationId]=occurrence}})}stop(){this.computeSectionHeaders.cancel(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop(),this.decorations.clear()}},__name(_a262,"SectionHeaderDetector"),_a262.ID="editor.sectionHeaderDetector",_a262);SectionHeaderDetector=__decorate$m([__param$m(1,ILanguageConfigurationService),__param$m(2,IEditorWorkerService)],SectionHeaderDetector);function decoration(sectionHeader){return{range:sectionHeader.range,options:ModelDecorationOptions.createDynamic({description:"section-header",stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:sectionHeader.hasSeparatorLine?2:1,sectionHeaderText:sectionHeader.text}})}}__name(decoration,"decoration");registerEditorContribution(SectionHeaderDetector.ID,SectionHeaderDetector,1);function reverseEndianness(arr){for(let i=0,len=arr.length;i<len;i+=4){const b0=arr[i+0],b1=arr[i+1],b2=arr[i+2],b3=arr[i+3];arr[i+0]=b3,arr[i+1]=b2,arr[i+2]=b1,arr[i+3]=b0}}__name(reverseEndianness,"reverseEndianness");function toLittleEndianBuffer(arr){const uint8Arr=new Uint8Array(arr.buffer,arr.byteOffset,arr.length*4);return isLittleEndian()||reverseEndianness(uint8Arr),VSBuffer.wrap(uint8Arr)}__name(toLittleEndianBuffer,"toLittleEndianBuffer");function encodeSemanticTokensDto(semanticTokens){const dest=new Uint32Array(encodeSemanticTokensDtoSize(semanticTokens));let offset=0;if(dest[offset++]=semanticTokens.id,semanticTokens.type==="full")dest[offset++]=1,dest[offset++]=semanticTokens.data.length,dest.set(semanticTokens.data,offset),offset+=semanticTokens.data.length;else{dest[offset++]=2,dest[offset++]=semanticTokens.deltas.length;for(const delta of semanticTokens.deltas)dest[offset++]=delta.start,dest[offset++]=delta.deleteCount,delta.data?(dest[offset++]=delta.data.length,dest.set(delta.data,offset),offset+=delta.data.length):dest[offset++]=0}return toLittleEndianBuffer(dest)}__name(encodeSemanticTokensDto,"encodeSemanticTokensDto");function encodeSemanticTokensDtoSize(semanticTokens){let result=0;if(result+=2,semanticTokens.type==="full")result+=1+semanticTokens.data.length;else{result+=1,result+=3*semanticTokens.deltas.length;for(const delta of semanticTokens.deltas)delta.data&&(result+=delta.data.length)}return result}__name(encodeSemanticTokensDtoSize,"encodeSemanticTokensDtoSize");function isSemanticTokens(v){return v&&!!v.data}__name(isSemanticTokens,"isSemanticTokens");function isSemanticTokensEdits(v){return v&&Array.isArray(v.edits)}__name(isSemanticTokensEdits,"isSemanticTokensEdits");const _DocumentSemanticTokensResult=class _DocumentSemanticTokensResult{constructor(provider,tokens,error){this.provider=provider,this.tokens=tokens,this.error=error}};__name(_DocumentSemanticTokensResult,"DocumentSemanticTokensResult");let DocumentSemanticTokensResult=_DocumentSemanticTokensResult;function hasDocumentSemanticTokensProvider(registry,model){return registry.has(model)}__name(hasDocumentSemanticTokensProvider,"hasDocumentSemanticTokensProvider");function getDocumentSemanticTokensProviders(registry,model){const groups=registry.orderedGroups(model);return groups.length>0?groups[0]:[]}__name(getDocumentSemanticTokensProviders,"getDocumentSemanticTokensProviders");async function getDocumentSemanticTokens(registry,model,lastProvider,lastResultId,token){const providers=getDocumentSemanticTokensProviders(registry,model),results=await Promise.all(providers.map(async provider=>{let result,error=null;try{result=await provider.provideDocumentSemanticTokens(model,provider===lastProvider?lastResultId:null,token)}catch(err){error=err,result=null}return(!result||!isSemanticTokens(result)&&!isSemanticTokensEdits(result))&&(result=null),new DocumentSemanticTokensResult(provider,result,error)}));for(const result of results){if(result.error)throw result.error;if(result.tokens)return result}return results.length>0?results[0]:null}__name(getDocumentSemanticTokens,"getDocumentSemanticTokens");function _getDocumentSemanticTokensProviderHighestGroup(registry,model){const result=registry.orderedGroups(model);return result.length>0?result[0]:null}__name(_getDocumentSemanticTokensProviderHighestGroup,"_getDocumentSemanticTokensProviderHighestGroup");const _DocumentRangeSemanticTokensResult=class _DocumentRangeSemanticTokensResult{constructor(provider,tokens){this.provider=provider,this.tokens=tokens}};__name(_DocumentRangeSemanticTokensResult,"DocumentRangeSemanticTokensResult");let DocumentRangeSemanticTokensResult=_DocumentRangeSemanticTokensResult;function hasDocumentRangeSemanticTokensProvider(providers,model){return providers.has(model)}__name(hasDocumentRangeSemanticTokensProvider,"hasDocumentRangeSemanticTokensProvider");function getDocumentRangeSemanticTokensProviders(providers,model){const groups=providers.orderedGroups(model);return groups.length>0?groups[0]:[]}__name(getDocumentRangeSemanticTokensProviders,"getDocumentRangeSemanticTokensProviders");async function getDocumentRangeSemanticTokens(registry,model,range2,token){const providers=getDocumentRangeSemanticTokensProviders(registry,model),results=await Promise.all(providers.map(async provider=>{let result;try{result=await provider.provideDocumentRangeSemanticTokens(model,range2,token)}catch(err){onUnexpectedExternalError(err),result=null}return(!result||!isSemanticTokens(result))&&(result=null),new DocumentRangeSemanticTokensResult(provider,result)}));for(const result of results)if(result.tokens)return result;return results.length>0?results[0]:null}__name(getDocumentRangeSemanticTokens,"getDocumentRangeSemanticTokens");CommandsRegistry.registerCommand("_provideDocumentSemanticTokensLegend",async(accessor,...args)=>{const[uri]=args;assertType(uri instanceof URI);const model=accessor.get(IModelService).getModel(uri);if(!model)return;const{documentSemanticTokensProvider}=accessor.get(ILanguageFeaturesService),providers=_getDocumentSemanticTokensProviderHighestGroup(documentSemanticTokensProvider,model);return providers?providers[0].getLegend():accessor.get(ICommandService).executeCommand("_provideDocumentRangeSemanticTokensLegend",uri)});CommandsRegistry.registerCommand("_provideDocumentSemanticTokens",async(accessor,...args)=>{const[uri]=args;assertType(uri instanceof URI);const model=accessor.get(IModelService).getModel(uri);if(!model)return;const{documentSemanticTokensProvider}=accessor.get(ILanguageFeaturesService);if(!hasDocumentSemanticTokensProvider(documentSemanticTokensProvider,model))return accessor.get(ICommandService).executeCommand("_provideDocumentRangeSemanticTokens",uri,model.getFullModelRange());const r=await getDocumentSemanticTokens(documentSemanticTokensProvider,model,null,null,CancellationToken.None);if(!r)return;const{provider,tokens}=r;if(!tokens||!isSemanticTokens(tokens))return;const buff=encodeSemanticTokensDto({id:0,type:"full",data:tokens.data});return tokens.resultId&&provider.releaseDocumentSemanticTokens(tokens.resultId),buff});CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(accessor,...args)=>{const[uri,range2]=args;assertType(uri instanceof URI);const model=accessor.get(IModelService).getModel(uri);if(!model)return;const{documentRangeSemanticTokensProvider}=accessor.get(ILanguageFeaturesService),providers=getDocumentRangeSemanticTokensProviders(documentRangeSemanticTokensProvider,model);if(providers.length===0)return;if(providers.length===1)return providers[0].getLegend();if(!range2||!Range$2.isIRange(range2))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),providers[0].getLegend();const result=await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider,model,Range$2.lift(range2),CancellationToken.None);if(result)return result.provider.getLegend()});CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokens",async(accessor,...args)=>{const[uri,range2]=args;assertType(uri instanceof URI),assertType(Range$2.isIRange(range2));const model=accessor.get(IModelService).getModel(uri);if(!model)return;const{documentRangeSemanticTokensProvider}=accessor.get(ILanguageFeaturesService),result=await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider,model,Range$2.lift(range2),CancellationToken.None);if(!(!result||!result.tokens))return encodeSemanticTokensDto({id:0,type:"full",data:result.tokens.data})});const SEMANTIC_HIGHLIGHTING_SETTING_ID="editor.semanticHighlighting";function isSemanticColoringEnabled(model,themeService,configurationService){var _a300;const setting=(_a300=configurationService.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID,{overrideIdentifier:model.getLanguageId(),resource:model.uri}))==null?void 0:_a300.enabled;return typeof setting=="boolean"?setting:themeService.getColorTheme().semanticHighlighting}__name(isSemanticColoringEnabled,"isSemanticColoringEnabled");var __decorate$l=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$l=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},ModelSemanticColoring_1,_a263;let DocumentSemanticTokensFeature=(_a263=class extends Disposable{constructor(semanticTokensStylingService,modelService,themeService,configurationService,languageFeatureDebounceService,languageFeaturesService){super(),this._watchers=Object.create(null);const register2=__name(model=>{this._watchers[model.uri.toString()]=new ModelSemanticColoring(model,semanticTokensStylingService,themeService,languageFeatureDebounceService,languageFeaturesService)},"register"),deregister=__name((model,modelSemanticColoring)=>{modelSemanticColoring.dispose(),delete this._watchers[model.uri.toString()]},"deregister"),handleSettingOrThemeChange=__name(()=>{for(const model of modelService.getModels()){const curr=this._watchers[model.uri.toString()];isSemanticColoringEnabled(model,themeService,configurationService)?curr||register2(model):curr&&deregister(model,curr)}},"handleSettingOrThemeChange");modelService.getModels().forEach(model=>{isSemanticColoringEnabled(model,themeService,configurationService)&&register2(model)}),this._register(modelService.onModelAdded(model=>{isSemanticColoringEnabled(model,themeService,configurationService)&&register2(model)})),this._register(modelService.onModelRemoved(model=>{const curr=this._watchers[model.uri.toString()];curr&&deregister(model,curr)})),this._register(configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)&&handleSettingOrThemeChange()})),this._register(themeService.onDidColorThemeChange(handleSettingOrThemeChange))}dispose(){for(const watcher of Object.values(this._watchers))watcher.dispose();super.dispose()}},__name(_a263,"DocumentSemanticTokensFeature"),_a263);DocumentSemanticTokensFeature=__decorate$l([__param$l(0,ISemanticTokensStylingService),__param$l(1,IModelService),__param$l(2,IThemeService),__param$l(3,IConfigurationService),__param$l(4,ILanguageFeatureDebounceService),__param$l(5,ILanguageFeaturesService)],DocumentSemanticTokensFeature);var _a264;let ModelSemanticColoring=(_a264=class extends Disposable{constructor(model,_semanticTokensStylingService,themeService,languageFeatureDebounceService,languageFeaturesService){super(),this._semanticTokensStylingService=_semanticTokensStylingService,this._isDisposed=!1,this._model=model,this._provider=languageFeaturesService.documentSemanticTokensProvider,this._debounceInformation=languageFeatureDebounceService.for(this._provider,"DocumentSemanticTokens",{min:ModelSemanticColoring_1.REQUEST_MIN_DELAY,max:ModelSemanticColoring_1.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new RunOnceScheduler(()=>this._fetchDocumentSemanticTokensNow(),ModelSemanticColoring_1.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const bindDocumentChangeListeners=__name(()=>{dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const provider of this._provider.all(model))typeof provider.onDidChange=="function"&&this._documentProvidersChangeListeners.push(provider.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))},"bindDocumentChangeListeners");bindDocumentChangeListeners(),this._register(this._provider.onDidChange(()=>{bindDocumentChangeListeners(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(themeService.onDidColorThemeChange(_=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!hasDocumentSemanticTokensProvider(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const cancellationTokenSource=new CancellationTokenSource$1,lastProvider=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,lastResultId=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,request=getDocumentSemanticTokens(this._provider,this._model,lastProvider,lastResultId,cancellationTokenSource.token);this._currentDocumentRequestCancellationTokenSource=cancellationTokenSource,this._providersChangedDuringRequest=!1;const pendingChanges=[],contentChangeListener=this._model.onDidChangeContent(e=>{pendingChanges.push(e)}),sw=new StopWatch(!1);request.then(res=>{if(this._debounceInformation.update(this._model,sw.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,contentChangeListener.dispose(),!res)this._setDocumentSemanticTokens(null,null,null,pendingChanges);else{const{provider,tokens}=res,styling=this._semanticTokensStylingService.getStyling(provider);this._setDocumentSemanticTokens(provider,tokens||null,styling,pendingChanges)}},err=>{err&&(isCancellationError(err)||typeof err.message=="string"&&err.message.indexOf("busy")!==-1)||onUnexpectedError(err),this._currentDocumentRequestCancellationTokenSource=null,contentChangeListener.dispose(),(pendingChanges.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(src,srcOffset,dest,destOffset,length){length=Math.min(length,dest.length-destOffset,src.length-srcOffset);for(let i=0;i<length;i++)dest[destOffset+i]=src[srcOffset+i]}_setDocumentSemanticTokens(provider,tokens,styling,pendingChanges){const currentResponse=this._currentDocumentResponse,rescheduleIfNeeded=__name(()=>{(pendingChanges.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))},"rescheduleIfNeeded");if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){provider&&tokens&&provider.releaseDocumentSemanticTokens(tokens.resultId);return}if(!provider||!styling){this._model.tokenization.setSemanticTokens(null,!1);return}if(!tokens){this._model.tokenization.setSemanticTokens(null,!0),rescheduleIfNeeded();return}if(isSemanticTokensEdits(tokens)){if(!currentResponse){this._model.tokenization.setSemanticTokens(null,!0);return}if(tokens.edits.length===0)tokens={resultId:tokens.resultId,data:currentResponse.data};else{let deltaLength=0;for(const edit of tokens.edits)deltaLength+=(edit.data?edit.data.length:0)-edit.deleteCount;const srcData=currentResponse.data,destData=new Uint32Array(srcData.length+deltaLength);let srcLastStart=srcData.length,destLastStart=destData.length;for(let i=tokens.edits.length-1;i>=0;i--){const edit=tokens.edits[i];if(edit.start>srcData.length){styling.warnInvalidEditStart(currentResponse.resultId,tokens.resultId,i,edit.start,srcData.length),this._model.tokenization.setSemanticTokens(null,!0);return}const copyCount=srcLastStart-(edit.start+edit.deleteCount);copyCount>0&&(ModelSemanticColoring_1._copy(srcData,srcLastStart-copyCount,destData,destLastStart-copyCount,copyCount),destLastStart-=copyCount),edit.data&&(ModelSemanticColoring_1._copy(edit.data,0,destData,destLastStart-edit.data.length,edit.data.length),destLastStart-=edit.data.length),srcLastStart=edit.start}srcLastStart>0&&ModelSemanticColoring_1._copy(srcData,0,destData,0,srcLastStart),tokens={resultId:tokens.resultId,data:destData}}}if(isSemanticTokens(tokens)){this._currentDocumentResponse=new SemanticTokensResponse(provider,tokens.resultId,tokens.data);const result=toMultilineTokens2(tokens,styling,this._model.getLanguageId());if(pendingChanges.length>0)for(const change of pendingChanges)for(const area of result)for(const singleChange of change.changes)area.applyEdit(singleChange.range,singleChange.text);this._model.tokenization.setSemanticTokens(result,!0)}else this._model.tokenization.setSemanticTokens(null,!0);rescheduleIfNeeded()}},__name(_a264,"ModelSemanticColoring"),ModelSemanticColoring_1=_a264,_a264.REQUEST_MIN_DELAY=300,_a264.REQUEST_MAX_DELAY=2e3,_a264);ModelSemanticColoring=ModelSemanticColoring_1=__decorate$l([__param$l(1,ISemanticTokensStylingService),__param$l(2,IThemeService),__param$l(3,ILanguageFeatureDebounceService),__param$l(4,ILanguageFeaturesService)],ModelSemanticColoring);const _SemanticTokensResponse=class _SemanticTokensResponse{constructor(provider,resultId,data){this.provider=provider,this.resultId=resultId,this.data=data}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}};__name(_SemanticTokensResponse,"SemanticTokensResponse");let SemanticTokensResponse=_SemanticTokensResponse;registerEditorFeature(DocumentSemanticTokensFeature);var __decorate$k=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$k=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a265;let ViewportSemanticTokensContribution=(_a265=class extends Disposable{constructor(editor2,_semanticTokensStylingService,_themeService,_configurationService,languageFeatureDebounceService,languageFeaturesService){super(),this._semanticTokensStylingService=_semanticTokensStylingService,this._themeService=_themeService,this._configurationService=_configurationService,this._editor=editor2,this._provider=languageFeaturesService.documentRangeSemanticTokensProvider,this._debounceInformation=languageFeatureDebounceService.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new RunOnceScheduler(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const scheduleTokenizeViewport=__name(()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))},"scheduleTokenizeViewport");this._register(this._editor.onDidScrollChange(()=>{scheduleTokenizeViewport()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),scheduleTokenizeViewport()})),this._register(this._editor.onDidChangeModelContent(e=>{this._cancelAll(),scheduleTokenizeViewport()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),scheduleTokenizeViewport()})),this._register(this._configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)&&(this._cancelAll(),scheduleTokenizeViewport())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),scheduleTokenizeViewport()})),scheduleTokenizeViewport()}_cancelAll(){for(const request of this._outstandingRequests)request.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(req){for(let i=0,len=this._outstandingRequests.length;i<len;i++)if(this._outstandingRequests[i]===req){this._outstandingRequests.splice(i,1);return}}_tokenizeViewportNow(){if(!this._editor.hasModel())return;const model=this._editor.getModel();if(model.tokenization.hasCompleteSemanticTokens())return;if(!isSemanticColoringEnabled(model,this._themeService,this._configurationService)){model.tokenization.hasSomeSemanticTokens()&&model.tokenization.setSemanticTokens(null,!1);return}if(!hasDocumentRangeSemanticTokensProvider(this._provider,model)){model.tokenization.hasSomeSemanticTokens()&&model.tokenization.setSemanticTokens(null,!1);return}const visibleRanges=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(visibleRanges.map(range2=>this._requestRange(model,range2)))}_requestRange(model,range2){const requestVersionId=model.getVersionId(),request=createCancelablePromise(token=>Promise.resolve(getDocumentRangeSemanticTokens(this._provider,model,range2,token))),sw=new StopWatch(!1);return request.then(r=>{if(this._debounceInformation.update(model,sw.elapsed()),!r||!r.tokens||model.isDisposed()||model.getVersionId()!==requestVersionId)return;const{provider,tokens:result}=r,styling=this._semanticTokensStylingService.getStyling(provider);model.tokenization.setPartialSemanticTokens(range2,toMultilineTokens2(result,styling,model.getLanguageId()))}).then(()=>this._removeOutstandingRequest(request),()=>this._removeOutstandingRequest(request)),request}},__name(_a265,"ViewportSemanticTokensContribution"),_a265.ID="editor.contrib.viewportSemanticTokens",_a265);ViewportSemanticTokensContribution=__decorate$k([__param$k(1,ISemanticTokensStylingService),__param$k(2,IThemeService),__param$k(3,IConfigurationService),__param$k(4,ILanguageFeatureDebounceService),__param$k(5,ILanguageFeaturesService)],ViewportSemanticTokensContribution);registerEditorContribution(ViewportSemanticTokensContribution.ID,ViewportSemanticTokensContribution,1);const _WordSelectionRangeProvider=class _WordSelectionRangeProvider{constructor(selectSubwords=!0){this.selectSubwords=selectSubwords}provideSelectionRanges(model,positions){const result=[];for(const position of positions){const bucket=[];result.push(bucket),this.selectSubwords&&this._addInWordRanges(bucket,model,position),this._addWordRanges(bucket,model,position),this._addWhitespaceLine(bucket,model,position),bucket.push({range:model.getFullModelRange()})}return result}_addInWordRanges(bucket,model,pos){const obj=model.getWordAtPosition(pos);if(!obj)return;const{word,startColumn}=obj,offset=pos.column-startColumn;let start=offset,end=offset,lastCh=0;for(;start>=0;start--){const ch=word.charCodeAt(start);if(start!==offset&&(ch===95||ch===45))break;if(isLowerAsciiLetter(ch)&&isUpperAsciiLetter(lastCh))break;lastCh=ch}for(start+=1;end<word.length;end++){const ch=word.charCodeAt(end);if(isUpperAsciiLetter(ch)&&isLowerAsciiLetter(lastCh))break;if(ch===95||ch===45)break;lastCh=ch}start<end&&bucket.push({range:new Range$2(pos.lineNumber,startColumn+start,pos.lineNumber,startColumn+end)})}_addWordRanges(bucket,model,pos){const word=model.getWordAtPosition(pos);word&&bucket.push({range:new Range$2(pos.lineNumber,word.startColumn,pos.lineNumber,word.endColumn)})}_addWhitespaceLine(bucket,model,pos){model.getLineLength(pos.lineNumber)>0&&model.getLineFirstNonWhitespaceColumn(pos.lineNumber)===0&&model.getLineLastNonWhitespaceColumn(pos.lineNumber)===0&&bucket.push({range:new Range$2(pos.lineNumber,1,pos.lineNumber,model.getLineMaxColumn(pos.lineNumber))})}};__name(_WordSelectionRangeProvider,"WordSelectionRangeProvider");let WordSelectionRangeProvider=_WordSelectionRangeProvider;var __decorate$j=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$j=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},SmartSelectController_1;const _SelectionRanges=class _SelectionRanges{constructor(index,ranges){this.index=index,this.ranges=ranges}mov(fwd){const index=this.index+(fwd?1:-1);if(index<0||index>=this.ranges.length)return this;const res=new _SelectionRanges(index,this.ranges);return res.ranges[index].equalsRange(this.ranges[this.index])?res.mov(fwd):res}};__name(_SelectionRanges,"SelectionRanges");let SelectionRanges=_SelectionRanges;var _a266;let SmartSelectController=(_a266=class{static get(editor2){return editor2.getContribution(SmartSelectController_1.ID)}constructor(_editor,_languageFeaturesService){this._editor=_editor,this._languageFeaturesService=_languageFeaturesService,this._ignoreSelection=!1}dispose(){var _a300;(_a300=this._selectionListener)==null||_a300.dispose()}async run(forward){if(!this._editor.hasModel())return;const selections=this._editor.getSelections(),model=this._editor.getModel();if(this._state||await provideSelectionRanges(this._languageFeaturesService.selectionRangeProvider,model,selections.map(s=>s.getPosition()),this._editor.getOption(114),CancellationToken.None).then(ranges=>{var _a300;if(!(!isNonEmptyArray(ranges)||ranges.length!==selections.length)&&!(!this._editor.hasModel()||!equals$1(this._editor.getSelections(),selections,(a,b)=>a.equalsSelection(b)))){for(let i=0;i<ranges.length;i++)ranges[i]=ranges[i].filter(range2=>range2.containsPosition(selections[i].getStartPosition())&&range2.containsPosition(selections[i].getEndPosition())),ranges[i].unshift(selections[i]);this._state=ranges.map(ranges2=>new SelectionRanges(0,ranges2)),(_a300=this._selectionListener)==null||_a300.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var _a301;this._ignoreSelection||((_a301=this._selectionListener)==null||_a301.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(state=>state.mov(forward));const newSelections=this._state.map(state=>Selection$1.fromPositions(state.ranges[state.index].getStartPosition(),state.ranges[state.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(newSelections)}finally{this._ignoreSelection=!1}}},__name(_a266,"SmartSelectController"),SmartSelectController_1=_a266,_a266.ID="editor.contrib.smartSelectController",_a266);SmartSelectController=SmartSelectController_1=__decorate$j([__param$j(1,ILanguageFeaturesService)],SmartSelectController);const _AbstractSmartSelect=class _AbstractSmartSelect extends EditorAction{constructor(forward,opts){super(opts),this._forward=forward}async run(_accessor,editor2){const controller=SmartSelectController.get(editor2);controller&&await controller.run(this._forward)}};__name(_AbstractSmartSelect,"AbstractSmartSelect");let AbstractSmartSelect=_AbstractSmartSelect;const _GrowSelectionAction=class _GrowSelectionAction extends AbstractSmartSelect{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:localize("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"1_basic",title:localize({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}};__name(_GrowSelectionAction,"GrowSelectionAction");let GrowSelectionAction=_GrowSelectionAction;CommandsRegistry.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");const _ShrinkSelectionAction=class _ShrinkSelectionAction extends AbstractSmartSelect{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:localize("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"1_basic",title:localize({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}};__name(_ShrinkSelectionAction,"ShrinkSelectionAction");let ShrinkSelectionAction=_ShrinkSelectionAction;registerEditorContribution(SmartSelectController.ID,SmartSelectController,4);registerEditorAction(GrowSelectionAction);registerEditorAction(ShrinkSelectionAction);async function provideSelectionRanges(registry,model,positions,options,token){const providers=registry.all(model).concat(new WordSelectionRangeProvider(options.selectSubwords));providers.length===1&&providers.unshift(new BracketSelectionRangeProvider);const work=[],allRawRanges=[];for(const provider of providers)work.push(Promise.resolve(provider.provideSelectionRanges(model,positions,token)).then(allProviderRanges=>{if(isNonEmptyArray(allProviderRanges)&&allProviderRanges.length===positions.length)for(let i=0;i<positions.length;i++){allRawRanges[i]||(allRawRanges[i]=[]);for(const oneProviderRanges of allProviderRanges[i])Range$2.isIRange(oneProviderRanges.range)&&Range$2.containsPosition(oneProviderRanges.range,positions[i])&&allRawRanges[i].push(Range$2.lift(oneProviderRanges.range))}},onUnexpectedExternalError));return await Promise.all(work),allRawRanges.map(oneRawRanges=>{if(oneRawRanges.length===0)return[];oneRawRanges.sort((a,b)=>Position$1.isBefore(a.getStartPosition(),b.getStartPosition())?1:Position$1.isBefore(b.getStartPosition(),a.getStartPosition())||Position$1.isBefore(a.getEndPosition(),b.getEndPosition())?-1:Position$1.isBefore(b.getEndPosition(),a.getEndPosition())?1:0);const oneRanges=[];let last;for(const range2 of oneRawRanges)(!last||Range$2.containsRange(range2,last)&&!Range$2.equalsRange(range2,last))&&(oneRanges.push(range2),last=range2);if(!options.selectLeadingAndTrailingWhitespace)return oneRanges;const oneRangesWithTrivia=[oneRanges[0]];for(let i=1;i<oneRanges.length;i++){const prev=oneRanges[i-1],cur=oneRanges[i];if(cur.startLineNumber!==prev.startLineNumber||cur.endLineNumber!==prev.endLineNumber){const rangeNoWhitespace=new Range$2(prev.startLineNumber,model.getLineFirstNonWhitespaceColumn(prev.startLineNumber),prev.endLineNumber,model.getLineLastNonWhitespaceColumn(prev.endLineNumber));rangeNoWhitespace.containsRange(prev)&&!rangeNoWhitespace.equalsRange(prev)&&cur.containsRange(rangeNoWhitespace)&&!cur.equalsRange(rangeNoWhitespace)&&oneRangesWithTrivia.push(rangeNoWhitespace);const rangeFull=new Range$2(prev.startLineNumber,1,prev.endLineNumber,model.getLineMaxColumn(prev.endLineNumber));rangeFull.containsRange(prev)&&!rangeFull.equalsRange(rangeNoWhitespace)&&cur.containsRange(rangeFull)&&!cur.equalsRange(rangeFull)&&oneRangesWithTrivia.push(rangeFull)}oneRangesWithTrivia.push(cur)}return oneRangesWithTrivia})}__name(provideSelectionRanges,"provideSelectionRanges");CommandsRegistry.registerCommand("_executeSelectionRangeProvider",async function(accessor,...args){const[resource,positions]=args;assertType(URI.isUri(resource));const registry=accessor.get(ILanguageFeaturesService).selectionRangeProvider,reference=await accessor.get(ITextModelService).createModelReference(resource);try{return provideSelectionRanges(registry,reference.object.textEditorModel,positions,{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},CancellationToken.None)}finally{reference.dispose()}});const Categories=Object.freeze({View:localize2("view","View"),Help:localize2("help","Help"),Test:localize2("test","Test"),File:localize2("file","File"),Preferences:localize2("preferences","Preferences"),Developer:localize2({key:"developer",comment:["A developer on Code itself or someone diagnosing issues in Code"]},"Developer")}),_StickyScrollWidgetState=class _StickyScrollWidgetState{constructor(startLineNumbers,endLineNumbers,lastLineRelativePosition,showEndForLine=null){this.startLineNumbers=startLineNumbers,this.endLineNumbers=endLineNumbers,this.lastLineRelativePosition=lastLineRelativePosition,this.showEndForLine=showEndForLine}equals(other){return!!other&&this.lastLineRelativePosition===other.lastLineRelativePosition&&this.showEndForLine===other.showEndForLine&&equals$1(this.startLineNumbers,other.startLineNumbers)&&equals$1(this.endLineNumbers,other.endLineNumbers)}static get Empty(){return new _StickyScrollWidgetState([],[],0)}};__name(_StickyScrollWidgetState,"StickyScrollWidgetState");let StickyScrollWidgetState=_StickyScrollWidgetState;const _ttPolicy=createTrustedTypesPolicy("stickyScrollViewLayer",{createHTML:__name(value=>value,"createHTML")}),STICKY_INDEX_ATTR="data-sticky-line-index",STICKY_IS_LINE_ATTR="data-sticky-is-line",STICKY_IS_LINE_NUMBER_ATTR="data-sticky-is-line-number",STICKY_IS_FOLDING_ICON_ATTR="data-sticky-is-folding-icon",_StickyScrollWidget=class _StickyScrollWidget extends Disposable{constructor(_editor){super(),this._editor=_editor,this._foldingIconStore=new DisposableStore,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",_editor instanceof EmbeddedCodeEditorWidget),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const updateScrollLeftPosition=__name(()=>{this._linesDomNode.style.left=this._editor.getOption(116).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"},"updateScrollLeftPosition");this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(116)&&updateScrollLeftPosition(),e.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(e=>{e.scrollLeftChanged&&updateScrollLeftPosition(),e.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{updateScrollLeftPosition(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),updateScrollLeftPosition(),this._register(this._editor.onDidLayoutChange(e=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(lineNumber){return this._renderedStickyLines.find(stickyLine=>stickyLine.lineNumber===lineNumber)}getCurrentLines(){return this._lineNumbers}setState(_state,foldingModel,_rebuildFromLine){if(_rebuildFromLine===void 0&&(!this._previousState&&!_state||this._previousState&&this._previousState.equals(_state)))return;const isWidgetHeightZero=this._isWidgetHeightZero(_state),state=isWidgetHeightZero?void 0:_state,rebuildFromLine=isWidgetHeightZero?0:this._findLineToRebuildWidgetFrom(_state,_rebuildFromLine);this._renderRootNode(state,foldingModel,rebuildFromLine),this._previousState=_state}_isWidgetHeightZero(state){if(!state)return!0;const futureWidgetHeight=state.startLineNumbers.length*this._lineHeight+state.lastLineRelativePosition;if(futureWidgetHeight>0){this._lastLineRelativePosition=state.lastLineRelativePosition;const lineNumbers=[...state.startLineNumbers];state.showEndForLine!==null&&(lineNumbers[state.showEndForLine]=state.endLineNumbers[state.showEndForLine]),this._lineNumbers=lineNumbers}else this._lastLineRelativePosition=0,this._lineNumbers=[];return futureWidgetHeight===0}_findLineToRebuildWidgetFrom(state,_rebuildFromLine){if(!state||!this._previousState)return 0;if(_rebuildFromLine!==void 0)return _rebuildFromLine;const previousState=this._previousState,indexOfLinesAlreadyRendered=state.startLineNumbers.findIndex(startLineNumber=>!previousState.startLineNumbers.includes(startLineNumber));return indexOfLinesAlreadyRendered===-1?0:indexOfLinesAlreadyRendered}_updateWidgetWidth(){const layoutInfo=this._editor.getLayoutInfo(),lineNumbersWidth=layoutInfo.contentLeft;this._lineNumbersDomNode.style.width=`${lineNumbersWidth}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-layoutInfo.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${layoutInfo.width-layoutInfo.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(clearFromLine){this._foldingIconStore.clear();for(let i=clearFromLine;i<this._renderedStickyLines.length;i++){const stickyLine=this._renderedStickyLines[i];stickyLine.lineNumberDomNode.remove(),stickyLine.lineDomNode.remove()}this._renderedStickyLines=this._renderedStickyLines.slice(0,clearFromLine),this._rootDomNode.style.display="none"}_useFoldingOpacityTransition(requireTransitions){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${requireTransitions?.5:0}s`)}_setFoldingIconsVisibility(allVisible){for(const line of this._renderedStickyLines){const foldingIcon=line.foldingIcon;foldingIcon&&foldingIcon.setVisible(allVisible?!0:foldingIcon.isCollapsed)}}async _renderRootNode(state,foldingModel,rebuildFromLine){if(this._clearStickyLinesFromLine(rebuildFromLine),!state)return;for(const stickyLine of this._renderedStickyLines)this._updateTopAndZIndexOfStickyLine(stickyLine);const layoutInfo=this._editor.getLayoutInfo(),linesToRender=this._lineNumbers.slice(rebuildFromLine);for(const[index,line]of linesToRender.entries()){const stickyLine=this._renderChildNode(index+rebuildFromLine,line,foldingModel,layoutInfo);stickyLine&&(this._linesDomNode.appendChild(stickyLine.lineDomNode),this._lineNumbersDomNode.appendChild(stickyLine.lineNumberDomNode),this._renderedStickyLines.push(stickyLine))}foldingModel&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));const widgetHeight=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${widgetHeight}px`,this._linesDomNodeScrollable.style.height=`${widgetHeight}px`,this._rootDomNode.style.height=`${widgetHeight}px`,this._rootDomNode.style.marginLeft="0px",this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map(l2=>l2.scrollWidth))+layoutInfo.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(111)==="mouseover"&&(this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode,EventType$1.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode,EventType$1.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(index,line,foldingModel,layoutInfo){const viewModel=this._editor._getViewModel();if(!viewModel)return;const viewLineNumber=viewModel.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(line,1)).lineNumber,lineRenderingData=viewModel.getViewLineRenderingData(viewLineNumber),lineNumberOption=this._editor.getOption(68);let actualInlineDecorations;try{actualInlineDecorations=LineDecoration.filter(lineRenderingData.inlineDecorations,viewLineNumber,lineRenderingData.minColumn,lineRenderingData.maxColumn)}catch{actualInlineDecorations=[]}const renderLineInput=new RenderLineInput(!0,!0,lineRenderingData.content,lineRenderingData.continuesWithWrappedLine,lineRenderingData.isBasicASCII,lineRenderingData.containsRTL,0,lineRenderingData.tokens,actualInlineDecorations,lineRenderingData.tabSize,lineRenderingData.startVisibleColumn,1,1,1,500,"none",!0,!0,null),sb=new StringBuilder(2e3),renderOutput=renderViewLine(renderLineInput,sb);let newLine;_ttPolicy?newLine=_ttPolicy.createHTML(sb.build()):newLine=sb.build();const lineHTMLNode=document.createElement("span");lineHTMLNode.setAttribute(STICKY_INDEX_ATTR,String(index)),lineHTMLNode.setAttribute(STICKY_IS_LINE_ATTR,""),lineHTMLNode.setAttribute("role","listitem"),lineHTMLNode.tabIndex=0,lineHTMLNode.className="sticky-line-content",lineHTMLNode.classList.add(`stickyLine${line}`),lineHTMLNode.style.lineHeight=`${this._lineHeight}px`,lineHTMLNode.innerHTML=newLine;const lineNumberHTMLNode=document.createElement("span");lineNumberHTMLNode.setAttribute(STICKY_INDEX_ATTR,String(index)),lineNumberHTMLNode.setAttribute(STICKY_IS_LINE_NUMBER_ATTR,""),lineNumberHTMLNode.className="sticky-line-number",lineNumberHTMLNode.style.lineHeight=`${this._lineHeight}px`;const lineNumbersWidth=layoutInfo.contentLeft;lineNumberHTMLNode.style.width=`${lineNumbersWidth}px`;const innerLineNumberHTML=document.createElement("span");lineNumberOption.renderType===1||lineNumberOption.renderType===3&&line%10===0?innerLineNumberHTML.innerText=line.toString():lineNumberOption.renderType===2&&(innerLineNumberHTML.innerText=Math.abs(line-this._editor.getPosition().lineNumber).toString()),innerLineNumberHTML.className="sticky-line-number-inner",innerLineNumberHTML.style.lineHeight=`${this._lineHeight}px`,innerLineNumberHTML.style.width=`${layoutInfo.lineNumbersWidth}px`,innerLineNumberHTML.style.paddingLeft=`${layoutInfo.lineNumbersLeft}px`,lineNumberHTMLNode.appendChild(innerLineNumberHTML);const foldingIcon=this._renderFoldingIconForLine(foldingModel,line);foldingIcon&&lineNumberHTMLNode.appendChild(foldingIcon.domNode),this._editor.applyFontInfo(lineHTMLNode),this._editor.applyFontInfo(innerLineNumberHTML),lineNumberHTMLNode.style.lineHeight=`${this._lineHeight}px`,lineHTMLNode.style.lineHeight=`${this._lineHeight}px`,lineNumberHTMLNode.style.height=`${this._lineHeight}px`,lineHTMLNode.style.height=`${this._lineHeight}px`;const renderedLine=new RenderedStickyLine(index,line,lineHTMLNode,lineNumberHTMLNode,foldingIcon,renderOutput.characterMapping,lineHTMLNode.scrollWidth);return this._updateTopAndZIndexOfStickyLine(renderedLine)}_updateTopAndZIndexOfStickyLine(stickyLine){var _a300;const index=stickyLine.index,lineHTMLNode=stickyLine.lineDomNode,lineNumberHTMLNode=stickyLine.lineNumberDomNode,isLastLine=index===this._lineNumbers.length-1,lastLineZIndex="0",intermediateLineZIndex="1";lineHTMLNode.style.zIndex=isLastLine?lastLineZIndex:intermediateLineZIndex,lineNumberHTMLNode.style.zIndex=isLastLine?lastLineZIndex:intermediateLineZIndex;const lastLineTop=`${index*this._lineHeight+this._lastLineRelativePosition+((_a300=stickyLine.foldingIcon)!=null&&_a300.isCollapsed?1:0)}px`,intermediateLineTop=`${index*this._lineHeight}px`;return lineHTMLNode.style.top=isLastLine?lastLineTop:intermediateLineTop,lineNumberHTMLNode.style.top=isLastLine?lastLineTop:intermediateLineTop,stickyLine}_renderFoldingIconForLine(foldingModel,line){const showFoldingControls=this._editor.getOption(111);if(!foldingModel||showFoldingControls==="never")return;const foldingRegions=foldingModel.regions,indexOfFoldingRegion=foldingRegions.findRange(line),startLineNumber=foldingRegions.getStartLineNumber(indexOfFoldingRegion);if(!(line===startLineNumber))return;const isCollapsed=foldingRegions.isCollapsed(indexOfFoldingRegion),foldingIcon=new StickyFoldingIcon(isCollapsed,startLineNumber,foldingRegions.getEndLineNumber(indexOfFoldingRegion),this._lineHeight);return foldingIcon.setVisible(this._isOnGlyphMargin?!0:isCollapsed||showFoldingControls==="always"),foldingIcon.domNode.setAttribute(STICKY_IS_FOLDING_ICON_ATTR,""),foldingIcon}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(index){0<=index&&index<this._renderedStickyLines.length&&this._renderedStickyLines[index].lineDomNode.focus()}getEditorPositionFromNode(spanDomNode){if(!spanDomNode||spanDomNode.children.length>0)return null;const renderedStickyLine=this._getRenderedStickyLineFromChildDomNode(spanDomNode);if(!renderedStickyLine)return null;const column=getColumnOfNodeOffset(renderedStickyLine.characterMapping,spanDomNode,0);return new Position$1(renderedStickyLine.lineNumber,column)}getLineNumberFromChildDomNode(domNode){var _a300,_b2;return(_b2=(_a300=this._getRenderedStickyLineFromChildDomNode(domNode))==null?void 0:_a300.lineNumber)!=null?_b2:null}_getRenderedStickyLineFromChildDomNode(domNode){const index=this.getLineIndexFromChildDomNode(domNode);return index===null||index<0||index>=this._renderedStickyLines.length?null:this._renderedStickyLines[index]}getLineIndexFromChildDomNode(domNode){const lineIndex=this._getAttributeValue(domNode,STICKY_INDEX_ATTR);return lineIndex?parseInt(lineIndex,10):null}isInStickyLine(domNode){return this._getAttributeValue(domNode,STICKY_IS_LINE_ATTR)!==void 0}isInFoldingIconDomNode(domNode){return this._getAttributeValue(domNode,STICKY_IS_FOLDING_ICON_ATTR)!==void 0}_getAttributeValue(domNode,attribute){for(;domNode&&domNode!==this._rootDomNode;){const line=domNode.getAttribute(attribute);if(line!==null)return line;domNode=domNode.parentElement}}};__name(_StickyScrollWidget,"StickyScrollWidget");let StickyScrollWidget=_StickyScrollWidget;const _RenderedStickyLine=class _RenderedStickyLine{constructor(index,lineNumber,lineDomNode,lineNumberDomNode,foldingIcon,characterMapping,scrollWidth){this.index=index,this.lineNumber=lineNumber,this.lineDomNode=lineDomNode,this.lineNumberDomNode=lineNumberDomNode,this.foldingIcon=foldingIcon,this.characterMapping=characterMapping,this.scrollWidth=scrollWidth}};__name(_RenderedStickyLine,"RenderedStickyLine");let RenderedStickyLine=_RenderedStickyLine;const _StickyFoldingIcon=class _StickyFoldingIcon{constructor(isCollapsed,foldingStartLine,foldingEndLine,dimension){this.isCollapsed=isCollapsed,this.foldingStartLine=foldingStartLine,this.foldingEndLine=foldingEndLine,this.dimension=dimension,this.domNode=document.createElement("div"),this.domNode.style.width=`${dimension}px`,this.domNode.style.height=`${dimension}px`,this.domNode.className=ThemeIcon.asClassName(isCollapsed?foldingCollapsedIcon:foldingExpandedIcon)}setVisible(visible){this.domNode.style.cursor=visible?"pointer":"default",this.domNode.style.opacity=visible?"1":"0"}};__name(_StickyFoldingIcon,"StickyFoldingIcon");let StickyFoldingIcon=_StickyFoldingIcon;const _StickyRange=class _StickyRange{constructor(startLineNumber,endLineNumber){this.startLineNumber=startLineNumber,this.endLineNumber=endLineNumber}};__name(_StickyRange,"StickyRange");let StickyRange=_StickyRange;const _StickyElement=class _StickyElement{constructor(range2,children,parent){this.range=range2,this.children=children,this.parent=parent}};__name(_StickyElement,"StickyElement");let StickyElement=_StickyElement;const _StickyModel=class _StickyModel{constructor(uri,version,element,outlineProviderId){this.uri=uri,this.version=version,this.element=element,this.outlineProviderId=outlineProviderId}};__name(_StickyModel,"StickyModel");let StickyModel=_StickyModel;var __decorate$i=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$i=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},ModelProvider;(function(ModelProvider2){ModelProvider2.OUTLINE_MODEL="outlineModel",ModelProvider2.FOLDING_PROVIDER_MODEL="foldingProviderModel",ModelProvider2.INDENTATION_MODEL="indentationModel"})(ModelProvider||(ModelProvider={}));var Status;(function(Status2){Status2[Status2.VALID=0]="VALID",Status2[Status2.INVALID=1]="INVALID",Status2[Status2.CANCELED=2]="CANCELED"})(Status||(Status={}));var _a267;let StickyModelProvider=(_a267=class extends Disposable{constructor(_editor,onProviderUpdate,_languageConfigurationService,_languageFeaturesService){switch(super(),this._editor=_editor,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Delayer(300)),this._updateOperation=this._register(new DisposableStore),this._editor.getOption(116).defaultModel){case ModelProvider.OUTLINE_MODEL:this._modelProviders.push(new StickyModelFromCandidateOutlineProvider(this._editor,_languageFeaturesService));case ModelProvider.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new StickyModelFromCandidateSyntaxFoldingProvider(this._editor,onProviderUpdate,_languageFeaturesService));case ModelProvider.INDENTATION_MODEL:this._modelProviders.push(new StickyModelFromCandidateIndentationFoldingProvider(this._editor,_languageConfigurationService));break}}dispose(){this._modelProviders.forEach(provider=>provider.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(token){return this._updateOperation.clear(),this._updateOperation.add({dispose:__name(()=>{this._cancelModelPromise(),this._updateScheduler.cancel()},"dispose")}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const modelProvider of this._modelProviders){const{statusPromise,modelPromise}=modelProvider.computeStickyModel(token);this._modelPromise=modelPromise;const status2=await statusPromise;if(this._modelPromise!==modelPromise)return null;switch(status2){case Status.CANCELED:return this._updateOperation.clear(),null;case Status.VALID:return modelProvider.stickyModel}}return null}).catch(error=>(onUnexpectedError(error),null))}},__name(_a267,"StickyModelProvider"),_a267);StickyModelProvider=__decorate$i([__param$i(2,IInstantiationService),__param$i(3,ILanguageFeaturesService)],StickyModelProvider);const _StickyModelCandidateProvider=class _StickyModelCandidateProvider extends Disposable{constructor(_editor){super(),this._editor=_editor,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,Status.INVALID}computeStickyModel(token){if(token.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const providerModelPromise=createCancelablePromise(token2=>this.createModelFromProvider(token2));return{statusPromise:providerModelPromise.then(providerModel=>this.isModelValid(providerModel)?token.isCancellationRequested?Status.CANCELED:(this._stickyModel=this.createStickyModel(token,providerModel),Status.VALID):this._invalid()).then(void 0,err=>(onUnexpectedError(err),Status.CANCELED)),modelPromise:providerModelPromise}}isModelValid(model){return!0}isProviderValid(){return!0}};__name(_StickyModelCandidateProvider,"StickyModelCandidateProvider");let StickyModelCandidateProvider=_StickyModelCandidateProvider;var _a268;let StickyModelFromCandidateOutlineProvider=(_a268=class extends StickyModelCandidateProvider{constructor(_editor,_languageFeaturesService){super(_editor),this._languageFeaturesService=_languageFeaturesService}createModelFromProvider(token){return OutlineModel.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),token)}createStickyModel(token,model){var _a300;const{stickyOutlineElement,providerID}=this._stickyModelFromOutlineModel(model,(_a300=this._stickyModel)==null?void 0:_a300.outlineProviderId),textModel=this._editor.getModel();return new StickyModel(textModel.uri,textModel.getVersionId(),stickyOutlineElement,providerID)}isModelValid(model){return model&&model.children.size>0}_stickyModelFromOutlineModel(outlineModel,preferredProvider){let outlineElements;if(Iterable.first(outlineModel.children.values())instanceof OutlineGroup){const provider=Iterable.find(outlineModel.children.values(),outlineGroupOfModel=>outlineGroupOfModel.id===preferredProvider);if(provider)outlineElements=provider.children;else{let tempID="",maxTotalSumOfRanges=-1,optimalOutlineGroup;for(const[_key,outlineGroup]of outlineModel.children.entries()){const totalSumRanges=this._findSumOfRangesOfGroup(outlineGroup);totalSumRanges>maxTotalSumOfRanges&&(optimalOutlineGroup=outlineGroup,maxTotalSumOfRanges=totalSumRanges,tempID=outlineGroup.id)}preferredProvider=tempID,outlineElements=optimalOutlineGroup.children}}else outlineElements=outlineModel.children;const stickyChildren=[],outlineElementsArray=Array.from(outlineElements.values()).sort((element1,element2)=>{const range1=new StickyRange(element1.symbol.range.startLineNumber,element1.symbol.range.endLineNumber),range2=new StickyRange(element2.symbol.range.startLineNumber,element2.symbol.range.endLineNumber);return this._comparator(range1,range2)});for(const outlineElement of outlineElementsArray)stickyChildren.push(this._stickyModelFromOutlineElement(outlineElement,outlineElement.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new StickyElement(void 0,stickyChildren,void 0),providerID:preferredProvider}}_stickyModelFromOutlineElement(outlineElement,previousStartLine){const children=[];for(const child of outlineElement.children.values())if(child.symbol.selectionRange.startLineNumber!==child.symbol.range.endLineNumber)if(child.symbol.selectionRange.startLineNumber!==previousStartLine)children.push(this._stickyModelFromOutlineElement(child,child.symbol.selectionRange.startLineNumber));else for(const subchild of child.children.values())children.push(this._stickyModelFromOutlineElement(subchild,child.symbol.selectionRange.startLineNumber));children.sort((child1,child2)=>this._comparator(child1.range,child2.range));const range2=new StickyRange(outlineElement.symbol.selectionRange.startLineNumber,outlineElement.symbol.range.endLineNumber);return new StickyElement(range2,children,void 0)}_comparator(range1,range2){return range1.startLineNumber!==range2.startLineNumber?range1.startLineNumber-range2.startLineNumber:range2.endLineNumber-range1.endLineNumber}_findSumOfRangesOfGroup(outline){let res=0;for(const child of outline.children.values())res+=this._findSumOfRangesOfGroup(child);return outline instanceof OutlineElement?res+outline.symbol.range.endLineNumber-outline.symbol.selectionRange.startLineNumber:res}},__name(_a268,"StickyModelFromCandidateOutlineProvider"),_a268);StickyModelFromCandidateOutlineProvider=__decorate$i([__param$i(1,ILanguageFeaturesService)],StickyModelFromCandidateOutlineProvider);const _StickyModelFromCandidateFoldingProvider=class _StickyModelFromCandidateFoldingProvider extends StickyModelCandidateProvider{constructor(editor2){super(editor2),this._foldingLimitReporter=new RangesLimitReporter(editor2)}createStickyModel(token,model){const foldingElement=this._fromFoldingRegions(model),textModel=this._editor.getModel();return new StickyModel(textModel.uri,textModel.getVersionId(),foldingElement,void 0)}isModelValid(model){return model!==null}_fromFoldingRegions(foldingRegions){const length=foldingRegions.length,orderedStickyElements=[],stickyOutlineElement=new StickyElement(void 0,[],void 0);for(let i=0;i<length;i++){const parentIndex=foldingRegions.getParentIndex(i);let parentNode;parentIndex!==-1?parentNode=orderedStickyElements[parentIndex]:parentNode=stickyOutlineElement;const child=new StickyElement(new StickyRange(foldingRegions.getStartLineNumber(i),foldingRegions.getEndLineNumber(i)+1),[],parentNode);parentNode.children.push(child),orderedStickyElements.push(child)}return stickyOutlineElement}};__name(_StickyModelFromCandidateFoldingProvider,"StickyModelFromCandidateFoldingProvider");let StickyModelFromCandidateFoldingProvider=_StickyModelFromCandidateFoldingProvider;var _a269;let StickyModelFromCandidateIndentationFoldingProvider=(_a269=class extends StickyModelFromCandidateFoldingProvider{constructor(editor2,_languageConfigurationService){super(editor2),this._languageConfigurationService=_languageConfigurationService,this.provider=this._register(new IndentRangeProvider(editor2.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(token){return this.provider.compute(token)}},__name(_a269,"StickyModelFromCandidateIndentationFoldingProvider"),_a269);StickyModelFromCandidateIndentationFoldingProvider=__decorate$i([__param$i(1,ILanguageConfigurationService)],StickyModelFromCandidateIndentationFoldingProvider);var _a270;let StickyModelFromCandidateSyntaxFoldingProvider=(_a270=class extends StickyModelFromCandidateFoldingProvider{constructor(editor2,onProviderUpdate,_languageFeaturesService){super(editor2),this._languageFeaturesService=_languageFeaturesService;const selectedProviders=FoldingController.getFoldingRangeProviders(this._languageFeaturesService,editor2.getModel());selectedProviders.length>0&&(this.provider=this._register(new SyntaxRangeProvider(editor2.getModel(),selectedProviders,onProviderUpdate,this._foldingLimitReporter,void 0)))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(token){var _a300,_b2;return(_b2=(_a300=this.provider)==null?void 0:_a300.compute(token))!=null?_b2:null}},__name(_a270,"StickyModelFromCandidateSyntaxFoldingProvider"),_a270);StickyModelFromCandidateSyntaxFoldingProvider=__decorate$i([__param$i(2,ILanguageFeaturesService)],StickyModelFromCandidateSyntaxFoldingProvider);var __decorate$h=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$h=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const _StickyLineCandidate=class _StickyLineCandidate{constructor(startLineNumber,endLineNumber,nestingDepth){this.startLineNumber=startLineNumber,this.endLineNumber=endLineNumber,this.nestingDepth=nestingDepth}};__name(_StickyLineCandidate,"StickyLineCandidate");let StickyLineCandidate=_StickyLineCandidate;var _a271;let StickyLineCandidateProvider=(_a271=class extends Disposable{constructor(editor2,_languageFeaturesService,_languageConfigurationService){super(),this._languageFeaturesService=_languageFeaturesService,this._languageConfigurationService=_languageConfigurationService,this._onDidChangeStickyScroll=this._register(new Emitter$1),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=editor2,this._sessionStore=this._register(new DisposableStore),this._updateSoon=this._register(new RunOnceScheduler(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(116)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(116).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(toDisposable(()=>{var _a300;(_a300=this._stickyModelProvider)==null||_a300.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){var _a300;return(_a300=this._model)==null?void 0:_a300.version}updateStickyModelProvider(){var _a300;(_a300=this._stickyModelProvider)==null||_a300.dispose(),this._stickyModelProvider=null;const editor2=this._editor;editor2.hasModel()&&(this._stickyModelProvider=new StickyModelProvider(editor2,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){var _a300;(_a300=this._cts)==null||_a300.dispose(!0),this._cts=new CancellationTokenSource$1,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(token){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const model=await this._stickyModelProvider.update(token);token.isCancellationRequested||(this._model=model)}updateIndex(index){return index===-1?index=0:index<0&&(index=-index-2),index}getCandidateStickyLinesIntersectingFromStickyModel(range2,outlineModel,result,depth,lastStartLineNumber){if(outlineModel.children.length===0)return;let lastLine=lastStartLineNumber;const childrenStartLines=[];for(let i=0;i<outlineModel.children.length;i++){const child=outlineModel.children[i];child.range&&childrenStartLines.push(child.range.startLineNumber)}const lowerBound=this.updateIndex(binarySearch(childrenStartLines,range2.startLineNumber,(a,b)=>a-b)),upperBound=this.updateIndex(binarySearch(childrenStartLines,range2.startLineNumber+depth,(a,b)=>a-b));for(let i=lowerBound;i<=upperBound;i++){const child=outlineModel.children[i];if(!child)return;if(child.range){const childStartLine=child.range.startLineNumber,childEndLine=child.range.endLineNumber;range2.startLineNumber<=childEndLine+1&&childStartLine-1<=range2.endLineNumber&&childStartLine!==lastLine&&(lastLine=childStartLine,result.push(new StickyLineCandidate(childStartLine,childEndLine-1,depth+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(range2,child,result,depth+1,childStartLine))}else this.getCandidateStickyLinesIntersectingFromStickyModel(range2,child,result,depth,lastStartLineNumber)}}getCandidateStickyLinesIntersecting(range2){var _a300,_b2;if(!((_a300=this._model)!=null&&_a300.element))return[];let stickyLineCandidates=[];this.getCandidateStickyLinesIntersectingFromStickyModel(range2,this._model.element,stickyLineCandidates,0,-1);const hiddenRanges=(_b2=this._editor._getViewModel())==null?void 0:_b2.getHiddenAreas();if(hiddenRanges)for(const hiddenRange of hiddenRanges)stickyLineCandidates=stickyLineCandidates.filter(stickyLine=>!(stickyLine.startLineNumber>=hiddenRange.startLineNumber&&stickyLine.endLineNumber<=hiddenRange.endLineNumber+1));return stickyLineCandidates}},__name(_a271,"StickyLineCandidateProvider"),_a271);StickyLineCandidateProvider=__decorate$h([__param$h(1,ILanguageFeaturesService),__param$h(2,ILanguageConfigurationService)],StickyLineCandidateProvider);var __decorate$g=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$g=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},StickyScrollController_1,_a272;let StickyScrollController=(_a272=class extends Disposable{constructor(_editor,_contextMenuService,_languageFeaturesService,_instaService,_languageConfigurationService,_languageFeatureDebounceService,_contextKeyService){super(),this._editor=_editor,this._contextMenuService=_contextMenuService,this._languageFeaturesService=_languageFeaturesService,this._instaService=_instaService,this._contextKeyService=_contextKeyService,this._sessionStore=new DisposableStore,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._stickyScrollWidget=new StickyScrollWidget(this._editor),this._stickyLineCandidateProvider=new StickyLineCandidateProvider(this._editor,_languageFeaturesService,_languageConfigurationService),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=StickyScrollWidgetState.Empty,this._onDidResize(),this._readConfiguration();const stickyScrollDomNode=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(e=>{this._readConfigurationChange(e)})),this._register(addDisposableListener(stickyScrollDomNode,EventType$1.CONTEXT_MENU,async event=>{this._onContextMenu(getWindow(stickyScrollDomNode),event)})),this._stickyScrollFocusedContextKey=EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);const focusTracker=this._register(trackFocus(stickyScrollDomNode));this._register(focusTracker.onDidBlur(_=>{this._positionRevealed===!1&&stickyScrollDomNode.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(focusTracker.onDidFocus(_=>{this.focus()})),this._registerMouseListeners(),this._register(addDisposableListener(stickyScrollDomNode,EventType$1.MOUSE_DOWN,e=>{this._onMouseDown=!0}))}static get(editor2){return editor2.getContribution(StickyScrollController_1.ID)}_disposeFocusStickyScrollStore(){var _a300;this._stickyScrollFocusedContextKey.set(!1),(_a300=this._focusDisposableStore)==null||_a300.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new DisposableStore,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1&&this._focusNav(!0)}focusPrevious(){this._focusedStickyElementIndex>0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(direction){this._focusedStickyElementIndex=direction?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const lineNumbers=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:lineNumbers[this._focusedStickyElementIndex],column:1})}_revealPosition(position){this._reveaInEditor(position,()=>this._editor.revealPosition(position))}_revealLineInCenterIfOutsideViewport(position){this._reveaInEditor(position,()=>this._editor.revealLineInCenterIfOutsideViewport(position.lineNumber,0))}_reveaInEditor(position,revealFunction){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,revealFunction(),this._editor.setSelection(Range$2.fromPositions(position)),this._editor.focus()}_registerMouseListeners(){const sessionStore=this._register(new DisposableStore),gesture=this._register(new ClickLinkGesture(this._editor,{extractLineNumberFromMouseEvent:__name(e=>{const position=this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);return position?position.lineNumber:0},"extractLineNumberFromMouseEvent")})),getMouseEventTarget=__name(mouseEvent=>{if(!this._editor.hasModel()||mouseEvent.target.type!==12||mouseEvent.target.detail!==this._stickyScrollWidget.getId())return null;const mouseTargetElement=mouseEvent.target.element;if(!mouseTargetElement||mouseTargetElement.innerText!==mouseTargetElement.innerHTML)return null;const position=this._stickyScrollWidget.getEditorPositionFromNode(mouseTargetElement);return position?{range:new Range$2(position.lineNumber,position.column,position.lineNumber,position.column+mouseTargetElement.innerText.length),textElement:mouseTargetElement}:null},"getMouseEventTarget"),stickyScrollWidgetDomNode=this._stickyScrollWidget.getDomNode();this._register(addStandardDisposableListener(stickyScrollWidgetDomNode,EventType$1.CLICK,mouseEvent=>{if(mouseEvent.ctrlKey||mouseEvent.altKey||mouseEvent.metaKey||!mouseEvent.leftButton)return;if(mouseEvent.shiftKey){const lineIndex=this._stickyScrollWidget.getLineIndexFromChildDomNode(mouseEvent.target);if(lineIndex===null)return;const position2=new Position$1(this._endLineNumbers[lineIndex],1);this._revealLineInCenterIfOutsideViewport(position2);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(mouseEvent.target)){const lineNumber=this._stickyScrollWidget.getLineNumberFromChildDomNode(mouseEvent.target);this._toggleFoldingRegionForLine(lineNumber);return}if(!this._stickyScrollWidget.isInStickyLine(mouseEvent.target))return;let position=this._stickyScrollWidget.getEditorPositionFromNode(mouseEvent.target);if(!position){const lineNumber=this._stickyScrollWidget.getLineNumberFromChildDomNode(mouseEvent.target);if(lineNumber===null)return;position=new Position$1(lineNumber,1)}this._revealPosition(position)})),this._register(addStandardDisposableListener(stickyScrollWidgetDomNode,EventType$1.MOUSE_MOVE,mouseEvent=>{if(mouseEvent.shiftKey){const currentEndForLineIndex=this._stickyScrollWidget.getLineIndexFromChildDomNode(mouseEvent.target);if(currentEndForLineIndex===null||this._showEndForLine!==null&&this._showEndForLine===currentEndForLineIndex)return;this._showEndForLine=currentEndForLineIndex,this._renderStickyScroll();return}this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(addDisposableListener(stickyScrollWidgetDomNode,EventType$1.MOUSE_LEAVE,e=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(gesture.onMouseMoveOrRelevantKeyDown(([mouseEvent,_keyboardEvent])=>{const mouseTarget=getMouseEventTarget(mouseEvent);if(!mouseTarget||!mouseEvent.hasTriggerModifier||!this._editor.hasModel()){sessionStore.clear();return}const{range:range2,textElement}=mouseTarget;if(!range2.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=range2,sessionStore.clear();else if(textElement.style.textDecoration==="underline")return;const cancellationToken=new CancellationTokenSource$1;sessionStore.add(toDisposable(()=>cancellationToken.dispose(!0)));let currentHTMLChild;getDefinitionsAtPosition(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new Position$1(range2.startLineNumber,range2.startColumn+1),!1,cancellationToken.token).then(candidateDefinitions=>{if(!cancellationToken.token.isCancellationRequested)if(candidateDefinitions.length!==0){this._candidateDefinitionsLength=candidateDefinitions.length;const childHTML=textElement;currentHTMLChild!==childHTML?(sessionStore.clear(),currentHTMLChild=childHTML,currentHTMLChild.style.textDecoration="underline",sessionStore.add(toDisposable(()=>{currentHTMLChild.style.textDecoration="none"}))):currentHTMLChild||(currentHTMLChild=childHTML,currentHTMLChild.style.textDecoration="underline",sessionStore.add(toDisposable(()=>{currentHTMLChild.style.textDecoration="none"})))}else sessionStore.clear()})})),this._register(gesture.onCancel(()=>{sessionStore.clear()})),this._register(gesture.onExecute(async e=>{if(e.target.type!==12||e.target.detail!==this._stickyScrollWidget.getId())return;const position=this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);position&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:position.lineNumber,column:1})),this._instaService.invokeFunction(goToDefinitionWithLocation,e,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(targetWindow,e){const event=new StandardMouseEvent(targetWindow,e);this._contextMenuService.showContextMenu({menuId:MenuId.StickyScrollContext,getAnchor:__name(()=>event,"getAnchor")})}_toggleFoldingRegionForLine(line){if(!this._foldingModel||line===null)return;const stickyLine=this._stickyScrollWidget.getRenderedStickyLine(line),foldingIcon=stickyLine==null?void 0:stickyLine.foldingIcon;if(!foldingIcon)return;toggleCollapseState(this._foldingModel,Number.MAX_VALUE,[line]),foldingIcon.isCollapsed=!foldingIcon.isCollapsed;const scrollTop=(foldingIcon.isCollapsed?this._editor.getTopForLineNumber(foldingIcon.foldingEndLine):this._editor.getTopForLineNumber(foldingIcon.foldingStartLine))-this._editor.getOption(67)*stickyLine.index+1;this._editor.setScrollTop(scrollTop),this._renderStickyScroll(line)}_readConfiguration(){const options=this._editor.getOption(116);if(options.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else options.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(e=>{e.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(e=>this._onTokensChange(e))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(event){(event.hasChanged(116)||event.hasChanged(73)||event.hasChanged(67)||event.hasChanged(111)||event.hasChanged(68))&&this._readConfiguration(),event.hasChanged(68)&&this._renderStickyScroll(0)}_needsUpdate(event){const stickyLineNumbers=this._stickyScrollWidget.getCurrentLines();for(const stickyLineNumber of stickyLineNumbers)for(const range2 of event.ranges)if(stickyLineNumber>=range2.fromLineNumber&&stickyLineNumber<=range2.toLineNumber)return!0;return!1}_onTokensChange(event){this._needsUpdate(event)&&this._renderStickyScroll(0)}_onDidResize(){const theoreticalLines=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(theoreticalLines*.25)}async _renderStickyScroll(rebuildFromLine){const model=this._editor.getModel();if(!model||model.isTooLargeForTokenization()){this._resetState();return}const nextRebuildFromLine=this._updateAndGetMinRebuildFromLine(rebuildFromLine),stickyWidgetVersion=this._stickyLineCandidateProvider.getVersionId();if(stickyWidgetVersion===void 0||stickyWidgetVersion===model.getVersionId())if(!this._focused)await this._updateState(nextRebuildFromLine);else if(this._focusedStickyElementIndex===-1)await this._updateState(nextRebuildFromLine),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const focusedStickyElementLineNumber=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(nextRebuildFromLine),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(focusedStickyElementLineNumber)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(rebuildFromLine){if(rebuildFromLine!==void 0){const minRebuildFromLineOrInfinity=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(rebuildFromLine,minRebuildFromLineOrInfinity)}return this._minRebuildFromLine}async _updateState(rebuildFromLine){var _a300,_b2;this._minRebuildFromLine=void 0,this._foldingModel=(_b2=await((_a300=FoldingController.get(this._editor))==null?void 0:_a300.getFoldingModel()))!=null?_b2:void 0,this._widgetState=this.findScrollWidgetState();const stickyWidgetHasLines=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(stickyWidgetHasLines),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,rebuildFromLine)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=StickyScrollWidgetState.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const lineHeight=this._editor.getOption(67),maxNumberStickyLines=Math.min(this._maxStickyLines,this._editor.getOption(116).maxLineCount),scrollTop=this._editor.getScrollTop();let lastLineRelativePosition=0;const startLineNumbers=[],endLineNumbers=[],arrayVisibleRanges=this._editor.getVisibleRanges();if(arrayVisibleRanges.length!==0){const fullVisibleRange=new StickyRange(arrayVisibleRanges[0].startLineNumber,arrayVisibleRanges[arrayVisibleRanges.length-1].endLineNumber),candidateRanges=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(fullVisibleRange);for(const range2 of candidateRanges){const start=range2.startLineNumber,end=range2.endLineNumber,depth=range2.nestingDepth;if(end-start>0){const topOfElementAtDepth=(depth-1)*lineHeight,bottomOfElementAtDepth=depth*lineHeight,bottomOfBeginningLine=this._editor.getBottomForLineNumber(start)-scrollTop,topOfEndLine=this._editor.getTopForLineNumber(end)-scrollTop,bottomOfEndLine=this._editor.getBottomForLineNumber(end)-scrollTop;if(topOfElementAtDepth>topOfEndLine&&topOfElementAtDepth<=bottomOfEndLine){startLineNumbers.push(start),endLineNumbers.push(end+1),lastLineRelativePosition=bottomOfEndLine-bottomOfElementAtDepth;break}else bottomOfElementAtDepth>bottomOfBeginningLine&&bottomOfElementAtDepth<=bottomOfEndLine&&(startLineNumbers.push(start),endLineNumbers.push(end+1));if(startLineNumbers.length===maxNumberStickyLines)break}}}return this._endLineNumbers=endLineNumbers,new StickyScrollWidgetState(startLineNumbers,endLineNumbers,lastLineRelativePosition,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}},__name(_a272,"StickyScrollController"),StickyScrollController_1=_a272,_a272.ID="store.contrib.stickyScrollController",_a272);StickyScrollController=StickyScrollController_1=__decorate$g([__param$g(1,IContextMenuService),__param$g(2,ILanguageFeaturesService),__param$g(3,IInstantiationService),__param$g(4,ILanguageConfigurationService),__param$g(5,ILanguageFeatureDebounceService),__param$g(6,IContextKeyService)],StickyScrollController);const _ToggleStickyScroll=class _ToggleStickyScroll extends Action2{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...localize2("toggleEditorStickyScroll","Toggle Editor Sticky Scroll"),mnemonicTitle:localize({key:"mitoggleStickyScroll",comment:["&& denotes a mnemonic"]},"&&Toggle Editor Sticky Scroll")},metadata:{description:localize2("toggleEditorStickyScroll.description","Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:Categories.View,toggled:{condition:ContextKeyExpr.equals("config.editor.stickyScroll.enabled",!0),title:localize("stickyScroll","Sticky Scroll"),mnemonicTitle:localize({key:"miStickyScroll",comment:["&& denotes a mnemonic"]},"&&Sticky Scroll")},menu:[{id:MenuId.CommandPalette},{id:MenuId.MenubarAppearanceMenu,group:"4_editor",order:3},{id:MenuId.StickyScrollContext}]})}async run(accessor){const configurationService=accessor.get(IConfigurationService),newValue=!configurationService.getValue("editor.stickyScroll.enabled");return configurationService.updateValue("editor.stickyScroll.enabled",newValue)}};__name(_ToggleStickyScroll,"ToggleStickyScroll");let ToggleStickyScroll=_ToggleStickyScroll;const weight=100,_FocusStickyScroll=class _FocusStickyScroll extends EditorAction2{constructor(){super({id:"editor.action.focusStickyScroll",title:{...localize2("focusStickyScroll","Focus on the editor sticky scroll"),mnemonicTitle:localize({key:"mifocusStickyScroll",comment:["&& denotes a mnemonic"]},"&&Focus Sticky Scroll")},precondition:ContextKeyExpr.and(ContextKeyExpr.has("config.editor.stickyScroll.enabled"),EditorContextKeys.stickyScrollVisible),menu:[{id:MenuId.CommandPalette}]})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.focus()}};__name(_FocusStickyScroll,"FocusStickyScroll");let FocusStickyScroll=_FocusStickyScroll;const _SelectNextStickyScrollLine=class _SelectNextStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:localize2("selectNextStickyScrollLine.title","Select the next editor sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:18}})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.focusNext()}};__name(_SelectNextStickyScrollLine,"SelectNextStickyScrollLine");let SelectNextStickyScrollLine=_SelectNextStickyScrollLine;const _SelectPreviousStickyScrollLine=class _SelectPreviousStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:localize2("selectPreviousStickyScrollLine.title","Select the previous sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:16}})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.focusPrevious()}};__name(_SelectPreviousStickyScrollLine,"SelectPreviousStickyScrollLine");let SelectPreviousStickyScrollLine=_SelectPreviousStickyScrollLine;const _GoToStickyScrollLine=class _GoToStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:localize2("goToFocusedStickyScrollLine.title","Go to the focused sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:3}})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.goToFocused()}};__name(_GoToStickyScrollLine,"GoToStickyScrollLine");let GoToStickyScrollLine=_GoToStickyScrollLine;const _SelectEditor=class _SelectEditor extends EditorAction2{constructor(){super({id:"editor.action.selectEditor",title:localize2("selectEditor.title","Select Editor"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:9}})}runEditorCommand(_accessor,editor2){var _a300;(_a300=StickyScrollController.get(editor2))==null||_a300.selectEditor()}};__name(_SelectEditor,"SelectEditor");let SelectEditor=_SelectEditor;registerEditorContribution(StickyScrollController.ID,StickyScrollController,1);registerAction2(ToggleStickyScroll);registerAction2(FocusStickyScroll);registerAction2(SelectPreviousStickyScrollLine);registerAction2(SelectNextStickyScrollLine);registerAction2(GoToStickyScrollLine);registerAction2(SelectEditor);var __decorate$f=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$f=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const _SuggestInlineCompletion=class _SuggestInlineCompletion{constructor(range2,insertText,filterText,additionalTextEdits,command,completion){this.range=range2,this.insertText=insertText,this.filterText=filterText,this.additionalTextEdits=additionalTextEdits,this.command=command,this.completion=completion}};__name(_SuggestInlineCompletion,"SuggestInlineCompletion");let SuggestInlineCompletion=_SuggestInlineCompletion;var _a273;let InlineCompletionResults=(_a273=class extends RefCountedDisposable{constructor(model,line,word,completionModel,completions,_suggestMemoryService){super(completions.disposable),this.model=model,this.line=line,this.word=word,this.completionModel=completionModel,this._suggestMemoryService=_suggestMemoryService}canBeReused(model,line,word){return this.model===model&&this.line===line&&this.word.word.length>0&&this.word.startColumn===word.startColumn&&this.word.endColumn<word.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){var _a300;const result=[],{items}=this.completionModel,selectedIndex=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},items),first2=Iterable.slice(items,selectedIndex),second=Iterable.slice(items,0,selectedIndex);let resolveCount=5;for(const item of Iterable.concat(first2,second)){if(item.score===FuzzyScore.Default)continue;const range2=new Range$2(item.editStart.lineNumber,item.editStart.column,item.editInsertEnd.lineNumber,item.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),insertText=item.completion.insertTextRules&&item.completion.insertTextRules&4?{snippet:item.completion.insertText}:item.completion.insertText;result.push(new SuggestInlineCompletion(range2,insertText,(_a300=item.filterTextLow)!=null?_a300:item.labelLow,item.completion.additionalTextEdits,item.completion.command,item)),resolveCount-->=0&&item.resolve(CancellationToken.None)}return result}},__name(_a273,"InlineCompletionResults"),_a273);InlineCompletionResults=__decorate$f([__param$f(5,ISuggestMemoryService)],InlineCompletionResults);var _a274;let SuggestInlineCompletions=(_a274=class extends Disposable{constructor(_languageFeatureService,_clipboardService,_suggestMemoryService,_editorService){super(),this._languageFeatureService=_languageFeatureService,this._clipboardService=_clipboardService,this._suggestMemoryService=_suggestMemoryService,this._editorService=_editorService,this._store.add(_languageFeatureService.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(model,position,context,token){var _a300;if(context.selectedSuggestionInfo)return;let editor2;for(const candidate of this._editorService.listCodeEditors())if(candidate.getModel()===model){editor2=candidate;break}if(!editor2)return;const config=editor2.getOption(90);if(QuickSuggestionsOptions.isAllOff(config))return;model.tokenization.tokenizeIfCheap(position.lineNumber);const lineTokens=model.tokenization.getLineTokens(position.lineNumber),tokenType=lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(Math.max(position.column-1-1,0)));if(QuickSuggestionsOptions.valueFor(config,tokenType)!=="inline")return;let wordInfo=model.getWordAtPosition(position),triggerCharacterInfo;if(wordInfo!=null&&wordInfo.word||(triggerCharacterInfo=this._getTriggerCharacterInfo(model,position)),!(wordInfo!=null&&wordInfo.word)&&!triggerCharacterInfo||(wordInfo||(wordInfo=model.getWordUntilPosition(position)),wordInfo.endColumn!==position.column))return;let result;const leadingLineContents=model.getValueInRange(new Range$2(position.lineNumber,1,position.lineNumber,position.column));if(!triggerCharacterInfo&&((_a300=this._lastResult)!=null&&_a300.canBeReused(model,position.lineNumber,wordInfo))){const newLineContext=new LineContext$1(leadingLineContents,position.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=newLineContext,this._lastResult.acquire(),result=this._lastResult}else{const completions=await provideSuggestionItems(this._languageFeatureService.completionProvider,model,position,new CompletionOptions(void 0,SuggestModel.createSuggestFilter(editor2).itemKind,triggerCharacterInfo==null?void 0:triggerCharacterInfo.providers),triggerCharacterInfo&&{triggerKind:1,triggerCharacter:triggerCharacterInfo.ch},token);let clipboardText;completions.needsClipboard&&(clipboardText=await this._clipboardService.readText());const completionModel=new CompletionModel(completions.items,position.column,new LineContext$1(leadingLineContents,0),WordDistance.None,editor2.getOption(119),editor2.getOption(113),{boostFullMatch:!1,firstMatchCanBeWeak:!1},clipboardText);result=new InlineCompletionResults(model,position.lineNumber,wordInfo,completionModel,completions,this._suggestMemoryService)}return this._lastResult=result,result}handleItemDidShow(_completions,item){item.completion.resolve(CancellationToken.None)}freeInlineCompletions(result){result.release()}_getTriggerCharacterInfo(model,position){var _a300;const ch=model.getValueInRange(Range$2.fromPositions({lineNumber:position.lineNumber,column:position.column-1},position)),providers=new Set;for(const provider of this._languageFeatureService.completionProvider.all(model))(_a300=provider.triggerCharacters)!=null&&_a300.includes(ch)&&providers.add(provider);if(providers.size!==0)return{providers,ch}}},__name(_a274,"SuggestInlineCompletions"),_a274);SuggestInlineCompletions=__decorate$f([__param$f(0,ILanguageFeaturesService),__param$f(1,IClipboardService),__param$f(2,ISuggestMemoryService),__param$f(3,ICodeEditorService)],SuggestInlineCompletions);registerEditorFeature(SuggestInlineCompletions);const _ForceRetokenizeAction=class _ForceRetokenizeAction extends EditorAction{constructor(){super({id:"editor.action.forceRetokenize",label:localize("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(accessor,editor2){if(!editor2.hasModel())return;const model=editor2.getModel();model.tokenization.resetTokenization();const sw=new StopWatch;model.tokenization.forceTokenization(model.getLineCount()),sw.stop(),console.log(`tokenization took ${sw.elapsed()}`)}};__name(_ForceRetokenizeAction,"ForceRetokenizeAction");let ForceRetokenizeAction=_ForceRetokenizeAction;registerEditorAction(ForceRetokenizeAction);const _ToggleTabFocusModeAction=class _ToggleTabFocusModeAction extends Action2{constructor(){super({id:_ToggleTabFocusModeAction.ID,title:localize2({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:localize2("tabMovesFocusDescriptions","Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const newValue=!TabFocus.getTabFocusMode();TabFocus.setTabFocusMode(newValue),alert(newValue?localize("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element"):localize("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}};__name(_ToggleTabFocusModeAction,"ToggleTabFocusModeAction"),_ToggleTabFocusModeAction.ID="editor.action.toggleTabFocusMode";let ToggleTabFocusModeAction=_ToggleTabFocusModeAction;registerAction2(ToggleTabFocusModeAction);var __decorate$e=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$e=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a275;let Link=(_a275=class extends Disposable{get enabled(){return this._enabled}set enabled(enabled){enabled?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=enabled}constructor(container,_link,options={},_hoverService,openerService){var _a300,_b2;super(),this._link=_link,this._hoverService=_hoverService,this._enabled=!0,this.el=append$1(container,$$e("a.monaco-link",{tabIndex:(_a300=_link.tabIndex)!=null?_a300:0,href:_link.href},_link.label)),this.hoverDelegate=(_b2=options.hoverDelegate)!=null?_b2:getDefaultHoverDelegate("mouse"),this.setTooltip(_link.title),this.el.setAttribute("role","button");const onClickEmitter=this._register(new DomEmitter(this.el,"click")),onKeyPress=this._register(new DomEmitter(this.el,"keypress")),onEnterPress=Event.chain(onKeyPress.event,$2=>$2.map(e=>new StandardKeyboardEvent(e)).filter(e=>e.keyCode===3)),onTap=this._register(new DomEmitter(this.el,EventType.Tap)).event;this._register(Gesture.addTarget(this.el));const onOpen=Event.any(onClickEmitter.event,onEnterPress,onTap);this._register(onOpen(e=>{this.enabled&&(EventHelper.stop(e,!0),options!=null&&options.opener?options.opener(this._link.href):openerService.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(title){this.hoverDelegate.showNativeHover?this.el.title=title!=null?title:"":!this.hover&&title?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,title)):this.hover&&this.hover.update(title)}},__name(_a275,"Link"),_a275);Link=__decorate$e([__param$e(3,IHoverService),__param$e(4,IOpenerService)],Link);var __decorate$d=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$d=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const BANNER_ELEMENT_HEIGHT=26;var _a276;let BannerController=(_a276=class extends Disposable{constructor(_editor,instantiationService){super(),this._editor=_editor,this.instantiationService=instantiationService,this.banner=this._register(this.instantiationService.createInstance(Banner))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(item){this.banner.show({...item,onClose:__name(()=>{var _a300;this.hide(),(_a300=item.onClose)==null||_a300.call(item)},"onClose")}),this._editor.setBanner(this.banner.element,BANNER_ELEMENT_HEIGHT)}},__name(_a276,"BannerController"),_a276);BannerController=__decorate$d([__param$d(1,IInstantiationService)],BannerController);var _a277;let Banner=(_a277=class extends Disposable{constructor(instantiationService){super(),this.instantiationService=instantiationService,this.markdownRenderer=this.instantiationService.createInstance(MarkdownRenderer,{}),this.element=$$e("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(item){if(item.ariaLabel)return item.ariaLabel;if(typeof item.message=="string")return item.message}getBannerMessage(message){if(typeof message=="string"){const element=$$e("span");return element.innerText=message,element}return this.markdownRenderer.render(message).element}clear(){clearNode(this.element)}show(item){clearNode(this.element);const ariaLabel=this.getAriaLabel(item);ariaLabel&&this.element.setAttribute("aria-label",ariaLabel);const iconContainer=append$1(this.element,$$e("div.icon-container"));iconContainer.setAttribute("aria-hidden","true"),item.icon&&iconContainer.appendChild($$e(`div${ThemeIcon.asCSSSelector(item.icon)}`));const messageContainer=append$1(this.element,$$e("div.message-container"));if(messageContainer.setAttribute("aria-hidden","true"),messageContainer.appendChild(this.getBannerMessage(item.message)),this.messageActionsContainer=append$1(this.element,$$e("div.message-actions-container")),item.actions)for(const action of item.actions)this._register(this.instantiationService.createInstance(Link,this.messageActionsContainer,{...action,tabIndex:-1},{}));const actionBarContainer=append$1(this.element,$$e("div.action-container"));this.actionBar=this._register(new ActionBar(actionBarContainer)),this.actionBar.push(this._register(new Action("banner.close","Close Banner",ThemeIcon.asClassName(widgetClose),!0,()=>{typeof item.onClose=="function"&&item.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}},__name(_a277,"Banner"),_a277);Banner=__decorate$d([__param$d(0,IInstantiationService)],Banner);var __decorate$c=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$c=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const warningIcon=registerIcon("extensions-warning-message",Codicon.warning,localize("warningIcon","Icon shown with a warning message in the extensions editor."));var _a278;let UnicodeHighlighter=(_a278=class extends Disposable{constructor(_editor,_editorWorkerService,_workspaceTrustService,instantiationService){super(),this._editor=_editor,this._editorWorkerService=_editorWorkerService,this._workspaceTrustService=_workspaceTrustService,this._highlighter=null,this._bannerClosed=!1,this._updateState=state=>{if(state&&state.hasMore){if(this._bannerClosed)return;const max=Math.max(state.ambiguousCharacterCount,state.nonBasicAsciiCharacterCount,state.invisibleCharacterCount);let data;if(state.nonBasicAsciiCharacterCount>=max)data={message:localize("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new DisableHighlightingOfNonBasicAsciiCharactersAction};else if(state.ambiguousCharacterCount>=max)data={message:localize("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new DisableHighlightingOfAmbiguousCharactersAction};else if(state.invisibleCharacterCount>=max)data={message:localize("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new DisableHighlightingOfInvisibleCharactersAction};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:data.message,icon:warningIcon,actions:[{label:data.command.shortLabel,href:`command:${data.command.id}`}],onClose:__name(()=>{this._bannerClosed=!0},"onClose")})}else this._bannerController.hide()},this._bannerController=this._register(instantiationService.createInstance(BannerController,_editor)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=_editor.getOption(126),this._register(_workspaceTrustService.onDidChangeTrust(e=>{this._updateHighlighter()})),this._register(_editor.onDidChangeConfiguration(e=>{e.hasChanged(126)&&(this._options=_editor.getOption(126),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const options=resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([options.nonBasicASCII,options.ambiguousCharacters,options.invisibleCharacters].every(option=>option===!1))return;const highlightOptions={nonBasicASCII:options.nonBasicASCII,ambiguousCharacters:options.ambiguousCharacters,invisibleCharacters:options.invisibleCharacters,includeComments:options.includeComments,includeStrings:options.includeStrings,allowedCodePoints:Object.keys(options.allowedCharacters).map(c=>c.codePointAt(0)),allowedLocales:Object.keys(options.allowedLocales).map(locale=>locale==="_os"?new Intl.NumberFormat().resolvedOptions().locale:locale==="_vscode"?language:locale)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new DocumentUnicodeHighlighter(this._editor,highlightOptions,this._updateState,this._editorWorkerService):this._highlighter=new ViewportUnicodeHighlighter(this._editor,highlightOptions,this._updateState)}getDecorationInfo(decoration2){return this._highlighter?this._highlighter.getDecorationInfo(decoration2):null}},__name(_a278,"UnicodeHighlighter"),_a278.ID="editor.contrib.unicodeHighlighter",_a278);UnicodeHighlighter=__decorate$c([__param$c(1,IEditorWorkerService),__param$c(2,IWorkspaceTrustManagementService),__param$c(3,IInstantiationService)],UnicodeHighlighter);function resolveOptions(trusted,options){return{nonBasicASCII:options.nonBasicASCII===inUntrustedWorkspace?!trusted:options.nonBasicASCII,ambiguousCharacters:options.ambiguousCharacters,invisibleCharacters:options.invisibleCharacters,includeComments:options.includeComments===inUntrustedWorkspace?!trusted:options.includeComments,includeStrings:options.includeStrings===inUntrustedWorkspace?!trusted:options.includeStrings,allowedCharacters:options.allowedCharacters,allowedLocales:options.allowedLocales}}__name(resolveOptions,"resolveOptions");var _a279;let DocumentUnicodeHighlighter=(_a279=class extends Disposable{constructor(_editor,_options,_updateState,_editorWorkerService){super(),this._editor=_editor,this._options=_options,this._updateState=_updateState,this._editorWorkerService=_editorWorkerService,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const modelVersionId=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(info=>{if(this._model.isDisposed()||this._model.getVersionId()!==modelVersionId)return;this._updateState(info);const decorations=[];if(!info.hasMore)for(const range2 of info.ranges)decorations.push({range:range2,options:Decorations.instance.getDecorationFromOptions(this._options)});this._decorations.set(decorations)})}getDecorationInfo(decoration2){if(!this._decorations.has(decoration2))return null;const model=this._editor.getModel();if(!isModelDecorationVisible(model,decoration2))return null;const text2=model.getValueInRange(decoration2.range);return{reason:computeReason(text2,this._options),inComment:isModelDecorationInComment(model,decoration2),inString:isModelDecorationInString(model,decoration2)}}},__name(_a279,"DocumentUnicodeHighlighter"),_a279);DocumentUnicodeHighlighter=__decorate$c([__param$c(3,IEditorWorkerService)],DocumentUnicodeHighlighter);const _ViewportUnicodeHighlighter=class _ViewportUnicodeHighlighter extends Disposable{constructor(_editor,_options,_updateState){super(),this._editor=_editor,this._options=_options,this._updateState=_updateState,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const ranges=this._editor.getVisibleRanges(),decorations=[],totalResult={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const range2 of ranges){const result=UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model,this._options,range2);for(const r of result.ranges)totalResult.ranges.push(r);totalResult.ambiguousCharacterCount+=totalResult.ambiguousCharacterCount,totalResult.invisibleCharacterCount+=totalResult.invisibleCharacterCount,totalResult.nonBasicAsciiCharacterCount+=totalResult.nonBasicAsciiCharacterCount,totalResult.hasMore=totalResult.hasMore||result.hasMore}if(!totalResult.hasMore)for(const range2 of totalResult.ranges)decorations.push({range:range2,options:Decorations.instance.getDecorationFromOptions(this._options)});this._updateState(totalResult),this._decorations.set(decorations)}getDecorationInfo(decoration2){if(!this._decorations.has(decoration2))return null;const model=this._editor.getModel(),text2=model.getValueInRange(decoration2.range);return isModelDecorationVisible(model,decoration2)?{reason:computeReason(text2,this._options),inComment:isModelDecorationInComment(model,decoration2),inString:isModelDecorationInString(model,decoration2)}:null}};__name(_ViewportUnicodeHighlighter,"ViewportUnicodeHighlighter");let ViewportUnicodeHighlighter=_ViewportUnicodeHighlighter;const configureUnicodeHighlightOptionsStr=localize("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options");var _a280;let UnicodeHighlighterHoverParticipant=(_a280=class{constructor(_editor,_languageService,_openerService){this._editor=_editor,this._languageService=_languageService,this._openerService=_openerService,this.hoverOrdinal=5}computeSync(anchor,lineDecorations){if(!this._editor.hasModel()||anchor.type!==1)return[];const model=this._editor.getModel(),unicodeHighlighter=this._editor.getContribution(UnicodeHighlighter.ID);if(!unicodeHighlighter)return[];const result=[],existedReason=new Set;let index=300;for(const d of lineDecorations){const highlightInfo=unicodeHighlighter.getDecorationInfo(d);if(!highlightInfo)continue;const codePoint=model.getValueInRange(d.range).codePointAt(0),codePointStr=formatCodePointMarkdown(codePoint);let reason;switch(highlightInfo.reason.kind){case 0:{isBasicASCII(highlightInfo.reason.confusableWith)?reason=localize("unicodeHighlight.characterIsAmbiguousASCII","The character {0} could be confused with the ASCII character {1}, which is more common in source code.",codePointStr,formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0))):reason=localize("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",codePointStr,formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));break}case 1:reason=localize("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",codePointStr);break;case 2:reason=localize("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",codePointStr);break}if(existedReason.has(reason))continue;existedReason.add(reason);const adjustSettingsArgs={codePoint,reason:highlightInfo.reason,inComment:highlightInfo.inComment,inString:highlightInfo.inString},adjustSettings=localize("unicodeHighlight.adjustSettings","Adjust settings"),uri=`command:${ShowExcludeOptions.ID}?${encodeURIComponent(JSON.stringify(adjustSettingsArgs))}`,markdown=new MarkdownString("",!0).appendMarkdown(reason).appendText(" ").appendLink(uri,adjustSettings,configureUnicodeHighlightOptionsStr);result.push(new MarkdownHover(this,d.range,[markdown],!1,index++))}return result}renderHoverParts(context,hoverParts){return renderMarkdownHovers(context,hoverParts,this._editor,this._languageService,this._openerService)}},__name(_a280,"UnicodeHighlighterHoverParticipant"),_a280);UnicodeHighlighterHoverParticipant=__decorate$c([__param$c(1,ILanguageService),__param$c(2,IOpenerService)],UnicodeHighlighterHoverParticipant);function codePointToHex(codePoint){return`U+${codePoint.toString(16).padStart(4,"0")}`}__name(codePointToHex,"codePointToHex");function formatCodePointMarkdown(codePoint){let value=`\`${codePointToHex(codePoint)}\``;return InvisibleCharacters.isInvisibleCharacter(codePoint)||(value+=` "${`${renderCodePointAsInlineCode(codePoint)}`}"`),value}__name(formatCodePointMarkdown,"formatCodePointMarkdown");function renderCodePointAsInlineCode(codePoint){return codePoint===96?"`` ` ``":"`"+String.fromCodePoint(codePoint)+"`"}__name(renderCodePointAsInlineCode,"renderCodePointAsInlineCode");function computeReason(char,options){return UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char,options)}__name(computeReason,"computeReason");const _Decorations=class _Decorations{constructor(){this.map=new Map}getDecorationFromOptions(options){return this.getDecoration(!options.includeComments,!options.includeStrings)}getDecoration(hideInComments,hideInStrings){const key=`${hideInComments}${hideInStrings}`;let options=this.map.get(key);return options||(options=ModelDecorationOptions.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:hideInComments,hideInStringTokens:hideInStrings}),this.map.set(key,options)),options}};__name(_Decorations,"Decorations"),_Decorations.instance=new _Decorations;let Decorations=_Decorations;const _DisableHighlightingInCommentsAction=class _DisableHighlightingInCommentsAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.includeComments,!1,2)}};__name(_DisableHighlightingInCommentsAction,"DisableHighlightingInCommentsAction");let DisableHighlightingInCommentsAction=_DisableHighlightingInCommentsAction;const _DisableHighlightingInStringsAction=class _DisableHighlightingInStringsAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.includeStrings,!1,2)}};__name(_DisableHighlightingInStringsAction,"DisableHighlightingInStringsAction");let DisableHighlightingInStringsAction=_DisableHighlightingInStringsAction;const _DisableHighlightingOfAmbiguousCharactersAction=class _DisableHighlightingOfAmbiguousCharactersAction extends EditorAction{constructor(){super({id:_DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters,!1,2)}};__name(_DisableHighlightingOfAmbiguousCharactersAction,"DisableHighlightingOfAmbiguousCharactersAction"),_DisableHighlightingOfAmbiguousCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";let DisableHighlightingOfAmbiguousCharactersAction=_DisableHighlightingOfAmbiguousCharactersAction;const _DisableHighlightingOfInvisibleCharactersAction=class _DisableHighlightingOfInvisibleCharactersAction extends EditorAction{constructor(){super({id:_DisableHighlightingOfInvisibleCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.invisibleCharacters,!1,2)}};__name(_DisableHighlightingOfInvisibleCharactersAction,"DisableHighlightingOfInvisibleCharactersAction"),_DisableHighlightingOfInvisibleCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";let DisableHighlightingOfInvisibleCharactersAction=_DisableHighlightingOfInvisibleCharactersAction;const _DisableHighlightingOfNonBasicAsciiCharactersAction=class _DisableHighlightingOfNonBasicAsciiCharactersAction extends EditorAction{constructor(){super({id:_DisableHighlightingOfNonBasicAsciiCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}async run(accessor,editor2,args){const configurationService=accessor==null?void 0:accessor.get(IConfigurationService);configurationService&&this.runAction(configurationService)}async runAction(configurationService){await configurationService.updateValue(unicodeHighlightConfigKeys.nonBasicASCII,!1,2)}};__name(_DisableHighlightingOfNonBasicAsciiCharactersAction,"DisableHighlightingOfNonBasicAsciiCharactersAction"),_DisableHighlightingOfNonBasicAsciiCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";let DisableHighlightingOfNonBasicAsciiCharactersAction=_DisableHighlightingOfNonBasicAsciiCharactersAction;const _ShowExcludeOptions=class _ShowExcludeOptions extends EditorAction{constructor(){super({id:_ShowExcludeOptions.ID,label:localize("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(accessor,editor2,args){const{codePoint,reason,inString,inComment}=args,char=String.fromCodePoint(codePoint),quickPickService=accessor.get(IQuickInputService),configurationService=accessor.get(IConfigurationService);function getExcludeCharFromBeingHighlightedLabel(codePoint2){return InvisibleCharacters.isInvisibleCharacter(codePoint2)?localize("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",codePointToHex(codePoint2)):localize("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted",`${codePointToHex(codePoint2)} "${char}"`)}__name(getExcludeCharFromBeingHighlightedLabel,"getExcludeCharFromBeingHighlightedLabel");const options=[];if(reason.kind===0)for(const locale of reason.notAmbiguousInLocales)options.push({label:localize("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',locale),run:__name(async()=>{excludeLocaleFromBeingHighlighted(configurationService,[locale])},"run")});if(options.push({label:getExcludeCharFromBeingHighlightedLabel(codePoint),run:__name(()=>excludeCharFromBeingHighlighted(configurationService,[codePoint]),"run")}),inComment){const action=new DisableHighlightingInCommentsAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}else if(inString){const action=new DisableHighlightingInStringsAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}if(reason.kind===0){const action=new DisableHighlightingOfAmbiguousCharactersAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}else if(reason.kind===1){const action=new DisableHighlightingOfInvisibleCharactersAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}else if(reason.kind===2){const action=new DisableHighlightingOfNonBasicAsciiCharactersAction;options.push({label:action.label,run:__name(async()=>action.runAction(configurationService),"run")})}else expectNever(reason);const result=await quickPickService.pick(options,{title:configureUnicodeHighlightOptionsStr});result&&await result.run()}};__name(_ShowExcludeOptions,"ShowExcludeOptions"),_ShowExcludeOptions.ID="editor.action.unicodeHighlight.showExcludeOptions";let ShowExcludeOptions=_ShowExcludeOptions;async function excludeCharFromBeingHighlighted(configurationService,charCodes){const existingValue=configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);let value;typeof existingValue=="object"&&existingValue?value=existingValue:value={};for(const charCode of charCodes)value[String.fromCodePoint(charCode)]=!0;await configurationService.updateValue(unicodeHighlightConfigKeys.allowedCharacters,value,2)}__name(excludeCharFromBeingHighlighted,"excludeCharFromBeingHighlighted");async function excludeLocaleFromBeingHighlighted(configurationService,locales){var _a300;const existingValue=(_a300=configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user)==null?void 0:_a300.value;let value;typeof existingValue=="object"&&existingValue?value=Object.assign({},existingValue):value={};for(const locale of locales)value[locale]=!0;await configurationService.updateValue(unicodeHighlightConfigKeys.allowedLocales,value,2)}__name(excludeLocaleFromBeingHighlighted,"excludeLocaleFromBeingHighlighted");function expectNever(value){throw new Error(`Unexpected value: ${value}`)}__name(expectNever,"expectNever");registerEditorAction(DisableHighlightingOfAmbiguousCharactersAction);registerEditorAction(DisableHighlightingOfInvisibleCharactersAction);registerEditorAction(DisableHighlightingOfNonBasicAsciiCharactersAction);registerEditorAction(ShowExcludeOptions);registerEditorContribution(UnicodeHighlighter.ID,UnicodeHighlighter,1);HoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);var __decorate$b=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$b=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const ignoreUnusualLineTerminators="ignoreUnusualLineTerminators";function writeIgnoreState(codeEditorService,model,state){codeEditorService.setModelProperty(model.uri,ignoreUnusualLineTerminators,state)}__name(writeIgnoreState,"writeIgnoreState");function readIgnoreState(codeEditorService,model){return codeEditorService.getModelProperty(model.uri,ignoreUnusualLineTerminators)}__name(readIgnoreState,"readIgnoreState");var _a281;let UnusualLineTerminatorsDetector=(_a281=class extends Disposable{constructor(_editor,_dialogService,_codeEditorService){super(),this._editor=_editor,this._dialogService=_dialogService,this._codeEditorService=_codeEditorService,this._isPresentingDialog=!1,this._config=this._editor.getOption(127),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(127)&&(this._config=this._editor.getOption(127),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(e=>{e.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const model=this._editor.getModel();if(!model.mightContainUnusualLineTerminators()||readIgnoreState(this._codeEditorService,model)===!0||this._editor.getOption(92))return;if(this._config==="auto"){model.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let result;try{this._isPresentingDialog=!0,result=await this._dialogService.confirm({title:localize("unusualLineTerminators.title","Unusual Line Terminators"),message:localize("unusualLineTerminators.message","Detected unusual line terminators"),detail:localize("unusualLineTerminators.detail","The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",basename(model.uri)),primaryButton:localize({key:"unusualLineTerminators.fix",comment:["&& denotes a mnemonic"]},"&&Remove Unusual Line Terminators"),cancelButton:localize("unusualLineTerminators.ignore","Ignore")})}finally{this._isPresentingDialog=!1}if(!result.confirmed){writeIgnoreState(this._codeEditorService,model,!0);return}model.removeUnusualLineTerminators(this._editor.getSelections())}},__name(_a281,"UnusualLineTerminatorsDetector"),_a281.ID="editor.contrib.unusualLineTerminatorsDetector",_a281);UnusualLineTerminatorsDetector=__decorate$b([__param$b(1,IDialogService),__param$b(2,ICodeEditorService)],UnusualLineTerminatorsDetector);registerEditorContribution(UnusualLineTerminatorsDetector.ID,UnusualLineTerminatorsDetector,1);var __decorate$a=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$a=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};const _TextualDocumentHighlightProvider=class _TextualDocumentHighlightProvider{constructor(){this.selector={language:"*"}}provideDocumentHighlights(model,position,token){const result=[],word=model.getWordAtPosition({lineNumber:position.lineNumber,column:position.column});return word?model.isDisposed()?void 0:model.findMatches(word.word,!0,!1,!0,USUAL_WORD_SEPARATORS,!1).map(m2=>({range:m2.range,kind:DocumentHighlightKind$1.Text})):Promise.resolve(result)}provideMultiDocumentHighlights(primaryModel,position,otherModels,token){const result=new ResourceMap,word=primaryModel.getWordAtPosition({lineNumber:position.lineNumber,column:position.column});if(!word)return Promise.resolve(result);for(const model of[primaryModel,...otherModels]){if(model.isDisposed())continue;const highlights=model.findMatches(word.word,!0,!1,!0,USUAL_WORD_SEPARATORS,!1).map(m2=>({range:m2.range,kind:DocumentHighlightKind$1.Text}));highlights&&result.set(model.uri,highlights)}return result}};__name(_TextualDocumentHighlightProvider,"TextualDocumentHighlightProvider");let TextualDocumentHighlightProvider=_TextualDocumentHighlightProvider;var _a282;let TextualMultiDocumentHighlightFeature=(_a282=class extends Disposable{constructor(languageFeaturesService){super(),this._register(languageFeaturesService.documentHighlightProvider.register("*",new TextualDocumentHighlightProvider)),this._register(languageFeaturesService.multiDocumentHighlightProvider.register("*",new TextualDocumentHighlightProvider))}},__name(_a282,"TextualMultiDocumentHighlightFeature"),_a282);TextualMultiDocumentHighlightFeature=__decorate$a([__param$a(0,ILanguageFeaturesService)],TextualMultiDocumentHighlightFeature);var __decorate$9=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$9=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},WordHighlighter_1,WordHighlighterContribution_1;const ctxHasWordHighlights=new RawContextKey("hasWordHighlights",!1);function getOccurrencesAtPosition(registry,model,position,token){const orderedByScore=registry.ordered(model);return first(orderedByScore.map(provider=>()=>Promise.resolve(provider.provideDocumentHighlights(model,position,token)).then(void 0,onUnexpectedExternalError)),result=>result!=null).then(result=>{if(result){const map=new ResourceMap;return map.set(model.uri,result),map}return new ResourceMap})}__name(getOccurrencesAtPosition,"getOccurrencesAtPosition");function getOccurrencesAcrossMultipleModels(registry,model,position,wordSeparators2,token,otherModels){const orderedByScore=registry.ordered(model);return first(orderedByScore.map(provider=>()=>{const filteredModels=otherModels.filter(otherModel=>shouldSynchronizeModel(otherModel)).filter(otherModel=>score(provider.selector,otherModel.uri,otherModel.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(provider.provideMultiDocumentHighlights(model,position,filteredModels,token)).then(void 0,onUnexpectedExternalError)}),result=>result!=null)}__name(getOccurrencesAcrossMultipleModels,"getOccurrencesAcrossMultipleModels");const _OccurenceAtPositionRequest=class _OccurenceAtPositionRequest{constructor(_model,_selection,_wordSeparators){this._model=_model,this._selection=_selection,this._wordSeparators=_wordSeparators,this._wordRange=this._getCurrentWordRange(_model,_selection),this._result=null}get result(){return this._result||(this._result=createCancelablePromise(token=>this._compute(this._model,this._selection,this._wordSeparators,token))),this._result}_getCurrentWordRange(model,selection){const word=model.getWordAtPosition(selection.getPosition());return word?new Range$2(selection.startLineNumber,word.startColumn,selection.startLineNumber,word.endColumn):null}isValid(model,selection,decorations){const lineNumber=selection.startLineNumber,startColumn=selection.startColumn,endColumn=selection.endColumn,currentWordRange=this._getCurrentWordRange(model,selection);let requestIsValid=!!(this._wordRange&&this._wordRange.equalsRange(currentWordRange));for(let i=0,len=decorations.length;!requestIsValid&&i<len;i++){const range2=decorations.getRange(i);range2&&range2.startLineNumber===lineNumber&&range2.startColumn<=startColumn&&range2.endColumn>=endColumn&&(requestIsValid=!0)}return requestIsValid}cancel(){this.result.cancel()}};__name(_OccurenceAtPositionRequest,"OccurenceAtPositionRequest");let OccurenceAtPositionRequest=_OccurenceAtPositionRequest;const _SemanticOccurenceAtPositionRequest=class _SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest{constructor(model,selection,wordSeparators2,providers){super(model,selection,wordSeparators2),this._providers=providers}_compute(model,selection,wordSeparators2,token){return getOccurrencesAtPosition(this._providers,model,selection.getPosition(),token).then(value=>value||new ResourceMap)}};__name(_SemanticOccurenceAtPositionRequest,"SemanticOccurenceAtPositionRequest");let SemanticOccurenceAtPositionRequest=_SemanticOccurenceAtPositionRequest;const _MultiModelOccurenceRequest=class _MultiModelOccurenceRequest extends OccurenceAtPositionRequest{constructor(model,selection,wordSeparators2,providers,otherModels){super(model,selection,wordSeparators2),this._providers=providers,this._otherModels=otherModels}_compute(model,selection,wordSeparators2,token){return getOccurrencesAcrossMultipleModels(this._providers,model,selection.getPosition(),wordSeparators2,token,this._otherModels).then(value=>value||new ResourceMap)}};__name(_MultiModelOccurenceRequest,"MultiModelOccurenceRequest");let MultiModelOccurenceRequest=_MultiModelOccurenceRequest;function computeOccurencesAtPosition(registry,model,selection,word,wordSeparators2){return new SemanticOccurenceAtPositionRequest(model,selection,wordSeparators2,registry)}__name(computeOccurencesAtPosition,"computeOccurencesAtPosition");function computeOccurencesMultiModel(registry,model,selection,word,wordSeparators2,otherModels){return new MultiModelOccurenceRequest(model,selection,wordSeparators2,registry,otherModels)}__name(computeOccurencesMultiModel,"computeOccurencesMultiModel");registerModelAndPositionCommand("_executeDocumentHighlights",async(accessor,model,position)=>{const languageFeaturesService=accessor.get(ILanguageFeaturesService),map=await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider,model,position,CancellationToken.None);return map==null?void 0:map.get(model.uri)});var _a283;let WordHighlighter=(_a283=class{constructor(editor2,providers,multiProviders,contextKeyService,codeEditorService){this.toUnhook=new DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new ResourceMap,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.runDelayer=this.toUnhook.add(new Delayer(50)),this.editor=editor2,this.providers=providers,this.multiDocumentProviders=multiProviders,this.codeEditorService=codeEditorService,this._hasWordHighlights=ctxHasWordHighlights.bindTo(contextKeyService),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(editor2.onDidChangeCursorPosition(e=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!=="off"&&this.runDelayer.trigger(()=>{this._onPositionChanged(e)})})),this.toUnhook.add(editor2.onDidFocusEditorText(e=>{this.occurrencesHighlight!=="off"&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}))})),this.toUnhook.add(editor2.onDidChangeModelContent(e=>{matchesScheme(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(editor2.onDidChangeModel(e=>{!e.newModelUrl&&e.oldModelUrl?this._stopSingular():WordHighlighter_1.query&&this._run()})),this.toUnhook.add(editor2.onDidChangeConfiguration(e=>{var _a300,_b2;const newValue=this.editor.getOption(81);if(this.occurrencesHighlight!==newValue)switch(this.occurrencesHighlight=newValue,newValue){case"off":this._stopAll();break;case"singleFile":this._stopAll((_b2=(_a300=WordHighlighter_1.query)==null?void 0:_a300.modelInfo)==null?void 0:_b2.model);break;case"multiFile":WordHighlighter_1.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",newValue);break}})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,WordHighlighter_1.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!=="off"&&(this.runDelayer.cancel(),this._run())}_getSortedHighlights(){return this.decorations.getRanges().sort(Range$2.compareRangesUsingStarts)}moveNext(){const highlights=this._getSortedHighlights(),newIndex=(highlights.findIndex(range2=>range2.containsPosition(this.editor.getPosition()))+1)%highlights.length,dest=highlights[newIndex];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(dest.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(dest);const word=this._getWord();if(word){const lineContent=this.editor.getModel().getLineContent(dest.startLineNumber);alert(`${lineContent}, ${newIndex+1} of ${highlights.length} for '${word.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const highlights=this._getSortedHighlights(),newIndex=(highlights.findIndex(range2=>range2.containsPosition(this.editor.getPosition()))-1+highlights.length)%highlights.length,dest=highlights[newIndex];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(dest.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(dest);const word=this._getWord();if(word){const lineContent=this.editor.getModel().getLineContent(dest.startLineNumber);alert(`${lineContent}, ${newIndex+1} of ${highlights.length} for '${word.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const currentDecorationIDs=WordHighlighter_1.storedDecorationIDs.get(this.editor.getModel().uri);currentDecorationIDs&&(this.editor.removeDecorations(currentDecorationIDs),WordHighlighter_1.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(preservedModel){const currentEditors=this.codeEditorService.listCodeEditors(),deleteURI=[];for(const editor2 of currentEditors){if(!editor2.hasModel()||isEqual(editor2.getModel().uri,preservedModel==null?void 0:preservedModel.uri))continue;const currentDecorationIDs=WordHighlighter_1.storedDecorationIDs.get(editor2.getModel().uri);if(!currentDecorationIDs)continue;editor2.removeDecorations(currentDecorationIDs),deleteURI.push(editor2.getModel().uri);const editorHighlighterContrib=WordHighlighterContribution.get(editor2);editorHighlighterContrib!=null&&editorHighlighterContrib.wordHighlighter&&editorHighlighterContrib.wordHighlighter.decorations.length>0&&(editorHighlighterContrib.wordHighlighter.decorations.clear(),editorHighlighterContrib.wordHighlighter.workerRequest=null,editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(!1))}for(const uri of deleteURI)WordHighlighter_1.storedDecorationIDs.delete(uri)}_stopSingular(){var _a300,_b2,_c,_d;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((_a300=this.editor.getModel())==null?void 0:_a300.uri.scheme)!==Schemas.vscodeNotebookCell&&((_c=(_b2=WordHighlighter_1.query)==null?void 0:_b2.modelInfo)==null?void 0:_c.model.uri.scheme)!==Schemas.vscodeNotebookCell?(WordHighlighter_1.query=null,this._run()):(_d=WordHighlighter_1.query)!=null&&_d.modelInfo&&(WordHighlighter_1.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(preservedModel){this._removeAllDecorations(preservedModel),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){var _a300;if(this.occurrencesHighlight==="off"){this._stopAll();return}if(e.reason!==3&&((_a300=this.editor.getModel())==null?void 0:_a300.uri.scheme)!==Schemas.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const editorSelection=this.editor.getSelection(),lineNumber=editorSelection.startLineNumber,startColumn=editorSelection.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber,column:startColumn})}getOtherModelsToHighlight(model){if(!model)return[];if(model.uri.scheme===Schemas.vscodeNotebookCell){const currentModels2=[],currentEditors2=this.codeEditorService.listCodeEditors();for(const editor2 of currentEditors2){const tempModel=editor2.getModel();tempModel&&tempModel!==model&&tempModel.uri.scheme===Schemas.vscodeNotebookCell&&currentModels2.push(tempModel)}return currentModels2}const currentModels=[],currentEditors=this.codeEditorService.listCodeEditors();for(const editor2 of currentEditors){if(!isDiffEditor(editor2))continue;const diffModel=editor2.getModel();diffModel&&model===diffModel.modified&&currentModels.push(diffModel.modified)}if(currentModels.length)return currentModels;if(this.occurrencesHighlight==="singleFile")return[];for(const editor2 of currentEditors){const tempModel=editor2.getModel();tempModel&&tempModel!==model&&currentModels.push(tempModel)}return currentModels}_run(multiFileConfigChange){var _a300,_b2;let workerRequestIsValid;if(this.editor.hasTextFocus()){const editorSelection=this.editor.getSelection();if(!editorSelection||editorSelection.startLineNumber!==editorSelection.endLineNumber){WordHighlighter_1.query=null,this._stopAll();return}const startColumn=editorSelection.startColumn,endColumn=editorSelection.endColumn,word=this._getWord();if(!word||word.startColumn>startColumn||word.endColumn<endColumn){WordHighlighter_1.query=null,this._stopAll();return}workerRequestIsValid=this.workerRequest&&this.workerRequest.isValid(this.model,editorSelection,this.decorations),WordHighlighter_1.query={modelInfo:{model:this.model,selection:editorSelection},word}}else if(!WordHighlighter_1.query){this._stopAll();return}if(this.lastCursorPositionChangeTime=new Date().getTime(),workerRequestIsValid)this.workerRequestCompleted&&this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else if(isEqual(this.editor.getModel().uri,(_a300=WordHighlighter_1.query.modelInfo)==null?void 0:_a300.model.uri)){if(!multiFileConfigChange){const currentModelDecorationRanges=this.decorations.getRanges();for(const storedRange of currentModelDecorationRanges)if(storedRange.containsPosition(this.editor.getPosition()))return}this._stopAll(multiFileConfigChange?this.model:void 0);const myRequestId=++this.workerRequestTokenId;this.workerRequestCompleted=!1;const otherModelsToHighlight=this.getOtherModelsToHighlight(this.editor.getModel());if(!WordHighlighter_1.query||!WordHighlighter_1.query.modelInfo||WordHighlighter_1.query.modelInfo.model.isDisposed())return;this.workerRequest=this.computeWithModel(WordHighlighter_1.query.modelInfo.model,WordHighlighter_1.query.modelInfo.selection,WordHighlighter_1.query.word,otherModelsToHighlight),(_b2=this.workerRequest)==null||_b2.result.then(data=>{myRequestId===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=data||[],this._beginRenderDecorations())},onUnexpectedError)}}computeWithModel(model,selection,word,otherModels){return otherModels.length?computeOccurencesMultiModel(this.multiDocumentProviders,model,selection,word,this.editor.getOption(132),otherModels):computeOccurencesAtPosition(this.providers,model,selection,word,this.editor.getOption(132))}_beginRenderDecorations(){const currentTime=new Date().getTime(),minimumRenderTime=this.lastCursorPositionChangeTime+250;currentTime>=minimumRenderTime?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},minimumRenderTime-currentTime)}renderDecorations(){var _a300,_b2,_c;this.renderDecorationsTimer=-1;const currentEditors=this.codeEditorService.listCodeEditors();for(const editor2 of currentEditors){const editorHighlighterContrib=WordHighlighterContribution.get(editor2);if(!editorHighlighterContrib)continue;const newDecorations=[],uri=(_a300=editor2.getModel())==null?void 0:_a300.uri;if(uri&&this.workerRequestValue.has(uri)){const oldDecorationIDs=WordHighlighter_1.storedDecorationIDs.get(uri),newDocumentHighlights=this.workerRequestValue.get(uri);if(newDocumentHighlights)for(const highlight of newDocumentHighlights)highlight.range&&newDecorations.push({range:highlight.range,options:getHighlightDecorationOptions(highlight.kind)});let newDecorationIDs=[];editor2.changeDecorations(changeAccessor=>{newDecorationIDs=changeAccessor.deltaDecorations(oldDecorationIDs!=null?oldDecorationIDs:[],newDecorations)}),WordHighlighter_1.storedDecorationIDs=WordHighlighter_1.storedDecorationIDs.set(uri,newDecorationIDs),newDecorations.length>0&&((_b2=editorHighlighterContrib.wordHighlighter)==null||_b2.decorations.set(newDecorations),(_c=editorHighlighterContrib.wordHighlighter)==null||_c._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}},__name(_a283,"WordHighlighter"),WordHighlighter_1=_a283,_a283.storedDecorationIDs=new ResourceMap,_a283.query=null,_a283);WordHighlighter=WordHighlighter_1=__decorate$9([__param$9(4,ICodeEditorService)],WordHighlighter);var _a284;let WordHighlighterContribution=(_a284=class extends Disposable{static get(editor2){return editor2.getContribution(WordHighlighterContribution_1.ID)}constructor(editor2,contextKeyService,languageFeaturesService,codeEditorService){super(),this._wordHighlighter=null;const createWordHighlighterIfPossible=__name(()=>{editor2.hasModel()&&!editor2.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new WordHighlighter(editor2,languageFeaturesService.documentHighlightProvider,languageFeaturesService.multiDocumentHighlightProvider,contextKeyService,codeEditorService))},"createWordHighlighterIfPossible");this._register(editor2.onDidChangeModel(e=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),createWordHighlighterIfPossible()})),createWordHighlighterIfPossible()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var _a300;(_a300=this._wordHighlighter)==null||_a300.moveNext()}moveBack(){var _a300;(_a300=this._wordHighlighter)==null||_a300.moveBack()}restoreViewState(state){this._wordHighlighter&&state&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}},__name(_a284,"WordHighlighterContribution"),WordHighlighterContribution_1=_a284,_a284.ID="editor.contrib.wordHighlighter",_a284);WordHighlighterContribution=WordHighlighterContribution_1=__decorate$9([__param$9(1,IContextKeyService),__param$9(2,ILanguageFeaturesService),__param$9(3,ICodeEditorService)],WordHighlighterContribution);const _WordHighlightNavigationAction=class _WordHighlightNavigationAction extends EditorAction{constructor(next,opts){super(opts),this._isNext=next}run(accessor,editor2){const controller=WordHighlighterContribution.get(editor2);controller&&(this._isNext?controller.moveNext():controller.moveBack())}};__name(_WordHighlightNavigationAction,"WordHighlightNavigationAction");let WordHighlightNavigationAction=_WordHighlightNavigationAction;const _NextWordHighlightAction=class _NextWordHighlightAction extends WordHighlightNavigationAction{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:localize("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:ctxHasWordHighlights,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:65,weight:100}})}};__name(_NextWordHighlightAction,"NextWordHighlightAction");let NextWordHighlightAction=_NextWordHighlightAction;const _PrevWordHighlightAction=class _PrevWordHighlightAction extends WordHighlightNavigationAction{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:localize("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:ctxHasWordHighlights,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1089,weight:100}})}};__name(_PrevWordHighlightAction,"PrevWordHighlightAction");let PrevWordHighlightAction=_PrevWordHighlightAction;const _TriggerWordHighlightAction=class _TriggerWordHighlightAction extends EditorAction{constructor(){super({id:"editor.action.wordHighlight.trigger",label:localize("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:0,weight:100}})}run(accessor,editor2,args){const controller=WordHighlighterContribution.get(editor2);controller&&controller.restoreViewState(!0)}};__name(_TriggerWordHighlightAction,"TriggerWordHighlightAction");let TriggerWordHighlightAction=_TriggerWordHighlightAction;registerEditorContribution(WordHighlighterContribution.ID,WordHighlighterContribution,0);registerEditorAction(NextWordHighlightAction);registerEditorAction(PrevWordHighlightAction);registerEditorAction(TriggerWordHighlightAction);registerEditorFeature(TextualMultiDocumentHighlightFeature);const _MoveWordCommand=class _MoveWordCommand extends EditorCommand{constructor(opts){super(opts),this._inSelectionMode=opts.inSelectionMode,this._wordNavigationType=opts.wordNavigationType}runEditorCommand(accessor,editor2,args){if(!editor2.hasModel())return;const wordSeparators2=getMapForWordSeparators(editor2.getOption(132),editor2.getOption(131)),model=editor2.getModel(),selections=editor2.getSelections(),hasMulticursor=selections.length>1,result=selections.map(sel=>{const inPosition=new Position$1(sel.positionLineNumber,sel.positionColumn),outPosition=this._move(wordSeparators2,model,inPosition,this._wordNavigationType,hasMulticursor);return this._moveTo(sel,outPosition,this._inSelectionMode)});if(model.pushStackElement(),editor2._getViewModel().setCursorStates("moveWordCommand",3,result.map(r=>CursorState$1.fromModelSelection(r))),result.length===1){const pos=new Position$1(result[0].positionLineNumber,result[0].positionColumn);editor2.revealPosition(pos,0)}}_moveTo(from,to,inSelectionMode){return inSelectionMode?new Selection$1(from.selectionStartLineNumber,from.selectionStartColumn,to.lineNumber,to.column):new Selection$1(to.lineNumber,to.column,to.lineNumber,to.column)}};__name(_MoveWordCommand,"MoveWordCommand");let MoveWordCommand=_MoveWordCommand;const _WordLeftCommand=class _WordLeftCommand extends MoveWordCommand{_move(wordSeparators2,model,position,wordNavigationType,hasMulticursor){return WordOperations.moveWordLeft(wordSeparators2,model,position,wordNavigationType,hasMulticursor)}};__name(_WordLeftCommand,"WordLeftCommand");let WordLeftCommand=_WordLeftCommand;const _WordRightCommand=class _WordRightCommand extends MoveWordCommand{_move(wordSeparators2,model,position,wordNavigationType,hasMulticursor){return WordOperations.moveWordRight(wordSeparators2,model,position,wordNavigationType)}};__name(_WordRightCommand,"WordRightCommand");let WordRightCommand=_WordRightCommand;const _CursorWordStartLeft=class _CursorWordStartLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}};__name(_CursorWordStartLeft,"CursorWordStartLeft");let CursorWordStartLeft=_CursorWordStartLeft;const _CursorWordEndLeft=class _CursorWordEndLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}};__name(_CursorWordEndLeft,"CursorWordEndLeft");let CursorWordEndLeft=_CursorWordEndLeft;const _CursorWordLeft=class _CursorWordLeft extends WordLeftCommand{constructor(){var _a300;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(_a300=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))==null?void 0:_a300.negate()),primary:2063,mac:{primary:527},weight:100}})}};__name(_CursorWordLeft,"CursorWordLeft");let CursorWordLeft=_CursorWordLeft;const _CursorWordStartLeftSelect=class _CursorWordStartLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}};__name(_CursorWordStartLeftSelect,"CursorWordStartLeftSelect");let CursorWordStartLeftSelect=_CursorWordStartLeftSelect;const _CursorWordEndLeftSelect=class _CursorWordEndLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}};__name(_CursorWordEndLeftSelect,"CursorWordEndLeftSelect");let CursorWordEndLeftSelect=_CursorWordEndLeftSelect;const _CursorWordLeftSelect=class _CursorWordLeftSelect extends WordLeftCommand{constructor(){var _a300;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(_a300=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))==null?void 0:_a300.negate()),primary:3087,mac:{primary:1551},weight:100}})}};__name(_CursorWordLeftSelect,"CursorWordLeftSelect");let CursorWordLeftSelect=_CursorWordLeftSelect;const _CursorWordAccessibilityLeft=class _CursorWordAccessibilityLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(wordCharacterClassifier,model,position,wordNavigationType,hasMulticursor){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,wordCharacterClassifier.intlSegmenterLocales),model,position,wordNavigationType,hasMulticursor)}};__name(_CursorWordAccessibilityLeft,"CursorWordAccessibilityLeft");let CursorWordAccessibilityLeft=_CursorWordAccessibilityLeft;const _CursorWordAccessibilityLeftSelect=class _CursorWordAccessibilityLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(wordCharacterClassifier,model,position,wordNavigationType,hasMulticursor){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,wordCharacterClassifier.intlSegmenterLocales),model,position,wordNavigationType,hasMulticursor)}};__name(_CursorWordAccessibilityLeftSelect,"CursorWordAccessibilityLeftSelect");let CursorWordAccessibilityLeftSelect=_CursorWordAccessibilityLeftSelect;const _CursorWordStartRight=class _CursorWordStartRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}};__name(_CursorWordStartRight,"CursorWordStartRight");let CursorWordStartRight=_CursorWordStartRight;const _CursorWordEndRight=class _CursorWordEndRight extends WordRightCommand{constructor(){var _a300;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(_a300=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))==null?void 0:_a300.negate()),primary:2065,mac:{primary:529},weight:100}})}};__name(_CursorWordEndRight,"CursorWordEndRight");let CursorWordEndRight=_CursorWordEndRight;const _CursorWordRight=class _CursorWordRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}};__name(_CursorWordRight,"CursorWordRight");let CursorWordRight=_CursorWordRight;const _CursorWordStartRightSelect=class _CursorWordStartRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}};__name(_CursorWordStartRightSelect,"CursorWordStartRightSelect");let CursorWordStartRightSelect=_CursorWordStartRightSelect;const _CursorWordEndRightSelect=class _CursorWordEndRightSelect extends WordRightCommand{constructor(){var _a300;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(_a300=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))==null?void 0:_a300.negate()),primary:3089,mac:{primary:1553},weight:100}})}};__name(_CursorWordEndRightSelect,"CursorWordEndRightSelect");let CursorWordEndRightSelect=_CursorWordEndRightSelect;const _CursorWordRightSelect=class _CursorWordRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}};__name(_CursorWordRightSelect,"CursorWordRightSelect");let CursorWordRightSelect=_CursorWordRightSelect;const _CursorWordAccessibilityRight=class _CursorWordAccessibilityRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(wordCharacterClassifier,model,position,wordNavigationType,hasMulticursor){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,wordCharacterClassifier.intlSegmenterLocales),model,position,wordNavigationType,hasMulticursor)}};__name(_CursorWordAccessibilityRight,"CursorWordAccessibilityRight");let CursorWordAccessibilityRight=_CursorWordAccessibilityRight;const _CursorWordAccessibilityRightSelect=class _CursorWordAccessibilityRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(wordCharacterClassifier,model,position,wordNavigationType,hasMulticursor){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,wordCharacterClassifier.intlSegmenterLocales),model,position,wordNavigationType,hasMulticursor)}};__name(_CursorWordAccessibilityRightSelect,"CursorWordAccessibilityRightSelect");let CursorWordAccessibilityRightSelect=_CursorWordAccessibilityRightSelect;const _DeleteWordCommand=class _DeleteWordCommand extends EditorCommand{constructor(opts){super(opts),this._whitespaceHeuristics=opts.whitespaceHeuristics,this._wordNavigationType=opts.wordNavigationType}runEditorCommand(accessor,editor2,args){const languageConfigurationService=accessor.get(ILanguageConfigurationService);if(!editor2.hasModel())return;const wordSeparators2=getMapForWordSeparators(editor2.getOption(132),editor2.getOption(131)),model=editor2.getModel(),selections=editor2.getSelections(),autoClosingBrackets=editor2.getOption(6),autoClosingQuotes=editor2.getOption(11),autoClosingPairs=languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getAutoClosingPairs(),viewModel=editor2._getViewModel(),commands=selections.map(sel=>{const deleteRange=this._delete({wordSeparators:wordSeparators2,model,selection:sel,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:editor2.getOption(9),autoClosingBrackets,autoClosingQuotes,autoClosingPairs,autoClosedCharacters:viewModel.getCursorAutoClosedCharacters()},this._wordNavigationType);return new ReplaceCommand(deleteRange,"")});editor2.pushUndoStop(),editor2.executeCommands(this.id,commands),editor2.pushUndoStop()}};__name(_DeleteWordCommand,"DeleteWordCommand");let DeleteWordCommand=_DeleteWordCommand;const _DeleteWordLeftCommand=class _DeleteWordLeftCommand extends DeleteWordCommand{_delete(ctx,wordNavigationType){const r=WordOperations.deleteWordLeft(ctx,wordNavigationType);return r||new Range$2(1,1,1,1)}};__name(_DeleteWordLeftCommand,"DeleteWordLeftCommand");let DeleteWordLeftCommand=_DeleteWordLeftCommand;const _DeleteWordRightCommand=class _DeleteWordRightCommand extends DeleteWordCommand{_delete(ctx,wordNavigationType){const r=WordOperations.deleteWordRight(ctx,wordNavigationType);if(r)return r;const lineCount=ctx.model.getLineCount(),maxColumn=ctx.model.getLineMaxColumn(lineCount);return new Range$2(lineCount,maxColumn,lineCount,maxColumn)}};__name(_DeleteWordRightCommand,"DeleteWordRightCommand");let DeleteWordRightCommand=_DeleteWordRightCommand;const _DeleteWordStartLeft=class _DeleteWordStartLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:EditorContextKeys.writable})}};__name(_DeleteWordStartLeft,"DeleteWordStartLeft");let DeleteWordStartLeft=_DeleteWordStartLeft;const _DeleteWordEndLeft=class _DeleteWordEndLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:EditorContextKeys.writable})}};__name(_DeleteWordEndLeft,"DeleteWordEndLeft");let DeleteWordEndLeft=_DeleteWordEndLeft;const _DeleteWordLeft=class _DeleteWordLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}};__name(_DeleteWordLeft,"DeleteWordLeft");let DeleteWordLeft=_DeleteWordLeft;const _DeleteWordStartRight=class _DeleteWordStartRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:EditorContextKeys.writable})}};__name(_DeleteWordStartRight,"DeleteWordStartRight");let DeleteWordStartRight=_DeleteWordStartRight;const _DeleteWordEndRight=class _DeleteWordEndRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:EditorContextKeys.writable})}};__name(_DeleteWordEndRight,"DeleteWordEndRight");let DeleteWordEndRight=_DeleteWordEndRight;const _DeleteWordRight=class _DeleteWordRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}};__name(_DeleteWordRight,"DeleteWordRight");let DeleteWordRight=_DeleteWordRight;const _DeleteInsideWord=class _DeleteInsideWord extends EditorAction{constructor(){super({id:"deleteInsideWord",precondition:EditorContextKeys.writable,label:localize("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(accessor,editor2,args){if(!editor2.hasModel())return;const wordSeparators2=getMapForWordSeparators(editor2.getOption(132),editor2.getOption(131)),model=editor2.getModel(),commands=editor2.getSelections().map(sel=>{const deleteRange=WordOperations.deleteInsideWord(wordSeparators2,model,sel);return new ReplaceCommand(deleteRange,"")});editor2.pushUndoStop(),editor2.executeCommands(this.id,commands),editor2.pushUndoStop()}};__name(_DeleteInsideWord,"DeleteInsideWord");let DeleteInsideWord=_DeleteInsideWord;registerEditorCommand(new CursorWordStartLeft);registerEditorCommand(new CursorWordEndLeft);registerEditorCommand(new CursorWordLeft);registerEditorCommand(new CursorWordStartLeftSelect);registerEditorCommand(new CursorWordEndLeftSelect);registerEditorCommand(new CursorWordLeftSelect);registerEditorCommand(new CursorWordStartRight);registerEditorCommand(new CursorWordEndRight);registerEditorCommand(new CursorWordRight);registerEditorCommand(new CursorWordStartRightSelect);registerEditorCommand(new CursorWordEndRightSelect);registerEditorCommand(new CursorWordRightSelect);registerEditorCommand(new CursorWordAccessibilityLeft);registerEditorCommand(new CursorWordAccessibilityLeftSelect);registerEditorCommand(new CursorWordAccessibilityRight);registerEditorCommand(new CursorWordAccessibilityRightSelect);registerEditorCommand(new DeleteWordStartLeft);registerEditorCommand(new DeleteWordEndLeft);registerEditorCommand(new DeleteWordLeft);registerEditorCommand(new DeleteWordStartRight);registerEditorCommand(new DeleteWordEndRight);registerEditorCommand(new DeleteWordRight);registerEditorAction(DeleteInsideWord);const _DeleteWordPartLeft=class _DeleteWordPartLeft extends DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(ctx,wordNavigationType){const r=WordPartOperations.deleteWordPartLeft(ctx);return r||new Range$2(1,1,1,1)}};__name(_DeleteWordPartLeft,"DeleteWordPartLeft");let DeleteWordPartLeft=_DeleteWordPartLeft;const _DeleteWordPartRight=class _DeleteWordPartRight extends DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(ctx,wordNavigationType){const r=WordPartOperations.deleteWordPartRight(ctx);if(r)return r;const lineCount=ctx.model.getLineCount(),maxColumn=ctx.model.getLineMaxColumn(lineCount);return new Range$2(lineCount,maxColumn,lineCount,maxColumn)}};__name(_DeleteWordPartRight,"DeleteWordPartRight");let DeleteWordPartRight=_DeleteWordPartRight;const _WordPartLeftCommand=class _WordPartLeftCommand extends MoveWordCommand{_move(wordSeparators2,model,position,wordNavigationType,hasMulticursor){return WordPartOperations.moveWordPartLeft(wordSeparators2,model,position,hasMulticursor)}};__name(_WordPartLeftCommand,"WordPartLeftCommand");let WordPartLeftCommand=_WordPartLeftCommand;const _CursorWordPartLeft=class _CursorWordPartLeft extends WordPartLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})}};__name(_CursorWordPartLeft,"CursorWordPartLeft");let CursorWordPartLeft=_CursorWordPartLeft;CommandsRegistry.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");const _CursorWordPartLeftSelect=class _CursorWordPartLeftSelect extends WordPartLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}};__name(_CursorWordPartLeftSelect,"CursorWordPartLeftSelect");let CursorWordPartLeftSelect=_CursorWordPartLeftSelect;CommandsRegistry.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");const _WordPartRightCommand=class _WordPartRightCommand extends MoveWordCommand{_move(wordSeparators2,model,position,wordNavigationType,hasMulticursor){return WordPartOperations.moveWordPartRight(wordSeparators2,model,position)}};__name(_WordPartRightCommand,"WordPartRightCommand");let WordPartRightCommand=_WordPartRightCommand;const _CursorWordPartRight=class _CursorWordPartRight extends WordPartRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})}};__name(_CursorWordPartRight,"CursorWordPartRight");let CursorWordPartRight=_CursorWordPartRight;const _CursorWordPartRightSelect=class _CursorWordPartRightSelect extends WordPartRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}};__name(_CursorWordPartRightSelect,"CursorWordPartRightSelect");let CursorWordPartRightSelect=_CursorWordPartRightSelect;registerEditorCommand(new DeleteWordPartLeft);registerEditorCommand(new DeleteWordPartRight);registerEditorCommand(new CursorWordPartLeft);registerEditorCommand(new CursorWordPartLeftSelect);registerEditorCommand(new CursorWordPartRight);registerEditorCommand(new CursorWordPartRightSelect);const _ReadOnlyMessageController=class _ReadOnlyMessageController extends Disposable{constructor(editor2){super(),this.editor=editor2,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const messageController=MessageController.get(this.editor);if(messageController&&this.editor.hasModel()){let message=this.editor.getOptions().get(93);message||(this.editor.isSimpleWidget?message=new MarkdownString(localize("editor.simple.readonly","Cannot edit in read-only input")):message=new MarkdownString(localize("editor.readonly","Cannot edit in read-only editor"))),messageController.showMessage(message,this.editor.getPosition())}}};__name(_ReadOnlyMessageController,"ReadOnlyMessageController"),_ReadOnlyMessageController.ID="editor.contrib.readOnlyMessageController";let ReadOnlyMessageController=_ReadOnlyMessageController;registerEditorContribution(ReadOnlyMessageController.ID,ReadOnlyMessageController,2);var __decorate$8=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$8=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a285;let DiffEditorBreadcrumbsSource=(_a285=class extends Disposable{constructor(_textModel,_languageFeaturesService,_outlineModelService){super(),this._textModel=_textModel,this._languageFeaturesService=_languageFeaturesService,this._outlineModelService=_outlineModelService,this._currentModel=observableValue(this,void 0);const documentSymbolProviderChanged=observableSignalFromEvent("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),textModelChanged=observableSignalFromEvent("_textModel.onDidChangeContent",Event.debounce(e=>this._textModel.onDidChangeContent(e),()=>{},100));this._register(autorunWithStore(async(reader,store)=>{documentSymbolProviderChanged.read(reader),textModelChanged.read(reader);const src=store.add(new DisposableCancellationTokenSource),model=await this._outlineModelService.getOrCreate(this._textModel,src.token);store.isDisposed||this._currentModel.set(model,void 0)}))}getBreadcrumbItems(startRange,reader){const m2=this._currentModel.read(reader);if(!m2)return[];const symbols=m2.asListOfDocumentSymbols().filter(s=>startRange.contains(s.range.startLineNumber)&&!startRange.contains(s.range.endLineNumber));return symbols.sort(reverseOrder(compareBy(s=>s.range.endLineNumber-s.range.startLineNumber,numberComparator))),symbols.map(s=>({name:s.name,kind:s.kind,startLineNumber:s.range.startLineNumber}))}},__name(_a285,"DiffEditorBreadcrumbsSource"),_a285);DiffEditorBreadcrumbsSource=__decorate$8([__param$8(1,ILanguageFeaturesService),__param$8(2,IOutlineModelService)],DiffEditorBreadcrumbsSource);HideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((textModel,instantiationService)=>instantiationService.createInstance(DiffEditorBreadcrumbsSource,textModel));const _IPadShowKeyboard=class _IPadShowKeyboard extends Disposable{constructor(editor2){super(),this.editor=editor2,this.widget=null,isIOS&&(this._register(editor2.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const shouldHaveWidget=!this.editor.getOption(92);!this.widget&&shouldHaveWidget?this.widget=new ShowKeyboardWidget(this.editor):this.widget&&!shouldHaveWidget&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}};__name(_IPadShowKeyboard,"IPadShowKeyboard"),_IPadShowKeyboard.ID="editor.contrib.iPadShowKeyboard";let IPadShowKeyboard=_IPadShowKeyboard;const _ShowKeyboardWidget=class _ShowKeyboardWidget extends Disposable{constructor(editor2){super(),this.editor=editor2,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(addDisposableListener(this._domNode,"touchstart",e=>{this.editor.focus()})),this._register(addDisposableListener(this._domNode,"focus",e=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return _ShowKeyboardWidget.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};__name(_ShowKeyboardWidget,"ShowKeyboardWidget"),_ShowKeyboardWidget.ID="editor.contrib.ShowKeyboardWidget";let ShowKeyboardWidget=_ShowKeyboardWidget;registerEditorContribution(IPadShowKeyboard.ID,IPadShowKeyboard,3);var __decorate$7=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$7=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},InspectTokensController_1,_a286;let InspectTokensController=(_a286=class extends Disposable{static get(editor2){return editor2.getContribution(InspectTokensController_1.ID)}constructor(editor2,standaloneColorService,languageService){super(),this._editor=editor2,this._languageService=languageService,this._widget=null,this._register(this._editor.onDidChangeModel(e=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(e=>this.stop())),this._register(TokenizationRegistry.onDidChange(e=>this.stop())),this._register(this._editor.onKeyUp(e=>e.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new InspectTokensWidget(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}},__name(_a286,"InspectTokensController"),InspectTokensController_1=_a286,_a286.ID="editor.contrib.inspectTokens",_a286);InspectTokensController=InspectTokensController_1=__decorate$7([__param$7(1,IStandaloneThemeService),__param$7(2,ILanguageService)],InspectTokensController);const _InspectTokens=class _InspectTokens extends EditorAction{constructor(){super({id:"editor.action.inspectTokens",label:InspectTokensNLS.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(accessor,editor2){const controller=InspectTokensController.get(editor2);controller==null||controller.launch()}};__name(_InspectTokens,"InspectTokens");let InspectTokens=_InspectTokens;function renderTokenText(tokenText){let result="";for(let charIndex=0,len=tokenText.length;charIndex<len;charIndex++){const charCode=tokenText.charCodeAt(charIndex);switch(charCode){case 9:result+="→";break;case 32:result+="·";break;default:result+=String.fromCharCode(charCode)}}return result}__name(renderTokenText,"renderTokenText");function getSafeTokenizationSupport(languageIdCodec,languageId){const tokenizationSupport=TokenizationRegistry.get(languageId);if(tokenizationSupport)return tokenizationSupport;const encodedLanguageId=languageIdCodec.encodeLanguageId(languageId);return{getInitialState:__name(()=>NullState,"getInitialState"),tokenize:__name((line,hasEOL,state)=>nullTokenize(languageId,state),"tokenize"),tokenizeEncoded:__name((line,hasEOL,state)=>nullTokenizeEncoded(encodedLanguageId,state),"tokenizeEncoded")}}__name(getSafeTokenizationSupport,"getSafeTokenizationSupport");const _InspectTokensWidget=class _InspectTokensWidget extends Disposable{constructor(editor2,languageService){super(),this.allowEditorOverflow=!0,this._editor=editor2,this._languageService=languageService,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=getSafeTokenizationSupport(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(e=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return _InspectTokensWidget._ID}_compute(position){const data=this._getTokensAtLine(position.lineNumber);let token1Index=0;for(let i=data.tokens1.length-1;i>=0;i--){const t=data.tokens1[i];if(position.column-1>=t.offset){token1Index=i;break}}let token2Index=0;for(let i=data.tokens2.length>>>1;i>=0;i--)if(position.column-1>=data.tokens2[i<<1]){token2Index=i;break}const lineContent=this._model.getLineContent(position.lineNumber);let tokenText="";if(token1Index<data.tokens1.length){const tokenStartIndex=data.tokens1[token1Index].offset,tokenEndIndex=token1Index+1<data.tokens1.length?data.tokens1[token1Index+1].offset:lineContent.length;tokenText=lineContent.substring(tokenStartIndex,tokenEndIndex)}reset(this._domNode,$$e("h2.tm-token",void 0,renderTokenText(tokenText),$$e("span.tm-token-length",void 0,`${tokenText.length} ${tokenText.length===1?"char":"chars"}`))),append$1(this._domNode,$$e("hr.tokens-inspect-separator",{style:"clear:both"}));const metadata=(token2Index<<1)+1<data.tokens2.length?this._decodeMetadata(data.tokens2[(token2Index<<1)+1]):null;append$1(this._domNode,$$e("table.tm-metadata-table",void 0,$$e("tbody",void 0,$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"language"),$$e("td.tm-metadata-value",void 0,`${metadata?metadata.languageId:"-?-"}`)),$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"token type"),$$e("td.tm-metadata-value",void 0,`${metadata?this._tokenTypeToString(metadata.tokenType):"-?-"}`)),$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"font style"),$$e("td.tm-metadata-value",void 0,`${metadata?this._fontStyleToString(metadata.fontStyle):"-?-"}`)),$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"foreground"),$$e("td.tm-metadata-value",void 0,`${metadata?Color.Format.CSS.formatHex(metadata.foreground):"-?-"}`)),$$e("tr",void 0,$$e("td.tm-metadata-key",void 0,"background"),$$e("td.tm-metadata-value",void 0,`${metadata?Color.Format.CSS.formatHex(metadata.background):"-?-"}`))))),append$1(this._domNode,$$e("hr.tokens-inspect-separator")),token1Index<data.tokens1.length&&append$1(this._domNode,$$e("span.tm-token-type",void 0,data.tokens1[token1Index].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(metadata){const colorMap=TokenizationRegistry.getColorMap(),languageId=TokenMetadata.getLanguageId(metadata),tokenType=TokenMetadata.getTokenType(metadata),fontStyle=TokenMetadata.getFontStyle(metadata),foreground2=TokenMetadata.getForeground(metadata),background=TokenMetadata.getBackground(metadata);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(languageId),tokenType,fontStyle,foreground:colorMap[foreground2],background:colorMap[background]}}_tokenTypeToString(tokenType){switch(tokenType){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 3:return"RegEx";default:return"??"}}_fontStyleToString(fontStyle){let r="";return fontStyle&1&&(r+="italic "),fontStyle&2&&(r+="bold "),fontStyle&4&&(r+="underline "),fontStyle&8&&(r+="strikethrough "),r.length===0&&(r="---"),r}_getTokensAtLine(lineNumber){const stateBeforeLine=this._getStateBeforeLine(lineNumber),tokenizationResult1=this._tokenizationSupport.tokenize(this._model.getLineContent(lineNumber),!0,stateBeforeLine),tokenizationResult2=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(lineNumber),!0,stateBeforeLine);return{startState:stateBeforeLine,tokens1:tokenizationResult1.tokens,tokens2:tokenizationResult2.tokens,endState:tokenizationResult1.endState}}_getStateBeforeLine(lineNumber){let state=this._tokenizationSupport.getInitialState();for(let i=1;i<lineNumber;i++)state=this._tokenizationSupport.tokenize(this._model.getLineContent(i),!0,state).endState;return state}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}};__name(_InspectTokensWidget,"InspectTokensWidget"),_InspectTokensWidget._ID="editor.contrib.inspectTokensWidget";let InspectTokensWidget=_InspectTokensWidget;registerEditorContribution(InspectTokensController.ID,InspectTokensController,4);registerEditorAction(InspectTokens);var __decorate$6=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$6=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},HelpQuickAccessProvider_1,_a287;let HelpQuickAccessProvider=(_a287=class{constructor(quickInputService,keybindingService){this.quickInputService=quickInputService,this.keybindingService=keybindingService,this.registry=Registry.as(Extensions$2.Quickaccess)}provide(picker){const disposables=new DisposableStore;return disposables.add(picker.onDidAccept(()=>{const[item]=picker.selectedItems;item&&this.quickInputService.quickAccess.show(item.prefix,{preserveValue:!0})})),disposables.add(picker.onDidChangeValue(value=>{const providerDescriptor=this.registry.getQuickAccessProvider(value.substr(HelpQuickAccessProvider_1.PREFIX.length));providerDescriptor&&providerDescriptor.prefix&&providerDescriptor.prefix!==HelpQuickAccessProvider_1.PREFIX&&this.quickInputService.quickAccess.show(providerDescriptor.prefix,{preserveValue:!0})})),picker.items=this.getQuickAccessProviders().filter(p2=>p2.prefix!==HelpQuickAccessProvider_1.PREFIX),disposables}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((providerA,providerB)=>providerA.prefix.localeCompare(providerB.prefix)).flatMap(provider=>this.createPicks(provider))}createPicks(provider){return provider.helpEntries.map(helpEntry=>{const prefix=helpEntry.prefix||provider.prefix,label=prefix||"…";return{prefix,label,keybinding:helpEntry.commandId?this.keybindingService.lookupKeybinding(helpEntry.commandId):void 0,ariaLabel:localize("helpPickAriaLabel","{0}, {1}",label,helpEntry.description),description:helpEntry.description}})}},__name(_a287,"HelpQuickAccessProvider"),HelpQuickAccessProvider_1=_a287,_a287.PREFIX="?",_a287);HelpQuickAccessProvider=HelpQuickAccessProvider_1=__decorate$6([__param$6(0,IQuickInputService),__param$6(1,IKeybindingService)],HelpQuickAccessProvider);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:HelpQuickAccessProvider,prefix:"",helpEntries:[{description:QuickHelpNLS.helpQuickAccessActionLabel}]});const _AbstractEditorNavigationQuickAccessProvider=class _AbstractEditorNavigationQuickAccessProvider{constructor(options){this.options=options,this.rangeHighlightDecorationId=void 0}provide(picker,token,runOptions){var _a300;const disposables=new DisposableStore;picker.canAcceptInBackground=!!((_a300=this.options)!=null&&_a300.canAcceptInBackground),picker.matchOnLabel=picker.matchOnDescription=picker.matchOnDetail=picker.sortByLabel=!1;const pickerDisposable=disposables.add(new MutableDisposable);return pickerDisposable.value=this.doProvide(picker,token,runOptions),disposables.add(this.onDidActiveTextEditorControlChange(()=>{pickerDisposable.value=void 0,pickerDisposable.value=this.doProvide(picker,token)})),disposables}doProvide(picker,token,runOptions){var _a300;const disposables=new DisposableStore,editor2=this.activeTextEditorControl;if(editor2&&this.canProvideWithTextEditor(editor2)){const context={editor:editor2},codeEditor=getCodeEditor(editor2);if(codeEditor){let lastKnownEditorViewState=(_a300=editor2.saveViewState())!=null?_a300:void 0;disposables.add(codeEditor.onDidChangeCursorPosition(()=>{var _a301;lastKnownEditorViewState=(_a301=editor2.saveViewState())!=null?_a301:void 0})),context.restoreViewState=()=>{lastKnownEditorViewState&&editor2===this.activeTextEditorControl&&editor2.restoreViewState(lastKnownEditorViewState)},disposables.add(createSingleCallFunction(token.onCancellationRequested)(()=>{var _a301;return(_a301=context.restoreViewState)==null?void 0:_a301.call(context)}))}disposables.add(toDisposable(()=>this.clearDecorations(editor2))),disposables.add(this.provideWithTextEditor(context,picker,token,runOptions))}else disposables.add(this.provideWithoutTextEditor(picker,token));return disposables}canProvideWithTextEditor(editor2){return!0}gotoLocation({editor:editor2},options){editor2.setSelection(options.range,"code.jump"),editor2.revealRangeInCenter(options.range,0),options.preserveFocus||editor2.focus();const model=editor2.getModel();model&&"getLineContent"in model&&status(`${model.getLineContent(options.range.startLineNumber)}`)}getModel(editor2){var _a300;return isDiffEditor(editor2)?(_a300=editor2.getModel())==null?void 0:_a300.modified:editor2.getModel()}addDecorations(editor2,range2){editor2.changeDecorations(changeAccessor=>{const deleteDecorations=[];this.rangeHighlightDecorationId&&(deleteDecorations.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),deleteDecorations.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const newDecorations=[{range:range2,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:range2,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:themeColorFromId(overviewRulerRangeHighlight),position:OverviewRulerLane.Full}}}],[rangeHighlightId,overviewRulerDecorationId]=changeAccessor.deltaDecorations(deleteDecorations,newDecorations);this.rangeHighlightDecorationId={rangeHighlightId,overviewRulerDecorationId}})}clearDecorations(editor2){const rangeHighlightDecorationId=this.rangeHighlightDecorationId;rangeHighlightDecorationId&&(editor2.changeDecorations(changeAccessor=>{changeAccessor.deltaDecorations([rangeHighlightDecorationId.overviewRulerDecorationId,rangeHighlightDecorationId.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}};__name(_AbstractEditorNavigationQuickAccessProvider,"AbstractEditorNavigationQuickAccessProvider");let AbstractEditorNavigationQuickAccessProvider=_AbstractEditorNavigationQuickAccessProvider;const _AbstractGotoLineQuickAccessProvider=class _AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(picker){const label=localize("cannotRunGotoLine","Open a text editor first to go to a line.");return picker.items=[{label}],picker.ariaLabel=label,Disposable.None}provideWithTextEditor(context,picker,token){const editor2=context.editor,disposables=new DisposableStore;disposables.add(picker.onDidAccept(event=>{const[item]=picker.selectedItems;if(item){if(!this.isValidLineNumber(editor2,item.lineNumber))return;this.gotoLocation(context,{range:this.toRange(item.lineNumber,item.column),keyMods:picker.keyMods,preserveFocus:event.inBackground}),event.inBackground||picker.hide()}}));const updatePickerAndEditor=__name(()=>{const position=this.parsePosition(editor2,picker.value.trim().substr(_AbstractGotoLineQuickAccessProvider.PREFIX.length)),label=this.getPickLabel(editor2,position.lineNumber,position.column);if(picker.items=[{lineNumber:position.lineNumber,column:position.column,label}],picker.ariaLabel=label,!this.isValidLineNumber(editor2,position.lineNumber)){this.clearDecorations(editor2);return}const range2=this.toRange(position.lineNumber,position.column);editor2.revealRangeInCenter(range2,0),this.addDecorations(editor2,range2)},"updatePickerAndEditor");updatePickerAndEditor(),disposables.add(picker.onDidChangeValue(()=>updatePickerAndEditor()));const codeEditor=getCodeEditor(editor2);return codeEditor&&codeEditor.getOptions().get(68).renderType===2&&(codeEditor.updateOptions({lineNumbers:"on"}),disposables.add(toDisposable(()=>codeEditor.updateOptions({lineNumbers:"relative"})))),disposables}toRange(lineNumber=1,column=1){return{startLineNumber:lineNumber,startColumn:column,endLineNumber:lineNumber,endColumn:column}}parsePosition(editor2,value){const numbers=value.split(/,|:|#/).map(part=>parseInt(part,10)).filter(part=>!isNaN(part)),endLine=this.lineCount(editor2)+1;return{lineNumber:numbers[0]>0?numbers[0]:endLine+numbers[0],column:numbers[1]}}getPickLabel(editor2,lineNumber,column){if(this.isValidLineNumber(editor2,lineNumber))return this.isValidColumn(editor2,lineNumber,column)?localize("gotoLineColumnLabel","Go to line {0} and character {1}.",lineNumber,column):localize("gotoLineLabel","Go to line {0}.",lineNumber);const position=editor2.getPosition()||{lineNumber:1,column:1},lineCount=this.lineCount(editor2);return lineCount>1?localize("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",position.lineNumber,position.column,lineCount):localize("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",position.lineNumber,position.column)}isValidLineNumber(editor2,lineNumber){return!lineNumber||typeof lineNumber!="number"?!1:lineNumber>0&&lineNumber<=this.lineCount(editor2)}isValidColumn(editor2,lineNumber,column){if(!column||typeof column!="number")return!1;const model=this.getModel(editor2);if(!model)return!1;const positionCandidate={lineNumber,column};return model.validatePosition(positionCandidate).equals(positionCandidate)}lineCount(editor2){var _a300,_b2;return(_b2=(_a300=this.getModel(editor2))==null?void 0:_a300.getLineCount())!=null?_b2:0}};__name(_AbstractGotoLineQuickAccessProvider,"AbstractGotoLineQuickAccessProvider"),_AbstractGotoLineQuickAccessProvider.PREFIX=":";let AbstractGotoLineQuickAccessProvider=_AbstractGotoLineQuickAccessProvider;var __decorate$5=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$5=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a288;let StandaloneGotoLineQuickAccessProvider=(_a288=class extends AbstractGotoLineQuickAccessProvider{constructor(editorService){super(),this.editorService=editorService,this.onDidActiveTextEditorControlChange=Event.None}get activeTextEditorControl(){var _a300;return(_a300=this.editorService.getFocusedCodeEditor())!=null?_a300:void 0}},__name(_a288,"StandaloneGotoLineQuickAccessProvider"),_a288);StandaloneGotoLineQuickAccessProvider=__decorate$5([__param$5(0,ICodeEditorService)],StandaloneGotoLineQuickAccessProvider);var _a289;let GotoLineAction$1=(_a289=class extends EditorAction{constructor(){super({id:_a289.ID,label:GoToLineNLS.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})}run(accessor){accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX)}},__name(_a289,"GotoLineAction"),_a289.ID="editor.action.gotoLine",_a289);registerEditorAction(GotoLineAction$1);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneGotoLineQuickAccessProvider,prefix:StandaloneGotoLineQuickAccessProvider.PREFIX,helpEntries:[{description:GoToLineNLS.gotoLineActionLabel,commandId:GotoLineAction$1.ID}]});const NO_SCORE2=[void 0,[]];function scoreFuzzy2(target,query,patternStart=0,wordStart=0){const preparedQuery=query;return preparedQuery.values&&preparedQuery.values.length>1?doScoreFuzzy2Multiple(target,preparedQuery.values,patternStart,wordStart):doScoreFuzzy2Single(target,query,patternStart,wordStart)}__name(scoreFuzzy2,"scoreFuzzy2");function doScoreFuzzy2Multiple(target,query,patternStart,wordStart){let totalScore=0;const totalMatches=[];for(const queryPiece of query){const[score2,matches]=doScoreFuzzy2Single(target,queryPiece,patternStart,wordStart);if(typeof score2!="number")return NO_SCORE2;totalScore+=score2,totalMatches.push(...matches)}return[totalScore,normalizeMatches(totalMatches)]}__name(doScoreFuzzy2Multiple,"doScoreFuzzy2Multiple");function doScoreFuzzy2Single(target,query,patternStart,wordStart){const score2=fuzzyScore(query.original,query.originalLowercase,patternStart,target,target.toLowerCase(),wordStart,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return score2?[score2[0],createMatches(score2)]:NO_SCORE2}__name(doScoreFuzzy2Single,"doScoreFuzzy2Single");function normalizeMatches(matches){const sortedMatches=matches.sort((matchA,matchB)=>matchA.start-matchB.start),normalizedMatches=[];let currentMatch;for(const match2 of sortedMatches)!currentMatch||!matchOverlaps(currentMatch,match2)?(currentMatch=match2,normalizedMatches.push(match2)):(currentMatch.start=Math.min(currentMatch.start,match2.start),currentMatch.end=Math.max(currentMatch.end,match2.end));return normalizedMatches}__name(normalizeMatches,"normalizeMatches");function matchOverlaps(matchA,matchB){return!(matchA.end<matchB.start||matchB.end<matchA.start)}__name(matchOverlaps,"matchOverlaps");function queryExpectsExactMatch(query){return query.startsWith('"')&&query.endsWith('"')}__name(queryExpectsExactMatch,"queryExpectsExactMatch");const MULTIPLE_QUERY_VALUES_SEPARATOR=" ";function prepareQuery(original){typeof original!="string"&&(original="");const originalLowercase=original.toLowerCase(),{pathNormalized,normalized,normalizedLowercase}=normalizeQuery(original),containsPathSeparator=pathNormalized.indexOf(sep)>=0,expectExactMatch=queryExpectsExactMatch(original);let values;const originalSplit=original.split(MULTIPLE_QUERY_VALUES_SEPARATOR);if(originalSplit.length>1)for(const originalPiece of originalSplit){const expectExactMatchPiece=queryExpectsExactMatch(originalPiece),{pathNormalized:pathNormalizedPiece,normalized:normalizedPiece,normalizedLowercase:normalizedLowercasePiece}=normalizeQuery(originalPiece);normalizedPiece&&(values||(values=[]),values.push({original:originalPiece,originalLowercase:originalPiece.toLowerCase(),pathNormalized:pathNormalizedPiece,normalized:normalizedPiece,normalizedLowercase:normalizedLowercasePiece,expectContiguousMatch:expectExactMatchPiece}))}return{original,originalLowercase,pathNormalized,normalized,normalizedLowercase,values,containsPathSeparator,expectContiguousMatch:expectExactMatch}}__name(prepareQuery,"prepareQuery");function normalizeQuery(original){let pathNormalized;isWindows?pathNormalized=original.replace(/\//g,sep):pathNormalized=original.replace(/\\/g,sep);const normalized=stripWildcards(pathNormalized).replace(/\s|"/g,"");return{pathNormalized,normalized,normalizedLowercase:normalized.toLowerCase()}}__name(normalizeQuery,"normalizeQuery");function pieceToQuery(arg1){return Array.isArray(arg1)?prepareQuery(arg1.map(piece=>piece.original).join(MULTIPLE_QUERY_VALUES_SEPARATOR)):prepareQuery(arg1.original)}__name(pieceToQuery,"pieceToQuery");var __decorate$4=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$4=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},AbstractGotoSymbolQuickAccessProvider_1,_a290;let AbstractGotoSymbolQuickAccessProvider=(_a290=class extends AbstractEditorNavigationQuickAccessProvider{constructor(_languageFeaturesService,_outlineModelService,options=Object.create(null)){super(options),this._languageFeaturesService=_languageFeaturesService,this._outlineModelService=_outlineModelService,this.options=options,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(picker){return this.provideLabelPick(picker,localize("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),Disposable.None}provideWithTextEditor(context,picker,token,runOptions){const editor2=context.editor,model=this.getModel(editor2);return model?this._languageFeaturesService.documentSymbolProvider.has(model)?this.doProvideWithEditorSymbols(context,model,picker,token,runOptions):this.doProvideWithoutEditorSymbols(context,model,picker,token):Disposable.None}doProvideWithoutEditorSymbols(context,model,picker,token){const disposables=new DisposableStore;return this.provideLabelPick(picker,localize("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(model,disposables)||token.isCancellationRequested||disposables.add(this.doProvideWithEditorSymbols(context,model,picker,token)))(),disposables}provideLabelPick(picker,label){picker.items=[{label,index:0,kind:14}],picker.ariaLabel=label}async waitForLanguageSymbolRegistry(model,disposables){if(this._languageFeaturesService.documentSymbolProvider.has(model))return!0;const symbolProviderRegistryPromise=new DeferredPromise,symbolProviderListener=disposables.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(model)&&(symbolProviderListener.dispose(),symbolProviderRegistryPromise.complete(!0))}));return disposables.add(toDisposable(()=>symbolProviderRegistryPromise.complete(!1))),symbolProviderRegistryPromise.p}doProvideWithEditorSymbols(context,model,picker,token,runOptions){var _a300;const editor2=context.editor,disposables=new DisposableStore;disposables.add(picker.onDidAccept(event=>{var _a301;const[item]=picker.selectedItems;item&&item.range&&(this.gotoLocation(context,{range:item.range.selection,keyMods:picker.keyMods,preserveFocus:event.inBackground}),(_a301=runOptions==null?void 0:runOptions.handleAccept)==null||_a301.call(runOptions,item),event.inBackground||picker.hide())})),disposables.add(picker.onDidTriggerItemButton(({item})=>{item&&item.range&&(this.gotoLocation(context,{range:item.range.selection,keyMods:picker.keyMods,forceSideBySide:!0}),picker.hide())}));const symbolsPromise=this.getDocumentSymbols(model,token);let picksCts;const updatePickerItems=__name(async positionToEnclose=>{picksCts==null||picksCts.dispose(!0),picker.busy=!1,picksCts=new CancellationTokenSource$1(token),picker.busy=!0;try{const query=prepareQuery(picker.value.substr(AbstractGotoSymbolQuickAccessProvider_1.PREFIX.length).trim()),items=await this.doGetSymbolPicks(symbolsPromise,query,void 0,picksCts.token,model);if(token.isCancellationRequested)return;if(items.length>0){if(picker.items=items,positionToEnclose&&query.original.length===0){const candidate=findLast(items,item=>!!(item.type!=="separator"&&item.range&&Range$2.containsPosition(item.range.decoration,positionToEnclose)));candidate&&(picker.activeItems=[candidate])}}else query.original.length>0?this.provideLabelPick(picker,localize("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(picker,localize("noSymbolResults","No editor symbols"))}finally{token.isCancellationRequested||(picker.busy=!1)}},"updatePickerItems");return disposables.add(picker.onDidChangeValue(()=>updatePickerItems(void 0))),updatePickerItems((_a300=editor2.getSelection())==null?void 0:_a300.getPosition()),disposables.add(picker.onDidChangeActive(()=>{const[item]=picker.activeItems;item&&item.range&&(editor2.revealRangeInCenter(item.range.selection,0),this.addDecorations(editor2,item.range.decoration))})),disposables}async doGetSymbolPicks(symbolsPromise,query,options,token,model){var _a300,_b2;const symbols=await symbolsPromise;if(token.isCancellationRequested)return[];const filterBySymbolKind=query.original.indexOf(AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX)===0,filterPos=filterBySymbolKind?1:0;let symbolQuery,containerQuery;query.values&&query.values.length>1?(symbolQuery=pieceToQuery(query.values[0]),containerQuery=pieceToQuery(query.values.slice(1))):symbolQuery=query;let buttons;const openSideBySideDirection=(_b2=(_a300=this.options)==null?void 0:_a300.openSideBySideDirection)==null?void 0:_b2.call(_a300);openSideBySideDirection&&(buttons=[{iconClass:openSideBySideDirection==="right"?ThemeIcon.asClassName(Codicon.splitHorizontal):ThemeIcon.asClassName(Codicon.splitVertical),tooltip:openSideBySideDirection==="right"?localize("openToSide","Open to the Side"):localize("openToBottom","Open to the Bottom")}]);const filteredSymbolPicks=[];for(let index=0;index<symbols.length;index++){const symbol=symbols[index],symbolLabel=trim(symbol.name),symbolLabelWithIcon=`$(${SymbolKinds.toIcon(symbol.kind).id}) ${symbolLabel}`,symbolLabelIconOffset=symbolLabelWithIcon.length-symbolLabel.length;let containerLabel=symbol.containerName;options!=null&&options.extraContainerLabel&&(containerLabel?containerLabel=`${options.extraContainerLabel} • ${containerLabel}`:containerLabel=options.extraContainerLabel);let symbolScore,symbolMatches,containerScore,containerMatches;if(query.original.length>filterPos){let skipContainerQuery=!1;if(symbolQuery!==query&&([symbolScore,symbolMatches]=scoreFuzzy2(symbolLabelWithIcon,{...query,values:void 0},filterPos,symbolLabelIconOffset),typeof symbolScore=="number"&&(skipContainerQuery=!0)),typeof symbolScore!="number"&&([symbolScore,symbolMatches]=scoreFuzzy2(symbolLabelWithIcon,symbolQuery,filterPos,symbolLabelIconOffset),typeof symbolScore!="number"))continue;if(!skipContainerQuery&&containerQuery){if(containerLabel&&containerQuery.original.length>0&&([containerScore,containerMatches]=scoreFuzzy2(containerLabel,containerQuery)),typeof containerScore!="number")continue;typeof symbolScore=="number"&&(symbolScore+=containerScore)}}const deprecated=symbol.tags&&symbol.tags.indexOf(1)>=0;filteredSymbolPicks.push({index,kind:symbol.kind,score:symbolScore,label:symbolLabelWithIcon,ariaLabel:getAriaLabelForSymbol(symbol.name,symbol.kind),description:containerLabel,highlights:deprecated?void 0:{label:symbolMatches,description:containerMatches},range:{selection:Range$2.collapseToStart(symbol.selectionRange),decoration:symbol.range},uri:model.uri,symbolName:symbolLabel,strikethrough:deprecated,buttons})}const sortedFilteredSymbolPicks=filteredSymbolPicks.sort((symbolA,symbolB)=>filterBySymbolKind?this.compareByKindAndScore(symbolA,symbolB):this.compareByScore(symbolA,symbolB));let symbolPicks=[];if(filterBySymbolKind){let updateLastSeparatorLabel=function(){lastSeparator&&typeof lastSymbolKind=="number"&&lastSymbolKindCounter>0&&(lastSeparator.label=format(NLS_SYMBOL_KIND_CACHE[lastSymbolKind]||FALLBACK_NLS_SYMBOL_KIND,lastSymbolKindCounter))};__name(updateLastSeparatorLabel,"updateLastSeparatorLabel");let lastSymbolKind,lastSeparator,lastSymbolKindCounter=0;for(const symbolPick of sortedFilteredSymbolPicks)lastSymbolKind!==symbolPick.kind?(updateLastSeparatorLabel(),lastSymbolKind=symbolPick.kind,lastSymbolKindCounter=1,lastSeparator={type:"separator"},symbolPicks.push(lastSeparator)):lastSymbolKindCounter++,symbolPicks.push(symbolPick);updateLastSeparatorLabel()}else sortedFilteredSymbolPicks.length>0&&(symbolPicks=[{label:localize("symbols","symbols ({0})",filteredSymbolPicks.length),type:"separator"},...sortedFilteredSymbolPicks]);return symbolPicks}compareByScore(symbolA,symbolB){if(typeof symbolA.score!="number"&&typeof symbolB.score=="number")return 1;if(typeof symbolA.score=="number"&&typeof symbolB.score!="number")return-1;if(typeof symbolA.score=="number"&&typeof symbolB.score=="number"){if(symbolA.score>symbolB.score)return-1;if(symbolA.score<symbolB.score)return 1}return symbolA.index<symbolB.index?-1:symbolA.index>symbolB.index?1:0}compareByKindAndScore(symbolA,symbolB){const kindA=NLS_SYMBOL_KIND_CACHE[symbolA.kind]||FALLBACK_NLS_SYMBOL_KIND,kindB=NLS_SYMBOL_KIND_CACHE[symbolB.kind]||FALLBACK_NLS_SYMBOL_KIND,result=kindA.localeCompare(kindB);return result===0?this.compareByScore(symbolA,symbolB):result}async getDocumentSymbols(document2,token){const model=await this._outlineModelService.getOrCreate(document2,token);return token.isCancellationRequested?[]:model.asListOfDocumentSymbols()}},__name(_a290,"AbstractGotoSymbolQuickAccessProvider"),AbstractGotoSymbolQuickAccessProvider_1=_a290,_a290.PREFIX="@",_a290.SCOPE_PREFIX=":",_a290.PREFIX_BY_CATEGORY=`${_a290.PREFIX}${_a290.SCOPE_PREFIX}`,_a290);AbstractGotoSymbolQuickAccessProvider=AbstractGotoSymbolQuickAccessProvider_1=__decorate$4([__param$4(0,ILanguageFeaturesService),__param$4(1,IOutlineModelService)],AbstractGotoSymbolQuickAccessProvider);const FALLBACK_NLS_SYMBOL_KIND=localize("property","properties ({0})"),NLS_SYMBOL_KIND_CACHE={5:localize("method","methods ({0})"),11:localize("function","functions ({0})"),8:localize("_constructor","constructors ({0})"),12:localize("variable","variables ({0})"),4:localize("class","classes ({0})"),22:localize("struct","structs ({0})"),23:localize("event","events ({0})"),24:localize("operator","operators ({0})"),10:localize("interface","interfaces ({0})"),2:localize("namespace","namespaces ({0})"),3:localize("package","packages ({0})"),25:localize("typeParameter","type parameters ({0})"),1:localize("modules","modules ({0})"),6:localize("property","properties ({0})"),9:localize("enum","enumerations ({0})"),21:localize("enumMember","enumeration members ({0})"),14:localize("string","strings ({0})"),0:localize("file","files ({0})"),17:localize("array","arrays ({0})"),15:localize("number","numbers ({0})"),16:localize("boolean","booleans ({0})"),18:localize("object","objects ({0})"),19:localize("key","keys ({0})"),7:localize("field","fields ({0})"),13:localize("constant","constants ({0})")};var __decorate$3=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$3=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a291;let StandaloneGotoSymbolQuickAccessProvider=(_a291=class extends AbstractGotoSymbolQuickAccessProvider{constructor(editorService,languageFeaturesService,outlineModelService){super(languageFeaturesService,outlineModelService),this.editorService=editorService,this.onDidActiveTextEditorControlChange=Event.None}get activeTextEditorControl(){var _a300;return(_a300=this.editorService.getFocusedCodeEditor())!=null?_a300:void 0}},__name(_a291,"StandaloneGotoSymbolQuickAccessProvider"),_a291);StandaloneGotoSymbolQuickAccessProvider=__decorate$3([__param$3(0,ICodeEditorService),__param$3(1,ILanguageFeaturesService),__param$3(2,IOutlineModelService)],StandaloneGotoSymbolQuickAccessProvider);const _GotoSymbolAction=class _GotoSymbolAction extends EditorAction{constructor(){super({id:_GotoSymbolAction.ID,label:QuickOutlineNLS.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(accessor){accessor.get(IQuickInputService).quickAccess.show(AbstractGotoSymbolQuickAccessProvider.PREFIX,{itemActivation:ItemActivation.NONE})}};__name(_GotoSymbolAction,"GotoSymbolAction"),_GotoSymbolAction.ID="editor.action.quickOutline";let GotoSymbolAction=_GotoSymbolAction;registerEditorAction(GotoSymbolAction);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneGotoSymbolQuickAccessProvider,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX,helpEntries:[{description:QuickOutlineNLS.quickOutlineActionLabel,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX,commandId:GotoSymbolAction.ID},{description:QuickOutlineNLS.quickOutlineByCategoryActionLabel,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY}]});function countMapFrom(values){var _a300;const map=new Map;for(const value of values)map.set(value,((_a300=map.get(value))!=null?_a300:0)+1);return map}__name(countMapFrom,"countMapFrom");const _TfIdfCalculator=class _TfIdfCalculator{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(query,token){const embedding=this.computeEmbedding(query),idfCache=new Map,scores=[];for(const[key,doc]of this.documents){if(token.isCancellationRequested)return[];for(const chunk of doc.chunks){const score2=this.computeSimilarityScore(chunk,embedding,idfCache);score2>0&&scores.push({key,score:score2})}}return scores}static termFrequencies(input){return countMapFrom(_TfIdfCalculator.splitTerms(input))}static*splitTerms(input){const normalize2=__name(word=>word.toLowerCase(),"normalize");for(const[word]of input.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield normalize2(word);const camelParts=word.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(camelParts.length>1)for(const part of camelParts)part.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(part)&&(yield normalize2(part))}}updateDocuments(documents){var _a300;for(const{key}of documents)this.deleteDocument(key);for(const doc of documents){const chunks=[];for(const text2 of doc.textChunks){const tf=_TfIdfCalculator.termFrequencies(text2);for(const term of tf.keys())this.chunkOccurrences.set(term,((_a300=this.chunkOccurrences.get(term))!=null?_a300:0)+1);chunks.push({text:text2,tf})}this.chunkCount+=chunks.length,this.documents.set(doc.key,{chunks})}return this}deleteDocument(key){const doc=this.documents.get(key);if(doc){this.documents.delete(key),this.chunkCount-=doc.chunks.length;for(const chunk of doc.chunks)for(const term of chunk.tf.keys()){const currentOccurrences=this.chunkOccurrences.get(term);if(typeof currentOccurrences=="number"){const newOccurrences=currentOccurrences-1;newOccurrences<=0?this.chunkOccurrences.delete(term):this.chunkOccurrences.set(term,newOccurrences)}}}}computeSimilarityScore(chunk,queryEmbedding,idfCache){let sum=0;for(const[term,termTfidf]of Object.entries(queryEmbedding)){const chunkTf=chunk.tf.get(term);if(!chunkTf)continue;let chunkIdf=idfCache.get(term);typeof chunkIdf!="number"&&(chunkIdf=this.computeIdf(term),idfCache.set(term,chunkIdf));const chunkTfidf=chunkTf*chunkIdf;sum+=chunkTfidf*termTfidf}return sum}computeEmbedding(input){const tf=_TfIdfCalculator.termFrequencies(input);return this.computeTfidf(tf)}computeIdf(term){var _a300;const chunkOccurrences=(_a300=this.chunkOccurrences.get(term))!=null?_a300:0;return chunkOccurrences>0?Math.log((this.chunkCount+1)/chunkOccurrences):0}computeTfidf(termFrequencies){const embedding=Object.create(null);for(const[word,occurrences]of termFrequencies){const idf=this.computeIdf(word);idf>0&&(embedding[word]=occurrences*idf)}return embedding}};__name(_TfIdfCalculator,"TfIdfCalculator");let TfIdfCalculator=_TfIdfCalculator;function normalizeTfIdfScores(scores){var _a300,_b2;const result=scores.slice(0);result.sort((a,b)=>b.score-a.score);const max=(_b2=(_a300=result[0])==null?void 0:_a300.score)!=null?_b2:0;if(max>0)for(const score2 of result)score2.score/=max;return result}__name(normalizeTfIdfScores,"normalizeTfIdfScores");var TriggerAction;(function(TriggerAction2){TriggerAction2[TriggerAction2.NO_ACTION=0]="NO_ACTION",TriggerAction2[TriggerAction2.CLOSE_PICKER=1]="CLOSE_PICKER",TriggerAction2[TriggerAction2.REFRESH_PICKER=2]="REFRESH_PICKER",TriggerAction2[TriggerAction2.REMOVE_ITEM=3]="REMOVE_ITEM"})(TriggerAction||(TriggerAction={}));function isPicksWithActive(obj){const candidate=obj;return Array.isArray(candidate.items)}__name(isPicksWithActive,"isPicksWithActive");function isFastAndSlowPicks(obj){const candidate=obj;return!!candidate.picks&&candidate.additionalPicks instanceof Promise}__name(isFastAndSlowPicks,"isFastAndSlowPicks");const _PickerQuickAccessProvider=class _PickerQuickAccessProvider extends Disposable{constructor(prefix,options){super(),this.prefix=prefix,this.options=options}provide(picker,token,runOptions){var _a300;const disposables=new DisposableStore;picker.canAcceptInBackground=!!((_a300=this.options)!=null&&_a300.canAcceptInBackground),picker.matchOnLabel=picker.matchOnDescription=picker.matchOnDetail=picker.sortByLabel=!1;let picksCts;const picksDisposable=disposables.add(new MutableDisposable),updatePickerItems=__name(async()=>{var _a301;const picksDisposables=picksDisposable.value=new DisposableStore;picksCts==null||picksCts.dispose(!0),picker.busy=!1,picksCts=new CancellationTokenSource$1(token);const picksToken=picksCts.token;let picksFilter=picker.value.substring(this.prefix.length);(_a301=this.options)!=null&&_a301.shouldSkipTrimPickFilter||(picksFilter=picksFilter.trim());const providedPicks=this._getPicks(picksFilter,picksDisposables,picksToken,runOptions),applyPicks=__name((picks,skipEmpty)=>{var _a302;let items,activeItem;if(isPicksWithActive(picks)?(items=picks.items,activeItem=picks.active):items=picks,items.length===0){if(skipEmpty)return!1;(picksFilter.length>0||picker.hideInput)&&((_a302=this.options)!=null&&_a302.noResultsPick)&&(isFunction(this.options.noResultsPick)?items=[this.options.noResultsPick(picksFilter)]:items=[this.options.noResultsPick])}return picker.items=items,activeItem&&(picker.activeItems=[activeItem]),!0},"applyPicks"),applyFastAndSlowPicks=__name(async fastAndSlowPicks=>{let fastPicksApplied=!1,slowPicksApplied=!1;await Promise.all([(async()=>{typeof fastAndSlowPicks.mergeDelay=="number"&&(await timeout(fastAndSlowPicks.mergeDelay),picksToken.isCancellationRequested)||slowPicksApplied||(fastPicksApplied=applyPicks(fastAndSlowPicks.picks,!0))})(),(async()=>{picker.busy=!0;try{const awaitedAdditionalPicks=await fastAndSlowPicks.additionalPicks;if(picksToken.isCancellationRequested)return;let picks,activePick;isPicksWithActive(fastAndSlowPicks.picks)?(picks=fastAndSlowPicks.picks.items,activePick=fastAndSlowPicks.picks.active):picks=fastAndSlowPicks.picks;let additionalPicks,additionalActivePick;if(isPicksWithActive(awaitedAdditionalPicks)?(additionalPicks=awaitedAdditionalPicks.items,additionalActivePick=awaitedAdditionalPicks.active):additionalPicks=awaitedAdditionalPicks,additionalPicks.length>0||!fastPicksApplied){let fallbackActivePick;if(!activePick&&!additionalActivePick){const fallbackActivePickCandidate=picker.activeItems[0];fallbackActivePickCandidate&&picks.indexOf(fallbackActivePickCandidate)!==-1&&(fallbackActivePick=fallbackActivePickCandidate)}applyPicks({items:[...picks,...additionalPicks],active:activePick||additionalActivePick||fallbackActivePick})}}finally{picksToken.isCancellationRequested||(picker.busy=!1),slowPicksApplied=!0}})()])},"applyFastAndSlowPicks");if(providedPicks!==null)if(isFastAndSlowPicks(providedPicks))await applyFastAndSlowPicks(providedPicks);else if(!(providedPicks instanceof Promise))applyPicks(providedPicks);else{picker.busy=!0;try{const awaitedPicks=await providedPicks;if(picksToken.isCancellationRequested)return;isFastAndSlowPicks(awaitedPicks)?await applyFastAndSlowPicks(awaitedPicks):applyPicks(awaitedPicks)}finally{picksToken.isCancellationRequested||(picker.busy=!1)}}},"updatePickerItems");disposables.add(picker.onDidChangeValue(()=>updatePickerItems())),updatePickerItems(),disposables.add(picker.onDidAccept(event=>{var _a301;if(runOptions!=null&&runOptions.handleAccept){event.inBackground||picker.hide(),(_a301=runOptions.handleAccept)==null||_a301.call(runOptions,picker.activeItems[0]);return}const[item]=picker.selectedItems;typeof(item==null?void 0:item.accept)=="function"&&(event.inBackground||picker.hide(),item.accept(picker.keyMods,event))}));const buttonTrigger=__name(async(button,item)=>{var _a301,_b2;if(typeof item.trigger!="function")return;const buttonIndex=(_b2=(_a301=item.buttons)==null?void 0:_a301.indexOf(button))!=null?_b2:-1;if(buttonIndex>=0){const result=item.trigger(buttonIndex,picker.keyMods),action=typeof result=="number"?result:await result;if(token.isCancellationRequested)return;switch(action){case TriggerAction.NO_ACTION:break;case TriggerAction.CLOSE_PICKER:picker.hide();break;case TriggerAction.REFRESH_PICKER:updatePickerItems();break;case TriggerAction.REMOVE_ITEM:{const index=picker.items.indexOf(item);if(index!==-1){const items=picker.items.slice(),removed=items.splice(index,1),activeItems=picker.activeItems.filter(activeItem=>activeItem!==removed[0]),keepScrollPositionBefore=picker.keepScrollPosition;picker.keepScrollPosition=!0,picker.items=items,activeItems&&(picker.activeItems=activeItems),picker.keepScrollPosition=keepScrollPositionBefore}break}}}},"buttonTrigger");return disposables.add(picker.onDidTriggerItemButton(({button,item})=>buttonTrigger(button,item))),disposables.add(picker.onDidTriggerSeparatorButton(({button,separator})=>buttonTrigger(button,separator))),disposables}};__name(_PickerQuickAccessProvider,"PickerQuickAccessProvider");let PickerQuickAccessProvider=_PickerQuickAccessProvider;var __decorate$2=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$2=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},AbstractCommandsQuickAccessProvider_1,CommandsHistory_1,_a292;let AbstractCommandsQuickAccessProvider=(_a292=class extends PickerQuickAccessProvider{constructor(options,instantiationService,keybindingService,commandService,telemetryService,dialogService){super(AbstractCommandsQuickAccessProvider_1.PREFIX,options),this.instantiationService=instantiationService,this.keybindingService=keybindingService,this.commandService=commandService,this.telemetryService=telemetryService,this.dialogService=dialogService,this.commandsHistory=this._register(this.instantiationService.createInstance(CommandsHistory)),this.options=options}async _getPicks(filter,_disposables,token,runOptions){var _a300,_b2,_c,_d;const allCommandPicks=await this.getCommandPicks(token);if(token.isCancellationRequested)return[];const runTfidf=createSingleCallFunction(()=>{const tfidf=new TfIdfCalculator;tfidf.updateDocuments(allCommandPicks.map(commandPick=>({key:commandPick.commandId,textChunks:[this.getTfIdfChunk(commandPick)]})));const result=tfidf.calculateScores(filter,token);return normalizeTfIdfScores(result).filter(score2=>score2.score>AbstractCommandsQuickAccessProvider_1.TFIDF_THRESHOLD).slice(0,AbstractCommandsQuickAccessProvider_1.TFIDF_MAX_RESULTS)}),filteredCommandPicks=[];for(const commandPick of allCommandPicks){const labelHighlights=(_a300=AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter,commandPick.label))!=null?_a300:void 0,aliasHighlights=commandPick.commandAlias&&(_b2=AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter,commandPick.commandAlias))!=null?_b2:void 0;if(labelHighlights||aliasHighlights)commandPick.highlights={label:labelHighlights,detail:this.options.showAlias?aliasHighlights:void 0},filteredCommandPicks.push(commandPick);else if(filter===commandPick.commandId)filteredCommandPicks.push(commandPick);else if(filter.length>=3){const tfidf=runTfidf();if(token.isCancellationRequested)return[];const tfidfScore=tfidf.find(score2=>score2.key===commandPick.commandId);tfidfScore&&(commandPick.tfIdfScore=tfidfScore.score,filteredCommandPicks.push(commandPick))}}const mapLabelToCommand=new Map;for(const commandPick of filteredCommandPicks){const existingCommandForLabel=mapLabelToCommand.get(commandPick.label);existingCommandForLabel?(commandPick.description=commandPick.commandId,existingCommandForLabel.description=existingCommandForLabel.commandId):mapLabelToCommand.set(commandPick.label,commandPick)}filteredCommandPicks.sort((commandPickA,commandPickB)=>{if(commandPickA.tfIdfScore&&commandPickB.tfIdfScore)return commandPickA.tfIdfScore===commandPickB.tfIdfScore?commandPickA.label.localeCompare(commandPickB.label):commandPickB.tfIdfScore-commandPickA.tfIdfScore;if(commandPickA.tfIdfScore)return 1;if(commandPickB.tfIdfScore)return-1;const commandACounter=this.commandsHistory.peek(commandPickA.commandId),commandBCounter=this.commandsHistory.peek(commandPickB.commandId);if(commandACounter&&commandBCounter)return commandACounter>commandBCounter?-1:1;if(commandACounter)return-1;if(commandBCounter)return 1;if(this.options.suggestedCommandIds){const commandASuggestion=this.options.suggestedCommandIds.has(commandPickA.commandId),commandBSuggestion=this.options.suggestedCommandIds.has(commandPickB.commandId);if(commandASuggestion&&commandBSuggestion)return 0;if(commandASuggestion)return-1;if(commandBSuggestion)return 1}return commandPickA.label.localeCompare(commandPickB.label)});const commandPicks=[];let addOtherSeparator=!1,addSuggestedSeparator=!0,addCommonlyUsedSeparator=!!this.options.suggestedCommandIds;for(let i=0;i<filteredCommandPicks.length;i++){const commandPick=filteredCommandPicks[i];i===0&&this.commandsHistory.peek(commandPick.commandId)&&(commandPicks.push({type:"separator",label:localize("recentlyUsed","recently used")}),addOtherSeparator=!0),addSuggestedSeparator&&commandPick.tfIdfScore!==void 0&&(commandPicks.push({type:"separator",label:localize("suggested","similar commands")}),addSuggestedSeparator=!1),addCommonlyUsedSeparator&&commandPick.tfIdfScore===void 0&&!this.commandsHistory.peek(commandPick.commandId)&&((_c=this.options.suggestedCommandIds)!=null&&_c.has(commandPick.commandId))&&(commandPicks.push({type:"separator",label:localize("commonlyUsed","commonly used")}),addOtherSeparator=!0,addCommonlyUsedSeparator=!1),addOtherSeparator&&commandPick.tfIdfScore===void 0&&!this.commandsHistory.peek(commandPick.commandId)&&!((_d=this.options.suggestedCommandIds)!=null&&_d.has(commandPick.commandId))&&(commandPicks.push({type:"separator",label:localize("morecCommands","other commands")}),addOtherSeparator=!1),commandPicks.push(this.toCommandPick(commandPick,runOptions))}return this.hasAdditionalCommandPicks(filter,token)?{picks:commandPicks,additionalPicks:(async()=>{var _a301;const additionalCommandPicks=await this.getAdditionalCommandPicks(allCommandPicks,filteredCommandPicks,filter,token);if(token.isCancellationRequested)return[];const commandPicks2=additionalCommandPicks.map(commandPick=>this.toCommandPick(commandPick,runOptions));return addSuggestedSeparator&&((_a301=commandPicks2[0])==null?void 0:_a301.type)!=="separator"&&commandPicks2.unshift({type:"separator",label:localize("suggested","similar commands")}),commandPicks2})()}:commandPicks}toCommandPick(commandPick,runOptions){if(commandPick.type==="separator")return commandPick;const keybinding=this.keybindingService.lookupKeybinding(commandPick.commandId),ariaLabel=keybinding?localize("commandPickAriaLabelWithKeybinding","{0}, {1}",commandPick.label,keybinding.getAriaLabel()):commandPick.label;return{...commandPick,ariaLabel,detail:this.options.showAlias&&commandPick.commandAlias!==commandPick.label?commandPick.commandAlias:void 0,keybinding,accept:__name(async()=>{var _a300,_b2;this.commandsHistory.push(commandPick.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:commandPick.commandId,from:(_a300=runOptions==null?void 0:runOptions.from)!=null?_a300:"quick open"});try{(_b2=commandPick.args)!=null&&_b2.length?await this.commandService.executeCommand(commandPick.commandId,...commandPick.args):await this.commandService.executeCommand(commandPick.commandId)}catch(error){isCancellationError(error)||this.dialogService.error(localize("canNotRun","Command '{0}' resulted in an error",commandPick.label),toErrorMessage(error))}},"accept")}}getTfIdfChunk({label,commandAlias,commandDescription}){let chunk=label;return commandAlias&&commandAlias!==label&&(chunk+=` - ${commandAlias}`),commandDescription&&commandDescription.value!==label&&(chunk+=` - ${commandDescription.value===commandDescription.original?commandDescription.value:`${commandDescription.value} (${commandDescription.original})`}`),chunk}},__name(_a292,"AbstractCommandsQuickAccessProvider"),AbstractCommandsQuickAccessProvider_1=_a292,_a292.PREFIX=">",_a292.TFIDF_THRESHOLD=.5,_a292.TFIDF_MAX_RESULTS=5,_a292.WORD_FILTER=or(matchesPrefix,matchesWords,matchesContiguousSubString),_a292);AbstractCommandsQuickAccessProvider=AbstractCommandsQuickAccessProvider_1=__decorate$2([__param$2(1,IInstantiationService),__param$2(2,IKeybindingService),__param$2(3,ICommandService),__param$2(4,ITelemetryService),__param$2(5,IDialogService)],AbstractCommandsQuickAccessProvider);var _a293;let CommandsHistory=(_a293=class extends Disposable{constructor(storageService,configurationService,logService){super(),this.storageService=storageService,this.configurationService=configurationService,this.logService=logService,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(e=>{e.reason===WillSaveStateReason.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=CommandsHistory_1.getConfiguredCommandHistoryLength(this.configurationService),CommandsHistory_1.cache&&CommandsHistory_1.cache.limit!==this.configuredCommandsHistoryLength&&(CommandsHistory_1.cache.limit=this.configuredCommandsHistoryLength,CommandsHistory_1.hasChanges=!0))}load(){const raw=this.storageService.get(CommandsHistory_1.PREF_KEY_CACHE,0);let serializedCache;if(raw)try{serializedCache=JSON.parse(raw)}catch(error){this.logService.error(`[CommandsHistory] invalid data: ${error}`)}const cache=CommandsHistory_1.cache=new LRUCache(this.configuredCommandsHistoryLength,1);if(serializedCache){let entries2;serializedCache.usesLRU?entries2=serializedCache.entries:entries2=serializedCache.entries.sort((a,b)=>a.value-b.value),entries2.forEach(entry=>cache.set(entry.key,entry.value))}CommandsHistory_1.counter=this.storageService.getNumber(CommandsHistory_1.PREF_KEY_COUNTER,0,CommandsHistory_1.counter)}push(commandId){CommandsHistory_1.cache&&(CommandsHistory_1.cache.set(commandId,CommandsHistory_1.counter++),CommandsHistory_1.hasChanges=!0)}peek(commandId){var _a300;return(_a300=CommandsHistory_1.cache)==null?void 0:_a300.peek(commandId)}saveState(){if(!CommandsHistory_1.cache||!CommandsHistory_1.hasChanges)return;const serializedCache={usesLRU:!0,entries:[]};CommandsHistory_1.cache.forEach((value,key)=>serializedCache.entries.push({key,value})),this.storageService.store(CommandsHistory_1.PREF_KEY_CACHE,JSON.stringify(serializedCache),0,0),this.storageService.store(CommandsHistory_1.PREF_KEY_COUNTER,CommandsHistory_1.counter,0,0),CommandsHistory_1.hasChanges=!1}static getConfiguredCommandHistoryLength(configurationService){var _a300,_b2;const configuredCommandHistoryLength=(_b2=(_a300=configurationService.getValue().workbench)==null?void 0:_a300.commandPalette)==null?void 0:_b2.history;return typeof configuredCommandHistoryLength=="number"?configuredCommandHistoryLength:CommandsHistory_1.DEFAULT_COMMANDS_HISTORY_LENGTH}},__name(_a293,"CommandsHistory"),CommandsHistory_1=_a293,_a293.DEFAULT_COMMANDS_HISTORY_LENGTH=50,_a293.PREF_KEY_CACHE="commandPalette.mru.cache",_a293.PREF_KEY_COUNTER="commandPalette.mru.counter",_a293.counter=1,_a293.hasChanges=!1,_a293);CommandsHistory=CommandsHistory_1=__decorate$2([__param$2(0,IStorageService),__param$2(1,IConfigurationService),__param$2(2,ILogService)],CommandsHistory);const _AbstractEditorCommandsQuickAccessProvider=class _AbstractEditorCommandsQuickAccessProvider extends AbstractCommandsQuickAccessProvider{constructor(options,instantiationService,keybindingService,commandService,telemetryService,dialogService){super(options,instantiationService,keybindingService,commandService,telemetryService,dialogService)}getCodeEditorCommandPicks(){var _a300;const activeTextEditorControl=this.activeTextEditorControl;if(!activeTextEditorControl)return[];const editorCommandPicks=[];for(const editorAction of activeTextEditorControl.getSupportedActions()){let commandDescription;(_a300=editorAction.metadata)!=null&&_a300.description&&(isLocalizedString(editorAction.metadata.description)?commandDescription=editorAction.metadata.description:commandDescription={original:editorAction.metadata.description,value:editorAction.metadata.description}),editorCommandPicks.push({commandId:editorAction.id,commandAlias:editorAction.alias,commandDescription,label:stripIcons(editorAction.label)||editorAction.id})}return editorCommandPicks}};__name(_AbstractEditorCommandsQuickAccessProvider,"AbstractEditorCommandsQuickAccessProvider");let AbstractEditorCommandsQuickAccessProvider=_AbstractEditorCommandsQuickAccessProvider;var __decorate$1=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param$1=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a294;let StandaloneCommandsQuickAccessProvider=(_a294=class extends AbstractEditorCommandsQuickAccessProvider{get activeTextEditorControl(){var _a300;return(_a300=this.codeEditorService.getFocusedCodeEditor())!=null?_a300:void 0}constructor(instantiationService,codeEditorService,keybindingService,commandService,telemetryService,dialogService){super({showAlias:!1},instantiationService,keybindingService,commandService,telemetryService,dialogService),this.codeEditorService=codeEditorService}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}},__name(_a294,"StandaloneCommandsQuickAccessProvider"),_a294);StandaloneCommandsQuickAccessProvider=__decorate$1([__param$1(0,IInstantiationService),__param$1(1,ICodeEditorService),__param$1(2,IKeybindingService),__param$1(3,ICommandService),__param$1(4,ITelemetryService),__param$1(5,IDialogService)],StandaloneCommandsQuickAccessProvider);const _GotoLineAction=class _GotoLineAction extends EditorAction{constructor(){super({id:_GotoLineAction.ID,label:QuickCommandNLS.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(accessor){accessor.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX)}};__name(_GotoLineAction,"GotoLineAction"),_GotoLineAction.ID="editor.action.quickCommand";let GotoLineAction=_GotoLineAction;registerEditorAction(GotoLineAction);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneCommandsQuickAccessProvider,prefix:StandaloneCommandsQuickAccessProvider.PREFIX,helpEntries:[{description:QuickCommandNLS.quickCommandHelp,commandId:GotoLineAction.ID}]});var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},__param=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}},_a295;let StandaloneReferencesController=(_a295=class extends ReferencesController{constructor(editor2,contextKeyService,editorService,notificationService,instantiationService,storageService,configurationService){super(!0,editor2,contextKeyService,editorService,notificationService,instantiationService,storageService,configurationService)}},__name(_a295,"StandaloneReferencesController"),_a295);StandaloneReferencesController=__decorate([__param(1,IContextKeyService),__param(2,ICodeEditorService),__param(3,INotificationService),__param(4,IInstantiationService),__param(5,IStorageService),__param(6,IConfigurationService)],StandaloneReferencesController);registerEditorContribution(ReferencesController.ID,StandaloneReferencesController,4);const _ToggleHighContrast=class _ToggleHighContrast extends EditorAction{constructor(){super({id:"editor.action.toggleHighContrast",label:ToggleHighContrastNLS.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(accessor,editor2){const standaloneThemeService=accessor.get(IStandaloneThemeService),currentTheme=standaloneThemeService.getColorTheme();isHighContrast(currentTheme.type)?(standaloneThemeService.setTheme(this._originalThemeName||(isDark(currentTheme.type)?VS_DARK_THEME_NAME:VS_LIGHT_THEME_NAME)),this._originalThemeName=null):(standaloneThemeService.setTheme(isDark(currentTheme.type)?HC_BLACK_THEME_NAME:HC_LIGHT_THEME_NAME),this._originalThemeName=currentTheme.themeName)}};__name(_ToggleHighContrast,"ToggleHighContrast");let ToggleHighContrast=_ToggleHighContrast;registerEditorAction(ToggleHighContrast);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a296;exports.ScriptEditorService=(_a296=class extends core.Disposable{constructor(_configService){super();__publicField(this,"_editorInstance",null);this._configService=_configService}setEditorInstance(editor2){return this._editorInstance=editor2,core.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){const config=this._configService.getConfig(PLUGIN_CONFIG_KEY);window.MonacoEnvironment={getWorkerUrl:config==null?void 0:config.getWorkerUrl}}}},__name(_a296,"ScriptEditorService"),_a296);exports.ScriptEditorService=__decorateClass$3([__decorateParam$3(0,core.IConfigService)],exports.ScriptEditorService);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");const IUniscriptExecutionService=core.createIdentifier("univer.uniscript.execution-service");var _a297;let UniscriptExecutionService=(_a297=class extends core.Disposable{constructor(_logService,_injector){super(),this._logService=_logService,this._injector=_injector}async execute(code){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const apiInstance=core.FUniver.newAPI(this._injector),scriptFunction=new Function("univerAPI",`(() => {${code}})()`);try{return scriptFunction(apiInstance),!0}catch(e){return this._logService.error(e),!1}}},__name(_a297,"UniscriptExecutionService"),_a297);UniscriptExecutionService=__decorateClass$2([__decorateParam$2(0,core.ILogService),__decorateParam$2(1,core.Inject(core.Injector))],UniscriptExecutionService);const scriptEditorPanel="univer-script-editor-panel",scriptEditorContent="univer-script-editor-content",scriptEditorActions="univer-script-editor-actions",styles={scriptEditorPanel,scriptEditorContent,scriptEditorActions};function ScriptEditorPanel(){const editorContentRef=require$$0.useRef(null),editorContainerRef=require$$0.useRef(null),monacoEditorRef=require$$0.useRef(null),localeService=core.useDependency(core.LocaleService),shortcutService=core.useDependency(ui.IShortcutService),editorService=core.useDependency(exports.ScriptEditorService);require$$0.useEffect(()=>{const containerElement=editorContainerRef.current,contentElement=editorContentRef.current;let disposableCollection=null,resizeObserver=null;if(containerElement&&contentElement){editorService.requireVscodeEditor();const monacoEditor=monacoEditorRef.current=editor.create(containerElement,{value:"",language:"javascript"});resizeObserver=new ResizeObserver(()=>{let timer=requestIdleCallback(()=>{if(!timer)return;const{height,width:width2}=contentElement.getBoundingClientRect();monacoEditor.layout({width:width2,height}),timer=void 0})}),resizeObserver.observe(contentElement);let terminateEscaping;disposableCollection=new core.DisposableCollection,disposableCollection.add(editorService.setEditorInstance(monacoEditor)),disposableCollection.add(monacoEditor.onDidFocusEditorWidget(()=>{terminateEscaping=shortcutService.forceEscape()})),disposableCollection.add(monacoEditor.onDidBlurEditorWidget(()=>{terminateEscaping==null||terminateEscaping.dispose(),terminateEscaping=void 0})),disposableCollection.add(core.toDisposable(()=>terminateEscaping==null?void 0:terminateEscaping.dispose()))}return()=>{resizeObserver&&contentElement&&resizeObserver.unobserve(contentElement),disposableCollection==null||disposableCollection.dispose()}},[editorService,shortcutService]);const startExecution=useExecution(monacoEditorRef);return jsxRuntimeExports.jsxs("div",{className:styles.scriptEditorPanel,children:[jsxRuntimeExports.jsx("div",{className:styles.scriptEditorContent,ref:editorContentRef,children:jsxRuntimeExports.jsx("div",{className:styles.scriptEditorContainer,ref:editorContainerRef})}),jsxRuntimeExports.jsx("div",{className:styles.scriptEditorActions,children:jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:startExecution,children:localeService.t("script-panel.panel.execute")})})]})}__name(ScriptEditorPanel,"ScriptEditorPanel");function useExecution(monacoEditorRef){const scriptService=core.useDependency(IUniscriptExecutionService),messageService=core.useDependency(ui.IMessageService),localeService=core.useDependency(core.LocaleService);return require$$0.useCallback(()=>{var _a300;const model=(_a300=monacoEditorRef.current)==null?void 0:_a300.getModel();model&&scriptService.execute(model.getValue()).then(()=>{messageService.show({content:localeService.t("uniscript.message.success"),type:design.MessageType.Success})}).catch(()=>{messageService.show({content:localeService.t("uniscript.message.failed"),type:design.MessageType.Error})})},[localeService,messageService,monacoEditorRef,scriptService])}__name(useExecution,"useExecution");function UniscriptMenuItemFactory(accessor){return{id:ToggleScriptPanelOperation.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:ui.MenuItemType.BUTTON,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(UniscriptMenuItemFactory,"UniscriptMenuItemFactory");const menuSchema={[ui.RibbonStartGroup.OTHERS]:{[ToggleScriptPanelOperation.id]:{order:5,menuItemFactory:UniscriptMenuItemFactory}}};var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a298;let UniscriptController=(_a298=class extends core.Disposable{constructor(_menuManagerService,commandService,componentManager){super(),this._menuManagerService=_menuManagerService,this._menuManagerService.mergeMenu(menuSchema),this.disposeWithMe(componentManager.register(ScriptPanelComponentName,ScriptEditorPanel)),this.disposeWithMe(commandService.registerCommand(ToggleScriptPanelOperation))}},__name(_a298,"UniscriptController"),_a298);UniscriptController=__decorateClass$1([__decorateParam$1(0,ui.IMenuManagerService),__decorateParam$1(1,core.ICommandService),__decorateParam$1(2,core.Inject(ui.ComponentManager))],UniscriptController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const PLUGIN_NAME="UNIVER_UNISCRIPT_PLUGIN";var _a299;exports.UniverUniscriptPlugin=(_a299=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_configService){super(),this._config=_config,this._injector=_injector,this._configService=_configService;const{menu,...rest}=this._config;menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(PLUGIN_CONFIG_KEY,rest)}onStarting(){const injector=this._injector;[[UniscriptController],[exports.ScriptEditorService],[ScriptPanelService]].forEach(d=>injector.add(d)),this.registerExecution()}onSteady(){this._injector.get(UniscriptController)}registerExecution(){this._injector.add([IUniscriptExecutionService,{useClass:UniscriptExecutionService}])}},__name(_a299,"UniverUniscriptPlugin"),__publicField(_a299,"pluginName",PLUGIN_NAME),_a299);exports.UniverUniscriptPlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,core.IConfigService)],exports.UniverUniscriptPlugin);exports.IUniscriptExecutionService=IUniscriptExecutionService;exports.ToggleScriptPanelOperation=ToggleScriptPanelOperation;exports.monaco_editor_core_star=monaco_editor_core_star;exports.typescriptDefaults=typescriptDefaults;