summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2019-01-27 10:56:02 +0000
committerw0rp <devw0rp@gmail.com>2019-01-27 10:56:08 +0000
commit3ac12b69399fc1f85e9a8ad2e76dc4e1f938f7d2 (patch)
treecaccc425e69320b30574078075d61e1d6ef88ded
parentdd995d9aa9ec950fdf307cad39487e29abd5ee49 (diff)
downloadale-3ac12b69399fc1f85e9a8ad2e76dc4e1f938f7d2.zip
Fix #2216 - Tolerate versions without path numbers
-rw-r--r--autoload/ale/semver.vim2
-rw-r--r--test/test_semver_utils.vader4
2 files changed, 5 insertions, 1 deletions
diff --git a/autoload/ale/semver.vim b/autoload/ale/semver.vim
index 6b0fd34a..8f549c9f 100644
--- a/autoload/ale/semver.vim
+++ b/autoload/ale/semver.vim
@@ -14,7 +14,7 @@ function! ale#semver#GetVersion(executable, version_lines) abort
let l:version = get(s:version_cache, a:executable, [])
for l:line in a:version_lines
- let l:match = matchlist(l:line, '\v(\d+)\.(\d+)\.(\d+)')
+ let l:match = matchlist(l:line, '\v(\d+)\.(\d+)\.?(\d?)')
if !empty(l:match)
let l:version = [l:match[1] + 0, l:match[2] + 0, l:match[3] + 0]
diff --git a/test/test_semver_utils.vader b/test/test_semver_utils.vader
index 30e9e818..cd0381dd 100644
--- a/test/test_semver_utils.vader
+++ b/test/test_semver_utils.vader
@@ -17,6 +17,10 @@ Execute(GetVersion should cache the version):
AssertEqual [3, 4, 7], ale#semver#GetVersion('dummy', ['Version 3.4.7'])
AssertEqual [3, 4, 7], ale#semver#GetVersion('dummy', [])
+Execute(GetVersion should tolerate missing patch numbers):
+ " This goes against the semver spec, but we handle it anyway.
+ AssertEqual [3, 4, 0], ale#semver#GetVersion('dummy', ['Version 3.4'])
+
Execute(HasVersion should return 1 when the version has been cached):
call ale#semver#GetVersion('dummy', [])
AssertEqual 0, ale#semver#HasVersion('dummy')