let imports[m[2]] = m[1]
endfor
endfor
- let lines = getloclist(winnr())
- if len(lines) == 0 | let lines = getqflist() | endif
let result = []
- for line in lines
- let m = matchlist(line.text, '\(E0602\|F821\).*' . "'" . '\(\w\+\)' . "'$")
- if len(m) == 0 || !has_key(imports, m[2]) | continue | endif
- call insert(result, imports[m[2]])
+ for diag in lsp#ui#vim#diagnostics#get_all_buffer_diagnostics()
+ if diag["message"] !~ "^undefined name" | continue | endif
+ let m = diag["message"][strridx(diag["message"][:-2], "'")+1:-2]
+ if len(m) == 0 || !has_key(imports, m) | continue | endif
+ call insert(result, imports[m])
endfor
call sort(result, "i")
call uniq(result)