-
Notifications
You must be signed in to change notification settings - Fork 0
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
The One Plugin Manager #10
Comments
Also it would be good for the community I think to suggest a package description that would list dependencies, and have "The One" package manager handle dependencies for you :) |
Not to make you think about plugin managers too much (a horrible fate, I agree), but can you elaborate on how |
To be fair I’ve been tweaking around with What I don’t like about it probably has little to do with The other thing that frustrates me right now is that
to load the configuration in Anyhow. I’ll be fine, but I think some more hand holding would be beneficial. I can help if needed, once I get a grip of how things work. |
The I admit that |
@wbthomason My suggestions would be breaking changes to simplify the design. -- Load on a combination of conditions: specific filetypes or commands
-- Also run code after load (see the "config" key) You can do this in init.lua as well. Plugins should communicate with a specialised format, what kind of setup they recommend. -- Plugins can have dependencies on other plugins UPDATE: Dependencies are all explicit. That should be fine and useful to automatically clean clutter. -- Plugins can have post-install/update hooks How do you align changes in the install/update hooks with the package requirements though? -- You can specify multiple plugins in a single call Non-Linear control flow should be avoided, if possible. What was the reason for this? UPDATE: all things super useful to try out packages. Just put all the stuff in a line and comment it in and out. |
As an author of one of these mentioned package managers (https://github.com/kristijanhusak/vim-packager), I completely agree with author. |
@wbthomason What was the reason to enable |
raises hand I'm using it extensively. :) Also it looks like it doesn't complicate the code too much—it's basically just 'is arg1 a list-table with more than one entry? if yes, rerun |
Basically this. I find it nice for grouping thematically similar plugins that are not quite dependencies. |
I definitely appreciate grouping my plugins like this |
Speaking of grouping plugins, I’ve been wondering about whether one might want to reflect such grouping in the folder structure of the Vim packages:
has anyone already thought of the pros/cons of such a thing? |
"I want vim-plug but in lua." Have you checked out Paq? |
It is unlikely that it converges to 1 way of doing things, because people prefer different complexity and different number of times "to update plugins" and "review the code". More complex plugin managers may implement dependency resolution (pre/lazy)loading and more fancy stuff like disabling plugins, integrating luarocks, snapshots + rollbacks etc. Unfortunately there is no blog post to reflect design decisions of packer, so I can not tell nothing about the design of https://github.com/ii14/neopm and if it can remove many problems of packers by design etc. What I would like most is, if plugin managers would advertise strict versioning like providing 2 columns for repo + git hash and this plugin "just pulls everything". After every update, unless opted out, the git hashes are versioned so you can bisect or restore trivially. |
Does meta plugin manager help for you here? I wrote my own extensible plugin manager wrap on top of vim-plug that soon will be supporting switching between different plugin managers (with certain limitations) for easier migration/transition. The reason it was born is that I would like to have a unified plugin management API that would talk to the plugin manager so I can control how plugin will be loaded/configured without a need to rewritten the whole configuration structure (as I used quite a number of plugins). All of the plugin implementation work are mostly out of my own use case here. |
lazy.nvim seems to be current meta. Nearly every neovim dotfile I've seen is using it right now. |
I would argue the main motivation for lazy is that neovim core has no loader convention knowledge distributed for users how to cache plugins and invalidate cache etc. Speaking in more simple terms, without fancy graphics and storing + loading hash sums, a more simple git script checking for updates is not that complex, even for git worktrees. Personally, I would prefer more runtime control over which plugins are activated to workaround performance issues on macro execution and other quirks like telescope not being designed for huge repos and alike things. |
https://github.com/lewis6991/pckr.nvim has replaced packer. I personally am still using lazy (for now?) |
What?
I want
vim-plug
but inlua
. The syntax should be horrifyingly obvious, the code should be simple, it should run instantly, use the modern bells and whistles that were recently bestowed upon us (but only the bits it needs), and it should gently encourage the user to organize things in a simple and effective manner. Most importantly, it should be the Obvious Answer™ to the question “what do I use to manage my plugins?”, with a name likeplugins.nvim
.Why?
In the good/bad old days, you were happy to use Pathogen on Vim. Then maybe you moved to Vim-Plug and used that for a while. Maybe you used Dein or something else. Maybe not. Now Vim comes with “out of the box” package management, and there are five thousand different plugin (package? what’s the difference? what’s in a name?) managers from which to choose from with no Obvious Answer™.
I don’t want to think about my plugin manager. Do you? Do
neovim
newcomers?Potential existing implementations:
Too many – that’s the problem. There are the old kids on the block like https://github.com/junegunn/vim-plug, then a gazillion other written in every possible language you can think of. There are some more recent that use the (relatively) new
package
capabilities like https://github.com/k-takata/minpac or https://github.com/kristijanhusak/vim-packager.Closest to what I have in mind is probably https://github.com/wbthomason/packer.nvim. Maybe. I don’t know. To know I’d have to think about plugin managers, which is what I’m trying to avoid in the first place.
Potential pitfalls:
There may not be an Obvious Answer™ because people want fundamentally different things. That’s a cowardly excuse.
The text was updated successfully, but these errors were encountered: