Skip to content

Commit

Permalink
fix(checkhealth): duplicate checks if module name has "-" neovim#15935
Browse files Browse the repository at this point in the history
Problem:    Some plugins have structure `lua/nvim-someplugin/..`
            Since `-` is not allowed in vim function names, healthcheck names in
            lua and in vim can not have the same name (typically vim will use `_`
            instead of `-`).
Solution:   Normalize the names before checking for duplicates.
  • Loading branch information
doubleloop committed Oct 9, 2021
1 parent f620008 commit a36c6e5
Showing 1 changed file with 11 additions and 12 deletions.
23 changes: 11 additions & 12 deletions runtime/autoload/health.vim
Expand Up @@ -181,21 +181,20 @@ function! s:get_healthcheck(plugin_names) abort
let health_list = s:get_healthcheck_list(a:plugin_names)
let healthchecks = {}
for c in health_list
let name = c[0]
let existent = get(healthchecks, name, [])
" If an entry with the same name exists and is from vim, prefer Lua so
" overwrite it.
if existent != []
if existent[1] == "v"
let healthchecks[name] = c[1:]
else
continue
endif
let normalized_name = substitute(c[0], '-', '_', 'g')
let existent = get(healthchecks, normalized_name, [])
" Prefer Lua over vim entries
if existent != [] && existent[2] == 'l'
continue
else
let healthchecks[name] = c[1:]
let healthchecks[normalized_name] = c
endif
endfor
return healthchecks
let output = {}
for v in values(healthchecks)
let output[v[0]] = v[1:]
endfor
return output
endfunction

" Returns list of lists [ [{name}, {func}, {type}] ] representing healthchecks
Expand Down

0 comments on commit a36c6e5

Please sign in to comment.