4
4
*--------------------------------------------------------------------------------------------*/
5
5
6
6
import { languages } from 'vscode';
7
+ import { IAuthenticationService } from '../../../platform/authentication/common/authentication';
7
8
import { ConfigKey, IConfigurationService } from '../../../platform/configuration/common/configurationService';
8
9
import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
9
10
import { Disposable } from '../../../util/vs/base/common/lifecycle';
10
- import { autorun } from '../../../util/vs/base/common/observableInternal';
11
+ import { autorun, observableFromEvent } from '../../../util/vs/base/common/observableInternal';
11
12
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
12
13
import { createContext, setup } from '../../completions-core/completionsServiceBridges';
13
14
import { CopilotInlineCompletionItemProvider } from '../../completions-core/extension/src/inlineCompletion';
@@ -17,10 +18,13 @@ export class CompletionsCoreContribution extends Disposable {
17
18
18
19
private _provider: CopilotInlineCompletionItemProvider | undefined;
19
20
21
+ private readonly _copilotToken = observableFromEvent(this, this.authenticationService.onDidAuthenticationChange, () => this.authenticationService.copilotToken);
22
+
20
23
constructor(
21
24
@IInstantiationService private readonly _instantiationService: IInstantiationService,
22
25
@IConfigurationService configurationService: IConfigurationService,
23
26
@IExperimentationService experimentationService: IExperimentationService,
27
+ @IAuthenticationService private readonly authenticationService: IAuthenticationService,
24
28
) {
25
29
super();
26
30
@@ -30,6 +34,11 @@ export class CompletionsCoreContribution extends Disposable {
30
34
const unificationStateValue = unificationState.read(reader);
31
35
const configEnabled = configurationService.getExperimentBasedConfigObservable<boolean>(ConfigKey.Internal.InlineEditsEnableGhCompletionsProvider, experimentationService).read(reader);
32
36
37
+ if (this._copilotToken.read(reader)?.isNoAuthUser) {
38
+ // TODO@bpasero revisit this in the future
39
+ return;
40
+ }
41
+
33
42
if (unificationStateValue?.codeUnification || configEnabled) {
34
43
const provider = this._getOrCreateProvider();
35
44
reader.store.add(languages.registerInlineCompletionItemProvider({ pattern: '**' }, provider, { debounceDelayMs: 0, excludes: ['github.copilot'], groupId: 'completions' }));
0 commit comments