You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am interested what do you think of the idea of volt defining a special set of plugins which are loaded regardless of which profile you are in.
I noticed that there are many so essential plugins that I use, whom I need always to be active. Such plugins could simply be put in the ../pack/*/start/ directory. Volt could also update them when requested. In the end, only the plugins which are different would be loaded into vim.
Maybe an even better idea would be for volt to define "plugin sets", where for each profile you would choose 2 or more sets which are then loaded. One of these sets could be the "default" set, if the user adds it to this list of sets... just an idea.
as it is right now, I would have to know the subset of my plugins which are essential if I wanted to always copy them to the new profile I create. Also if I decide to add/remove an essential plugin, I have to do the same across all of the profiles.
Could something like this be possible to implement? I think it would greatly improve on the idea of profiles in volt.
Interesting.
I think a profile should be able to include another profiles. volt get can take URI, so the format should be profile://{profile name}.
$ volt profile new basic
$ volt profile add basic tpope/vim-sensible kana/vim-textobj-user kana/vim-textobj-indent
$ volt profile get profile://basic # include above 3 plugins to current profile via profile
Currently volt saves repository's paths as {domain}/{user}/{plugin} format in lock.json .
But that should be saved as URIs, maybe.
Supported protocols are only https, http, git, ssh, profile.
(btw, ssh may not work now, I don't test it yet though)
Yes, I think this idea works great for sharing common packages in case you are adding them.
But let's say that I am removing a package from the 'basic' profile.... How could I apply the same change across all other profiles, for which the 'basic' profile is a subset of them?
default profile can use "basic profile + tyru/caw.vim".
and removing tpope/vim-sensible by volt profile rm basic tpope/vim-sensible (or volt rm tpope/vim-sensible if current profile is basic) makes tpope/vim-sensible unavailable in default profile too.
And also other profiles which reference basic profile.
I was wondering what would the command $volt list show ... ?
Would it be ok, that by itself it shows the top level plugins and other profiles that are included?
If the user desires to view top level plugins as well as all the plugins added with other profiles, an additional switch -e (expand) could be introduced. Like so $volt list -e.
Activity
tyru commentedon Mar 23, 2018
Interesting.
I think a profile should be able to include another profiles.
volt getcan take URI, so the format should beprofile://{profile name}.AvianY commentedon Mar 23, 2018
Are you saying that this already works, or that this will be implemented?
I can't get the last command to work...
tyru commentedon Mar 23, 2018
Currently volt saves repository's paths as
{domain}/{user}/{plugin}format in lock.json .But that should be saved as URIs, maybe.
Supported protocols are only
https,http,git,ssh,profile.(btw,
sshmay not work now, I don't test it yet though)tyru commentedon Mar 23, 2018
Ah sorry, it is just an idea.
Not implemented yet.
AvianY commentedon Mar 23, 2018
Yes, I think this idea works great for sharing common packages in case you are adding them.
But let's say that I am removing a package from the 'basic' profile.... How could I apply the same change across all other profiles, for which the 'basic' profile is a subset of them?
tyru commentedon Mar 23, 2018
I'm thinking data model like this in lock.json:
default profile can use "basic profile + tyru/caw.vim".
and removing tpope/vim-sensible by
volt profile rm basic tpope/vim-sensible(orvolt rm tpope/vim-sensibleif current profile is basic) makestpope/vim-sensibleunavailable in default profile too.And also other profiles which reference basic profile.
AvianY commentedon Mar 23, 2018
Yes, great idea! so basically, a profile can equally contain plugins and other profiles, so you can nest them. This is neat! 👍
tyru commentedon Apr 7, 2018
As I said in #230 (comment) , the syntax of internal string in lock.json should be URN, not URL.
tyru commentedon Apr 7, 2018
Volt must disallow recursive reference (below is directed graphs).
tyru commentedon Apr 8, 2018
Algorithm
Just recursively find the same profile name at the start.
This is naive algorithm.
This does not scale but is simple.
More efficient algorithm may be needed in the future.
AvianY commentedon Apr 10, 2018
I was wondering what would the command
$volt listshow ... ?Would it be ok, that by itself it shows the top level plugins and other profiles that are included?
If the user desires to view top level plugins as well as all the plugins added with other profiles, an additional switch
-e(expand) could be introduced. Like so$volt list -e.what do you think?
tyru commentedon Apr 10, 2018
The question seems unrelated to this issue.
Please file a new issue.