define("vs/editor-KLE6jdfb", ["require", "exports","./editorWorkerHost-fVE1cjcC"], (function(require, _,l){"use strict";var Qs,vl,Nh,yl,Ll,Or,os,Pr,Dl,xl,El,Il,Tl,Nl,Rl,Ml,kh,Al,$o,Br,Ol;const eo=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new l.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(o){o=Math.min(Math.max(-5,o),20),this._zoomLevel!==o&&(this._zoomLevel=o,this._onDidChangeZoomLevel.fire(this._zoomLevel))}},DP=l.isMacintosh?1.5:1.35,zb=8;class Ur{static _create(e,t,i,n,s,r,a,c,h){r===0?r=DP*i:r"u"?e:o==="false"?!1:!!o}class se extends Fl{constructor(e,t,i,n=void 0){typeof n<"u"&&(n.type="boolean",n.default=i),super(e,t,i,n)}validate(e){return $(e,this.defaultValue)}}function to(o,e,t,i){if(typeof o=="string"&&(o=parseInt(o,10)),typeof o!="number"||isNaN(o))return e;let n=o;return n=Math.max(t,n),n=Math.min(i,n),n|0}class Ie extends Fl{static clampedInt(e,t,i,n){return to(e,t,i,n)}constructor(e,t,i,n,s,r=void 0){typeof r<"u"&&(r.type="integer",r.default=i,r.minimum=n,r.maximum=s),super(e,t,i,r),this.minimum=n,this.maximum=s}validate(e){return Ie.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}function EP(o,e,t,i){if(typeof o>"u")return e;const n=xi.float(o,e);return xi.clamp(n,t,i)}class xi extends Fl{static clamp(e,t,i){return ei?i:e}static float(e,t){return typeof e=="string"&&(e=parseFloat(e)),typeof e!="number"||isNaN(e)?t:e}constructor(e,t,i,n,s,r,a){typeof s<"u"&&(s.type="number",s.default=i,s.minimum=r,s.maximum=a),super(e,t,i,s),this.validationFn=n,this.minimum=r,this.maximum=a}validate(e){return this.validationFn(xi.float(e,this.defaultValue))}}class si extends Fl{static string(e,t){return typeof e!="string"?t:e}constructor(e,t,i,n=void 0){typeof n<"u"&&(n.type="string",n.default=i),super(e,t,i,n)}validate(e){return si.string(e,this.defaultValue)}}function Fe(o,e,t,i){return typeof o!="string"?e:i&&o in i?i[o]:t.indexOf(o)===-1?e:o}class Ze extends Fl{constructor(e,t,i,n,s=void 0){typeof s<"u"&&(s.type="string",s.enum=n.slice(0),s.default=i),super(e,t,i,s),this._allowedValues=n}validate(e){return Fe(e,this.defaultValue,this._allowedValues)}}class Gh extends Ye{constructor(e,t,i,n,s,r,a=void 0){typeof a<"u"&&(a.type="string",a.enum=s,a.default=n),super(e,t,i,a),this._allowedValues=s,this._convert=r}validate(e){return typeof e!="string"?this.defaultValue:this._allowedValues.indexOf(e)===-1?this.defaultValue:this._convert(e)}}function IP(o){switch(o){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class TP extends Ye{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[l.localize(220,"Use platform APIs to detect when a Screen Reader is attached."),l.localize(221,"Optimize for usage with a Screen Reader."),l.localize(222,"Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:l.localize(223,"Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return i===0?e.accessibilitySupport:i}}class NP extends Ye{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(29,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:l.localize(224,"Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:l.localize(225,"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertSpace:$(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:$(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function RP(o){switch(o){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var vt;(function(o){o[o.Line=1]="Line",o[o.Block=2]="Block",o[o.Underline=3]="Underline",o[o.LineThin=4]="LineThin",o[o.BlockOutline=5]="BlockOutline",o[o.UnderlineThin=6]="UnderlineThin"})(vt||(vt={}));function MD(o){switch(o){case"line":return vt.Line;case"block":return vt.Block;case"underline":return vt.Underline;case"line-thin":return vt.LineThin;case"block-outline":return vt.BlockOutline;case"underline-thin":return vt.UnderlineThin}}class MP extends Go{constructor(){super(162,"")}compute(e,t,i){const n=["monaco-editor"];return t.get(48)&&n.push(t.get(48)),e.extraEditorClassName&&n.push(e.extraEditorClassName),t.get(82)==="default"?n.push("mouse-default"):t.get(82)==="copy"&&n.push("mouse-copy"),t.get(127)&&n.push("showUnused"),t.get(157)&&n.push("showDeprecated"),n.join(" ")}}class AP extends se{constructor(){super(45,"emptySelectionClipboard",!0,{description:l.localize(226,"Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}class OP extends Ye{constructor(){const e={cursorMoveOnType:!0,findOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0,closeOnResult:!1,history:"workspace",replaceHistory:"workspace"};super(50,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:l.localize(227,"Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:e.seedSearchStringFromSelection,enumDescriptions:[l.localize(228,"Never seed search string from the editor selection."),l.localize(229,"Always seed search string from the editor selection, including word at cursor position."),l.localize(230,"Only seed search string from the editor selection.")],description:l.localize(231,"Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[l.localize(232,"Never turn on Find in Selection automatically (default)."),l.localize(233,"Always turn on Find in Selection automatically."),l.localize(234,"Turn on Find in Selection automatically when multiple lines of content are selected.")],description:l.localize(235,"Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:l.localize(236,"Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:l.isMacintosh},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:l.localize(237,"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:e.loop,description:l.localize(238,"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")},"editor.find.closeOnResult":{type:"boolean",default:e.closeOnResult,description:l.localize(239,"Controls whether the Find Widget closes after an explicit find navigation command lands on a result.")},"editor.find.history":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[l.localize(240,"Do not store search history from the find widget."),l.localize(241,"Store search history across the active workspace")],description:l.localize(242,"Controls how the find widget history should be stored")},"editor.find.replaceHistory":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[l.localize(243,"Do not store history from the replace widget."),l.localize(244,"Store replace history across the active workspace")],description:l.localize(245,"Controls how the replace widget history should be stored")},"editor.find.findOnType":{type:"boolean",default:e.findOnType,description:l.localize(246,"Controls whether the Find Widget should search as you type.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{cursorMoveOnType:$(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),findOnType:$(t.findOnType,this.defaultValue.findOnType),seedSearchStringFromSelection:typeof t.seedSearchStringFromSelection=="boolean"?t.seedSearchStringFromSelection?"always":"never":Fe(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof t.autoFindInSelection=="boolean"?t.autoFindInSelection?"always":"never":Fe(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:$(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:$(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:$(t.loop,this.defaultValue.loop),closeOnResult:$(t.closeOnResult,this.defaultValue.closeOnResult),history:Fe(t.history,this.defaultValue.history,["never","workspace"]),replaceHistory:Fe(t.replaceHistory,this.defaultValue.replaceHistory,["never","workspace"])}}}const ko=class ko extends Ye{constructor(){super(60,"fontLigatures",ko.OFF,{anyOf:[{type:"boolean",description:l.localize(247,"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:l.localize(248,"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:l.localize(249,"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"||e.length===0?ko.OFF:e==="true"?ko.ON:e:e?ko.ON:ko.OFF}};ko.OFF='"liga" off, "calt" off',ko.ON='"liga" on, "calt" on';let io=ko;const Fo=class Fo extends Ye{constructor(){super(63,"fontVariations",Fo.OFF,{anyOf:[{type:"boolean",description:l.localize(250,"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:l.localize(251,"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:l.localize(252,"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"?Fo.OFF:e==="true"?Fo.TRANSLATE:e:e?Fo.TRANSLATE:Fo.OFF}compute(e,t,i){return e.fontInfo.fontVariationSettings}};Fo.OFF=ID,Fo.TRANSLATE=TD;let Vb=Fo;class PP extends Go{constructor(){super(59,new Af({pixelRatio:0,fontFamily:"",fontWeight:"",fontSize:0,fontFeatureSettings:"",fontVariationSettings:"",lineHeight:0,letterSpacing:0,isMonospace:!1,typicalHalfwidthCharacterWidth:0,typicalFullwidthCharacterWidth:0,canUseHalfwidthRightwardsArrow:!1,spaceWidth:0,middotWidth:0,wsmiddotWidth:0,maxDigitWidth:0},!1))}compute(e,t,i){return e.fontInfo}}class kP extends Go{constructor(){super(161,vt.Line)}compute(e,t,i){return e.inputMode==="overtype"?t.get(92):t.get(34)}}class FP extends Go{constructor(){super(170,!1)}compute(e,t){return e.editContextSupported&&t.get(44)}}class BP extends Go{constructor(){super(172,!1)}compute(e,t){return e.accessibilitySupport===2?t.get(7):t.get(6)}}class zP extends Fl{constructor(){super(61,"fontSize",Zi.fontSize,{type:"number",minimum:6,maximum:100,default:Zi.fontSize,description:l.localize(253,"Controls the font size in pixels.")})}validate(e){const t=xi.float(e,this.defaultValue);return t===0?Zi.fontSize:xi.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}const Zs=class Zs extends Ye{constructor(){super(62,"fontWeight",Zi.fontWeight,{anyOf:[{type:"number",minimum:Zs.MINIMUM_VALUE,maximum:Zs.MAXIMUM_VALUE,errorMessage:l.localize(254,'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:Zs.SUGGESTION_VALUES}],default:Zi.fontWeight,description:l.localize(255,'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return e==="normal"||e==="bold"?e:String(Ie.clampedInt(e,Zi.fontWeight,Zs.MINIMUM_VALUE,Zs.MAXIMUM_VALUE))}};Zs.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],Zs.MINIMUM_VALUE=1,Zs.MAXIMUM_VALUE=1e3;let Ub=Zs;class VP extends Ye{constructor(){const e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",multipleTests:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:"",alternativeTestsCommand:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[l.localize(256,"Show Peek view of the results (default)"),l.localize(257,"Go to the primary result and show a Peek view"),l.localize(258,"Go to the primary result and enable Peek-less navigation to others")]},i=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(67,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:l.localize(259,"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:l.localize(260,"Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleTypeDefinitions":{description:l.localize(261,"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleDeclarations":{description:l.localize(262,"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleImplementations":{description:l.localize(263,"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleReferences":{description:l.localize(264,"Controls the behavior the 'Go to References'-command when multiple target locations exist."),...t},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:i,description:l.localize(265,"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,enum:i,description:l.localize(266,"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,enum:i,description:l.localize(267,"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,enum:i,description:l.localize(268,"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,enum:i,description:l.localize(269,"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{multiple:Fe(t.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:Fe(t.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:Fe(t.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:Fe(t.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:Fe(t.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:Fe(t.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:Fe(t.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:si.string(t.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:si.string(t.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:si.string(t.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:si.string(t.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:si.string(t.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:si.string(t.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}}class UP extends Ye{constructor(){const e={enabled:"on",delay:300,hidingDelay:300,sticky:!0,above:!0,showLongLineWarning:!0};super(69,"hover",e,{"editor.hover.enabled":{type:"string",enum:["on","off","onKeyboardModifier"],default:e.enabled,markdownEnumDescriptions:[l.localize(270,"Hover is enabled."),l.localize(271,"Hover is disabled."),l.localize(272,"Hover is shown when holding `{0}` or `Alt` (the opposite modifier of `#editor.multiCursorModifier#`)",l.isMacintosh?"Command":"Control")],description:l.localize(273,"Controls whether the hover is shown."),keywords:["hint","info","tooltip"]},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:l.localize(274,"Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:l.localize(275,"Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:e.hidingDelay,markdownDescription:l.localize(276,"Controls the delay in milliseconds after which the hover is hidden. Requires `#editor.hover.sticky#` to be enabled.")},"editor.hover.above":{type:"boolean",default:e.above,description:l.localize(277,"Prefer showing hovers above the line, if there's space.")},"editor.hover.showLongLineWarning":{type:"boolean",default:e.showLongLineWarning,description:l.localize(278,"Controls whether long line warning hovers are shown, such as when tokenization is skipped or rendering is paused.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Fe(t.enabled,this.defaultValue.enabled,["on","off","onKeyboardModifier"]),delay:Ie.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:$(t.sticky,this.defaultValue.sticky),hidingDelay:Ie.clampedInt(t.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:$(t.above,this.defaultValue.above),showLongLineWarning:$(t.showLongLineWarning,this.defaultValue.showLongLineWarning)}}}class Bl extends Go{constructor(){super(165,{width:0,height:0,glyphMarginLeft:0,glyphMarginWidth:0,glyphMarginDecorationLaneCount:0,lineNumbersLeft:0,lineNumbersWidth:0,decorationsLeft:0,decorationsWidth:0,contentLeft:0,contentWidth:0,minimap:{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:0,minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:0},viewportColumn:0,isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1,verticalScrollbarWidth:0,horizontalScrollbarHeight:0,overviewRuler:{top:0,width:0,height:0,right:0}})}compute(e,t,i){return Bl.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=Math.floor(e.paddingTop/e.lineHeight);let n=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(n=Math.max(n,t-1));const s=(i+e.viewLineCount+n)/(e.pixelRatio*e.height),r=Math.floor(e.viewLineCount/s);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:i,extraLinesBeyondLastLine:n,desiredRatio:s,minimapLineCount:r}}static _computeMinimapLayout(e,t){const i=e.outerWidth,n=e.outerHeight,s=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(s*n),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:n};const r=t.stableMinimapLayoutInput,a=r&&e.outerHeight===r.outerHeight&&e.lineHeight===r.lineHeight&&e.typicalHalfwidthCharacterWidth===r.typicalHalfwidthCharacterWidth&&e.pixelRatio===r.pixelRatio&&e.scrollBeyondLastLine===r.scrollBeyondLastLine&&e.paddingTop===r.paddingTop&&e.paddingBottom===r.paddingBottom&&e.minimap.enabled===r.minimap.enabled&&e.minimap.side===r.minimap.side&&e.minimap.size===r.minimap.size&&e.minimap.showSlider===r.minimap.showSlider&&e.minimap.renderCharacters===r.minimap.renderCharacters&&e.minimap.maxColumn===r.minimap.maxColumn&&e.minimap.scale===r.minimap.scale&&e.verticalScrollbarWidth===r.verticalScrollbarWidth&&e.isViewportWrapping===r.isViewportWrapping,c=e.lineHeight,h=e.typicalHalfwidthCharacterWidth,d=e.scrollBeyondLastLine,u=e.minimap.renderCharacters;let f=s>=2?Math.round(e.minimap.scale*2):e.minimap.scale;const g=e.minimap.maxColumn,m=e.minimap.size,p=e.minimap.side,b=e.verticalScrollbarWidth,v=e.viewLineCount,C=e.remainingWidth,w=e.isViewportWrapping,S=u?2:3;let L=Math.floor(s*n);const D=L/s;let x=!1,I=!1,T=S*f,M=f/s,O=1;if(m==="fill"||m==="fit"){const{typicalViewportLineCount:re,extraLinesBeforeFirstLine:Y,extraLinesBeyondLastLine:ee,desiredRatio:Ee,minimapLineCount:Rt}=Bl.computeContainedMinimapLineCount({viewLineCount:v,scrollBeyondLastLine:d,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:n,lineHeight:c,pixelRatio:s});if(v/Rt>1)x=!0,I=!0,f=1,T=1,M=f/s;else{let Ke=!1,Mt=f+1;if(m==="fit"){const Ce=Math.ceil((Y+v+ee)*T);w&&a&&C<=t.stableFitRemainingWidth?(Ke=!0,Mt=t.stableFitMaxMinimapScale):Ke=Ce>L}if(m==="fill"||Ke){x=!0;const Ce=f;T=Math.min(c*s,Math.max(1,Math.floor(1/Ee))),w&&a&&C<=t.stableFitRemainingWidth&&(Mt=t.stableFitMaxMinimapScale),f=Math.min(Mt,Math.max(1,Math.floor(T/S))),f>Ce&&(O=Math.min(2,f/Ce)),M=f/s/O,L=Math.ceil(Math.max(re,Y+v+ee)*T),w?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=C,t.stableFitMaxMinimapScale=f):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const P=Math.floor(g*M),k=Math.min(P,Math.max(0,Math.floor((C-b-2)*M/(h+M)))+ls);let U=Math.floor(s*k);const B=U/s;U=Math.floor(U*O);const G=u?1:2,X=p==="left"?0:i-k-b;return{renderMinimap:G,minimapLeft:X,minimapWidth:k,minimapHeightIsEditorHeight:x,minimapIsSampling:I,minimapScale:f,minimapLineHeight:T,minimapCanvasInnerWidth:U,minimapCanvasInnerHeight:L,minimapCanvasOuterWidth:B,minimapCanvasOuterHeight:D}}static computeLayout(e,t){const i=t.outerWidth|0,n=t.outerHeight|0,s=t.lineHeight|0,r=t.lineNumbersDigitCount|0,a=t.typicalHalfwidthCharacterWidth,c=t.maxDigitWidth,h=t.pixelRatio,d=t.viewLineCount,u=e.get(154),f=u==="inherit"?e.get(153):u,g=f==="inherit"?e.get(149):f,m=e.get(152),p=t.isDominatedByLongLines,b=e.get(66),v=e.get(76).renderType!==0,C=e.get(77),w=e.get(119),S=e.get(96),L=e.get(81),D=e.get(117),x=D.verticalScrollbarSize,I=D.verticalHasArrows,T=D.arrowSize,M=D.horizontalScrollbarSize,O=e.get(52),P=e.get(126)!=="never";let k=e.get(74);O&&P&&(k+=16);let U=0;if(v){const Me=Math.max(r,C);U=Math.round(Me*c)}let B=0;b&&(B=s*t.glyphMarginDecorationLaneCount);let G=0,X=G+B,re=X+U,Y=re+k;const ee=i-B-U-k;let Ee=!1,Rt=!1,We=-1;e.get(2)===2&&f==="inherit"&&p?(Ee=!0,Rt=!0):g==="on"||g==="bounded"?Rt=!0:g==="wordWrapColumn"&&(We=m);const Ke=Bl._computeMinimapLayout({outerWidth:i,outerHeight:n,lineHeight:s,typicalHalfwidthCharacterWidth:a,pixelRatio:h,scrollBeyondLastLine:w,paddingTop:S.top,paddingBottom:S.bottom,minimap:L,verticalScrollbarWidth:x,viewLineCount:d,remainingWidth:ee,isViewportWrapping:Rt},t.memory||new RD);Ke.renderMinimap!==0&&Ke.minimapLeft===0&&(G+=Ke.minimapWidth,X+=Ke.minimapWidth,re+=Ke.minimapWidth,Y+=Ke.minimapWidth);const Mt=ee-Ke.minimapWidth,Ce=Math.max(1,Math.floor((Mt-x-2)/a)),Jt=I?T:0;return Rt&&(We=Math.max(1,Ce),g==="bounded"&&(We=Math.min(We,m))),{width:i,height:n,glyphMarginLeft:G,glyphMarginWidth:B,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:X,lineNumbersWidth:U,decorationsLeft:re,decorationsWidth:k,contentLeft:Y,contentWidth:Mt,minimap:Ke,viewportColumn:Ce,isWordWrapMinified:Ee,isViewportWrapping:Rt,wrappingColumn:We,verticalScrollbarWidth:x,horizontalScrollbarHeight:M,overviewRuler:{top:Jt,width:x,height:n-2*Jt,right:0}}}}class $P extends Ye{constructor(){super(156,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[l.localize(279,"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),l.localize(280,"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:l.localize(281,"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(e){return Fe(e,"simple",["simple","advanced"])}compute(e,t,i){return t.get(2)===2?"advanced":i}}_.ShowLightbulbIconMode=void 0,(function(o){o.Off="off",o.OnCode="onCode",o.On="on"})(_.ShowLightbulbIconMode||(_.ShowLightbulbIconMode={}));class KP extends Ye{constructor(){const e={enabled:_.ShowLightbulbIconMode.OnCode};super(73,"lightbulb",e,{"editor.lightbulb.enabled":{type:"string",enum:[_.ShowLightbulbIconMode.Off,_.ShowLightbulbIconMode.OnCode,_.ShowLightbulbIconMode.On],default:e.enabled,enumDescriptions:[l.localize(282,"Disable the code action menu."),l.localize(283,"Show the code action menu when the cursor is on lines with code."),l.localize(284,"Show the code action menu when the cursor is on lines with code or on empty lines.")],description:l.localize(285,"Enables the Code Action lightbulb in the editor.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:Fe(e.enabled,this.defaultValue.enabled,[_.ShowLightbulbIconMode.Off,_.ShowLightbulbIconMode.OnCode,_.ShowLightbulbIconMode.On])}}}class GP extends Ye{constructor(){const e={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(131,"stickyScroll",e,{"editor.stickyScroll.enabled":{type:"boolean",default:e.enabled,description:l.localize(286,"Shows the nested current scopes during the scroll at the top of the editor.")},"editor.stickyScroll.maxLineCount":{type:"number",default:e.maxLineCount,minimum:1,maximum:20,description:l.localize(287,"Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:e.defaultModel,description:l.localize(288,"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:e.scrollWithEditor,description:l.localize(289,"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:$(t.enabled,this.defaultValue.enabled),maxLineCount:Ie.clampedInt(t.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:Fe(t.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:$(t.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class jP extends Ye{constructor(){const e={enabled:"on",fontSize:0,fontFamily:"",padding:!1,maximumLength:43};super(159,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:l.localize(290,"Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[l.localize(291,"Inlay hints are enabled"),l.localize(292,"Inlay hints are showing by default and hide when holding {0}",l.isMacintosh?"Ctrl+Option":"Ctrl+Alt"),l.localize(293,"Inlay hints are hidden by default and show when holding {0}",l.isMacintosh?"Ctrl+Option":"Ctrl+Alt"),l.localize(294,"Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:l.localize(295,"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:e.fontFamily,markdownDescription:l.localize(296,"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:e.padding,description:l.localize(297,"Enables the padding around the inlay hints in the editor.")},"editor.inlayHints.maximumLength":{type:"number",default:e.maximumLength,markdownDescription:l.localize(298,"Maximum overall length of inlay hints, for a single line, before they get truncated by the editor. Set to `0` to never truncate")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return typeof t.enabled=="boolean"&&(t.enabled=t.enabled?"on":"off"),{enabled:Fe(t.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:Ie.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:si.string(t.fontFamily,this.defaultValue.fontFamily),padding:$(t.padding,this.defaultValue.padding),maximumLength:Ie.clampedInt(t.maximumLength,this.defaultValue.maximumLength,0,Number.MAX_SAFE_INTEGER)}}}class qP extends Ye{constructor(){super(74,"lineDecorationsWidth",10)}validate(e){return typeof e=="string"&&/^\d+(\.\d+)?ch$/.test(e)?-parseFloat(e.substring(0,e.length-2)):Ie.clampedInt(e,this.defaultValue,0,1e3)}compute(e,t,i){return i<0?Ie.clampedInt(-i*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):i}}class YP extends xi{constructor(){super(75,"lineHeight",Zi.lineHeight,e=>xi.clamp(e,0,150),{markdownDescription:l.localize(299,`Controls the line height. - Use 0 to automatically compute the line height from the font size. - Values between 0 and 8 will be used as a multiplier with the font size. - Values greater than or equal to 8 will be used as effective values.`)},0,150)}compute(e,t,i){return e.fontInfo.lineHeight}}class ZP extends Ye{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:"none",renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,markSectionHeaderRegex:"\\bMARK:\\s*(?-?)\\s*(?