tttmfc 2021-03-29 03:05
浏览 27

VS插件开发,扩展Intellisense,官网示例出现以下两个问题应该怎么解决呢?

想对VS的智能感知做点扩展,在官网上找到这个示例:
https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/ee372314(v=vs.100)

环境:VS2010

经过测试,该示例有两个问题
1、当有匹配项时会显示成这样,上面多显示的那个能改成直接在下面那个选项卡里过滤吗?有没有办法直接把完成集加到默认的“全部”里面去呢(网上查了好久貌似都说不能)?

 

2、当输入字符没有匹配的补全项时,按下空格键,依然会将被框住(非选中状态)的那项提交到编辑区,演示如下:
输入完成列表中不匹配的字符时的显示,注意此时补全列表中被框住的是“addition”,此项虽被框住但是处于非选中状态的,用过VS的应该明白这两者区别就不再强调了
 

 

按下空格后,“addition”仍会上屏

而同样状态时按下回车是不会上屏的,只会换行
 

 

我跟踪过IOleCommandTarget.Exec这个方法,按空格和回车走的流程是完全一样的,而VS默认的智能补全是没有这个问题的(甚至是在这个示例中我用鼠标切到“全部”选项卡再按空格也不会出现问题),我试过修改这段:

if (m_session.SelectedCompletionSet.SelectionStatus.IsSelected)
{
    m_session.Commit();
    //also, don't add the character to the buffer
    return VSConstants.S_OK;
}
else
{
    //if there is no selection, dismiss the session
    m_session.Dismiss();//这里我各种修改不是反应不对就是还是老样子
}

请问应该怎么解决?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
    • ¥20 关于URL获取的参数,无法执行二选一查询
    • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
    • ¥15 marlin编译错误,如何解决?
    • ¥15 有偿四位数,节约算法和扫描算法
    • ¥15 VUE项目怎么运行,系统打不开
    • ¥50 pointpillars等目标检测算法怎么融合注意力机制
    • ¥20 Vs code Mac系统 PHP Debug调试环境配置
    • ¥60 大一项目课,微信小程序
    • ¥15 求视频摘要youtube和ovp数据集