Emacs Cedit C ++ завершение кода не удается

Я новичок в Emacs, и я пытался использовать Cedit для завершения кода.
Я использую простую настройку, основанную на http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html

.Emacs выглядит так:

;; cedit
(semantic-mode 1)
(require 'semantic/ia)
(require 'semantic/bovine/gcc)
;;(require 'semantic/bovine/clang)
;;(semantic-clang-active)

(setq-mode-local c-mode semanticdb-find-default-throttle
'(project unloaded system recursive))

;;(semantic-idle-summary-mode )
;; if you want to enable support for gnu global
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)
;;(semantic-reset-system-include 'c-mode)
;;(semantic-reset-system-include 'c++-mode)
(defun my-c-mode-cedet-hook ()
(local-set-key "." 'semantic-complete-self-insert)
(local-set-key ">" 'semantic-complete-self-insert))
(add-hook 'c-mode-common-hook 'my-c-mode-cedet-hook)
(add-hook 'c++-mode-common-hook 'my-c-mode-cedet-hook)

(defun my-c-mode-cedet-hook ()
(add-to-list 'ac-sources 'ac-source-gtags)
(add-to-list 'ac-sources 'ac-source-semantic)
(add-to-list 'ac-sources 'ac-source-semantic-raw))
(add-hook 'c-mode-common-hook 'my-c-mode-cedet-hook)(global-ede-mode t)

После того, как я протестирую с этим простым файлом C ++:

#include <string>
#include <map>
#include <stdio.h>
#include <iostream>

using namespace std;

int main() {

string s;

map<int,int>a;

}

Я обнаружил, что он может завершить ключевое слово, как include или заголовочный файл. Когда я пытаюсь завершить метод s, он завершается неудачей. И когда я использую команду semantic-ia-complete-symbol
Это просто сообщает Cannot find types for string s

Может кто-нибудь сказать мне, почему это не может работать?
И большое спасибо!

0

Решение

Просто обновитесь до последней версии Emacs.
Там ваш пример работает с нулевым конфигом, т.е.

emacs -Q test.cc

М-х semantic-mode, semantic-ia-complete-symbol,

0

Другие решения