init: rewrite init process
Now use pure globbing to generate 100% valid function and completion paths, effectively splitting the init process in two steps, one which paths are added, and other when initialization is done (sourcing init). Package initialization code is done in a new function called `initialize`, which takes care of the dependencies, ensuring proper `init.fish` call order and handling compatibility. This initialization code introduces a new interface for `init.fish` hook, which deprecates the previously used event model. The new interface injects three variables into `init.fish`: path, package and bundle. This variables can be used by the package to autoload paths, use bundled files, etc. Also supports key bindings by sourcing $OMF_CONFIG/key_bindings.fish and also key_bindings.fish in packages (plugins and themes) root directories. This is done when fish_user_key_bindings is called.
Please register or sign in to comment