yanzi-monaco-editor
Version:
这是一个基于微软的monaco和vue封装的一个代码编辑器,浏览器可运行。主要功能有:html、javascript、css代码编辑,高亮显示,语法错误提示等,可以帮您的项目很快的拥有一个web端的代码编辑器
1 lines • 3.28 MB
JavaScript
(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["yanziMonacoEditor"]=t(require("vue")):e["yanziMonacoEditor"]=t(e["Vue"])})("undefined"!==typeof self?self:this,(function(e){return function(e){function t(t){for(var i,o,s=t[0],r=t[1],a=0,l=[];a<s.length;a++)o=s[a],Object.prototype.hasOwnProperty.call(n,o)&&n[o]&&l.push(n[o][0]),n[o]=0;for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i]);c&&c(t);while(l.length)l.shift()()}var i={},n={2:0};function o(e){return s.p+"yanziMonacoEditor.umd.min."+({}[e]||e)+".js"}function s(t){if(i[t])return i[t].exports;var n=i[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,s),n.l=!0,n.exports}s.e=function(e){var t=[],i=n[e];if(0!==i)if(i)t.push(i[2]);else{var r=new Promise((function(t,o){i=n[e]=[t,o]}));t.push(i[2]=r);var a,l=document.createElement("script");l.charset="utf-8",l.timeout=120,s.nc&&l.setAttribute("nonce",s.nc),l.src=o(e);var c=new Error;a=function(t){l.onerror=l.onload=null,clearTimeout(d);var i=n[e];if(0!==i){if(i){var o=t&&("load"===t.type?"missing":t.type),s=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+o+": "+s+")",c.name="ChunkLoadError",c.type=o,c.request=s,i[1](c)}n[e]=void 0}};var d=setTimeout((function(){a({type:"timeout",target:l})}),12e4);l.onerror=l.onload=a,document.head.appendChild(l)}return Promise.all(t)},s.m=e,s.c=i,s.d=function(e,t,i){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},s.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)s.d(i,n,function(t){return e[t]}.bind(null,n));return i},s.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="",s.oe=function(e){throw console.error(e),e};var r=("undefined"!==typeof self?self:this)["webpackJsonpyanziMonacoEditor"]=("undefined"!==typeof self?self:this)["webpackJsonpyanziMonacoEditor"]||[],a=r.push.bind(r);r.push=t,r=r.slice();for(var l=0;l<r.length;l++)t(r[l]);var c=a;return s(s.s="3e6d")}({"012d":function(e,t,i){"use strict";var n;i.d(t,"b",(function(){return n})),i.d(t,"a",(function(){return o})),i.d(t,"c",(function(){return r})),i.d(t,"d",(function(){return a})),function(e){function t(t){return t[e.DI_DEPENDENCIES]||[]}e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies",e.getServiceDependencies=t}(n||(n={}));const o=r("instantiationService");function s(e,t,i,o){t[n.DI_TARGET]===t?t[n.DI_DEPENDENCIES].push({id:e,index:i,optional:o}):(t[n.DI_DEPENDENCIES]=[{id:e,index:i,optional:o}],t[n.DI_TARGET]=t)}function r(e){if(n.serviceIds.has(e))return n.serviceIds.get(e);const t=function(e,i,n){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");s(t,e,n,!1)};return t.toString=()=>e,n.serviceIds.set(e,t),t}function a(e){return function(t,i,n){if(3!==arguments.length)throw new Error("@optional-decorator can only be used to decorate a parameter");s(e,t,n,!0)}}},"017f":function(e,t,i){"use strict";function n(e,t){let i=e.getCount(),n=e.findTokenIndexAtOffset(t),s=e.getLanguageId(n),r=n;while(r+1<i&&e.getLanguageId(r+1)===s)r++;let a=n;while(a>0&&e.getLanguageId(a-1)===s)a--;return new o(e,s,a,r+1,e.getStartOffset(a),e.getEndOffset(r))}i.d(t,"a",(function(){return n})),i.d(t,"b",(function(){return s}));class o{constructor(e,t,i,n,o,s){this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=n,this.firstCharOffset=o,this._lastCharOffset=s}getLineContent(){const e=this._actual.getLineContent();return e.substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(e){const t=this._actual.getLineContent();return t.substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}}function s(e){return 0!==(7&e)}},"0248":function(e,t,i){"use strict";i.r(t);var n=i("e847"),o=i("cba3"),s=i("4a66"),r=i("e3ad"),a=i("3658"),l=i("63d8"),c=i("b33f"),d=i("ea0d"),h=i("db1e"),u=i("4597"),p=i("35fc"),f=i("e624"),g=i("217b"),m=i("484b"),b=i("20cd"),_=i("4f24"),v=i("012d"),C=i("80e8"),y=i("e0ca"),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},S=function(e,t){return function(i,n){t(i,n,e)}},x=function(e,t,i,n){function o(e){return e instanceof i?e:new i((function(t){t(e)}))}return new(i||(i=Promise))((function(i,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n["throw"](e))}catch(t){s(t)}}function l(e){e.done?i(e.value):o(e.value).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let k=class{constructor(e,t){this._workerService=t,this._callOnDispose=new r["b"],this._callOnModel=new r["b"],this._editor=e,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(u["v"].onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){if(this._callOnModel.clear(),!this._editor.getOption(43))return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=u["v"].ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;let i=new c["b"];for(let n of t.autoFormatTriggerCharacters)i.add(n.charCodeAt(0));this._callOnModel.add(this._editor.onDidType(e=>{let t=e.charCodeAt(e.length-1);i.has(t)&&this._trigger(String.fromCharCode(t))}))}_trigger(e){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1)return;const t=this._editor.getModel(),i=this._editor.getPosition();let o=!1;const s=this._editor.onDidChangeModelContent(e=>{if(e.isFlush)return o=!0,void s.dispose();for(let t=0,n=e.changes.length;t<n;t++){const n=e.changes[t];if(n.range.endLineNumber<=i.lineNumber)return o=!0,void s.dispose()}});Object(f["e"])(this._workerService,t,i,e,t.getFormattingOptions()).then(e=>{s.dispose(),o||Object(n["m"])(e)&&(g["a"].execute(this._editor,e,!0),Object(f["b"])(e))},e=>{throw s.dispose(),e})}};k.ID="editor.contrib.autoFormat",k=w([S(1,p["a"])],k);let D=class{constructor(e,t){this.editor=e,this._instantiationService=t,this._callOnDispose=new r["b"],this._callOnModel=new r["b"],this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(u["j"].onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(42)&&this.editor.hasModel()&&u["j"].has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(f["c"],this.editor,e,2,y["b"].None,o["a"].None).catch(C["e"]))}};D.ID="editor.contrib.formatOnPaste",D=w([S(1,v["a"])],D);class L extends a["b"]{constructor(){super({id:"editor.action.formatDocument",label:m["a"]("formatDocument.label","Format Document"),alias:"Format Document",precondition:_["a"].and(h["a"].notInCompositeEditor,h["a"].writable,h["a"].hasDocumentFormattingProvider),kbOpts:{kbExpr:h["a"].editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}run(e,t){return x(this,void 0,void 0,(function*(){if(t.hasModel()){const i=e.get(v["a"]),n=e.get(y["a"]);yield n.showWhile(i.invokeFunction(f["d"],t,1,y["b"].None,o["a"].None),250)}}))}}class O extends a["b"]{constructor(){super({id:"editor.action.formatSelection",label:m["a"]("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:_["a"].and(h["a"].writable,h["a"].hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:h["a"].editorTextFocus,primary:Object(s["a"])(2089,2084),weight:100},contextMenuOpts:{when:h["a"].hasNonEmptySelection,group:"1_modification",order:1.31}})}run(e,t){return x(this,void 0,void 0,(function*(){if(!t.hasModel())return;const i=e.get(v["a"]),n=t.getModel(),s=t.getSelections().map(e=>e.isEmpty()?new d["a"](e.startLineNumber,1,e.startLineNumber,n.getLineMaxColumn(e.startLineNumber)):e),r=e.get(y["a"]);yield r.showWhile(i.invokeFunction(f["c"],t,s,1,y["b"].None,o["a"].None),250)}))}}Object(a["l"])(k.ID,k),Object(a["l"])(D.ID,D),Object(a["j"])(L),Object(a["j"])(O),b["a"].registerCommand("editor.action.format",e=>x(void 0,void 0,void 0,(function*(){const t=e.get(l["a"]).getFocusedCodeEditor();if(!t||!t.hasModel())return;const i=e.get(b["b"]);t.getSelection().isEmpty()?yield i.executeCommand("editor.action.formatDocument"):yield i.executeCommand("editor.action.formatSelection")})))},"0287":function(e,t,i){"use strict";i.d(t,"a",(function(){return ue}));i("df38");var n,o=i("484b"),s=i("98ac"),r=i("8043"),a=i("b467"),l=i("8879"),c=i("77cd"),d=i("e3ad"),h=i("82f9"),u=i("e246"),p=i("63d8"),f=i("55a0"),g=(i("69ff"),i("5afa")),m=i("17cf"),b=i("472b"),_=i("3658"),v=i("d3f6"),C=i("aa13"),y=i("bcd3"),w=i("63ba"),S=i("5199"),x=i("1f2e"),k=i("4f24"),D=i("eb3b"),L=i("2ea8"),O=i("92ea"),E=i("4460");const N=3;class I{constructor(e,t,i,n){this.originalLineStart=e,this.originalLineEnd=t,this.modifiedLineStart=i,this.modifiedLineEnd=n}getType(){return 0===this.originalLineStart?1:0===this.modifiedLineStart?2:0}}class T{constructor(e){this.entries=e}}const M=Object(E["b"])("diff-review-insert",O["b"].add,o["a"]("diffReviewInsertIcon","Icon for 'Insert' in diff review.")),A=Object(E["b"])("diff-review-remove",O["b"].remove,o["a"]("diffReviewRemoveIcon","Icon for 'Remove' in diff review.")),P=Object(E["b"])("diff-review-close",O["b"].close,o["a"]("diffReviewCloseIcon","Icon for 'Close' in diff review."));class R extends d["a"]{constructor(e){super(),this._width=0,this._diffEditor=e,this._isVisible=!1,this.shadow=Object(r["b"])(document.createElement("div")),this.shadow.setClassName("diff-review-shadow"),this.actionBarContainer=Object(r["b"])(document.createElement("div")),this.actionBarContainer.setClassName("diff-review-actions"),this._actionBar=this._register(new g["a"](this.actionBarContainer.domNode)),this._actionBar.push(new b["a"]("diffreview.close",o["a"]("label.close","Close"),"close-diff-review "+L["d"].asClassName(P),!0,()=>(this.hide(),Promise.resolve(null))),{label:!1,icon:!0}),this.domNode=Object(r["b"])(document.createElement("div")),this.domNode.setClassName("diff-review monaco-editor-background"),this._content=Object(r["b"])(document.createElement("div")),this._content.setClassName("diff-review-content"),this._content.setAttribute("role","code"),this.scrollbar=this._register(new m["a"](this._content.domNode,{})),this.domNode.domNode.appendChild(this.scrollbar.getDomNode()),this._register(e.onDidUpdateDiff(()=>{this._isVisible&&(this._diffs=this._compute(),this._render())})),this._register(e.getModifiedEditor().onDidChangeCursorPosition(()=>{this._isVisible&&this._render()})),this._register(s["n"](this.domNode.domNode,"click",e=>{e.preventDefault();let t=s["w"](e.target,"diff-review-row");t&&this._goToRow(t)})),this._register(s["n"](this.domNode.domNode,"keydown",e=>{(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),this._goToRow(this._getNextRow())),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),this._goToRow(this._getPrevRow())),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),this.hide()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),this.accept())})),this._diffs=[],this._currentDiff=null}prev(){let e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){let t=-1;for(let e=0,i=this._diffs.length;e<i;e++)if(this._diffs[e]===this._currentDiff){t=e;break}e=this._diffs.length+t-1}else e=this._findDiffIndex(this._diffEditor.getPosition());if(0===this._diffs.length)return;e%=this._diffs.length;const t=this._diffs[e].entries;this._diffEditor.setPosition(new y["a"](t[0].modifiedLineStart,1)),this._diffEditor.setSelection({startColumn:1,startLineNumber:t[0].modifiedLineStart,endColumn:1073741824,endLineNumber:t[t.length-1].modifiedLineEnd}),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow())}next(){let e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){let t=-1;for(let e=0,i=this._diffs.length;e<i;e++)if(this._diffs[e]===this._currentDiff){t=e;break}e=t+1}else e=this._findDiffIndex(this._diffEditor.getPosition());if(0===this._diffs.length)return;e%=this._diffs.length;const t=this._diffs[e].entries;this._diffEditor.setPosition(new y["a"](t[0].modifiedLineStart,1)),this._diffEditor.setSelection({startColumn:1,startLineNumber:t[0].modifiedLineStart,endColumn:1073741824,endLineNumber:t[t.length-1].modifiedLineEnd}),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow())}accept(){let e=-1,t=this._getCurrentFocusedRow();if(t){let i=parseInt(t.getAttribute("data-line"),10);isNaN(i)||(e=i)}this.hide(),-1!==e&&(this._diffEditor.setPosition(new y["a"](e,1)),this._diffEditor.revealPosition(new y["a"](e,1),1))}hide(){this._isVisible=!1,this._diffEditor.updateOptions({readOnly:!1}),this._diffEditor.focus(),this._diffEditor.doLayout(),this._render()}_getPrevRow(){let e=this._getCurrentFocusedRow();return e?e.previousElementSibling?e.previousElementSibling:e:this._getFirstRow()}_getNextRow(){let e=this._getCurrentFocusedRow();return e?e.nextElementSibling?e.nextElementSibling:e:this._getFirstRow()}_getFirstRow(){return this.domNode.domNode.querySelector(".diff-review-row")}_getCurrentFocusedRow(){let e=document.activeElement;return e&&/diff-review-row/.test(e.className)?e:null}_goToRow(e){let t=this._getCurrentFocusedRow();e.tabIndex=0,e.focus(),t&&t!==e&&(t.tabIndex=-1),this.scrollbar.scanDomNode()}isVisible(){return this._isVisible}layout(e,t,i){this._width=t,this.shadow.setTop(e-6),this.shadow.setWidth(t),this.shadow.setHeight(this._isVisible?6:0),this.domNode.setTop(e),this.domNode.setWidth(t),this.domNode.setHeight(i),this._content.setHeight(i),this._content.setWidth(t),this._isVisible?(this.actionBarContainer.setAttribute("aria-hidden","false"),this.actionBarContainer.setDisplay("block")):(this.actionBarContainer.setAttribute("aria-hidden","true"),this.actionBarContainer.setDisplay("none"))}_compute(){const e=this._diffEditor.getLineChanges();if(!e||0===e.length)return[];const t=this._diffEditor.getOriginalEditor().getModel(),i=this._diffEditor.getModifiedEditor().getModel();return t&&i?R._mergeAdjacent(e,t.getLineCount(),i.getLineCount()):[]}static _mergeAdjacent(e,t,i){if(!e||0===e.length)return[];let n=[],o=0;for(let l=0,c=e.length;l<c;l++){const s=e[l],r=s.originalStartLineNumber,a=s.originalEndLineNumber,d=s.modifiedStartLineNumber,h=s.modifiedEndLineNumber;let u=[],p=0;{const t=0===a?r:r-1,i=0===h?d:d-1;let n=1,o=1;if(l>0){const t=e[l-1];n=0===t.originalEndLineNumber?t.originalStartLineNumber+1:t.originalEndLineNumber+1,o=0===t.modifiedEndLineNumber?t.modifiedStartLineNumber+1:t.modifiedEndLineNumber+1}let s=t-N+1,c=i-N+1;if(s<n){const e=n-s;s+=e,c+=e}if(c<o){const e=o-c;s+=e,c+=e}u[p++]=new I(s,t,c,i)}0!==a&&(u[p++]=new I(r,a,0,0)),0!==h&&(u[p++]=new I(0,0,d,h));{const n=0===a?r+1:a+1,o=0===h?d+1:h+1;let s=t,f=i;if(l+1<c){const t=e[l+1];s=0===t.originalEndLineNumber?t.originalStartLineNumber:t.originalStartLineNumber-1,f=0===t.modifiedEndLineNumber?t.modifiedStartLineNumber:t.modifiedStartLineNumber-1}let g=n+N-1,m=o+N-1;if(g>s){const e=s-g;g+=e,m+=e}if(m>f){const e=f-m;g+=e,m+=e}u[p++]=new I(n,g,o,m)}n[o++]=new T(u)}let s=n[0].entries,r=[],a=0;for(let l=1,c=n.length;l<c;l++){const e=n[l].entries,t=s[s.length-1],i=e[0];0===t.getType()&&0===i.getType()&&i.originalLineStart<=t.originalLineEnd?(s[s.length-1]=new I(t.originalLineStart,i.originalLineEnd,t.modifiedLineStart,i.modifiedLineEnd),s=s.concat(e.slice(1))):(r[a++]=new T(s),s=e)}return r[a++]=new T(s),r}_findDiffIndex(e){const t=e.lineNumber;for(let i=0,n=this._diffs.length;i<n;i++){const e=this._diffs[i].entries,n=e[e.length-1].modifiedLineEnd;if(t<=n)return i}return 0}_render(){const e=this._diffEditor.getOriginalEditor().getOptions(),t=this._diffEditor.getModifiedEditor().getOptions(),i=this._diffEditor.getOriginalEditor().getModel(),n=this._diffEditor.getModifiedEditor().getModel(),r=i.getOptions(),a=n.getOptions();if(!this._isVisible||!i||!n)return s["s"](this._content.domNode),this._currentDiff=null,void this.scrollbar.scanDomNode();this._diffEditor.updateOptions({readOnly:!0});const l=this._findDiffIndex(this._diffEditor.getPosition());if(this._diffs[l]===this._currentDiff)return;this._currentDiff=this._diffs[l];const c=this._diffs[l].entries;let d=document.createElement("div");d.className="diff-review-table",d.setAttribute("role","list"),d.setAttribute("aria-label",'Difference review. Use "Stage | Unstage | Revert Selected Ranges" commands'),h["a"].applyFontInfoSlow(d,t.get(38));let u=0,p=0,f=0,g=0;for(let o=0,s=c.length;o<s;o++){const e=c[o],t=e.originalLineStart,i=e.originalLineEnd,n=e.modifiedLineStart,s=e.modifiedLineEnd;0!==t&&(0===u||t<u)&&(u=t),0!==i&&(0===p||i>p)&&(p=i),0!==n&&(0===f||n<f)&&(f=n),0!==s&&(0===g||s>g)&&(g=s)}let m=document.createElement("div");m.className="diff-review-row";let b=document.createElement("div");b.className="diff-review-cell diff-review-summary";const _=p-u+1,v=g-f+1;b.appendChild(document.createTextNode(`${l+1}/${this._diffs.length}: @@ -${u},${_} +${f},${v} @@`)),m.setAttribute("data-line",String(f));const C=e=>0===e?o["a"]("no_lines_changed","no lines changed"):1===e?o["a"]("one_line_changed","1 line changed"):o["a"]("more_lines_changed","{0} lines changed",e),y=C(_),w=C(v);m.setAttribute("aria-label",o["a"]({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",l+1,this._diffs.length,u,y,f,w)),m.appendChild(b),m.setAttribute("role","listitem"),d.appendChild(m);const S=t.get(53);let x=f;for(let o=0,s=c.length;o<s;o++){const s=c[o];R._renderSection(d,s,x,S,this._width,e,i,r,t,n,a),0!==s.modifiedLineStart&&(x=s.modifiedLineEnd)}s["s"](this._content.domNode),this._content.domNode.appendChild(d),this.scrollbar.scanDomNode()}static _renderSection(e,t,i,n,s,r,a,l,c,d,h){const u=t.getType();let p="diff-review-row",f="";const g="diff-review-spacer";let m=null;switch(u){case 1:p="diff-review-row line-insert",f=" char-insert",m=M;break;case 2:p="diff-review-row line-delete",f=" char-delete",m=A;break}const b=t.originalLineStart,_=t.originalLineEnd,v=t.modifiedLineStart,C=t.modifiedLineEnd,y=Math.max(C-v,_-b),w=r.get(124),S=w.glyphMarginWidth+w.lineNumbersWidth,x=c.get(124),k=10+x.glyphMarginWidth+x.lineNumbersWidth;for(let D=0;D<=y;D++){const t=0===b?0:b+D,_=0===v?0:v+D,C=document.createElement("div");C.style.minWidth=s+"px",C.className=p,C.setAttribute("role","listitem"),0!==_&&(i=_),C.setAttribute("data-line",String(i));let y=document.createElement("div");y.className="diff-review-cell",y.style.height=n+"px",C.appendChild(y);const w=document.createElement("span");w.style.width=S+"px",w.style.minWidth=S+"px",w.className="diff-review-line-number"+f,0!==t?w.appendChild(document.createTextNode(String(t))):w.innerText=" ",y.appendChild(w);const x=document.createElement("span");x.style.width=k+"px",x.style.minWidth=k+"px",x.style.paddingRight="10px",x.className="diff-review-line-number"+f,0!==_?x.appendChild(document.createTextNode(String(_))):x.innerText=" ",y.appendChild(x);const O=document.createElement("span");if(O.className=g,m){const e=document.createElement("span");e.className=L["d"].asClassName(m),e.innerText=" ",O.appendChild(e)}else O.innerText=" ";let E;if(y.appendChild(O),0!==_){let e=this._renderLine(d,c,h.tabSize,_);R._ttPolicy&&(e=R._ttPolicy.createHTML(e)),y.insertAdjacentHTML("beforeend",e),E=d.getLineContent(_)}else{let e=this._renderLine(a,r,l.tabSize,t);R._ttPolicy&&(e=R._ttPolicy.createHTML(e)),y.insertAdjacentHTML("beforeend",e),E=a.getLineContent(t)}0===E.length&&(E=o["a"]("blankLine","blank"));let N="";switch(u){case 0:N=t===_?o["a"]({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",E,t):o["a"]("equalLine","{0} original line {1} modified line {2}",E,t,_);break;case 1:N=o["a"]("insertLine","+ {0} modified line {1}",E,_);break;case 2:N=o["a"]("deleteLine","- {0} original line {1}",E,t);break}C.setAttribute("aria-label",N),e.appendChild(C)}}static _renderLine(e,t,i,n){const o=e.getLineContent(n),s=t.get(38),r=16793600,a=new Uint32Array(2);a[0]=o.length,a[1]=r;const l=new C["a"](a,o),c=x["e"].isBasicASCII(o,e.mightContainNonBasicASCII()),d=x["e"].containsRTL(o,c,e.mightContainRTL()),h=Object(S["e"])(new S["c"](s.isMonospace&&!t.get(26),s.canUseHalfwidthRightwardsArrow,o,!1,c,d,0,l,[],i,0,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,t.get(100),t.get(83),t.get(77),t.get(39)!==v["e"].OFF,null));return h.html}}R._ttPolicy=null===(n=window.trustedTypes)||void 0===n?void 0:n.createPolicy("diffReview",{createHTML:e=>e}),Object(L["f"])((e,t)=>{const i=e.getColor(w["k"]);i&&t.addRule(`.monaco-diff-editor .diff-review-line-number { color: ${i}; }`);const n=e.getColor(D["pc"]);n&&t.addRule(`.monaco-diff-editor .diff-review-shadow { box-shadow: ${n} 0 -6px 6px -6px inset; }`)});class F extends _["b"]{constructor(){super({id:"editor.action.diffReview.next",label:o["a"]("editor.action.diffReview.next","Go to Next Difference"),alias:"Go to Next Difference",precondition:k["a"].has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:65,weight:100}})}run(e,t){const i=B(e);i&&i.diffReviewNext()}}class j extends _["b"]{constructor(){super({id:"editor.action.diffReview.prev",label:o["a"]("editor.action.diffReview.prev","Go to Previous Difference"),alias:"Go to Previous Difference",precondition:k["a"].has("isInDiffEditor"),kbOpts:{kbExpr:null,primary:1089,weight:100}})}run(e,t){const i=B(e);i&&i.diffReviewPrev()}}function B(e){const t=e.get(p["a"]),i=t.listDiffEditors(),n=t.getActiveCodeEditor();if(!n)return null;for(let o=0,s=i.length;o<s;o++){const e=i[o];if(e.getModifiedEditor().getId()===n.getId()||e.getOriginalEditor().getId()===n.getId())return e}return null}Object(_["j"])(F),Object(_["j"])(j);var V=i("ea0d"),W=i("b203"),z=i("4936"),H=i("659c"),$=i("35fc"),U=i("1ad4"),K=i("02a4"),q=i("012d"),G=i("3941"),Y=i("1a7e"),Z=i("7596"),X=function(e,t,i,n){function o(e){return e instanceof i?e:new i((function(t){t(e)}))}return new(i||(i=Promise))((function(i,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n["throw"](e))}catch(t){s(t)}}function l(e){e.done?i(e.value):o(e.value).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Q extends d["a"]{constructor(e,t,i,n,r,a){super(),this._viewZoneId=e,this._marginDomNode=t,this.editor=i,this.diff=n,this._contextMenuService=r,this._clipboardService=a,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=O["b"].lightBulb.classNames+" lightbulb-glyph",this._diffActions.style.position="absolute";const l=i.getOption(53),c=i.getModel().getEOL();this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=l+"px",this._diffActions.style.lineHeight=l+"px",this._marginDomNode.appendChild(this._diffActions);const d=[];d.push(new b["a"]("diff.clipboard.copyDeletedContent",n.originalEndLineNumber>n.modifiedStartLineNumber?o["a"]("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):o["a"]("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"),void 0,!0,()=>X(this,void 0,void 0,(function*(){const e=new V["a"](n.originalStartLineNumber,1,n.originalEndLineNumber+1,1),t=n.originalModel.getValueInRange(e);yield this._clipboardService.writeText(t)}))));let h=0,u=void 0;n.originalEndLineNumber>n.modifiedStartLineNumber&&(u=new b["a"]("diff.clipboard.copyDeletedLineContent",o["a"]("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",n.originalStartLineNumber),void 0,!0,()=>X(this,void 0,void 0,(function*(){const e=n.originalModel.getLineContent(n.originalStartLineNumber+h);yield this._clipboardService.writeText(e)}))),d.push(u));const p=i.getOption(75);p||d.push(new b["a"]("diff.inline.revertChange",o["a"]("diff.inline.revertChange.label","Revert this change"),void 0,!0,()=>X(this,void 0,void 0,(function*(){const e=new V["a"](n.originalStartLineNumber,1,n.originalEndLineNumber,n.originalModel.getLineMaxColumn(n.originalEndLineNumber)),t=n.originalModel.getValueInRange(e);if(0===n.modifiedEndLineNumber){const e=i.getModel().getLineMaxColumn(n.modifiedStartLineNumber);i.executeEdits("diffEditor",[{range:new V["a"](n.modifiedStartLineNumber,e,n.modifiedStartLineNumber,e),text:c+t}])}else{const e=i.getModel().getLineMaxColumn(n.modifiedEndLineNumber);i.executeEdits("diffEditor",[{range:new V["a"](n.modifiedStartLineNumber,1,n.modifiedEndLineNumber,e),text:t}])}}))));const f=(e,t)=>{this._contextMenuService.showContextMenu({getAnchor:()=>({x:e,y:t}),getActions:()=>(u&&(u.label=o["a"]("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",n.originalStartLineNumber+h)),d),autoSelectFirstItem:!0})};this._register(s["n"](this._diffActions,"mousedown",e=>{const{top:t,height:i}=s["C"](this._diffActions);let n=Math.floor(l/3);e.preventDefault(),f(e.posx,t+i+n)})),this._register(i.onMouseMove(e=>{if(8===e.target.type||5===e.target.type){const t=e.target.detail.viewZoneId;t===this._viewZoneId?(this.visibility=!0,h=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,l)):this.visibility=!1}else this.visibility=!1})),this._register(i.onMouseDown(e=>{if(e.event.rightButton&&(8===e.target.type||5===e.target.type)){const t=e.target.detail.viewZoneId;t===this._viewZoneId&&(e.event.preventDefault(),h=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,l),f(e.event.posx,e.event.posy+l))}}))}get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}_updateLightBulbPosition(e,t,i){const{top:n}=s["C"](e),o=t-n,r=Math.floor(o/i),a=r*i;if(this._diffActions.style.top=a+"px",this.diff.viewLineCounts){let e=0;for(let t=0;t<this.diff.viewLineCounts.length;t++)if(e+=this.diff.viewLineCounts[t],r<e)return t}return r}}var J,ee=i("8524"),te=i("80e8"),ie=i("e0ca"),ne=i("e2eb"),oe=i("87ff"),se=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},re=function(e,t){return function(i,n){t(i,n,e)}};class ae{constructor(e,t){this._contextMenuService=e,this._clipboardService=t,this._zones=[],this._inlineDiffMargins=[],this._zonesMap={},this._decorations=[]}getForeignViewZones(e){return e.filter(e=>!this._zonesMap[String(e.id)])}clean(e){this._zones.length>0&&e.changeViewZones(e=>{for(const t of this._zones)e.removeZone(t)}),this._zones=[],this._zonesMap={},this._decorations=e.deltaDecorations(this._decorations,[])}apply(e,t,i,n){const o=n?u["c"].capture(e):null;e.changeViewZones(t=>{for(const e of this._zones)t.removeZone(e);for(const e of this._inlineDiffMargins)e.dispose();this._zones=[],this._zonesMap={},this._inlineDiffMargins=[];for(let n=0,o=i.zones.length;n<o;n++){const o=i.zones[n];o.suppressMouseDown=!0;const s=t.addZone(o);this._zones.push(s),this._zonesMap[String(s)]=!0,i.zones[n].diff&&o.marginDomNode&&(o.suppressMouseDown=!1,this._inlineDiffMargins.push(new Q(s,o.marginDomNode,e,i.zones[n].diff,this._contextMenuService,this._clipboardService)))}}),o&&o.restore(e),this._decorations=e.deltaDecorations(this._decorations,i.decorations),t&&t.setZones(i.overviewZones)}}let le=0;const ce=Object(E["b"])("diff-insert",O["b"].add,o["a"]("diffInsertIcon","Line decoration for inserts in the diff editor.")),de=Object(E["b"])("diff-remove",O["b"].remove,o["a"]("diffRemoveIcon","Line decoration for removals in the diff editor.")),he=null===(J=window.trustedTypes)||void 0===J?void 0:J.createPolicy("diffEditorWidget",{createHTML:e=>e});let ue=class e extends d["a"]{constructor(t,i,n,o,a,d,h,u,p,f,g,m){super(),this._editorProgressService=m,this._onDidDispose=this._register(new c["a"]),this.onDidDispose=this._onDidDispose.event,this._onDidUpdateDiff=this._register(new c["a"]),this.onDidUpdateDiff=this._onDidUpdateDiff.event,this._onDidContentSizeChange=this._register(new c["a"]),this._lastOriginalWarning=null,this._lastModifiedWarning=null,this._editorWorkerService=a,this._codeEditorService=u,this._contextKeyService=this._register(d.createScoped(t)),this._instantiationService=h.createChild(new G["a"]([k["b"],this._contextKeyService])),this._contextKeyService.createKey("isInDiffEditor",!0),this._themeService=p,this._notificationService=f,this._id=++le,this._state=0,this._updatingDiffProgress=null,this._domElement=t,i=i||{},this._renderSideBySide=!0,"undefined"!==typeof i.renderSideBySide&&(this._renderSideBySide=i.renderSideBySide),this._maxComputationTime=5e3,"undefined"!==typeof i.maxComputationTime&&(this._maxComputationTime=i.maxComputationTime),this._ignoreTrimWhitespace=!0,"undefined"!==typeof i.ignoreTrimWhitespace&&(this._ignoreTrimWhitespace=i.ignoreTrimWhitespace),this._renderIndicators=!0,"undefined"!==typeof i.renderIndicators&&(this._renderIndicators=i.renderIndicators),this._originalIsEditable=Object(v["k"])(i.originalEditable,!1),this._diffCodeLens=Object(v["k"])(i.diffCodeLens,!1),this._diffWordWrap=we(i.diffWordWrap,"inherit"),"undefined"!==typeof i.isInEmbeddedEditor?this._contextKeyService.createKey("isInEmbeddedDiffEditor",i.isInEmbeddedEditor):this._contextKeyService.createKey("isInEmbeddedDiffEditor",!1),this._renderOverviewRuler=!0,"undefined"!==typeof i.renderOverviewRuler&&(this._renderOverviewRuler=Boolean(i.renderOverviewRuler)),this._updateDecorationsRunner=this._register(new l["e"](()=>this._updateDecorations(),0)),this._containerDomElement=document.createElement("div"),this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._renderSideBySide),this._containerDomElement.style.position="relative",this._containerDomElement.style.height="100%",this._domElement.appendChild(this._containerDomElement),this._overviewViewportDomElement=Object(r["b"])(document.createElement("div")),this._overviewViewportDomElement.setClassName("diffViewport"),this._overviewViewportDomElement.setPosition("absolute"),this._overviewDomElement=document.createElement("div"),this._overviewDomElement.className="diffOverview",this._overviewDomElement.style.position="absolute",this._overviewDomElement.appendChild(this._overviewViewportDomElement.domNode),this._register(s["n"](this._overviewDomElement,"mousedown",e=>{this._modifiedEditor.delegateVerticalScrollbarMouseDown(e)})),this._renderOverviewRuler&&this._containerDomElement.appendChild(this._overviewDomElement),this._originalDomNode=document.createElement("div"),this._originalDomNode.className="editor original",this._originalDomNode.style.position="absolute",this._originalDomNode.style.height="100%",this._containerDomElement.appendChild(this._originalDomNode),this._modifiedDomNode=document.createElement("div"),this._modifiedDomNode.className="editor modified",this._modifiedDomNode.style.position="absolute",this._modifiedDomNode.style.height="100%",this._containerDomElement.appendChild(this._modifiedDomNode),this._beginUpdateDecorationsTimeout=-1,this._currentlyChangingViewZones=!1,this._diffComputationToken=0,this._originalEditorState=new ae(g,o),this._modifiedEditorState=new ae(g,o),this._isVisible=!0,this._isHandlingScrollEvent=!1,this._elementSizeObserver=this._register(new ne["a"](this._containerDomElement,i.dimension,()=>this._onDidContainerSizeChanged())),i.automaticLayout&&this._elementSizeObserver.startObserving(),this._diffComputationResult=null,this._originalEditor=this._createLeftHandSideEditor(i,n.originalEditor||{}),this._modifiedEditor=this._createRightHandSideEditor(i,n.modifiedEditor||{}),this._originalOverviewRuler=null,this._modifiedOverviewRuler=null,this._reviewPane=new R(this),this._containerDomElement.appendChild(this._reviewPane.domNode.domNode),this._containerDomElement.appendChild(this._reviewPane.shadow.domNode),this._containerDomElement.appendChild(this._reviewPane.actionBarContainer.domNode),this._enableSplitViewResizing=!0,"undefined"!==typeof i.enableSplitViewResizing&&(this._enableSplitViewResizing=i.enableSplitViewResizing),this._renderSideBySide?this._setStrategy(new _e(this._createDataSource(),this._enableSplitViewResizing)):this._setStrategy(new Ce(this._createDataSource(),this._enableSplitViewResizing)),this._register(p.onDidColorThemeChange(t=>{this._strategy&&this._strategy.applyColors(t)&&this._updateDecorationsRunner.schedule(),this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._renderSideBySide)}));const b=_["d"].getDiffEditorContributions();for(const e of b)try{this._register(h.createInstance(e.ctor,this))}catch(C){Object(te["e"])(C)}this._codeEditorService.addDiffEditor(this)}_setState(e){this._state!==e&&(this._state=e,this._updatingDiffProgress&&(this._updatingDiffProgress.done(),this._updatingDiffProgress=null),1===this._state&&(this._updatingDiffProgress=this._editorProgressService.show(!0,1e3)))}diffReviewNext(){this._reviewPane.next()}diffReviewPrev(){this._reviewPane.prev()}static _getClassName(e,t){let i="monaco-diff-editor monaco-editor-background ";return t&&(i+="side-by-side "),i+=Object(L["e"])(e.type),i}_recreateOverviewRulers(){this._renderOverviewRuler&&(this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._originalEditor.hasModel()&&(this._originalOverviewRuler=this._originalEditor.createOverviewRuler("original diffOverviewRuler"),this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._modifiedEditor.hasModel()&&(this._modifiedOverviewRuler=this._modifiedEditor.createOverviewRuler("modified diffOverviewRuler"),this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())),this._layoutOverviewRulers())}_createLeftHandSideEditor(t,i){const n=this._createInnerEditor(this._instantiationService,this._originalDomNode,this._adjustOptionsForLeftHandSide(t),i);this._register(n.onDidScrollChange(e=>{this._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(this._isHandlingScrollEvent=!0,this._modifiedEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),this._isHandlingScrollEvent=!1,this._layoutOverviewViewport())})),this._register(n.onDidChangeViewZones(()=>{this._onViewZonesChanged()})),this._register(n.onDidChangeConfiguration(e=>{n.getModel()&&(e.hasChanged(38)&&this._updateDecorationsRunner.schedule(),e.hasChanged(125)&&(this._updateDecorationsRunner.cancel(),this._updateDecorations()))})),this._register(n.onDidChangeModelContent(()=>{this._isVisible&&this._beginUpdateDecorationsSoon()}));const o=this._contextKeyService.createKey("isInDiffLeftEditor",n.hasWidgetFocus());return this._register(n.onDidFocusEditorWidget(()=>o.set(!0))),this._register(n.onDidBlurEditorWidget(()=>o.set(!1))),this._register(n.onDidContentSizeChange(t=>{const i=this._originalEditor.getContentWidth()+this._modifiedEditor.getContentWidth()+e.ONE_OVERVIEW_WIDTH,n=Math.max(this._modifiedEditor.getContentHeight(),this._originalEditor.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:n,contentWidth:i,contentHeightChanged:t.contentHeightChanged,contentWidthChanged:t.contentWidthChanged})})),n}_createRightHandSideEditor(t,i){const n=this._createInnerEditor(this._instantiationService,this._modifiedDomNode,this._adjustOptionsForRightHandSide(t),i);this._register(n.onDidScrollChange(e=>{this._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(this._isHandlingScrollEvent=!0,this._originalEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),this._isHandlingScrollEvent=!1,this._layoutOverviewViewport())})),this._register(n.onDidChangeViewZones(()=>{this._onViewZonesChanged()})),this._register(n.onDidChangeConfiguration(e=>{n.getModel()&&(e.hasChanged(38)&&this._updateDecorationsRunner.schedule(),e.hasChanged(125)&&(this._updateDecorationsRunner.cancel(),this._updateDecorations()))})),this._register(n.onDidChangeModelContent(()=>{this._isVisible&&this._beginUpdateDecorationsSoon()})),this._register(n.onDidChangeModelOptions(e=>{e.tabSize&&this._updateDecorationsRunner.schedule()}));const o=this._contextKeyService.createKey("isInDiffRightEditor",n.hasWidgetFocus());return this._register(n.onDidFocusEditorWidget(()=>o.set(!0))),this._register(n.onDidBlurEditorWidget(()=>o.set(!1))),this._register(n.onDidContentSizeChange(t=>{const i=this._originalEditor.getContentWidth()+this._modifiedEditor.getContentWidth()+e.ONE_OVERVIEW_WIDTH,n=Math.max(this._modifiedEditor.getContentHeight(),this._originalEditor.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:n,contentWidth:i,contentHeightChanged:t.contentHeightChanged,contentWidthChanged:t.contentWidthChanged})})),n}_createInnerEditor(e,t,i,n){return e.createInstance(f["a"],t,i,n)}dispose(){this._codeEditorService.removeDiffEditor(this),-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._cleanViewZonesAndDecorations(),this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode),this._renderOverviewRuler&&this._containerDomElement.removeChild(this._overviewDomElement),this._containerDomElement.removeChild(this._originalDomNode),this._originalEditor.dispose(),this._containerDomElement.removeChild(this._modifiedDomNode),this._modifiedEditor.dispose(),this._strategy.dispose(),this._containerDomElement.removeChild(this._reviewPane.domNode.domNode),this._containerDomElement.removeChild(this._reviewPane.shadow.domNode),this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode),this._reviewPane.dispose(),this._domElement.removeChild(this._containerDomElement),this._onDidDispose.fire(),super.dispose()}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return z["a"].IDiffEditor}getLineChanges(){return this._diffComputationResult?this._diffComputationResult.changes:null}getOriginalEditor(){return this._originalEditor}getModifiedEditor(){return this._modifiedEditor}updateOptions(t){let i=!1;"undefined"!==typeof t.renderSideBySide&&this._renderSideBySide!==t.renderSideBySide&&(this._renderSideBySide=t.renderSideBySide,i=!0),"undefined"!==typeof t.maxComputationTime&&(this._maxComputationTime=t.maxComputationTime,this._isVisible&&this._beginUpdateDecorationsSoon());let n=!1;"undefined"!==typeof t.ignoreTrimWhitespace&&this._ignoreTrimWhitespace!==t.ignoreTrimWhitespace&&(this._ignoreTrimWhitespace=t.ignoreTrimWhitespace,n=!0),"undefined"!==typeof t.renderIndicators&&this._renderIndicators!==t.renderIndicators&&(this._renderIndicators=t.renderIndicators,n=!0),n&&this._beginUpdateDecorations(),this._originalIsEditable=Object(v["k"])(t.originalEditable,this._originalIsEditable),this._diffCodeLens=Object(v["k"])(t.diffCodeLens,this._diffCodeLens),this._diffWordWrap=we(t.diffWordWrap,this._diffWordWrap),this._modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(t)),this._originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(t)),"undefined"!==typeof t.enableSplitViewResizing&&(this._enableSplitViewResizing=t.enableSplitViewResizing),this._strategy.setEnableSplitViewResizing(this._enableSplitViewResizing),i&&(this._renderSideBySide?this._setStrategy(new _e(this._createDataSource(),this._enableSplitViewResizing)):this._setStrategy(new Ce(this._createDataSource(),this._enableSplitViewResizing)),this._containerDomElement.className=e._getClassName(this._themeService.getColorTheme(),this._renderSideBySide)),"undefined"!==typeof t.renderOverviewRuler&&this._renderOverviewRuler!==t.renderOverviewRuler&&(this._renderOverviewRuler=t.renderOverviewRuler,this._renderOverviewRuler?this._containerDomElement.appendChild(this._overviewDomElement):this._containerDomElement.removeChild(this._overviewDomElement))}getModel(){return{original:this._originalEditor.getModel(),modified:this._modifiedEditor.getModel()}}setModel(e){if(e&&(!e.original||!e.modified))throw new Error(e.original?"DiffEditorWidget.setModel: Modified model is null":"DiffEditorWidget.setModel: Original model is null");this._cleanViewZonesAndDecorations(),this._originalEditor.setModel(e?e.original:null),this._modifiedEditor.setModel(e?e.modified:null),this._updateDecorationsRunner.cancel(),e&&(this._originalEditor.setScrollTop(0),this._modifiedEditor.setScrollTop(0)),this._diffComputationResult=null,this._diffComputationToken++,this._setState(0),e&&(this._recreateOverviewRulers(),this._beginUpdateDecorations()),this._layoutOverviewViewport()}getDomNode(){return this._domElement}getVisibleColumnFromPosition(e){return this._modifiedEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._modifiedEditor.getPosition()}setPosition(e){this._modifiedEditor.setPosition(e)}revealLine(e,t=0){this._modifiedEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._modifiedEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._modifiedEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._modifiedEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._modifiedEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._modifiedEditor.revealPositionNearTop(e,t)}getSelection(){return this._modifiedEditor.getSelection()}getSelections(){return this._modifiedEditor.getSelections()}setSelection(e){this._modifiedEditor.setSelection(e)}setSelections(e){this._modifiedEditor.setSelections(e)}revealLines(e,t,i=0){this._modifiedEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._modifiedEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._modifiedEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._modifiedEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,n=!0){this._modifiedEditor.revealRange(e,t,i,n)}revealRangeInCenter(e,t=0){this._modifiedEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._modifiedEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._modifiedEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._modifiedEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._modifiedEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._modifiedEditor.getSupportedActions()}saveViewState(){const e=this._originalEditor.saveViewState(),t=this._modifiedEditor.saveViewState();return{original:e,modified:t}}restoreViewState(e){if(e&&e.original&&e.modified){const t=e;this._originalEditor.restoreViewState(t.original),this._modifiedEditor.restoreViewState(t.modified)}}layout(e){this._elementSizeObserver.observe(e)}focus(){this._modifiedEditor.focus()}hasTextFocus(){return this._originalEditor.hasTextFocus()||this._modifiedEditor.hasTextFocus()}trigger(e,t,i){this._modifiedEditor.trigger(e,t,i)}changeDecorations(e){return this._modifiedEditor.changeDecorations(e)}_onDidContainerSizeChanged(){this._doLayout()}_getReviewHeight(){return this._reviewPane.isVisible()?this._elementSizeObserver.getHeight():0}_layoutOverviewRulers(){if(!this._renderOverviewRuler)return;if(!this._originalOverviewRuler||!this._modifiedOverviewRuler)return;const t=this._elementSizeObserver.getHeight(),i=this._getReviewHeight(),n=e.ENTIRE_DIFF_OVERVIEW_WIDTH-2*e.ONE_OVERVIEW_WIDTH,o=this._modifiedEditor.getLayoutInfo();o&&(this._originalOverviewRuler.setLayout({top:0,width:e.ONE_OVERVIEW_WIDTH,right:n+e.ONE_OVERVIEW_WIDTH,height:t-i}),this._modifiedOverviewRuler.setLayout({top:0,right:0,width:e.ONE_OVERVIEW_WIDTH,height:t-i}))}_onViewZonesChanged(){this._currentlyChangingViewZones||this._updateDecorationsRunner.schedule()}_beginUpdateDecorationsSoon(){-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._beginUpdateDecorationsTimeout=window.setTimeout(()=>this._beginUpdateDecorations(),e.UPDATE_DIFF_DECORATIONS_DELAY)}static _equals(e,t){return!e&&!t||!(!e||!t)&&e.toString()===t.toString()}_beginUpdateDecorations(){this._beginUpdateDecorationsTimeout=-1;const t=this._originalEditor.getModel(),i=this._modifiedEditor.getModel();if(!t||!i)return;this._diffComputationToken++;const n=this._diffComputationToken;this._setState(1),this._editorWorkerService.canComputeDiff(t.uri,i.uri)?this._editorWorkerService.computeDiff(t.uri,i.uri,this._ignoreTrimWhitespace,this._maxComputationTime).then(e=>{n===this._diffComputationToken&&t===this._originalEditor.getModel()&&i===this._modifiedEditor.getModel()&&(this._setState(2),this._diffComputationResult=e,this._updateDecorationsRunner.schedule(),this._onDidUpdateDiff.fire())},e=>{n===this._diffComputationToken&&t===this._originalEditor.getModel()&&i===this._modifiedEditor.getModel()&&(this._setState(2),this._diffComputationResult=null,this._updateDecorationsRunner.schedule())}):e._equals(t.uri,this._lastOriginalWarning)&&e._equals(i.uri,this._lastModifiedWarning)||(this._lastOriginalWarning=t.uri,this._lastModifiedWarning=i.uri,this._notificationService.warn(o["a"]("diff.tooLarge","Cannot compare files because one file is too large.")))}_cleanViewZonesAndDecorations(){this._originalEditorState.clean(this._originalEditor),this._modifiedEditorState.clean(this._modifiedEditor)}_updateDecorations(){if(!this._originalEditor.getModel()||!this._modifiedEditor.getModel())return;const e=this._diffComputationResult?this._diffComputationResult.changes:[],t=this._originalEditorState.getForeignViewZones(this._originalEditor.getWhitespaces()),i=this._modifiedEditorState.getForeignViewZones(this._modifiedEditor.getWhitespaces()),n=this._strategy.getEditorsDiffDecorations(e,this._ignoreTrimWhitespace,this._renderIndicators,t,i);try{this._currentlyChangingViewZones=!0,this._originalEditorState.apply(this._originalEditor,this._originalOverviewRuler,n.original,!1),this._modifiedEditorState.apply(this._modifiedEditor,this._modifiedOverviewRuler,n.modified,!0)}finally{this._currentlyChangingViewZones=!1}}_adjustOptionsForSubEditor(e){const t=Object.assign({},e);return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar=Object.assign({},t.scrollbar||{}),t.scrollbar.vertical="visible",t.folding=!1,t.codeLens=this._diffCodeLens,t.fixedOverflowWidgets=!0,t.minimap=Object.assign({},t.minimap||{}),t.minimap.enabled=!1,t}_adjustOptionsForLeftHandSide(e){const t=this._adjustOptionsForSubEditor(e);return this._renderSideBySide?t.wordWrapOverride1=this._diffWordWrap:t.wordWrapOverride1="off",e.originalAriaLabel&&(t.ariaLabel=e.originalAriaLabel),t.readOnly=!this._originalIsEditable,t.extraEditorClassName="original-in-monaco-diff-editor",Object.assign(Object.assign({},t),{dimension:{height:0,width:0}})}_adjustOptionsForRightHandSide(t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.wordWrapOverride1=this._diffWordWrap,i.revealHorizontalRightPadding=v["g"].revealHorizontalRightPadding.defaultValue+e.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName="modified-in-monaco-diff-editor",Object.assign(Object.assign({},i),{dimension:{height:0,width:0}})}doLayout(){this._elementSizeObserver.observe(),this._doLayout()}_doLayout(){const t=this._elementSizeObserver.getWidth(),i=this._elementSizeObserver.getHeight(),n=this._getReviewHeight(),o=this._strategy.lay