-
Notifications
You must be signed in to change notification settings - Fork 810
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reorganize plugins and library code #103
Comments
If we consider Keep in mind that
P.S.: |
Most of this was done in #207, but we need to fix upgrade mechanism to make sure newer code is used after updating the framework. |
My prediction is that fixing the upgrade mechanism before merging #207 won't be enough. |
You are right. We could roll them with some space in between (a month or two), but unfortunately it's hard to control the user updates frequency.
Although a nice idea, this would have the same issue, we must be sure this is "pulled" before continuing.
And the winner is this idea! 🎉 By far it's the best solution. |
Done in #207 |
We need a major overhaul in our directory structure. The
omf
plugin got inflated with stuff. Core library include unnecessary additions (mostlybasename
). Tackling plugins and themes auto-installable dependencies (#64) should fix most of our separation of concerns issues to allow us to divide mostomf
plugin functionality into separate plugins.With this in mind I have designed and propose a functionality split using the following plugins:
core
: Framework-wise functionsomf.core.reload
: Reload Oh My Fishomf.core.require
: Loads a packagedatabase
: Oh My Fish package database functionspackages.installed
: List installed packagespackages.available
List packages available to installpackage.install
: Install a packageomf
: Oh My Fish command line tool.omf
: Main utility functionomf.install
: Install package or themeomf.remove
: Remove themeomf. ...
: other command functionstechnicolor
: Functions for colorising output, usable by both themes and plugins to color text.tint:
: Tint output text using colorsbold:
: Make output text boldvcs
: A façade for version control, usable by themes which integrate VCS prompt.omf.vcs.name
: Outputs the VCS name (git
,hg
,svn
)omf.vcs.present
: Check if in vcsomf.vcs.branch
: Print current branch nameomf.vcs.dirty
: Check if repository is dirtyomf.vcs.staged
: Check if repo has staged changesomf.vcs.stashed
: Check if repo has stashed changesomf.vcs.touched
: Check if repo has any changesomf.vcs.status
: Output characters for ahead/behind/diverged/detached/clean statesThe implementation can be rolled out in parallel with the current structure, so no backwards-impacting changes would be done. The roadmap I see for implementing this structure follows the order below:
plugin-technicolor
plugin-technicolor
pluginplugin-vcs
omf-cli
omf-core
Let me know what you think about this changes. Comments and improvements on structure are very welcome. I will keep this OP in sync with discussion below.
The text was updated successfully, but these errors were encountered: