| Index: Source/devtools/front_end/sources/UISourceCodeFrame.js
|
| diff --git a/Source/devtools/front_end/sources/UISourceCodeFrame.js b/Source/devtools/front_end/sources/UISourceCodeFrame.js
|
| index a6cdd620ad306077d3b56b422677a36ddb58f370..ca03401acbccefde2fe3f61cb897eba31d6d8ac1 100644
|
| --- a/Source/devtools/front_end/sources/UISourceCodeFrame.js
|
| +++ b/Source/devtools/front_end/sources/UISourceCodeFrame.js
|
| @@ -114,6 +114,11 @@ WebInspector.UISourceCodeFrame.prototype = {
|
| this._uiSourceCode.resetWorkingCopy();
|
| else
|
| this._uiSourceCode.setWorkingCopyGetter(this._textEditor.text.bind(this._textEditor));
|
| + WebInspector.workspace.dispatchEventToListeners(WebInspector.Workspace.Events.UISourceCodeEdited, {
|
| + range: oldRange,
|
| + replacement: this._textEditor.copyRange(newRange),
|
| + uiSourceCode: this._uiSourceCode
|
| + });
|
| delete this._muteSourceCodeEvents;
|
| },
|
|
|
| @@ -168,12 +173,39 @@ WebInspector.UISourceCodeFrame.prototype = {
|
| delete this._isSettingContent;
|
| },
|
|
|
| + /**
|
| + * @override
|
| + * @return {!Promise}
|
| + */
|
| populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber)
|
| {
|
| - WebInspector.SourceFrame.prototype.populateTextAreaContextMenu.call(this, contextMenu, lineNumber, columnNumber);
|
| - contextMenu.appendApplicableItems(this._uiSourceCode);
|
| - contextMenu.appendApplicableItems(new WebInspector.UILocation(this._uiSourceCode, lineNumber, columnNumber));
|
| - contextMenu.appendSeparator();
|
| + /**
|
| + * @this {WebInspector.UISourceCodeFrame}
|
| + */
|
| + function appendItems() {
|
| + contextMenu.appendApplicableItems(this._uiSourceCode);
|
| + contextMenu.appendApplicableItems(new WebInspector.UILocation(this._uiSourceCode, lineNumber, columnNumber));
|
| + contextMenu.appendSeparator();
|
| + }
|
| +
|
| + return WebInspector.SourceFrame.prototype.populateTextAreaContextMenu.call(this, contextMenu, lineNumber, columnNumber).then((function(){
|
| + var mimeType = WebInspector.ResourceType.mimeFromUrl(this._uiSourceCode.contentURL());
|
| + if (!mimeType) {
|
| + return;
|
| + }
|
| + if (!WebInspector.languageService.handles.populateContextMenu(mimeType)) {
|
| + return;
|
| + }
|
| + return WebInspector.languageService.populateContextMenu(mimeType, {
|
| + source: this._uiSourceCode.contentURL(),
|
| + line: lineNumber,
|
| + column: columnNumber
|
| + }).then(function(items) {
|
| + items.forEach(function(elem) {
|
| + contextMenu.appendItem(elem.text, elem.callback);
|
| + });
|
| + });
|
| + }).bind(this)).then(appendItems.bind(this), appendItems.bind(this)); //Ignore failure in language service handler
|
| },
|
|
|
| /**
|
|
|