vim-denops / denops.vim

🐜 An ecosystem of Vim/Neovim which allows developers to write cross-platform plugins in Deno

Home Page:https://vim-denops.github.io/denops-documentation/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

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) => {
  // ...
};