Add excludes and groupId (#777)

* Add excludes and groupId

* 💄
This commit is contained in:
Benjamin Christopher Simmonds
2025-08-27 00:38:36 +02:00
committed by GitHub
parent e1d5bf35f9
commit e992aa7164
6 changed files with 17 additions and 9 deletions

View File

@@ -4,13 +4,13 @@
*--------------------------------------------------------------------------------------------*/
import { languages } from 'vscode';
import { GhostTextProvider } from '../../completions-core/extension/src/ghostText/ghostText';
import { Disposable } from '../../../util/vs/base/common/lifecycle';
import { createContext, setup } from '../../completions-core/completionsServiceBridges';
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
import { ConfigKey, IConfigurationService } from '../../../platform/configuration/common/configurationService';
import { autorun } from '../../../util/vs/base/common/observableInternal';
import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
import { Disposable } from '../../../util/vs/base/common/lifecycle';
import { autorun } from '../../../util/vs/base/common/observableInternal';
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
import { createContext, setup } from '../../completions-core/completionsServiceBridges';
import { GhostTextProvider } from '../../completions-core/extension/src/ghostText/ghostText';
export class CompletionsCoreContribution extends Disposable {
constructor(
@@ -27,7 +27,7 @@ export class CompletionsCoreContribution extends Disposable {
const ctx = instantiationService.invokeFunction(createContext);
reader.store.add(setup(ctx));
const provider = new GhostTextProvider(ctx);
reader.store.add(languages.registerInlineCompletionItemProvider({ pattern: '**' }, provider, { debounceDelayMs: 0 }));
reader.store.add(languages.registerInlineCompletionItemProvider({ pattern: '**' }, provider, { debounceDelayMs: 0, excludes: ['github.copilot'], groupId: 'completions' }));
}));
}
}

View File

@@ -111,7 +111,7 @@ describe('NextEditProvider Caching', () => {
doc.applyEdit(StringEdit.insert(11, '3D'));
const context: InlineCompletionContext = { triggerKind: 1, selectedCompletionInfo: undefined, requestUuid: generateUuid(), requestIssuedDateTime: Date.now() };
const context: InlineCompletionContext = { triggerKind: 1, selectedCompletionInfo: undefined, requestUuid: generateUuid(), requestIssuedDateTime: Date.now(), earliestShownDateTime: Date.now() + 200 };
const logContext = new InlineEditRequestLogContext(doc.id.toString(), 1, context);
const cancellationToken = CancellationToken.None;
const tb1 = new NextEditProviderTelemetryBuilder(gitExtensionService, mockNotebookService, workspaceService, nextEditProvider.ID, doc);

View File

@@ -135,6 +135,7 @@ export class InlineEditProviderFeature extends Disposable implements IExtensionC
displayName: provider.displayName,
yieldTo: this._yieldToCopilot.read(reader) ? ['github.copilot'] : undefined,
debounceDelayMs: 0, // set 0 debounce to ensure consistent delays/timings
groupId: 'nes',
}));
if (TRIGGER_INLINE_EDIT_ON_ACTIVE_EDITOR_CHANGE) {

View File

@@ -1392,7 +1392,7 @@ class CachePopulationTrigger implements vscode.Disposable {
this.onInlineCompletion(document, position, context);
return undefined;
}
}, { debounceDelayMs: 0 }));
}, { debounceDelayMs: 0, groupId: 'contextService' }));
}
public dispose() {

View File

@@ -46,6 +46,9 @@ declare module 'vscode' {
action?: Command;
displayLocation?: InlineCompletionDisplayLocation;
/** Used for telemetry. Can be an arbitrary string. */
correlationId?: string;
}
export enum InlineCompletionDisplayLocationKind {
@@ -78,6 +81,8 @@ declare module 'vscode' {
debounceDelayMs?: number;
displayName?: string;
excludes?: string[];
}
export interface InlineCompletionItemProvider {
@@ -162,6 +167,8 @@ declare module 'vscode' {
readonly requestUuid: string;
readonly requestIssuedDateTime: number;
readonly earliestShownDateTime: number;
}
export interface PartialAcceptInfo {

View File

@@ -169,7 +169,7 @@ export class InlineEditTester {
const historyContext = historyContextProvider.getHistoryContext(docId)!;
const activeDocument = historyContext.getMostRecentDocument(); // TODO
const context: InlineCompletionContext = { triggerKind: 1, selectedCompletionInfo: undefined, requestUuid: generateUuid(), requestIssuedDateTime: Date.now() };
const context: InlineCompletionContext = { triggerKind: 1, selectedCompletionInfo: undefined, requestUuid: generateUuid(), requestIssuedDateTime: Date.now(), earliestShownDateTime: Date.now() + 200 };
const logContext = new InlineEditRequestLogContext(activeDocument.docId.toString(), 1, context);
const telemetryBuilder = new NextEditProviderTelemetryBuilder(gitExtensionService, notebookService, workspaceService, nextEditProvider.ID, workspace.getDocument(activeDocument.docId)!);