再来打扰一下大佬:
acm的补全窗口是不是没有判定边界条件?
你的意思是意外弹出补全窗口?
不是,我的意思是补全窗口弹到屏幕外面去了
看看怎么重现?
这个没找到重现的办法,偶尔会出现
又有一个问题: 当c++文件输入
#include <vector>
using namespace std;
vec
class Solution {
public:
int rob(vector<int>& nums) {
if (nums.size()<=nums) {
return 0;
} else if (nums.size() == 1) {
return nums[1];
}
int dp[nums.size()];
}
};
时,vec呈现出来的不全内容是空白(应该是vector):
大佬有考虑支持终端环境的计划吗?心痒难耐
用上了最新的 lsp-bridge,也用了最新的 gopls。在补全 go 代码时,当补全列表弹出来后,会有些卡顿,直到出现如下提示信息后,才恢复响应,可以选择候选者:
[LSP-Bridge] JSON RPC method not found: “ResolveCompletionItem” not yet implemented
可以确认最新的 gopls 支持 ResolveCompletionItem 的。
精力有限,现在没有计划。
这个错误是服务器返回的,看看是不是用了旧版gopls?
原来版本是好的吗?
我貌似找到重现的办法了:
当补全内容从较少内容忽然扩充时,补全窗口就会弹到emacs外去
确认是最新的 gopls (0.8.4,5 月 13 发的版本)且位于 PATH 中。
那是补全label太长导致的,能给一个测试文本不?
#include <algorithm>
#include <vector>
using namespace std;
class Solution {
public:
int rob(vector<int>& nums) {
if (nums.size() == 0) {
return 0;
} else if (nums.size() == 1) {
return nums[1];
}
int dp[nums.size()];
dp[0] = nums[0];
dp[1] = max(nums[0], nums[1]);
for (int i = 2; i < nums.size(); ++i) {
dp[i] = max(dp[i-1], dp[i-2] + nums[i]);
}
}
};
最后一个 nums[i] 中的 i
确认了,的确是 gopls 没有实现 ResolveCompletionItem。 https://github.com/golang/tools/blob/master/internal/lsp/server_gen.go#L239
修复了, 更新吧。
你打开调试日志,Emacs print 日志的时候就会慢, 你说的那个问题我一会就修复了。
lsp-bridge 探测到服务器没有 ResolveCompletionItem 能力时就不会发送 completionItem/resolve 请求,原来版本是支持的,用前端 acm 替换 corfu 的时候重构掉了。
已经修复了。