В Emacs CEDET Semantic нет автозаполнения для ключевого слова this. (С++)

#include <iostream>

class SomeStructure
{
  int mMemberOne;
  float mMemberTwo;

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

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

В этом файле работает любое другое автозаполнение, за исключением случая, когда я пытаюсь автозаполнить this->. Я не получаю предложений. Запуск 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).

Я не могу поверить, что я единственный, у кого есть эта проблема, это должно быть что-то, что я делаю неправильно...


person EddieBytes    schedule 28.02.2013    source источник


Ответы (1)


Я переписывался с одним из сопровождающих (Дэвидом Энгстером), и он очень охотно предоставил исправление для этого. Исправление можно найти в репозитории CEDET bzr начиная с версии 8490.

person EddieBytes    schedule 28.02.2013