提交 3cce5ed9 编写于 作者: J Johannes Rieken

learn more about the usage of the 'internal' format, #3210

上级 951dbae9
......@@ -9,6 +9,7 @@ import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
import { onUnexpectedError } from 'vs/base/common/errors';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { ICommandService } from 'vs/platform/commands/common/commands';
import { ICommonCodeEditor, IEditorContribution, EditorContextKeys, ModeContextKeys } from 'vs/editor/common/editorCommon';
......@@ -18,7 +19,7 @@ import { EditorBrowserRegistry } from 'vs/editor/browser/editorBrowserExtensions
import { EditOperation } from 'vs/editor/common/core/editOperation';
import { CodeSnippet } from 'vs/editor/contrib/snippet/common/snippet';
import { SnippetController } from 'vs/editor/contrib/snippet/common/snippetController';
import { Context as SuggestContext } from 'vs/editor/contrib/suggest/common/suggest';
import { Context as SuggestContext, snippetSuggestSupport } from 'vs/editor/contrib/suggest/common/suggest';
import { SuggestModel } from '../common/suggestModel';
import { ICompletionItem } from '../common/completionModel';
import { SuggestWidget } from './suggestWidget';
......@@ -37,6 +38,7 @@ export class SuggestController implements IEditorContribution {
constructor(
private editor: ICodeEditor,
@ICommandService private commandService: ICommandService,
@ITelemetryService private telemetryService: ITelemetryService,
@IContextKeyService contextKeyService: IContextKeyService,
@IInstantiationService instantiationService: IInstantiationService
) {
......@@ -84,8 +86,12 @@ export class SuggestController implements IEditorContribution {
this.editor.pushUndoStop();
}
const snippet = suggestion.isTMSnippet
? CodeSnippet.fromTextmate(suggestion.insertText)
: CodeSnippet.fromInternal(suggestion.insertText);
SnippetController.get(this.editor).run(
!suggestion.isTMSnippet ? CodeSnippet.fromInternal(suggestion.insertText) : CodeSnippet.fromTextmate(suggestion.insertText),
snippet,
suggestion.overwriteBefore + columnDelta,
suggestion.overwriteAfter
);
......@@ -93,6 +99,12 @@ export class SuggestController implements IEditorContribution {
if (suggestion.command) {
this.commandService.executeCommand(suggestion.command.id, ...suggestion.command.arguments).done(undefined, onUnexpectedError);
}
if (item.support !== snippetSuggestSupport) {
this.telemetryService.publicLog('suggestSnippetInsert', {
hasPlaceholders: snippet.placeHolders.length > 0
});
}
}
this.model.cancel();
......
......@@ -38,7 +38,7 @@ export type SnippetConfig = 'top' | 'bottom' | 'inline' | 'none';
// add suggestions from snippet registry.
const snippetSuggestSupport: ISuggestSupport = {
export const snippetSuggestSupport: ISuggestSupport = {
triggerCharacters: [],
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册