stratosblue / ChinesePinyinIntelliSenseExtender

VisualStudio中文代码拼音补全拓展
MIT License
28 stars 6 forks source link

【性能优化】异步完成改为使用 IAsyncCompletionItemManager 进行拼音匹配;修复同步完成导致的C#/F#输入卡顿 #13

Closed Tangent-90 closed 3 months ago

Tangent-90 commented 3 months ago

改为使用 IAsyncCompletionItemManager 后,展示/单个条目展示 将对异步完成不起作用。

动机:

在 F# 项目中,在启用“显示未打开的命名空间中的符号”后,获取完成列表的速度会变得非常慢。

修改前后在 VS 性能管理器中的显示如下:

修改前 图片

修改后不会再被 VS 提示导致输入卡顿了

stratosblue commented 3 months ago

感谢贡献,我会在最近有空后查看再进行合并

Tangent-90 commented 3 months ago

感谢贡献,我会在最近有空后查看再进行合并

这个还没做完,不急

stratosblue commented 3 months ago

这个还没做完,不急

OK,辛苦了

Tangent-90 commented 3 months ago

修完了。简介也改了下 @stratosblue

stratosblue commented 3 months ago

非常感谢贡献,我先合并了

我大概看了下,是直接替换了之前的实现方式,我想还是先做成一个选项,然后再发新版本

stratosblue commented 3 months ago

@Tangent-90 做了点小修改,1.4.0已发布,麻烦试一下是否还按预期工作呢

Tangent-90 commented 3 months ago

IdeographAsyncCompletionItemManagerProvider.GetOrCreate 里面是可以直接返回 null 的,VS 会自己找下一个的,不用手动找

stratosblue commented 3 months ago

IdeographAsyncCompletionItemManagerProvider.GetOrCreate 里面是可以直接返回 null 的,VS 会自己找下一个的,不用手动找

我测试的时候有一点效果差别,才选择的手动查找,具体原因没有深入研究。。。

返回null null

手动查找 notnull

stratosblue commented 3 months ago

IdeographAsyncCompletionItemManagerProvider.GetOrCreate 里面是可以直接返回 null 的,VS 会自己找下一个的,不用手动找

还是返回 null 吧,感觉有其它体验被破坏了🤣🤣🤣🤣🤣