我正在使用语言服务器协议开发 Visual Studio 代码的扩展,并且包括对“转到工作区中的符号”的支持。我的问题是我不知道如何选择匹配项...实际上我使用的是我写的这个函数:
function IsInside(word1, word2)
{
var ret = "";
var i1 = 0;
var lenMatch =0, maxLenMatch = 0, minLenMatch = word1.length;
for(var i2=0;i2<word2.length;i2++)
{
if(word1[i1]==word2[i2])
{
lenMatch++;
if(lenMatch>maxLenMatch) maxLenMatch = lenMatch;
ret+=word1[i1];
i1++;
if(i1==word1.length)
{
if(lenMatch<minLenMatch) minLenMatch = lenMatch;
// Trying to filter like VSCode does.
return maxLenMatch>=word1.length/2 && minLenMatch>=2? ret : undefined;
}
} else
{
ret+="Z";
if(lenMatch>0 && lenMatch<minLenMatch)
minLenMatch = lenMatch;
lenMatch=0;
}
}
return undefined;
}
如果 word1 在 word2 内,则返回 sortText,否则返回未定义。我的问题是这样的情况:
我的算法看到 'aller' 在 C all S er ver 中,但界面并没有像预期的那样标记它。
有一个图书馆或我必须为此使用的东西吗?VSCode 的代码又大又复杂,我不知道从哪里开始寻找这些信息......