]> Sergey Matveev's repositories - vim-lsp.git/commitdiff
When displaying completion documentation, check the index is valid
authorYegappan Lakshmanan <yegappan@yahoo.com>
Mon, 25 Dec 2023 15:38:39 +0000 (07:38 -0800)
committerYegappan Lakshmanan <yegappan@yahoo.com>
Mon, 25 Dec 2023 15:39:07 +0000 (07:39 -0800)
autoload/lsp/completion.vim

index 6641e207ca092bf2e3205c9cd0e308e821652bf9..4ab65dd1d954b146fdbddb0ac441774240296983 100644 (file)
@@ -338,12 +338,15 @@ def ShowCompletionDocumentation(cItem: any)
 
   # check if completion item is still selected
   var cInfo = complete_info()
-  if cInfo->empty()
-      || !cInfo.pum_visible
-      || cInfo.selected == -1
-      || cInfo.items[cInfo.selected]->type() != v:t_dict
-      || cInfo.items[cInfo.selected].user_data->type() != v:t_dict
-      || cInfo.items[cInfo.selected].user_data.label != cItem.label
+  if cInfo->empty() || !cInfo.pum_visible || cInfo.selected == -1
+    return
+  endif
+
+  var selItem = cInfo.items->get(cInfo.selected, {})
+  if selItem->empty()
+      || selItem->type() != v:t_dict
+      || selItem.user_data->type() != v:t_dict
+      || selItem.user_data.label != cItem.label
     return
   endif