This module bootstraps our plugin manager
It can (and should) be called before any plugins are initialized,
containing only a dependency on system git, for cloning the package
manager locally.
The 'install_path' variable was taken from packer.nvim's documentation
and installs packer as an optional (opt) plugin. This is important for
when we have packer manage itself, as we'll need to:
1. Ensure it's loaded during bootstrap via `packadd packer`
2. Install load hooks on it's various commands + module
These functions are primarily designed for reloading lua modules, and
specifically, lua modules returning some sort of local config object or
function.
This commit adds an env var, PSOXIZSH_EXPERIMENTAL_NEOVIM_LUA, that can
be set to opt into using an 'init.lua' based configuration.
This setting only makes sense to use with neovim, and thus even if we do
decide to switch to lua, we'll need to keep the old vimrc config around
for a long time yet, to ensure backwards compatibility
Fix for the warning
```
The `osx` plugin is deprecated and has been renamed to `macos`.
Please update your .zshrc to use the `macos` plugin instead.
```
We now require that a user's local tmux path is ~/.config/tmux.
This is due to failings in how TPM parses tmux config files, namely
that it doesn't expand variables and only looks one level deep for
source-file declarations.
By default we symlink $PSOXIZSH/tmux/tmux.conf to ~/.tmux.conf. Again,
because both TPM and tmux itself have strong (unconfigurable) opinions
about where config files live we'll just have to live with it.
On the upside, this allows us to seperate out different tmux config
'fragments' into files which a user can then include.
By default we symlink in fragment/plugins.conf, but all others are
optional.
- plugins -> $PSOXIZSH/tmux/plugins.conf
- vim integration -> $PSOXIZSH/tmux/fragment/vim-movement.conf
We also allow the user to include personal settings via ~/.config/tmux/{early,late}.conf
which can include any of the fragments we collect!
C