Comments (7)
Unfortunately, this isn't a feature that I'd be willing to add to Paq.
Using neovim's built-in package system, and not modifying the runtimepath was one of the motivating factors to write Paq in the first place.
The projects you linked to are, as you said, not (neo)vim specific. I'd recommend you symlink the vim-related directories to a different pack/
directory. See :help packages
.
For example, with Black:
$ pip install black
$ pip show black # this will show the location where Black is installed
$ cd ${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/pack/" # Go to the directory where Neovim expects package collections
$ mkdir local_plugins # Create your own directory for local plugins
$ cd local_plugins
$ ln -s path/to/black/
Neovim will append directories in pack/*/
to the runtimepath automatically.
I know this isn't a smooth workaround, but having a neovim package manager download Python dependencies seems like a terrible idea tbh. Letting pip (or conda or whatever) do the work and version handling will cause less trouble in the long run.
from paq-nvim.
The runtimepath rule doesn't exist because it's important (it's not, modifying the runtime was the way Pathogen worked). It's simply there to mantain a somewhat consistent scope for the project.
Symlinking in unix systems is easy (that's why I suggested it), but not that simple in Windows iirc. And Windows support is something I kinda already commited to
from paq-nvim.
Interesting, I hadn't realised what vim-plug's rtp
option stood for.
That is fine, but just for clarity: I think I picked a bad example with black. I agree neovim managing Python dependencies is a bad idea. I was hoping for support for non-standard repository layouts. In the first example I gave the vim/
subdirectory is what I actually wanted Paq to use, discarding everything else.
from paq-nvim.
Yes, I understand. But there are only two ways Paq can use the vim/
directory. Either Paq is loaded at start-up to modify the runtimepath, or Neovim knows already to load the package, which can done by symlinking the package appropriately.
The point still stands, Paq doesn't have to be loaded at start-up, and add this feature also implies adding that requirement, which is not something I'm interested in, since it only really applies to these rare cases.
from paq-nvim.
Is there a way to implement something similar without modifying the runtimepath?
Use case: I want Paq to install and manage the onehalf color scheme (https://github.com/sonph/onehalf). The vim-specific stuff is in the vim/
subdirectory.
What about adding a vim-root
option? If specified then paq will:
- Checkout the repo to a different location (maybe
paqs/repos/onehalf
) - Add a symlink at
paqs/start/onehalf
pointing topaqs/reops/onehalf/vim
Seems like a reasonable way to manage this without needing to modify the runtime path. The uninstall code would need to be altered to remove things from the repos directory as well, but that seems simple enough. The other corner case is checking when someone changes the vim-root
value, in which case you'd need to move the directory and fiddle with the symlink. If this is something you're interested in adding, I could try writing a PR.
from paq-nvim.
This one as well: https://github.com/soywod/himalaya/tree/master/vim
@savq would you be cool with the solution @bendk proposed?
from paq-nvim.
Another possibility would be to:
- ask the maintainers if they could divide the repository up in seperate repositories (and maybe use git submodules)
- Create a repo, submodule https://github.com/sonph/onehalf, then ln -s
vim/*
to./*
from paq-nvim.
Related Issues (20)
- Paq fails to update folke/tokyonight.nvim always HOT 3
- failed to run `cd` as post install hook HOT 2
- Wiki has out-of-date TODO for lazy loading with autocommand
- log file (PaqLogOpen) interleaves logs from different jobs HOT 1
- Question about paq vs paqs folders HOT 1
- self-installing example HOT 2
- PaqClean command removes all packages except paq-nvim HOT 2
- Add possibility to pass `opt true` on paq setup HOT 1
- Feature Request: SSH HOT 2
- `opt = true` not respected HOT 2
- [Feature] custom commands for updating/installing HOT 3
- bug in bootstrapping docs HOT 1
- Repo owner not taken under consideration when trying to install plugin with same name
- [Feature Discussion] shorten way to call a `:Command` on `run`
- Unable to run setup hook for gitsigns HOT 3
- [Feature Request] Support for tagging certain versions HOT 1
- Synchronous plugins installation HOT 1
- What neovim version is paq trying to target? HOT 3
- Tracking issue for Paq 2.0 HOT 9
- Error when using extra parameters with plugins. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from paq-nvim.