Skip to content

Commit 738b906

Browse files
authored
Expose source as getter in inline completions (microsoft#238135)
expose source as getter
1 parent 748e34c commit 738b906

File tree

4 files changed

+19
-13
lines changed

4 files changed

+19
-13
lines changed

src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ export class InlineCompletionsController extends Disposable {
292292
this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.suppressSuggestions, reader => {
293293
const model = this.model.read(reader);
294294
const state = model?.inlineCompletionState.read(reader);
295-
return state?.primaryGhostText && state?.inlineCompletion ? state.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions : undefined;
295+
return state?.primaryGhostText && state?.inlineCompletion ? state.inlineCompletion.source.inlineCompletions.suppressSuggestions : undefined;
296296
}));
297297
this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.inlineSuggestionVisible, reader => {
298298
const model = this.model.read(reader);

src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,11 @@ export class InlineCompletionsModel extends Disposable {
258258
public stop(stopReason: 'explicitCancel' | 'automatic' = 'automatic', tx?: ITransaction): void {
259259
subtransaction(tx, tx => {
260260
if (stopReason === 'explicitCancel') {
261-
const completion = this.state.get()?.inlineCompletion?.inlineCompletion;
262-
if (completion && completion.source.provider.handleRejection) {
263-
completion.source.provider.handleRejection(completion.source.inlineCompletions, completion.sourceInlineCompletion);
261+
const inlineCompletion = this.state.get()?.inlineCompletion;
262+
const source = inlineCompletion?.source;
263+
const sourceInlineCompletion = inlineCompletion?.sourceInlineCompletion;
264+
if (sourceInlineCompletion && source?.provider.handleRejection) {
265+
source.provider.handleRejection(source.inlineCompletions, sourceInlineCompletion);
264266
}
265267
}
266268

@@ -284,7 +286,7 @@ export class InlineCompletionsModel extends Disposable {
284286
let inlineEdit: InlineCompletionWithUpdatedRange | undefined = undefined;
285287
const visibleCompletions: InlineCompletionWithUpdatedRange[] = [];
286288
for (const completion of c.inlineCompletions) {
287-
if (!completion.inlineCompletion.sourceInlineCompletion.isInlineEdit) {
289+
if (!completion.sourceInlineCompletion.isInlineEdit) {
288290
if (completion.isVisible(this.textModel, cursorPosition, reader)) {
289291
visibleCompletions.push(completion);
290292
}
@@ -329,7 +331,7 @@ export class InlineCompletionsModel extends Disposable {
329331
});
330332

331333
public readonly activeCommands = derivedOpts<Command[]>({ owner: this, equalsFn: itemsEquals() },
332-
r => this.selectedInlineCompletion.read(r)?.inlineCompletion.source.inlineCompletions.commands ?? []
334+
r => this.selectedInlineCompletion.read(r)?.source.inlineCompletions.commands ?? []
333335
);
334336

335337
public readonly lastTriggerKind: IObservable<InlineCompletionTriggerKind | undefined>
@@ -745,10 +747,11 @@ export class InlineCompletionsModel extends Disposable {
745747
const augmentedCompletion = this._computeAugmentation(itemEdit, undefined);
746748
if (!augmentedCompletion) { return; }
747749

748-
const inlineCompletion = augmentedCompletion.completion.inlineCompletion;
749-
inlineCompletion.source.provider.handlePartialAccept?.(
750-
inlineCompletion.source.inlineCompletions,
751-
inlineCompletion.sourceInlineCompletion,
750+
const source = augmentedCompletion.completion.source;
751+
const sourceInlineCompletion = augmentedCompletion.completion.sourceInlineCompletion;
752+
source.provider.handlePartialAccept?.(
753+
source.inlineCompletions,
754+
sourceInlineCompletion,
752755
itemEdit.text.length,
753756
{
754757
kind: PartialAcceptTriggerKind.Suggest,

src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ export class InlineCompletionWithUpdatedRange {
323323
]);
324324

325325
public get forwardStable() {
326-
return this.inlineCompletion.source.inlineCompletions.enableForwardStability ?? false;
326+
return this.source.inlineCompletions.enableForwardStability ?? false;
327327
}
328328

329329
private readonly _updatedRange = derivedOpts<Range | null>({ owner: this, equalsFn: Range.equalsRange }, reader => {
@@ -342,6 +342,9 @@ export class InlineCompletionWithUpdatedRange {
342342
public _inlineEdit: ISettableObservable<OffsetEdit | null>;
343343
public get inlineEdit() { return this._inlineEdit.get(); }
344344

345+
public get source() { return this.inlineCompletion.source; }
346+
public get sourceInlineCompletion() { return this.inlineCompletion.sourceInlineCompletion; }
347+
345348
private readonly _creationTime: number = Date.now();
346349

347350
constructor(

src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/gutterIndicatorView.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ export class InlineEditsGutterIndicator extends Disposable {
190190
const displayName = derived(this, reader => {
191191
const state = this._model.read(reader)?.inlineEditState;
192192
const item = state?.read(reader);
193-
const completionSource = item?.inlineCompletion?.inlineCompletion.source;
193+
const completionSource = item?.inlineCompletion?.source;
194194
// TODO: expose the provider (typed) and expose the provider the edit belongs totyping and get correct edit
195195
const displayName = (completionSource?.inlineCompletions as any).edits[0]?.provider?.displayName ?? localize('inlineEdit', "Inline Edit");
196196
return displayName;
@@ -207,7 +207,7 @@ export class InlineEditsGutterIndicator extends Disposable {
207207
}
208208
h?.dispose();
209209
},
210-
this._model.map((m, r) => m?.state.read(r)?.inlineCompletion?.inlineCompletion.source.inlineCompletions.commands),
210+
this._model.map((m, r) => m?.state.read(r)?.inlineCompletion?.source.inlineCompletions.commands),
211211
).toDisposableLiveElement());
212212

213213
const focusTracker = disposableStore.add(trackFocus(content.element));

0 commit comments

Comments
 (0)