顺手修复了 lsp-mode/lsp-javascript 的 bug

lsp-mode/lsp-javascript 启用后, 在 “event.” 后面补全会导致 lsp–annotate 函数报 aref: wrong-type-argument integerp nil 的错误

顺手写了一个修复补丁: Check index before call `aref' in `lsp--annotate' by manateelazycat · Pull Request #420 · emacs-lsp/lsp-mode · GitHub

在lsp-mode作者合并之前, 有相同问题的同学可以先临时救一下急.

lsp--completion-item-kind是vector了

你這樣(remove nil)序號會off-by-1

看看怎麼更好修復?

嗯, 我改一下 PR , 就只是判断一下 aref 的 index 就可以了

kind == 0 || kind >= len(lsp–completion-item-kind) ?

前者的化看下怎麼過濾掉,也可能是language server不應該返回0

我还没遇到 lsp-completion-item-kind 是 0 的情况, 主要就是 aref 的 index 不应该是 nil, 本子还是 (get-hash “kind” 那一段出了问题

又加了一个补丁: Check index before call `aref' in `lsp--annotate' by manateelazycat · Pull Request #420 · emacs-lsp/lsp-mode · GitHub

现在应该没问题了.

这个修复补丁已经被合并到 lsp-mode 代码中, 这个临时补丁不用了, 大家直接更新最新版 lsp-mdoe 就可以了.