5359433879
* Pass featureFlags to onCompletion in language server * Use import type for FeatureFlags in on-completion.ts
31 lines
1.3 KiB
TypeScript
31 lines
1.3 KiB
TypeScript
import {complete} from "@actions/languageservice/complete";
|
|
import type {FeatureFlags} from "@actions/expressions";
|
|
import {Octokit} from "@octokit/rest";
|
|
import {CompletionItem, Connection, Position} from "vscode-languageserver";
|
|
import {TextDocument} from "vscode-languageserver-textdocument";
|
|
import {contextProviders} from "./context-providers.js";
|
|
import {getFileProvider} from "./file-provider.js";
|
|
import {RepositoryContext} from "./initializationOptions.js";
|
|
import {Requests} from "./request.js";
|
|
import {TTLCache} from "./utils/cache.js";
|
|
import {valueProviders} from "./value-providers.js";
|
|
|
|
export async function onCompletion(
|
|
connection: Connection,
|
|
position: Position,
|
|
document: TextDocument,
|
|
client: Octokit | undefined,
|
|
repoContext: RepositoryContext | undefined,
|
|
cache: TTLCache,
|
|
featureFlags?: FeatureFlags
|
|
): Promise<CompletionItem[]> {
|
|
return await complete(document, position, {
|
|
valueProviderConfig: repoContext && valueProviders(client, repoContext, cache),
|
|
contextProviderConfig: repoContext && contextProviders(client, repoContext, cache),
|
|
featureFlags,
|
|
fileProvider: getFileProvider(client, cache, repoContext?.workspaceUri, async path => {
|
|
return await connection.sendRequest(Requests.ReadFile, {path});
|
|
})
|
|
});
|
|
}
|