Make a plugin which support vs-code like snippet in obsidian

I intend to develop a plugin that supports the VS Code snippet format with the following features:

  1. Customizable expansion keys that are fully compatible with vimrc configurations. In cases where no snippet is available, the default key behavior will be preserved as a fallback. This is particularly beneficial for Vim key mappings in insert mode—for instance, I am accustomed to using Ctrl-E to trigger snippet expansion; when no snippet is present, I expect Ctrl-E to move the cursor to the end of the line.

  2. Support for the Tab key to navigate through multiple fields within a snippet, consistent with VS Code’s behavior. Additionally, the plugin will support advanced snippet node types available in Neovim’s LuaSnip, such as choice nodes and function nodes, significantly enhancing the flexibility and expressive power of snippets.

  3. Integration with a completion interface that displays a list of available snippets, allowing users to manually trigger expansion via a designated keybinding at an appropriate time—similar to LSP completion. This feature is especially useful in environments with a large number of snippets.

  4. Display of snippet descriptions alongside the completion list, improving clarity and usability, and facilitating easier sharing and adoption of snippets within the community.

  5. Support for loading snippet definitions from JSON or TOML files. Given that TOML offers better readability and maintainability, a lightweight compiler may be implemented to automatically convert TOML-based snippets into the JSON format used by VS Code. This approach preserves compatibility with the existing VS Code snippet ecosystem while improving source-level manageability.

I will listen carefully to any suggestions. Currently, these are all at the idea stage. I am not familiar with the obsidian plugin system and it is compatible with vimrc. I am torn between whether it should be used as an obsidian snippet or a jsfile in the vimrc plugin extension?