@valtown/codemirror-codeium
Version:
codemirror integration for codeium
52 lines • 1.92 kB
TypeScript
import { Facet } from "@codemirror/state";
import { Language } from "./api/proto/exa/codeium_common_pb/codeium_common_pb.js";
import type { Document } from "./api/proto/exa/language_server_pb/language_server_pb.js";
import type { PartialMessage } from "@bufbuild/protobuf";
import type { CompletionContext } from "@codemirror/autocomplete";
import { DefaultCycleWidget } from "./defaultCycleWidget.js";
export interface CodeiumConfig {
/**
* Codeium API key
*/
apiKey: string;
/**
* The programming language of the given document.
*/
language?: Language;
/**
* Time in millseconds after typing to fetch
* completions from codeium
*/
timeout?: number;
authSource?: number;
/**
* An optional method that lets you decide whether Codeium
* should be triggered at a particular place in a document.
*
* Might be useful for if you're fighting with overlapping
* autocomplete sources.
*/
shouldComplete?: (context: CompletionContext) => boolean;
/**
* The class for the widget that is shown at the end a suggestion
* when there are multiple suggestions to cycle through.
*/
widgetClass?: typeof DefaultCycleWidget | null;
/**
* Always request completions after a delay
*/
alwaysOn?: boolean;
}
export declare const codeiumConfig: Facet<CodeiumConfig, Required<CodeiumConfig>>;
type OtherDocuments = PartialMessage<Document>[];
export interface CodeiumOtherDocumentsConfig {
override?: () => Promise<OtherDocuments> | OtherDocuments;
}
/**
* Configuration for other documents included with the completion
* request. Adding other documents helps you get more accurate
* suggestions by adding context.
*/
export declare const codeiumOtherDocumentsConfig: Facet<CodeiumOtherDocumentsConfig, Required<CodeiumOtherDocumentsConfig>>;
export {};
//# sourceMappingURL=config.d.ts.map