import { register } from "https://deno.land/x/denops_std@v4.3.0/lambda/mod.ts";
Register a lambda function as a denops API and return the identifier.
import { Denops } from "../mod.ts";
import * as lambda from "./mod.ts";
export async function main(denops: Denops): Promise<void> {
// Add lambda function
const id = lambda.register(
denops,
() => {
// Do what ever you want.
},
);
// Use id to dispatch added function from Deno
await denops.dispatch(denops.name, id);
// Or from Vim
await denops.cmd("call denops#notify(name, id, [])", {
name: denops.name,
id,
});
}
If you need an one-time lambda function, use once
option like
import { Denops } from "../mod.ts";
import * as lambda from "./mod.ts";
export async function main(denops: Denops): Promise<void> {
// Add lambda function
const id = lambda.register(
denops,
() => {
// Do what ever you want.
},
{
once: true,
},
);
// Use id to dispatch added function from Deno
await denops.dispatch(denops.name, id);
// Second call would throw error
await denops.dispatch(denops.name, id);
}