vim-flavor 2.2.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +12 -0
- data/.github/workflows/ci.yml +35 -0
- data/.ruby-version +1 -0
- data/README.md +126 -45
- data/Rakefile +11 -0
- data/config/cucumber.yml +1 -0
- data/features/.nav +2 -1
- data/features/backward_compatibilities/flavorfile.feature +166 -0
- data/features/backward_compatibilities/lockfile.feature +22 -0
- data/features/branches/changing_tracking_branches.feature +0 -3
- data/features/branches/detect_incompatible_declarations.feature +0 -2
- data/features/branches/install.feature +0 -2
- data/features/branches/update.feature +0 -1
- data/features/caching/deployment.feature +1 -0
- data/features/flavorfile/README.md +1 -1
- data/features/flavorfile/comments.feature +0 -1
- data/features/flavorfile/groups.feature +0 -3
- data/features/flavorfile/repository_name.feature +0 -3
- data/features/flavorfile/version_constraint.feature +3 -7
- data/features/install_vim_flavor.md +6 -12
- data/features/news.md +72 -0
- data/features/philosophy.md +4 -4
- data/features/resolve_dependencies/README.md +4 -3
- data/features/resolve_dependencies/basics.feature +0 -4
- data/features/resolve_dependencies/upgrade_outdated_dependencies.feature +0 -2
- data/features/resolve_dependencies/version_conflict.feature +0 -2
- data/features/step_definitions/cli_steps.rb +6 -1
- data/features/step_definitions/dependency_steps.rb +2 -1
- data/features/step_definitions/directory_steps.rb +1 -1
- data/features/step_definitions/file_steps.rb +2 -2
- data/features/step_definitions/flavor_steps.rb +25 -9
- data/features/step_definitions/flavorfile_steps.rb +10 -1
- data/features/step_definitions/lockfile_steps.rb +14 -5
- data/features/support/env.rb +22 -12
- data/features/testing_vim_plugins/README.md +7 -6
- data/features/testing_vim_plugins/dependencies.feature +2 -3
- data/features/testing_vim_plugins/failures.feature +3 -3
- data/features/testing_vim_plugins/specifying_test_scripts.feature +3 -3
- data/features/testing_vim_plugins/typical_usage.feature +30 -7
- data/features/typical_usage/README.md +7 -7
- data/features/typical_usage/deploy_to_arbitrary_place.feature +0 -1
- data/features/typical_usage/install_vim_plugins.feature +0 -1
- data/features/typical_usage/uninstall_vim_plugins.feature +0 -1
- data/features/typical_usage/update_vim_plugins.feature +0 -3
- data/features/uninstall_vim_flavor.md +3 -4
- data/features/version_lock.feature +0 -1
- data/features/version_tag_format.feature +0 -4
- data/lib/vim-flavor/cli.rb +2 -2
- data/lib/vim-flavor/console.rb +22 -0
- data/lib/vim-flavor/facade.rb +18 -49
- data/lib/vim-flavor/flavor.rb +2 -2
- data/lib/vim-flavor/flavorfile.rb +24 -1
- data/lib/vim-flavor/lockfile.rb +15 -0
- data/lib/vim-flavor/shellutility.rb +2 -1
- data/lib/vim-flavor/stringextension.rb +3 -11
- data/lib/vim-flavor/version.rb +1 -1
- data/lib/vim-flavor.rb +1 -1
- data/spec/branchversion_spec.rb +4 -4
- data/spec/stringextension_spec.rb +31 -0
- data/vim-flavor.gemspec +8 -5
- metadata +69 -26
- data/.travis.yml +0 -7
- data/features/step_definitions/bootstrap_script_steps.rb +0 -6
- data/spec/facade_spec.rb +0 -57
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4b56f0299185327f581b7620d37b424150e44c4fbf9b644818f9a58430569116
|
4
|
+
data.tar.gz: a49bde472dcd149d79a41f4e260467cc8eb1da9865308536610667a00e50e598
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9babe8f14a01142a406f0e686c9a1b67ec7bae7418db50320af0ad55c348382b34e7b2a91dd9bfb5b7aa83486f403979a1cb45f3271a9b06365fe592d055605
|
7
|
+
data.tar.gz: 3a6f954a798748573d82de17b50b7fa0a6d11621f62231005a00699e3dd8fdb65d12d474a731153822b2b40e35d51e5398b39f1610555e21e3ea7cab4508c75a
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
3
|
+
# Please see the documentation for all configuration options:
|
4
|
+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
5
|
+
|
6
|
+
version: 2
|
7
|
+
updates:
|
8
|
+
- package-ecosystem: "bundler" # See documentation for possible values
|
9
|
+
directory: "/" # Location of package manifests
|
10
|
+
schedule:
|
11
|
+
interval: "weekly"
|
12
|
+
versioning-strategy: increase
|
@@ -0,0 +1,35 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
schedule:
|
9
|
+
- cron: 0 0 * * *
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
test:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v2
|
16
|
+
with:
|
17
|
+
fetch-depth: 0 # t/blame.vim requires all commits.
|
18
|
+
- name: Set up Ruby
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
22
|
+
- name: Set up Vim
|
23
|
+
uses: thinca/action-setup-vim@v1
|
24
|
+
with:
|
25
|
+
vim_version: ${{ github.event_name == 'schedule' && 'head' || 'v8.2.3446' }}
|
26
|
+
vim_type: vim
|
27
|
+
download: never # For some reason 'available' doesn't build from source as a fallback.
|
28
|
+
- name: Set up Git
|
29
|
+
run: |
|
30
|
+
git config --global user.email 'ci@example.com'
|
31
|
+
git config --global user.name 'CI'
|
32
|
+
git config --global init.defaultBranch 'master'
|
33
|
+
git submodule update --init
|
34
|
+
- name: Run tests
|
35
|
+
run: rake ci
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.0.2
|
data/README.md
CHANGED
@@ -1,76 +1,157 @@
|
|
1
1
|
# vim-flavor, a tool to manage your favorite Vim plugins
|
2
2
|
|
3
|
-
[](https://github.com/kana/vim-flavor/actions/workflows/ci.yml)
|
4
|
+
[](https://codeclimate.com/github/kana/vim-flavor/maintainability)
|
5
5
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
# Getting started
|
10
10
|
|
11
|
-
|
11
|
+
## Create `Flavorfile`
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
# * vim-flavor fetches git://github.com/$USER/$REPO.git
|
16
|
-
# if the argument is written in '$USER/$REPO' format.
|
17
|
-
# * kana/vim-textobj-indent requires kana/vim-textobj-user.
|
18
|
-
# Such dependencies are automatically installed
|
19
|
-
# if the flavored plugin declares its dependencies with VimFlavor file.
|
20
|
-
flavor 'kana/vim-textobj-indent'
|
13
|
+
This file contains a set of declarations about what Vim plugins you want to
|
14
|
+
install. For example:
|
21
15
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
16
|
+
```ruby
|
17
|
+
# Install a Vim plugin from `https://github.com/kana/vim-textobj-indent`.
|
18
|
+
#
|
19
|
+
# Note that kana/vim-textobj-indent requires kana/vim-textobj-user.
|
20
|
+
# Such dependencies are automatically installed if the former plugin
|
21
|
+
# declares its dependencies with Flavorfile.
|
22
|
+
flavor 'kana/vim-textobj-indent'
|
26
23
|
|
27
|
-
|
28
|
-
|
29
|
-
# if the argument seems to be a URI.
|
30
|
-
flavor 'git://github.com/kana/vim-altr.git'
|
24
|
+
# Install a Vim plugin from `https://github.com/vim-scripts/fakeclip`.
|
25
|
+
flavor 'fakeclip'
|
31
26
|
|
32
|
-
|
33
|
-
|
27
|
+
# Install a Vim plugin from the specified URI.
|
28
|
+
flavor 'git://github.com/kana/vim-altr.git'
|
34
29
|
|
35
|
-
|
36
|
-
|
30
|
+
# You can also specify which version of Vim plugin should be installed.
|
31
|
+
# For example:
|
32
|
+
flavor 'kana/vim-smartword', '~> 0.1' # 0.1 or later, but older than 0.2
|
33
|
+
flavor 'kana/vim-smartchr', '~> 0.2.4' # 0.2.4 or later, but older than 0.3.0
|
34
|
+
flavor 'kana/vim-smarttill', '>= 0.3.6' # 0.3.6 or later
|
37
35
|
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
# vim-flavor, by design, requires Vim plugins to follow semantic versioning
|
37
|
+
# and to create version tags (like `v1.2.3`) in their repositories.
|
38
|
+
#
|
39
|
+
# For repositories without versioning, branches can be specified.
|
40
|
+
flavor 'chriskempson/base16-vim', branch: 'master'
|
41
|
+
```
|
41
42
|
|
42
|
-
|
43
|
-
# create VimFlavor.lock for a snapshot of all plugins and versions,
|
44
|
-
# then install the plugins and a bootstrap script into ~/.vim etc.
|
45
|
-
vim-flavor install
|
43
|
+
## Install Vim plugins (for the first time)
|
46
44
|
|
47
|
-
|
48
|
-
#
|
49
|
-
# runtime flavors/bootstrap.vim
|
50
|
-
vim vimrc
|
45
|
+
Run the following command:
|
51
46
|
|
52
|
-
|
53
|
-
|
47
|
+
```bash
|
48
|
+
vim-flavor install
|
49
|
+
```
|
54
50
|
|
55
|
-
|
56
|
-
[the documentation on relish](https://www.relishapp.com/kana/vim-flavor) or
|
57
|
-
`features/` directory for the details.
|
51
|
+
This command does the following stuffs:
|
58
52
|
|
53
|
+
1. Fetches Vim plugins declared in the `Flavorfile`.
|
54
|
+
2. Creates `Flavorfile.lock` file. It contains information about what
|
55
|
+
versions of plugins to be installed.
|
56
|
+
3. Copies the fetched plugins into `~/.vim/pack/flavors/start`, then updates
|
57
|
+
help tags for each plugin.
|
59
58
|
|
59
|
+
It's recommended to commit `Flavorfile` and `Flavorfile.lock` after
|
60
|
+
installation.
|
60
61
|
|
62
|
+
```bash
|
63
|
+
git add Flavorfile Flavorfile.lock
|
64
|
+
git commit -m 'Use vim-flavor to manage my favorite Vim plugins'
|
65
|
+
```
|
61
66
|
|
62
|
-
##
|
67
|
+
## Install Vim plugins (from another machine)
|
68
|
+
|
69
|
+
Suppose that you work with several PCs and/or servers, and you want to use the
|
70
|
+
same configuration, including Vim plugins, on all of them.
|
71
|
+
|
72
|
+
Firstly, let's synchronize your configuration files:
|
73
|
+
|
74
|
+
```bash
|
75
|
+
cd ~/your/dotfiles/repository
|
76
|
+
git pull
|
77
|
+
```
|
78
|
+
|
79
|
+
Now you have the same `Flavorfile` and `Flavorfile.lock` created by the
|
80
|
+
previous step.
|
81
|
+
|
82
|
+
Then run the following command:
|
83
|
+
|
84
|
+
```bash
|
85
|
+
vim-flavor install
|
86
|
+
```
|
87
|
+
|
88
|
+
This time `vim-flavor` installs the same versions of Vim plugins as recorded
|
89
|
+
in `Flavorfile.lock`, even if newer versions are available.
|
90
|
+
|
91
|
+
## Update Vim plugins
|
92
|
+
|
93
|
+
To update Vim plugins, run the following command:
|
94
|
+
|
95
|
+
```bash
|
96
|
+
vim-flavor update
|
97
|
+
```
|
98
|
+
|
99
|
+
This is similar to `vim-flavor install`, but vim-flavor tries checking and
|
100
|
+
installing newer versions of Vim plugins.
|
101
|
+
|
102
|
+
This command usually updates `Flavorfile.lock`. So that you have to commit it
|
103
|
+
again.
|
104
|
+
|
105
|
+
```bash
|
106
|
+
git add Flavorfile.lock
|
107
|
+
git commit -m 'Update Vim plugins'
|
108
|
+
```
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
# References
|
114
|
+
|
115
|
+
See [`features/`](./features) directory for the details.
|
116
|
+
The same [documents](https://www.relishapp.com/kana/vim-flavor) are available
|
117
|
+
also on relish.
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
# License
|
63
123
|
|
64
124
|
vim-flavor is released under the terms of MIT license.
|
65
|
-
See the LICENSE file for the details.
|
125
|
+
See the [LICENSE](./LICENSE) file for the details.
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
# Development
|
131
|
+
|
132
|
+
## Set up
|
133
|
+
|
134
|
+
1. Install [rbenv](https://github.com/rbenv/rbenv).
|
135
|
+
2. Run the following commands in your clone of vim-flavor repository:
|
136
|
+
|
137
|
+
```bash
|
138
|
+
git submodule update --init
|
139
|
+
rbenv install
|
140
|
+
bundle install
|
141
|
+
```
|
142
|
+
|
143
|
+
## Run tests
|
144
|
+
|
145
|
+
```bash
|
146
|
+
rake test
|
147
|
+
```
|
66
148
|
|
67
149
|
|
68
150
|
|
69
151
|
|
70
|
-
|
152
|
+
# Author
|
71
153
|
|
72
|
-
* [
|
73
|
-
(also known as [@kana1](http://twitter.com/kana1))
|
154
|
+
* [kana](https://github.com/kana)
|
74
155
|
|
75
156
|
|
76
157
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
require "bundler/gem_tasks"
|
3
3
|
|
4
|
+
task :ci => [:dump, :test]
|
5
|
+
|
6
|
+
task :dump do
|
7
|
+
sh 'vim --version'
|
8
|
+
end
|
9
|
+
|
4
10
|
task :test => [:spec, :cucumber]
|
5
11
|
|
6
12
|
task :spec do
|
@@ -10,3 +16,8 @@ end
|
|
10
16
|
task :cucumber do
|
11
17
|
sh 'bundle exec cucumber --format=progress'
|
12
18
|
end
|
19
|
+
|
20
|
+
task :update_online_documents do
|
21
|
+
# Only authorized members can push to relish.
|
22
|
+
sh 'bundle exec relish push kana/vim-flavor'
|
23
|
+
end
|
data/config/cucumber.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
default: --publish-quiet
|
data/features/.nav
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
- flavorfile:
|
12
12
|
- version_lock.feature
|
13
13
|
- caching:
|
14
|
-
- resolve_dependencies
|
14
|
+
- resolve_dependencies:
|
15
15
|
- testing_vim_plugins:
|
16
16
|
- typical_usage.feature
|
17
17
|
- dependencies.feature
|
@@ -23,3 +23,4 @@
|
|
23
23
|
- update.feature
|
24
24
|
- changing_tracking_branches.feature
|
25
25
|
- detect_incompatible_declarations.feature
|
26
|
+
- backward_compatibilities:
|
@@ -0,0 +1,166 @@
|
|
1
|
+
Feature: Flavorfile
|
2
|
+
In order to gradually update existing Vim plugins,
|
3
|
+
as a lazy Vim user,
|
4
|
+
I want to reuse Vim plugins which contain old name of flavorfiles without problems.
|
5
|
+
|
6
|
+
Scenario: User has old name of flavorfile is warned
|
7
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
8
|
+
And an old name flavorfile with:
|
9
|
+
"""ruby
|
10
|
+
flavor '$foo_uri'
|
11
|
+
"""
|
12
|
+
When I run `vim-flavor install`
|
13
|
+
Then it should pass with template:
|
14
|
+
"""
|
15
|
+
Warning: Rename VimFlavor to Flavorfile. VimFlavor wll be ignored in future version.
|
16
|
+
Checking versions...
|
17
|
+
Use $foo_uri ... 1.0.2
|
18
|
+
Deploying plugins...
|
19
|
+
$foo_uri 1.0.2 ... done
|
20
|
+
Completed.
|
21
|
+
"""
|
22
|
+
And a lockfile is created with:
|
23
|
+
"""
|
24
|
+
$foo_uri (1.0.2)
|
25
|
+
"""
|
26
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
27
|
+
|
28
|
+
Scenario: User has both new and old name of flavorfile is warned
|
29
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
30
|
+
And a repository "bar" with versions "2.0.0 2.0.1 2.0.2"
|
31
|
+
And a flavorfile with:
|
32
|
+
"""ruby
|
33
|
+
flavor '$bar_uri'
|
34
|
+
"""
|
35
|
+
And an old name flavorfile with:
|
36
|
+
"""ruby
|
37
|
+
flavor '$foo_uri'
|
38
|
+
"""
|
39
|
+
When I run `vim-flavor install`
|
40
|
+
Then it should pass with template:
|
41
|
+
"""
|
42
|
+
Warning: Delete VimFlavor. Flavorfile is being read instead.
|
43
|
+
Checking versions...
|
44
|
+
Use $bar_uri ... 2.0.2
|
45
|
+
Deploying plugins...
|
46
|
+
$bar_uri 2.0.2 ... done
|
47
|
+
Completed.
|
48
|
+
"""
|
49
|
+
And a lockfile is created with:
|
50
|
+
"""
|
51
|
+
$bar_uri (2.0.2)
|
52
|
+
"""
|
53
|
+
And a flavor "$foo_uri" is not deployed to "$home/.vim"
|
54
|
+
And a flavor "$bar_uri" version "2.0.2" is deployed to "$home/.vim"
|
55
|
+
|
56
|
+
Scenario: Plugin contains old name of flavorfile is not warned
|
57
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2" and an old name flavorfile:
|
58
|
+
"""ruby
|
59
|
+
# No dependencies
|
60
|
+
"""
|
61
|
+
And a flavorfile with:
|
62
|
+
"""ruby
|
63
|
+
flavor '$foo_uri'
|
64
|
+
"""
|
65
|
+
When I run `vim-flavor install`
|
66
|
+
Then it should pass with template:
|
67
|
+
"""
|
68
|
+
Checking versions...
|
69
|
+
Use $foo_uri ... 1.0.2
|
70
|
+
Deploying plugins...
|
71
|
+
$foo_uri 1.0.2 ... done
|
72
|
+
Completed.
|
73
|
+
"""
|
74
|
+
And a lockfile is created with:
|
75
|
+
"""
|
76
|
+
$foo_uri (1.0.2)
|
77
|
+
"""
|
78
|
+
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
79
|
+
|
80
|
+
Scenario: Testing a Vim plugin with old name flavorfile is warned
|
81
|
+
Given a repository "kana/vim-vspec" from offline cache
|
82
|
+
And an old name flavorfile with:
|
83
|
+
"""ruby
|
84
|
+
# No dependencies
|
85
|
+
"""
|
86
|
+
And a file named "plugin/foo.vim" with:
|
87
|
+
"""vim
|
88
|
+
let g:foo = 3
|
89
|
+
"""
|
90
|
+
And a file named "t/basics.vim" with:
|
91
|
+
"""vim
|
92
|
+
" Tests are written with vim-vspec.
|
93
|
+
runtime! plugin/foo.vim
|
94
|
+
describe 'g:foo'
|
95
|
+
it 'is equal to 3'
|
96
|
+
Expect g:foo == 3
|
97
|
+
end
|
98
|
+
end
|
99
|
+
"""
|
100
|
+
When I run `vim-flavor test`
|
101
|
+
Then it should pass with regexp:
|
102
|
+
"""
|
103
|
+
-------- Preparing dependencies
|
104
|
+
Warning: Rename VimFlavor to Flavorfile. VimFlavor wll be ignored in future version.
|
105
|
+
Checking versions...
|
106
|
+
Use kana/vim-vspec ... 1\.\d+(\.\d+)?
|
107
|
+
Deploying plugins...
|
108
|
+
kana/vim-vspec 1\.\d+(\.\d+)? ... done
|
109
|
+
Completed.
|
110
|
+
-------- Testing a Vim plugin
|
111
|
+
t/basics.vim .. ok
|
112
|
+
All tests successful.
|
113
|
+
Files=1, Tests=1, \d+ wallclock secs .*
|
114
|
+
Result: PASS
|
115
|
+
"""
|
116
|
+
And a lockfile is created and matches with:
|
117
|
+
"""
|
118
|
+
kana/vim-vspec \(1\.\d+(\.\d+)?\)
|
119
|
+
"""
|
120
|
+
And a dependency "kana/vim-vspec" is stored in ".vim-flavor/pack/flavors/start"
|
121
|
+
|
122
|
+
Scenario: Testing a Vim plugin with both new and old name flavorfile is warned
|
123
|
+
Given a repository "kana/vim-vspec" from offline cache
|
124
|
+
And a flavorfile with:
|
125
|
+
"""ruby
|
126
|
+
# No dependencies
|
127
|
+
"""
|
128
|
+
And an old name flavorfile with:
|
129
|
+
"""ruby
|
130
|
+
# No dependencies
|
131
|
+
"""
|
132
|
+
And a file named "plugin/foo.vim" with:
|
133
|
+
"""vim
|
134
|
+
let g:foo = 3
|
135
|
+
"""
|
136
|
+
And a file named "t/basics.vim" with:
|
137
|
+
"""vim
|
138
|
+
" Tests are written with vim-vspec.
|
139
|
+
runtime! plugin/foo.vim
|
140
|
+
describe 'g:foo'
|
141
|
+
it 'is equal to 3'
|
142
|
+
Expect g:foo == 3
|
143
|
+
end
|
144
|
+
end
|
145
|
+
"""
|
146
|
+
When I run `vim-flavor test`
|
147
|
+
Then it should pass with regexp:
|
148
|
+
"""
|
149
|
+
-------- Preparing dependencies
|
150
|
+
Warning: Delete VimFlavor. Flavorfile is being read instead.
|
151
|
+
Checking versions...
|
152
|
+
Use kana/vim-vspec ... 1\.\d+(\.\d+)?
|
153
|
+
Deploying plugins...
|
154
|
+
kana/vim-vspec 1\.\d+(\.\d+)? ... done
|
155
|
+
Completed.
|
156
|
+
-------- Testing a Vim plugin
|
157
|
+
t/basics.vim .. ok
|
158
|
+
All tests successful.
|
159
|
+
Files=1, Tests=1, \d+ wallclock secs .*
|
160
|
+
Result: PASS
|
161
|
+
"""
|
162
|
+
And a lockfile is created and matches with:
|
163
|
+
"""
|
164
|
+
kana/vim-vspec \(1\.\d+(\.\d+)?\)
|
165
|
+
"""
|
166
|
+
And a dependency "kana/vim-vspec" is stored in ".vim-flavor/pack/flavors/start"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Feature: Lockfile
|
2
|
+
In order to avoid unexpected result and confusion,
|
3
|
+
as a lazy Vim user,
|
4
|
+
I want to stop vim-flavor process if obsolete file still exists.
|
5
|
+
|
6
|
+
Scenario: User has old name of lockfile
|
7
|
+
Given a repository "foo" with versions "1.0.0 1.0.1 1.0.2"
|
8
|
+
And a flavorfile with:
|
9
|
+
"""ruby
|
10
|
+
flavor '$foo_uri'
|
11
|
+
"""
|
12
|
+
And an old name lockfile with:
|
13
|
+
"""
|
14
|
+
$foo_uri (1.0.1)
|
15
|
+
"""
|
16
|
+
When I run `vim-flavor install`
|
17
|
+
Then it should fail with template:
|
18
|
+
"""
|
19
|
+
Error: VimFlavor.lock is no longer used. Rename it to Flavorfile.lock.
|
20
|
+
"""
|
21
|
+
And a lockfile is not created
|
22
|
+
And a flavor "$foo_uri" is not deployed to "$home/.vim"
|
@@ -24,7 +24,6 @@ Feature: Changing tracking branches
|
|
24
24
|
$foo_uri $foo_rev_102 at master ... done
|
25
25
|
Completed.
|
26
26
|
"""
|
27
|
-
And a bootstrap script is created in "$home/.vim"
|
28
27
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
29
28
|
|
30
29
|
Scenario: Use a branch instead of a version
|
@@ -49,7 +48,6 @@ Feature: Changing tracking branches
|
|
49
48
|
"""
|
50
49
|
$foo_uri ($foo_rev_102 at master)
|
51
50
|
"""
|
52
|
-
And a bootstrap script is created in "$home/.vim"
|
53
51
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
54
52
|
|
55
53
|
Scenario: Use a version instead of a branch
|
@@ -74,5 +72,4 @@ Feature: Changing tracking branches
|
|
74
72
|
"""
|
75
73
|
$foo_uri (1.0.2)
|
76
74
|
"""
|
77
|
-
And a bootstrap script is created in "$home/.vim"
|
78
75
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
@@ -32,7 +32,6 @@ Feature: Detect incompatible declarations
|
|
32
32
|
$L_uri branch: experimental is required by $B_uri
|
33
33
|
Please resolve the conflict.
|
34
34
|
"""
|
35
|
-
And a bootstrap script is not created in "$home/.vim"
|
36
35
|
And a flavor "$A_uri" is not deployed to "$home/.vim"
|
37
36
|
And a flavor "$B_uri" is not deployed to "$home/.vim"
|
38
37
|
And a flavor "$L_uri" is not deployed to "$home/.vim"
|
@@ -66,7 +65,6 @@ Feature: Detect incompatible declarations
|
|
66
65
|
$L_uri ~> 0.2 is required by $B_uri
|
67
66
|
Please resolve the conflict.
|
68
67
|
"""
|
69
|
-
And a bootstrap script is not created in "$home/.vim"
|
70
68
|
And a flavor "$A_uri" is not deployed to "$home/.vim"
|
71
69
|
And a flavor "$B_uri" is not deployed to "$home/.vim"
|
72
70
|
And a flavor "$L_uri" is not deployed to "$home/.vim"
|
@@ -24,7 +24,6 @@ Feature: Install Vim plugins with specific branches
|
|
24
24
|
"""
|
25
25
|
$foo_uri ($foo_rev_102 at master)
|
26
26
|
"""
|
27
|
-
And a bootstrap script is created in "$home/.vim"
|
28
27
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
29
28
|
|
30
29
|
Scenario: Install a plugin according to a lockfile
|
@@ -47,5 +46,4 @@ Feature: Install Vim plugins with specific branches
|
|
47
46
|
$foo_uri $foo_rev_102 at master ... skipped (already deployed)
|
48
47
|
Completed.
|
49
48
|
"""
|
50
|
-
And a bootstrap script is created in "$home/.vim"
|
51
49
|
And a flavor "$foo_uri" version "1.0.2" is deployed to "$home/.vim"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Flavorfile is a DSL to declare which versions of Vim plugins to use.
|
2
2
|
Whenever `vim-flavor` is invoked to manage Vim plugins,
|
3
|
-
`vim-flavor` reads a file `
|
3
|
+
`vim-flavor` reads a file `Flavorfile` in the current working directory,
|
4
4
|
and evaluates it as a flavorfile.
|
5
5
|
|
6
6
|
|
@@ -19,7 +19,6 @@ Feature: Groups
|
|
19
19
|
"""
|
20
20
|
$foo_uri (1.2)
|
21
21
|
"""
|
22
|
-
And a bootstrap script is created in "$home/.vim"
|
23
22
|
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|
24
23
|
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
25
24
|
|
@@ -35,7 +34,6 @@ Feature: Groups
|
|
35
34
|
"""
|
36
35
|
$foo_uri (1.2)
|
37
36
|
"""
|
38
|
-
And a bootstrap script is created in "$home/.vim"
|
39
37
|
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|
40
38
|
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
41
39
|
|
@@ -52,6 +50,5 @@ Feature: Groups
|
|
52
50
|
And a lockfile is created with:
|
53
51
|
"""
|
54
52
|
"""
|
55
|
-
And a bootstrap script is created in "$home/.vim"
|
56
53
|
But a flavor "$foo_uri" is not deployed to "$home/.vim"
|
57
54
|
But a flavor "$bar_uri" is not deployed to "$home/.vim"
|
@@ -16,7 +16,6 @@ Feature: Repository name
|
|
16
16
|
"""
|
17
17
|
vspec (0.0.4)
|
18
18
|
"""
|
19
|
-
And a bootstrap script is created in "$home/.vim"
|
20
19
|
And a flavor "vspec" version "0.0.4" is deployed to "$home/.vim"
|
21
20
|
|
22
21
|
Scenario: Declare using a Vim plugin from GitHub
|
@@ -32,7 +31,6 @@ Feature: Repository name
|
|
32
31
|
"""
|
33
32
|
kana/vim-vspec (0.0.4)
|
34
33
|
"""
|
35
|
-
And a bootstrap script is created in "$home/.vim"
|
36
34
|
And a flavor "kana/vim-vspec" version "0.0.4" is deployed to "$home/.vim"
|
37
35
|
|
38
36
|
Scenario: Declare using a Vim plugin from an arbitrary URI
|
@@ -48,5 +46,4 @@ Feature: Repository name
|
|
48
46
|
"""
|
49
47
|
$vspec_uri (0.0.4)
|
50
48
|
"""
|
51
|
-
And a bootstrap script is created in "$home/.vim"
|
52
49
|
And a flavor "$vspec_uri" version "0.0.4" is deployed to "$home/.vim"
|
@@ -3,10 +3,9 @@ Feature: Version constraint
|
|
3
3
|
as a lazy Vim user,
|
4
4
|
I want to declare desirable versions of Vim plugins.
|
5
5
|
|
6
|
-
Note that vim-flavor assumes that plugins follow [
|
7
|
-
|
8
|
-
|
9
|
-
details.
|
6
|
+
Note that vim-flavor assumes that plugins follow [Semantic Versioning
|
7
|
+
2.0.0](https://semver.org/spec/v2.0.0.html), to determine compatibility of
|
8
|
+
plugins. See also [Philosophy](../philosophy) for the details.
|
10
9
|
|
11
10
|
Background:
|
12
11
|
Given a repository "foo" with versions "1.0 1.1 1.2 2.0"
|
@@ -22,7 +21,6 @@ Feature: Version constraint
|
|
22
21
|
"""
|
23
22
|
$foo_uri (2.0)
|
24
23
|
"""
|
25
|
-
And a bootstrap script is created in "$home/.vim"
|
26
24
|
And a flavor "$foo_uri" version "2.0" is deployed to "$home/.vim"
|
27
25
|
|
28
26
|
Scenario: Declare using a Vim plugin not older than a specific version
|
@@ -36,7 +34,6 @@ Feature: Version constraint
|
|
36
34
|
"""
|
37
35
|
$foo_uri (2.0)
|
38
36
|
"""
|
39
|
-
And a bootstrap script is created in "$home/.vim"
|
40
37
|
And a flavor "$foo_uri" version "2.0" is deployed to "$home/.vim"
|
41
38
|
|
42
39
|
Scenario: Declare using the latest and compatible version of a Vim plugin
|
@@ -50,5 +47,4 @@ Feature: Version constraint
|
|
50
47
|
"""
|
51
48
|
$foo_uri (1.2)
|
52
49
|
"""
|
53
|
-
And a bootstrap script is created in "$home/.vim"
|
54
50
|
And a flavor "$foo_uri" version "1.2" is deployed to "$home/.vim"
|