Skip to content

Commit

Permalink
chore: improve code
Browse files Browse the repository at this point in the history
  • Loading branch information
Ricbet committed May 24, 2024
1 parent ca31cf5 commit 3c0e884
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 32 deletions.
68 changes: 36 additions & 32 deletions packages/ai-native/src/browser/ai-editor.contribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,17 @@ export class AIEditorContribution extends Disposable implements IEditorFeatureCo

this.initialized = true;

this.addDispose(
Event.debounce(
monacoEditor.onWillChangeModel,
(_, e) => e,
300,
)(() => {
this.registerLanguageFeatures(editor);
}),
);
this.registerLanguageFeatures(editor);

this.addDispose(this.inlineCompletionHandler.registerInlineCompletionFeature(editor));
this.addDispose(this.inlineChatHandler.registerInlineChatFeature(editor));
}),
Expand All @@ -82,44 +92,38 @@ export class AIEditorContribution extends Disposable implements IEditorFeatureCo
private async registerLanguageFeatures(editor: IEditor): Promise<void> {
const { monacoEditor } = editor;

const doRegister = async () => {
if (this.modelSessionDisposable) {
this.modelSessionDisposable.dispose();
}

const model = monacoEditor.getModel();
if (!model) {
return;
}

this.modelSessionDisposable = new Disposable();
const languageId = model.getLanguageId();
if (this.modelSessionDisposable) {
this.modelSessionDisposable.dispose();
}

if (this.aiNativeConfigService.capabilities.supportsInlineCompletion) {
let latestMiddlewareCollector: IAIMiddleware | undefined;
const model = monacoEditor.getModel();
if (!model) {
return;
}

this.contributions.getContributions().forEach((contribution) => {
if (contribution.middleware) {
latestMiddlewareCollector = contribution.middleware;
}
});
this.modelSessionDisposable = new Disposable();
const languageId = model.getLanguageId();

this.modelSessionDisposable.addDispose(
this.inlineCompletionHandler.registerProvider(editor, languageId, latestMiddlewareCollector),
);
}
if (this.aiNativeConfigService.capabilities.supportsInlineCompletion) {
let latestMiddlewareCollector: IAIMiddleware | undefined;

if (this.aiNativeConfigService.capabilities.supportsRenameSuggestions) {
this.modelSessionDisposable.addDispose(this.renameHandler.registerRenameFeature(languageId));
}
this.contributions.getContributions().forEach((contribution) => {
if (contribution.middleware) {
latestMiddlewareCollector = contribution.middleware;
}
});

if (this.aiNativeConfigService.capabilities.supportsInlineChat) {
this.modelSessionDisposable.addDispose(this.codeActionHandler.registerCodeActionFeature(languageId, editor));
}
};
this.modelSessionDisposable.addDispose(
this.inlineCompletionHandler.registerProvider(editor, languageId, latestMiddlewareCollector),
);
}

this.addDispose(Event.debounce(monacoEditor.onWillChangeModel, (_, e) => e, 300)(doRegister.bind(this)));
if (this.aiNativeConfigService.capabilities.supportsRenameSuggestions) {
this.modelSessionDisposable.addDispose(this.renameHandler.registerRenameFeature(languageId));
}

doRegister();
if (this.aiNativeConfigService.capabilities.supportsInlineChat) {
this.modelSessionDisposable.addDispose(this.codeActionHandler.registerCodeActionFeature(languageId, editor));
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Readable } from 'stream';

import { Autowired, Injectable } from '@opensumi/di';
import { IAICompletionOption } from '@opensumi/ide-core-common';
import {
CancellationToken,
ChatReadableStream,
Expand Down Expand Up @@ -49,6 +50,13 @@ export class AIBackService implements IAIBackService<ReqeustResponse, ChatReadab
@Autowired(INodeLogger)
protected readonly logger: INodeLogger;

async requestCompletion(input: IAICompletionOption, cancelToken?: CancellationToken) {
return {
sessionId: '123',
codeModelList: [{ content: 'Hello OpenSumi!' }],
};
}

async request(input: string, options: IAIBackServiceOption, cancelToken?: CancellationToken) {
await sleep(1000);

Expand Down

0 comments on commit 3c0e884

Please sign in to comment.