提交 145ec39a 编写于 作者: J Jackson Kearl

Add telemetry events for search editors

上级 f76adb0d
......@@ -556,7 +556,6 @@ export class OpenSearchEditorAction extends Action {
static readonly LABEL = nls.localize('search.openNewEditor', "Open new Search Editor");
constructor(id: string, label: string,
@IEditorService private editorService: IEditorService,
@IConfigurationService private configurationService: IConfigurationService,
@IInstantiationService private readonly instantiationService: IInstantiationService,
) {
......@@ -573,7 +572,7 @@ export class OpenSearchEditorAction extends Action {
async run() {
if (this.configurationService.getValue<ISearchConfigurationProperties>('search').enableSearchEditorPreview) {
await openNewSearchEditor(this.editorService, this.instantiationService);
await this.instantiationService.invokeFunction(openNewSearchEditor);
}
}
}
......@@ -586,8 +585,6 @@ export class OpenResultsInEditorAction extends Action {
constructor(id: string, label: string,
@IViewletService private viewletService: IViewletService,
@IPanelService private panelService: IPanelService,
@ILabelService private labelService: ILabelService,
@IEditorService private editorService: IEditorService,
@IConfigurationService private configurationService: IConfigurationService,
@IInstantiationService private readonly instantiationService: IInstantiationService,
) {
......@@ -606,7 +603,7 @@ export class OpenResultsInEditorAction extends Action {
async run() {
const searchView = getSearchView(this.viewletService, this.panelService);
if (searchView && this.configurationService.getValue<ISearchConfigurationProperties>('search').enableSearchEditorPreview) {
await createEditorFromSearchResult(searchView.searchResult, searchView.searchIncludePattern.getValue(), searchView.searchExcludePattern.getValue(), this.labelService, this.editorService, this.instantiationService);
await this.instantiationService.invokeFunction(createEditorFromSearchResult, searchView.searchResult, searchView.searchIncludePattern.getValue(), searchView.searchExcludePattern.getValue());
}
}
}
......
......@@ -8,17 +8,22 @@ import { URI } from 'vs/base/common/uri';
import 'vs/css!./media/searchEditor';
import { isDiffEditor, ICodeEditor } from 'vs/editor/browser/editorBrowser';
import { TrackedRangeStickiness } from 'vs/editor/common/model';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
import { ILabelService } from 'vs/platform/label/common/label';
import { SearchResult } from 'vs/workbench/contrib/search/common/searchModel';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
import { SearchEditor } from 'vs/workbench/contrib/search/browser/searchEditor';
import { getOrMakeSearchEditorInput, SearchEditorInput } from 'vs/workbench/contrib/search/browser/searchEditorInput';
import { serializeSearchResultForEditor, serializeSearchConfiguration } from 'vs/workbench/contrib/search/browser/searchEditorSerialization';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
export const openNewSearchEditor =
async (editorService: IEditorService, instantiationService: IInstantiationService) => {
async (accessor: ServicesAccessor) => {
const editorService = accessor.get(IEditorService);
const telemetryService = accessor.get(ITelemetryService);
const instantiationService = accessor.get(IInstantiationService);
const activeEditor = editorService.activeTextEditorWidget;
let activeModel: ICodeEditor | undefined;
let selected = '';
......@@ -41,17 +46,27 @@ export const openNewSearchEditor =
}
}
telemetryService.publicLog2<{}, {}>('searchEditor/openNewSearchEditor');
const input = instantiationService.invokeFunction(getOrMakeSearchEditorInput, { text: serializeSearchConfiguration({ query: selected }) });
await editorService.openEditor(input, { pinned: true });
};
export const createEditorFromSearchResult =
async (searchResult: SearchResult, rawIncludePattern: string, rawExcludePattern: string, labelService: ILabelService, editorService: IEditorService, instantiationService: IInstantiationService) => {
async (accessor: ServicesAccessor, searchResult: SearchResult, rawIncludePattern: string, rawExcludePattern: string) => {
if (!searchResult.query) {
console.error('Expected searchResult.query to be defined. Got', searchResult);
return;
}
const editorService = accessor.get(IEditorService);
const telemetryService = accessor.get(ITelemetryService);
const instantiationService = accessor.get(IInstantiationService);
const labelService = accessor.get(ILabelService);
telemetryService.publicLog2<{}, {}>('searchEditor/createEditorFromSearchResult');
const labelFormatter = (uri: URI): string => labelService.getUriLabel(uri, { relative: true });
const { text, matchRanges } = serializeSearchResultForEditor(searchResult, rawIncludePattern, rawExcludePattern, 0, labelFormatter, true);
......
......@@ -65,7 +65,6 @@ import { MultiCursorSelectionController } from 'vs/editor/contrib/multicursor/mu
import { Selection } from 'vs/editor/common/core/selection';
import { SIDE_BAR_BACKGROUND, PANEL_BACKGROUND } from 'vs/workbench/common/theme';
import { createEditorFromSearchResult } from 'vs/workbench/contrib/search/browser/searchEditorActions';
import { ILabelService } from 'vs/platform/label/common/label';
import { Color, RGBA } from 'vs/base/common/color';
const $ = dom.$;
......@@ -171,7 +170,6 @@ export class SearchView extends ViewPane {
@IAccessibilityService private readonly accessibilityService: IAccessibilityService,
@IKeybindingService keybindingService: IKeybindingService,
@IStorageService storageService: IStorageService,
@ILabelService private readonly labelService: ILabelService,
@IOpenerService private readonly openerService: IOpenerService
) {
super({ ...options, id: VIEW_ID, ariaHeaderLabel: nls.localize('searchView', "Search") }, keybindingService, contextMenuService, configurationService, contextKeyService, instantiationService);
......@@ -1559,7 +1557,7 @@ export class SearchView extends ViewPane {
this.messageDisposables.push(dom.addDisposableListener(openInEditorLink, dom.EventType.CLICK, (e: MouseEvent) => {
dom.EventHelper.stop(e, false);
createEditorFromSearchResult(this.searchResult, this.searchIncludePattern.getValue(), this.searchExcludePattern.getValue(), this.labelService, this.editorService, this.instantiationService);
this.instantiationService.invokeFunction(createEditorFromSearchResult, this.searchResult, this.searchIncludePattern.getValue(), this.searchExcludePattern.getValue());
}));
} else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册