macro_rules! define_plugin {
($prefix:literal, $init_function:ident, $query_handler:ident) => { ... };
($prefix:literal, $keyboard_shortcut:literal, $init_function:ident, $query_handler:ident) => { ... };
}Expand description
This macro is used to define a Findex plugin.
Example usage:
use findex_plugin::{define_plugin, FResult};
use abi_stable::std_types::*;
fn init(config: &RHashMap<RString, RString>) -> RResult<(), RString> {
// Set up your plugin using the config if necessary
// Return RErr if something went wrong
// Returning this indicates that the plugin initalization is successful
ROk(())
}
fn handle_query(query: RStr) -> RVec<FResult> {
let mut result = vec![];
/* Do stuff here */
RVec::from(result)
}
define_plugin!("prefix!", init, handle_query);
// or, add a shortcut key
define_plugin!("prefix!", "<Ctrl><Shift>p", init, handle_query);Refer to the README.md of this crate for more detailed explanation