monaco-editor
Version:
A browser based code editor
4 lines • 2.39 MB
JavaScript
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<zb&&(r=r*i),r=Math.round(r),r<zb&&(r=zb);const d=1+(h?0:eo.getZoomLevel()*.1);return i*=d,r*=d,s===TD&&(t==="normal"||t==="bold"?s=ID:(s=`'wght' ${parseInt(t,10)}`,t="normal")),new Ur({pixelRatio:c,fontFamily:e,fontWeight:t,fontSize:i,fontFeatureSettings:n,fontVariationSettings:s,lineHeight:r,letterSpacing:a})}constructor(e){this._bareFontInfoBrand=void 0,this.pixelRatio=e.pixelRatio,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.fontFeatureSettings=e.fontFeatureSettings,this.fontVariationSettings=e.fontVariationSettings,this.lineHeight=e.lineHeight|0,this.letterSpacing=e.letterSpacing}getId(){return`${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`}getMassagedFontFamily(){const e=Zi.fontFamily,t=Ur._wrapInQuotes(this.fontFamily);return this.fontFamily!==e?`${t}, ${e}`:t}static _wrapInQuotes(e){return/[,"']/.test(e)?e:/[+ ]/.test(e)?`"${e}"`:e}}const xP=2;class Af extends Ur{constructor(e,t){super(e),this._editorStylingBrand=void 0,this.version=xP,this.isTrusted=t,this.isMonospace=e.isMonospace,this.typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this.typicalFullwidthCharacterWidth=e.typicalFullwidthCharacterWidth,this.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,this.spaceWidth=e.spaceWidth,this.middotWidth=e.middotWidth,this.wsmiddotWidth=e.wsmiddotWidth,this.maxDigitWidth=e.maxDigitWidth}equals(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.fontVariationSettings===e.fontVariationSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.maxDigitWidth===e.maxDigitWidth}}const ID="normal",TD="translate",Zi={fontFamily:l.isMacintosh?"Menlo, Monaco, 'Courier New', monospace":l.isWindows?"Consolas, 'Courier New', monospace":"'Droid Sans Mono', monospace",fontWeight:"normal",fontSize:l.isMacintosh?12:14,lineHeight:0,letterSpacing:0},zt={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},ls=8;class ND{constructor(e){this._values=e}hasChanged(e){return this._values[e]}}class RD{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class Ye{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}applyUpdate(e,t){return Of(e,t)}compute(e,t,i){return i}}class Kh{constructor(e,t){this.newValue=e,this.didChange=t}}function Of(o,e){if(typeof o!="object"||typeof e!="object"||!o||!e)return new Kh(e,o!==e);if(Array.isArray(o)||Array.isArray(e)){const i=Array.isArray(o)&&Array.isArray(e)&&l.equals(o,e);return new Kh(e,!i)}let t=!1;for(const i in e)if(e.hasOwnProperty(i)){const n=Of(o[i],e[i]);n.didChange&&(o[i]=n.newValue,t=!0)}return new Kh(o,t)}class Go{constructor(e,t){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=t}applyUpdate(e,t){return Of(e,t)}validate(e){return this.defaultValue}}class Fl{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}applyUpdate(e,t){return Of(e,t)}compute(e,t,i){return i}}function $(o,e){return typeof o>"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 e<t?t:e>i?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*(?<separator>-?)\\s*(?<label>.*)$",sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(81,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:l.localize(300,"Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"string",enum:["none","mouseover","scroll"],enumDescriptions:[l.localize(301,"The minimap is always shown."),l.localize(302,"The minimap is hidden when mouse is not over the minimap and shown when mouse is over the minimap."),l.localize(303,"The minimap is only shown when the editor is scrolled")],default:e.autohide,description:l.localize(304,"Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[l.localize(305,"The minimap has the same size as the editor contents (and might scroll)."),l.localize(306,"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),l.localize(307,"The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:l.localize(308,"Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:l.localize(309,"Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:l.localize(310,"Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:l.localize(311,"Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:l.localize(312,"Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:l.localize(313,"Limit the width of the minimap to render at most a certain number of columns.")},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:e.showRegionSectionHeaders,description:l.localize(314,"Controls whether named regions are shown as section headers in the minimap.")},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:e.showMarkSectionHeaders,description:l.localize(315,"Controls whether MARK: comments are shown as section headers in the minimap.")},"editor.minimap.markSectionHeaderRegex":{type:"string",default:e.markSectionHeaderRegex,description:l.localize(316,"Defines the regular expression used to find section headers in comments. The regex must contain a named match group `label` (written as `(?<label>.+)`) that encapsulates the section header, otherwise it will not work. Optionally you can include another match group named `separator`. Use \\n in the pattern to match multi-line headers.")},"editor.minimap.sectionHeaderFontSize":{type:"number",default:e.sectionHeaderFontSize,description:l.localize(317,"Controls the font size of section headers in the minimap.")},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:e.sectionHeaderLetterSpacing,description:l.localize(318,"Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;let i=this.defaultValue.markSectionHeaderRegex;const n=t.markSectionHeaderRegex;if(typeof n=="string")try{new RegExp(n,"d"),i=n}catch{}return{enabled:$(t.enabled,this.defaultValue.enabled),autohide:Fe(t.autohide,this.defaultValue.autohide,["none","mouseover","scroll"]),size:Fe(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:Fe(t.side,this.defaultValue.side,["right","left"]),showSlider:Fe(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:$(t.renderCharacters,this.defaultValue.renderCharacters),scale:Ie.clampedInt(t.scale,1,1,3),maxColumn:Ie.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:$(t.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:$(t.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),markSectionHeaderRegex:i,sectionHeaderFontSize:xi.clamp(xi.float(t.sectionHeaderFontSize,this.defaultValue.sectionHeaderFontSize),4,32),sectionHeaderLetterSpacing:xi.clamp(xi.float(t.sectionHeaderLetterSpacing,this.defaultValue.sectionHeaderLetterSpacing),0,5)}}}function QP(o){return o==="ctrlCmd"?l.isMacintosh?"metaKey":"ctrlKey":"altKey"}class XP extends Ye{constructor(){super(96,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:l.localize(319,"Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:l.localize(320,"Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{top:Ie.clampedInt(t.top,0,0,1e3),bottom:Ie.clampedInt(t.bottom,0,0,1e3)}}}class JP extends Ye{constructor(){const e={enabled:!0,cycle:!0};super(98,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:l.localize(321,"Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:l.localize(322,"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:$(t.enabled,this.defaultValue.enabled),cycle:$(t.cycle,this.defaultValue.cycle)}}}class WP extends Go{constructor(){super(163,1)}compute(e,t,i){return e.pixelRatio}}class HP extends Ye{constructor(){super(100,"placeholder",void 0)}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e:this.defaultValue}}class ek extends Ye{constructor(){const e={other:"offWhenInlineCompletions",comments:"off",strings:"off"},t=[{type:"boolean"},{type:"string",enum:["on","inline","off","offWhenInlineCompletions"],enumDescriptions:[l.localize(323,"Quick suggestions show inside the suggest widget"),l.localize(324,"Quick suggestions show as ghost text"),l.localize(325,"Quick suggestions are disabled"),l.localize(326,"Quick suggestions are disabled when inline completions are showing")]}];super(102,"quickSuggestions",e,{anyOf:[{type:"boolean"},{type:"string",enum:["on","inline","off","offWhenInlineCompletions"],enumDescriptions:[l.localize(327,"Quick suggestions are enabled for all token types"),l.localize(328,"Quick suggestions show as ghost text for all token types"),l.localize(329,"Quick suggestions are disabled for all token types"),l.localize(330,"Quick suggestions are disabled for all token types when inline completions are showing")]},{type:"object",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:l.localize(331,"Enable quick suggestions inside strings.")},comments:{anyOf:t,default:e.comments,description:l.localize(332,"Enable quick suggestions inside comments.")},other:{anyOf:t,default:e.other,description:l.localize(333,"Enable quick suggestions outside of strings and comments.")}}}],default:e,markdownDescription:l.localize(334,"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the {0}-setting which controls if suggestions are triggered by special characters.","`#editor.suggestOnTriggerCharacters#`"),experiment:{mode:"auto"}}),this.defaultValue=e}validate(e){if(typeof e=="boolean"){const h=e?"on":"off";return{comments:h,strings:h,other:h}}if(typeof e=="string"){const h=["on","inline","off","offWhenInlineCompletions"],d=Fe(e,this.defaultValue.other,h);return{comments:d,strings:d,other:d}}if(!e||typeof e!="object")return this.defaultValue;const{other:t,comments:i,strings:n}=e,s=["on","inline","off","offWhenInlineCompletions"];let r,a,c;return typeof t=="boolean"?r=t?"on":"off":r=Fe(t,this.defaultValue.other,s),typeof i=="boolean"?a=i?"on":"off":a=Fe(i,this.defaultValue.comments,s),typeof n=="boolean"?c=n?"on":"off":c=Fe(n,this.defaultValue.strings,s),{other:r,comments:a,strings:c}}}class tk extends Ye{constructor(){super(76,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[l.localize(335,"Line numbers are not rendered."),l.localize(336,"Line numbers are rendered as absolute number."),l.localize(337,"Line numbers are rendered as distance in lines to cursor position."),l.localize(338,"Line numbers are rendered every 10 lines.")],default:"on",description:l.localize(339,"Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return typeof e<"u"&&(typeof e=="function"?(t=4,i=e):e==="interval"?t=3:e==="relative"?t=2:e==="on"?t=1:t=0),{renderType:t,renderFn:i}}}function Pf(o){const e=o.get(112);return e==="editable"?o.get(104):e!=="on"}function kf(o){return!o.get(172)}class ik extends Ye{constructor(){const e=[],t={type:"number",description:l.localize(340,"Number of monospace characters at which this editor ruler will render.")};super(116,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:l.localize(341,"Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:l.localize(342,"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(e){if(Array.isArray(e)){const t=[];for(const i of e)if(typeof i=="number")t.push({column:Ie.clampedInt(i,0,0,1e4),color:null});else if(i&&typeof i=="object"){const n=i;t.push({column:Ie.clampedInt(n.column,0,0,1e4),color:n.color})}return t.sort((i,n)=>i.column-n.column),t}return this.defaultValue}}class nk extends Ye{constructor(){super(105,"readOnlyMessage",void 0)}validate(e){return!e||typeof e!="object"?this.defaultValue:e}}function AD(o,e){if(typeof o!="string")return e;switch(o){case"hidden":return 2;case"visible":return 3;default:return 1}}let sk=class extends Ye{constructor(){const e={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(117,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[l.localize(343,"The vertical scrollbar will be visible only when necessary."),l.localize(344,"The vertical scrollbar will always be visible."),l.localize(345,"The vertical scrollbar will always be hidden.")],default:"auto",description:l.localize(346,"Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[l.localize(347,"The horizontal scrollbar will be visible only when necessary."),l.localize(348,"The horizontal scrollbar will always be visible."),l.localize(349,"The horizontal scrollbar will always be hidden.")],default:"auto",description:l.localize(350,"Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:l.localize(351,"The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:l.localize(352,"The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:l.localize(353,"Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:e.ignoreHorizontalScrollbarInContentHeight,description:l.localize(354,"When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e,i=Ie.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),n=Ie.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:Ie.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:AD(t.vertical,this.defaultValue.vertical),horizontal:AD(t.horizontal,this.defaultValue.horizontal),useShadows:$(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:$(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:$(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:$(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:$(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:Ie.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:n,verticalSliderSize:Ie.clampedInt(t.verticalSliderSize,n,0,1e3),scrollByPage:$(t.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:$(t.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}};const Mn="inUntrustedWorkspace",jo={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHigh