import { register } from "https://deno.land/x/denops_std@v6.5.1/lambda/mod.ts";
Register a lambda function as a denops API and return the identifier.
import type { Entrypoint } from "https://deno.land/x/denops_std@v6.5.1/mod.ts";
import * as lambda from "https://deno.land/x/denops_std@v6.5.1/lambda/mod.ts";
export const main: Entrypoint = async (denops) => {
// 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 type { Entrypoint } from "https://deno.land/x/denops_std@v6.5.1/mod.ts";
import * as lambda from "https://deno.land/x/denops_std@v6.5.1/lambda/mod.ts";
export const main: Entrypoint = async (denops) => {
// 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);
}