You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
938 B

import {
BaseSource,
Candidate,
} from "https://deno.land/x/ddc_vim@v0.13.0/types.ts#^";
import {
GatherCandidatesArguments,
} from "https://deno.land/x/ddc_vim@v0.13.0/base/source.ts#^";
// deno-lint-ignore ban-types
type Params = {};
export class Source extends BaseSource<Params> {
3 years ago
static readonly CMAX = 100;
c = 0;
async gatherCandidates(
args: GatherCandidatesArguments<Params>,
): Promise<Candidate[]> {
3 years ago
this.c++;
if(this.c === Source.CMAX) this.c = 0;
const lspservers: string[] = await args.denops.call(
"lsp#get_allowed_servers",
// deno-lint-ignore no-explicit-any
) as any;
if (lspservers.length === 0) {
return [];
}
3 years ago
const id = `source/${this.name}/${this.c}`;
void args.denops.call("ddc_vim_lsp#request", lspservers[0], id);
3 years ago
const items = await (args as any).onCallback(id, 2000);
return items;
}
params(): Params {
return {};
}
}