lsp-mode semantic tokens

我想測試 https://github.com/MaskRay/ccls/pull/788 ,但是怎麼用上 lsp-mode semantic tokens呢?

我設置了 (setq lsp-semantic-tokens-mode t) ,能看到打開的C++ mode的buffer自動啓用了 lsp-semantic-tokens-mode。但沒有看到任何效果

另外,semantic tokens的通信量你們覺得怎麼樣?支援rainbow colors嗎?(懷疑不) $ccls/publishSemanticHighlight 的通信量是優化過的。

semantic-tokens 大部分应该是继承了默认的 face, 所以可能区别不太大. 可以看看 describe-face, 如果字体是 lsp-face-semhl 开头的, 那应该是用了 semantic-tokens.

也可能是被其他的什么东西覆盖掉了, 我这边不知道为什么 tree-sitter 的优先级更高, 不关掉的话 semantic-tokens 就没效果.

提供些思路, 不确定有用不.

Lsp terraform ls - LSP Mode - LSP support for Emacs 需要设置 lsp-semantic-tokens-honor-refresh-requests 这个变量才会自动刷新

(setq lsp-semantic-tokens-honor-refresh-requests t)

可以试试在 C+±mode 里面,等 clangd 分析完后,关闭再打开 lsp-semantic-tokens-mode,可以发现是有高亮的