【问题标题】:Emacs CEDET Semantic no autocomplete for `this` keyword. (C++)Emacs CEDET Semantic no autocomplete for `this` 关键字。 (C++)
【发布时间】:2013-03-01 07:26:40
【问题描述】:
#include <iostream>

class SomeStructure
{
  int mMemberOne;
  float mMemberTwo;

  char MemberFunction()
    {
      int test = 0;
      ++test;
      this->  
    }
};

  int main()
  {
    SomeStructure abc;
    abc.MemberFunctionMemberFunction
  }

除我尝试自动完成this-&gt; 外,此文件中的任何其他自动完成功能都有效。我没有得到任何建议。运行semantic-analyze-debug-assist 给了我这个:

Unable to find symbol this.

The prefix lookup code threw the following error:
  (error "Cannot find definition for \"this\"")

To debug this error you can do this:
  M-x toggle-debug-on-error RET   [ Do It ]
and then re-run the debug analyzer.

M-x bovinate 给我:

(("iostream" include   (:system-flag t)   (unlink-hook    (semantic--tag-unlink-secondary-overlays)    secondary-overlays    (#<overlay from 1 to 20 in junk.cpp>)    dependency-file "c:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/include/iostream" link-hook    (semantic--tag-link-secondary-overlays)    unlink-copy-hook    (semantic--tag-unlink-copy-secondary-overlays)    :filename "d:/project/client/junk.cpp")   #<overlay from 1 to 20 in junk.cpp>)  ("SomeStructure" type   (:members    (("mMemberOne" variable
     (:type "int")
     (reparse-symbol classsubparts)
     #<overlay from 46 to 61 in junk.cpp>)
    ("mMemberTwo" variable
     (:type "float")
     (reparse-symbol classsubparts)
     #<overlay from 64 to 81 in junk.cpp>)
    ("MemberFunction" function
     (:type "char")
     (unlink-copy-hook
      (semantic--tag-unlink-copy-secondary-overlays)
      link-hook
      (semantic--tag-link-secondary-overlays)
      reparse-symbol classsubparts secondary-overlays
      (#<overlay from 85 to 107 in junk.cpp>)
      unlink-hook
      (semantic--tag-unlink-secondary-overlays))
     #<overlay from 85 to 165 in junk.cpp>))    :type "class")   (unlink-copy-hook    (semantic--tag-unlink-copy-secondary-overlays)    link-hook    (semantic--tag-link-secondary-overlays)    secondary-overlays    (#<overlay from 22 to 42 in junk.cpp>)    unlink-hook    (semantic--tag-unlink-secondary-overlays))   #<overlay from 22 to 168 in junk.cpp>)  ("main" function   (:type "int")   (unlink-copy-hook    (semantic--tag-unlink-copy-secondary-overlays)    link-hook    (semantic--tag-link-secondary-overlays)    secondary-overlays    (#<overlay from 172 to 183 in junk.cpp>)    unlink-hook    (semantic--tag-unlink-secondary-overlays))   #<overlay from 172 to 250 in junk.cpp>))

所以看起来SomeStructure 结构被正确解析了。看起来语义与this 存在某种问题。

我也遵循了错误的建议,即启用toggle-debug-on-error 重新运行,但即使启用了该选项,调试器似乎也不会因错误而中断。

使用最新版本的 emacs (24) 和 cedet (trunk)。

我不敢相信我是唯一一个遇到这个问题的人,一定是我做错了什么......

【问题讨论】:

    标签: c++ emacs cedet


    【解决方案1】:

    我已与其中一位维护者 (David Engster) 通信,他非常积极地为此提供了修复。自修订版 8490 起,该修复程序可在 CEDET 的 bzr 存储库中找到

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多