]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/autoload/python/importcompl.vim
python#importcompl#all works with LSP
[dotfiles.git] / vim / .vim / autoload / python / importcompl.vim
index cc26c792bb8726b6ce93d3bcc6fc592d337e597e..aa9a1685df669c28aac1952af2ebbc3ecf9b64a3 100644 (file)
@@ -56,13 +56,12 @@ function! python#importcompl#all() abort
             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)