Revert "know decorations using command links, #29076"

This reverts commit 94c4b25a47.
This commit is contained in:
Johannes Rieken
2017-08-23 11:54:45 +02:00
parent 94c4b25a47
commit eb4e09ba69
5 changed files with 7 additions and 72 deletions

View File

@@ -80,7 +80,7 @@ export function createApiFactory(
// Addressable instances
const extHostHeapService = threadService.set(ExtHostContext.ExtHostHeapService, new ExtHostHeapService());
const extHostDocumentsAndEditors = threadService.set(ExtHostContext.ExtHostDocumentsAndEditors, new ExtHostDocumentsAndEditors(threadService, extensionService));
const extHostDocumentsAndEditors = threadService.set(ExtHostContext.ExtHostDocumentsAndEditors, new ExtHostDocumentsAndEditors(threadService));
const extHostDocuments = threadService.set(ExtHostContext.ExtHostDocuments, new ExtHostDocuments(threadService, extHostDocumentsAndEditors));
const extHostDocumentContentProviders = threadService.set(ExtHostContext.ExtHostDocumentContentProviders, new ExtHostDocumentContentProvider(threadService, extHostDocumentsAndEditors));
const extHostDocumentSaveParticipant = threadService.set(ExtHostContext.ExtHostDocumentSaveParticipant, new ExtHostDocumentSaveParticipant(extHostDocuments, threadService.get(MainContext.MainThreadWorkspace)));

View File

@@ -11,7 +11,6 @@ import { ExtHostDocumentData } from './extHostDocumentData';
import { ExtHostTextEditor } from './extHostTextEditor';
import * as assert from 'assert';
import * as typeConverters from './extHostTypeConverters';
import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService';
export class ExtHostDocumentsAndEditors implements ExtHostDocumentsAndEditorsShape {
@@ -30,8 +29,7 @@ export class ExtHostDocumentsAndEditors implements ExtHostDocumentsAndEditorsSha
readonly onDidChangeActiveTextEditor: Event<ExtHostTextEditor> = this._onDidChangeActiveTextEditor.event;
constructor(
private readonly _mainContext: IMainContext,
private readonly _extHostExtensions: ExtHostExtensionService
private readonly _mainContext: IMainContext
) {
}
@@ -83,8 +81,6 @@ export class ExtHostDocumentsAndEditors implements ExtHostDocumentsAndEditorsSha
const documentData = this._documents.get(data.document.toString());
const editor = new ExtHostTextEditor(
this._mainContext.get(MainContext.MainThreadEditors),
this._mainContext.get(MainContext.MainThreadTelemetry),
this._extHostExtensions,
data.id,
documentData,
data.selections.map(typeConverters.toSelection),

View File

@@ -19,7 +19,6 @@ import { Barrier } from 'vs/workbench/services/extensions/node/barrier';
import { ExtHostThreadService } from 'vs/workbench/services/thread/node/extHostThreadService';
import { realpath } from 'fs';
import { TrieMap } from 'vs/base/common/map';
import { V8CallSite } from 'vs/base/common/errors';
class ExtensionMemento implements IExtensionMemento {
@@ -228,27 +227,6 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
return this._extensionPathIndex;
}
public getActiveExtensionFromCallstack(): TPromise<IExtensionDescription> {
const err = new Error();
return this.getExtensionPathIndex().then(index => {
let oldHandler = (<any>Error).prepareStackTrace;
let result: IExtensionDescription;
(<any>Error).prepareStackTrace = (err: Error, stacktrace: V8CallSite[]) => {
for (const call of stacktrace) {
result = index.findSubstr(call.getFileName());
if (result) {
return;
}
}
};
// tslint:disable-next-line:no-unused-expression
err.stack;
(<any>Error).prepareStackTrace = oldHandler;
return result;
});
}
public deactivate(extensionId: string): TPromise<void> {
let result: TPromise<void> = TPromise.as(void 0);

View File

@@ -205,7 +205,7 @@ class HoverAdapter {
// we wanna know which extension uses command links
// because that is a potential trick-attack on users
if (result.contents.some(containsCommandLink)) {
this._telemetryLog('MarkedString/commandLink', { from: 'hover' });
this._telemetryLog('usesCommandLink', { from: 'hover' });
}
return result;
});

View File

@@ -13,12 +13,10 @@ import { ExtHostDocumentData } from 'vs/workbench/api/node/extHostDocumentData';
import { Selection, Range, Position, EndOfLine, TextEditorRevealType, TextEditorLineNumbersStyle, SnippetString } from './extHostTypes';
import { ISingleEditOperation } from 'vs/editor/common/editorCommon';
import * as TypeConverters from './extHostTypeConverters';
import { MainThreadEditorsShape, IResolvedTextEditorConfiguration, ITextEditorConfigurationUpdate, MainThreadTelemetryShape } from './extHost.protocol';
import { MainThreadEditorsShape, IResolvedTextEditorConfiguration, ITextEditorConfigurationUpdate } from './extHost.protocol';
import * as vscode from 'vscode';
import { TextEditorCursorStyle } from 'vs/editor/common/config/editorOptions';
import { IRange } from 'vs/editor/common/core/range';
import { containsCommandLink } from 'vs/base/common/htmlContent';
import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService';
export class TextEditorDecorationType implements vscode.TextEditorDecorationType {
@@ -316,8 +314,6 @@ export class ExtHostTextEditorOptions implements vscode.TextEditorOptions {
export class ExtHostTextEditor implements vscode.TextEditor {
private readonly _proxy: MainThreadEditorsShape;
private readonly _telemetry: MainThreadTelemetryShape;
private readonly _extHostExtensions: ExtHostExtensionService;
private readonly _id: string;
private readonly _documentData: ExtHostDocumentData;
@@ -328,19 +324,8 @@ export class ExtHostTextEditor implements vscode.TextEditor {
get id(): string { return this._id; }
constructor(
proxy: MainThreadEditorsShape,
telemetry: MainThreadTelemetryShape,
extHostExtensions: ExtHostExtensionService,
id: string,
document: ExtHostDocumentData,
selections: Selection[],
options: IResolvedTextEditorConfiguration,
viewColumn: vscode.ViewColumn
) {
constructor(proxy: MainThreadEditorsShape, id: string, document: ExtHostDocumentData, selections: Selection[], options: IResolvedTextEditorConfiguration, viewColumn: vscode.ViewColumn) {
this._proxy = proxy;
this._telemetry = telemetry;
this._extHostExtensions = extHostExtensions;
this._id = id;
this._documentData = document;
this._selections = selections;
@@ -429,36 +414,12 @@ export class ExtHostTextEditor implements vscode.TextEditor {
this._trySetSelection();
}
setDecorations(decorationType: vscode.TextEditorDecorationType, rangesOrOptions: Range[] | vscode.DecorationOptions[]): void {
const options = TypeConverters.fromRangeOrRangeWithMessage(rangesOrOptions);
let usesCommands = false;
for (let i = 0; i < options.length && !usesCommands; i++) {
const { hoverMessage } = options[i];
if (Array.isArray(hoverMessage)) {
usesCommands = hoverMessage.some(containsCommandLink);
} else if (hoverMessage) {
usesCommands = containsCommandLink(hoverMessage);
}
}
if (usesCommands) {
this._extHostExtensions.getActiveExtensionFromCallstack().then(extension => {
if (!extension) {
return;
}
this._telemetry.$publicLog('MarkedString/commandLink', {
extension: extension.id,
from: 'decoration'
});
});
}
setDecorations(decorationType: vscode.TextEditorDecorationType, ranges: Range[] | vscode.DecorationOptions[]): void {
this._runOnProxy(
() => this._proxy.$trySetDecorations(
this._id,
decorationType.key,
options
TypeConverters.fromRangeOrRangeWithMessage(ranges)
)
);
}