提交 f0e15cfe 编写于 作者: R Rob Lourens

Remove obsolete settings search feedback mechanism

上级 4a3439d2
......@@ -7,7 +7,6 @@ import { TPromise } from 'vs/base/common/winjs.base';
import * as nls from 'vs/nls';
import { Delayer } from 'vs/base/common/async';
import * as arrays from 'vs/base/common/arrays';
import * as strings from 'vs/base/common/strings';
import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle';
import { Position } from 'vs/editor/common/core/position';
import { IAction } from 'vs/base/common/actions';
......@@ -595,8 +594,7 @@ export class FeedbackWidgetRenderer extends Disposable {
@IWorkbenchEditorService private editorService: IWorkbenchEditorService,
@ITelemetryService private telemetryService: ITelemetryService,
@INotificationService private notificationService: INotificationService,
@IEnvironmentService private environmentService: IEnvironmentService,
@IConfigurationService private configurationService: IConfigurationService
@IEnvironmentService private environmentService: IEnvironmentService
) {
super();
}
......@@ -679,86 +677,90 @@ export class FeedbackWidgetRenderer extends Disposable {
}
private sendFeedback(feedbackEditor: ICodeEditor, result: IFilterResult, scoredResults: IScoredResults): TPromise<void> {
const model = feedbackEditor.getModel();
const expectedQueryLines = model.getLinesContent()
.filter(line => !strings.startsWith(line, '//'));
let expectedQuery: any;
try {
expectedQuery = JSON.parse(expectedQueryLines.join('\n'));
} catch (e) {
// invalid JSON
return TPromise.wrapError(new Error('Invalid JSON: ' + e.message));
}
const userComment = expectedQuery.comment === FeedbackWidgetRenderer.DEFAULT_COMMENT_TEXT ? undefined : expectedQuery.comment;
// validate alts
if (!this.validateAlts(expectedQuery.alts)) {
return TPromise.wrapError(new Error('alts must be an array of 2-element string arrays'));
}
const altsAdded = expectedQuery.alts && expectedQuery.alts.length;
const alts = altsAdded ? expectedQuery.alts : undefined;
const workbenchSettings = this.configurationService.getValue<IWorkbenchSettingsConfiguration>().workbench.settings;
const autoIngest = workbenchSettings.naturalLanguageSearchAutoIngestFeedback;
const nlpMetadata = result.metadata && result.metadata['nlpResult'];
const duration = nlpMetadata && nlpMetadata.duration;
const requestBody = nlpMetadata && nlpMetadata.requestBody;
const actualResultScores = {};
for (let key in scoredResults) {
actualResultScores[key] = {
score: scoredResults[key].score
};
}
/* __GDPR__
"settingsSearchResultFeedback" : {
"query" : { "classification": "CustomerContent", "purpose": "FeatureInsight" },
"requestBody" : { "classification": "CustomerContent", "purpose": "FeatureInsight" },
"userComment" : { "classification": "CustomerContent", "purpose": "FeatureInsight" },
"actualResults" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"expectedResults" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"duration" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
"buildNumber" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
"alts" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"autoIngest" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }
}
*/
return this.telemetryService.publicLog('settingsSearchResultFeedback', {
query: result.query,
requestBody,
userComment,
actualResults: actualResultScores,
expectedResults: expectedQuery.resultScores,
duration,
buildNumber: this.environmentService.settingsSearchBuildId,
alts,
autoIngest
});
}
private validateAlts(alts?: string[][]): boolean {
if (!alts) {
return true;
}
if (!Array.isArray(alts)) {
return false;
}
if (!alts.length) {
return true;
}
if (!alts.every(altPair => Array.isArray(altPair) && altPair.length === 2 && typeof altPair[0] === 'string' && typeof altPair[1] === 'string')) {
return false;
}
return true;
}
// const model = feedbackEditor.getModel();
// const expectedQueryLines = model.getLinesContent()
// .filter(line => !strings.startsWith(line, '//'));
// let expectedQuery: any;
// try {
// expectedQuery = JSON.parse(expectedQueryLines.join('\n'));
// } catch (e) {
// // invalid JSON
// return TPromise.wrapError(new Error('Invalid JSON: ' + e.message));
// }
// const userComment = expectedQuery.comment === FeedbackWidgetRenderer.DEFAULT_COMMENT_TEXT ? undefined : expectedQuery.comment;
// // validate alts
// if (!this.validateAlts(expectedQuery.alts)) {
// return TPromise.wrapError(new Error('alts must be an array of 2-element string arrays'));
// }
// const altsAdded = expectedQuery.alts && expectedQuery.alts.length;
// const alts = altsAdded ? expectedQuery.alts : undefined;
// const workbenchSettings = this.configurationService.getValue<IWorkbenchSettingsConfiguration>().workbench.settings;
// const autoIngest = workbenchSettings.naturalLanguageSearchAutoIngestFeedback;
// const nlpMetadata = result.metadata && result.metadata['nlpResult'];
// const duration = nlpMetadata && nlpMetadata.duration;
// const requestBody = nlpMetadata && nlpMetadata.requestBody;
// const actualResultScores = {};
// for (let key in scoredResults) {
// actualResultScores[key] = {
// score: scoredResults[key].score
// };
// }
// /* __GDPR__
// "settingsSearchResultFeedback" : {
// "query" : { "classification": "CustomerContent", "purpose": "FeatureInsight" },
// "requestBody" : { "classification": "CustomerContent", "purpose": "FeatureInsight" },
// "userComment" : { "classification": "CustomerContent", "purpose": "FeatureInsight" },
// "actualResults" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
// "expectedResults" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
// "duration" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
// "buildNumber" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
// "alts" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
// "autoIngest" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }
// }
// */
// return this.telemetryService.publicLog('settingsSearchResultFeedback', {
// query: result.query,
// requestBody,
// userComment,
// actualResults: actualResultScores,
// expectedResults: expectedQuery.resultScores,
// duration,
// buildNumber: this.environmentService.settingsSearchBuildId,
// alts,
// autoIngest
// });
// TODO@roblou - reduce GDPR-relevant telemetry by removing this, but it's still helpful for personal use.
// Consider changing this to write to disk.
return TPromise.wrap(null);
}
// private validateAlts(alts?: string[][]): boolean {
// if (!alts) {
// return true;
// }
// if (!Array.isArray(alts)) {
// return false;
// }
// if (!alts.length) {
// return true;
// }
// if (!alts.every(altPair => Array.isArray(altPair) && altPair.length === 2 && typeof altPair[0] === 'string' && typeof altPair[1] === 'string')) {
// return false;
// }
// return true;
// }
private disposeWidget(): void {
if (this._feedbackWidget) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册