Plugin system prototype for Helix #13945
Replies: 6 comments 4 replies
-
There is already an ongoing plugin system effort: #8675 |
Beta Was this translation helpful? Give feedback.
-
Somebody has the right ideas. I'll check it out tomorrow, I has to sleep now. |
Beta Was this translation helpful? Give feedback.
-
Competition is right. We should not have only one choice. |
Beta Was this translation helpful? Give feedback.
-
@denieldiniz Could you elaborate a bit more on you design/architecture choices? As I understand you plugin system allows to write plugins in Lua and WASM? |
Beta Was this translation helpful? Give feedback.
-
I found this: Complete Report: Implementation of the Plugins/Scripts Module for the Helix Editor |
Beta Was this translation helpful? Give feedback.
-
@denieldiniz I have been waited so long for this feature. Why Lua + WASM? (Initial thoughts)helix/anotacoes/1-helix-plugin.md at feat/plugin-wasm-lua · denieldiniz/helix v1 Roadmaphelix/anotacoes/2-roadmap_plugins_v1.md at feat/plugin-wasm-lua · denieldiniz/helix Current Code Status (Report)helix/anotacoes/3-relatorio_modulo_plugin.md at feat/plugin-wasm-lua · denieldiniz/helix
BTW: There are quite a lot code comments in Portuguese. Remember to translate them before (if) this gets merged.Do you have any special build instructions, e.g. did you update the |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
👋 Hey everyone!
First of all, thank you for the incredible work on Helix — I've been using it heavily for the past few months, and it's truly changed the way I write code.
Recently, I started exploring ways to enable controlled extensibility in the editor, and ended up building a prototype for a plugin system, written entirely in Rust, with a modular, minimal, and safe design.
The idea is not to introduce scripting runtimes or runtime bloat, but rather to provide a clean foundation for a plugin API that is:
Optional
Well-integrated with Helix's core
Aligned with the project's philosophy
I created a fork of Helix to showcase this prototype and would love to hear your thoughts on it.
Repo: 👉 https://github.com/denieldiniz/helix
💡 What it currently does:
Registers commands from external plugins (.so/.dll)
Supports basic hooks like on_open, on_save, and on_command
Plugin discovery via [plugins] section in helix-config.toml
Trait-based plugin API in Rust — no runtime magic
Example:
#[helix_plugin]
fn on_command(input: &str) -> Option {
if input == "hello" {
Some(CommandOutput::new("Hello from plugin!"))
} else {
None
}
}
I’d really love to get your feedback on this:
Does this direction make sense for Helix?
Any concerns or ideas regarding the architecture?
Would it be worth evolving this into something officially supported?
I plan to open a PR with the initial version to help facilitate the technical discussion.
Thanks so much for your time — I’m happy to adjust, simplify, or rethink anything based on community and maintainer input! 🙌
Beta Was this translation helpful? Give feedback.
All reactions