Files
languageservices/actions-languageserver/src/on-completion.ts
T

27 lines
1.1 KiB
TypeScript
Raw Normal View History

2022-11-29 17:41:48 -05:00
import {complete} from "@github/actions-languageservice/complete";
2023-01-30 17:05:32 -08:00
import {Octokit} from "@octokit/rest";
2023-02-07 18:35:50 -05:00
import {CompletionItem, Connection, Position} from "vscode-languageserver";
2022-11-29 17:41:48 -05:00
import {TextDocument} from "vscode-languageserver-textdocument";
import {contextProviders} from "./context-providers";
2023-02-07 18:35:50 -05:00
import {getFileProvider} from "./file-provider";
2022-11-29 17:41:48 -05:00
import {RepositoryContext} from "./initializationOptions";
import {TTLCache} from "./utils/cache";
import {valueProviders} from "./value-providers";
2022-11-08 17:00:59 -08:00
export async function onCompletion(
2023-02-07 18:35:50 -05:00
connection: Connection,
2022-11-08 17:00:59 -08:00
position: Position,
document: TextDocument,
2023-01-30 17:05:32 -08:00
client: Octokit | undefined,
repoContext: RepositoryContext | undefined,
2022-11-28 15:47:05 -08:00
cache: TTLCache
2022-11-08 17:00:59 -08:00
): Promise<CompletionItem[]> {
2023-02-07 18:35:50 -05:00
return await complete(document, position, {
valueProviderConfig: repoContext && valueProviders(client, repoContext, cache),
contextProviderConfig: repoContext && contextProviders(client, repoContext, cache),
fileProvider: getFileProvider(client, cache, repoContext?.workspaceUri, async path => {
return await connection.sendRequest("actions/readFile", {path});
})
});
2022-11-08 17:00:59 -08:00
}