Improve __fisher_name name resolution from paths or URLs
more accurately. Now correctly process names paths such
as fisher-plugin-*, fisher-theme-* and other permutations.
The update mechanism updates master only. If you are working in branch
foo, the branch name is saved and restored later. First attempt a naive
git pull --rebase origin master, and if that fails, abort the rebase,
fetch origin master, reset to head and clean directory.
Remove scripts directory in favor of using the functions/ or root
for sharing scripts. Using a scripts directory does not solve the
main problem of sharing scripts with the same name, so this addition
was deemed of little value. In the future, a more robust way to avoid
name collisions when sharing scripts would be nice to have, but at
the moment having a scripts directory is not solving this problem
but just adding clutter to the configuration.
Closes#105.
Obviously this should be the other way around, otherwise, the
user would not be able to modify any variables that have an
effect when Fisherman starts.
In other words, when users install Fisherman, the code in
config.fish should be added before sourcing Fisherman
configuration and not after (current way).
+ Now __fisher_plugin_uninstall_handler is aware of a third argument,
`option` that can be used to indicate the event handler or uninstall
file abot any options available in `fisher uninstall`, namely, --force.
+ In addition, the uninstaller mechanism no longer receives the name of
the plugin, as this information is usually already available to plugins
anyway.
+ Finally, a path to the parent directory where the uninstall.fish file
is located is given instead of the full path to the file. Again, the
plugin usually knows the name of the file, `uninstall.fish`.
Split help command functionality into individual functions
for cosistent with the way other commands are structured,
and improve tab completion times by skipping the overhead
of calling fisher_help directly.