Skip to content

Commit 09e6bd8

Browse files
committed
#6 修正词首在字典中但无法完整匹配时,不会将词首字作为单个字符匹配的问题,如词典包含"医"、"医务人员",匹配"医务室"时,"医"会被作为未匹配项
1 parent cebe967 commit 09e6bd8

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

src/Ref/StringTrie/StringTrieNode.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,15 @@ internal readonly unsafe struct StringTrieNode<TValue>
3939

4040
#endregion Private 字段
4141

42+
#region Public 属性
43+
44+
/// <summary>
45+
/// 当前节点的值
46+
/// </summary>
47+
public TValue Value => _value;
48+
49+
#endregion Public 属性
50+
4251
#region Public 构造函数
4352

4453
[Obsolete("must construction with data.", true)]
@@ -197,4 +206,4 @@ private static bool InternalMatch(in StringTrieNode<TValue> node, ushort* text,
197206
}
198207

199208
#endregion Private 方法
200-
}
209+
}

src/Ref/StringTrie/StringTrieRoot.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,16 @@ public bool TryMatchOne(ReadOnlySpan<char> text, out int matchedStart, out int m
171171

172172
if (_nodes[index].TryMatch(text.Slice(i + 1), out var innerMatchedLength, out value))
173173
{
174-
matchedStart = i;
175174
matchedLength = innerMatchedLength + 1;
176-
return true;
177175
}
176+
else //未使用尾部内容匹配到完整的词,将词首作为单个结果返回
177+
{
178+
matchedLength = 1;
179+
value = _nodes[index].Value;
180+
}
181+
182+
matchedStart = i;
183+
return true;
178184
}
179185

180186
value = default;

src/source.extension.vsixmanifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
33
<Metadata>
4-
<Identity Id="ChinesePinyinIntelliSenseExtender.4293B766-9575-4472-B6F0-98BD86737E0D" Version="1.2.2" Language="en-US" Publisher="Stratos" />
4+
<Identity Id="ChinesePinyinIntelliSenseExtender.4293B766-9575-4472-B6F0-98BD86737E0D" Version="1.2.3" Language="en-US" Publisher="Stratos" />
55
<DisplayName>IntelliSense汉语拼音拓展</DisplayName>
66
<Description xml:space="preserve">汉语拼音的IntelliSense拓展。(支持基于 IAsyncCompletionSource 的完成,如: C#、JS等;支持自定义字符映射;)</Description>
77
<MoreInfo>https://github.com/stratosblue/chinesepinyinintellisenseextender</MoreInfo>

0 commit comments

Comments
 (0)