Expose types for plugin's main function
Milly opened this issue · comments
Exposes the type PluginMain
for the plugin's main function.
Update the way to define the main function of the plugin as follows:
// New approach
export const main: PluginMain = (denops) => {
// ...
};
There is a discussion in #332 about extending the definition of the plugin's main function.
Actually, I usually prefer ordinal function
style but the new approach has a big advantage so I'm positive to change the style.
What we need to updates are
- denops.vim - #347
- deno-denops-core - vim-denops/deno-denops-core#7
- deno-denops-std - vim-denops/deno-denops-std#245
- denops-helloworld.vim - vim-denops/denops-helloworld.vim#16
- denops-maze.vim - vim-denops/denops-maze.vim#1
- denops-documentation - vim-denops/denops-documentation#13
Moreover, I believe there are more suitable names than "PluginMain" for the following reasons:
- Developers are already aware that it's a plugin, hence the "Plugin" prefix seems somewhat redundant.
- Although the function is named "main," it merely serves as a placeholder and doesn't elucidate the functionality. Therefore, the type name should offer a more descriptive insight.
Considering the aforementioned points, I suggest "Entrypoint" as the type name. What are your thoughts?
I suggest "Entrypoint" as the type name. What are your thoughts?
Very good. I agree.
Now denops_std
(v6.5.0) serve Entrypoint
and we can define the main
function like
import type { Entrypoint } from "https://deno.land/x/denops_std@v6.5.0/mod.ts";
export const main: Entrypoint = (denops) => {
// ...
};