LINUX.ORG.RU

[emacs][cedet] Автодополнение


0

0

Можно ли как-то заставить работать автодополнение вот в этом:

#include <stdio.h>

void
foo(int val);

int
main(int argc, char *argv[])
{
  int mooooooo = 10;
  foo(mo/* автодополнение */);
  return 0;
}

void
foo(int val)
{
  printf("%d", val);
}

Ответ на: комментарий от plambir

брал с сайта alex'а ott'а

(require 'cedet)

;; enable extended function of semantic
(semantic-load-enable-excessive-code-helpers)
;; (semantic-load-enable-gaudy-code-helpers)


;; load packet for completion
(require 'semantic-ia)

;; set default system include directories for c-mode
(semantic-add-system-include «/usr/include» 'c-mode)
(semantic-add-system-include «/usr/include» 'c++-mode)

;; adding headers using information from gcc
(require 'semantic-gcc)
(semantic-gcc-setup)

;; functions for forcing creating database
;; (semanticdb-create-ebrowse-database «/usr/include»)
;; (semanticdb-create-ebrowse-database «~/tmp/licq-1.3.8»)

;; (semanticdb-create-cscope-database «/usr/include»)

;; ;; TODO check this variables
;; (global-semantic-idle-scheduler-mode 0)
;; (global-semantic-idle-completions-mode 0)
;; (global-semantic-idle-summary-mode 0)

;; include ctags support
(semantic-load-enable-primary-exuberent-ctags-support)

;; add some languages for ctags
(semantic-ectag-add-language-support javascript-mode «JavaScript» «cfFmv»)
(semantic-ectag-add-language-support latex-mode «latex» «lstu»)


;; setting default directory for saving TAGS
(setq-default semanticdb-default-save-directory «~/.semanticdb»)
(setq-default semanticdb-default-system-save-directory «~/.semanticdb»)

(require 'eassist)

;; global ede support
(global-ede-mode t)

(require 'semanticdb-global)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)


(setq semanticdb-cscope-program «/usr/bin/cscope»)
;; если вы хотите включить поддержку gnu global
;; (require 'semanticdb-global)
;; (semanticdb-enable-gnu-global-databases 'c-mode)

recon88 ()
Ответ на: комментарий от recon88

Странно, у моего конфига cedet ноги оттуда же растут, но у меня не работает.

Пишет «Inline completion not needed» и не работает. А версия cedet какая?

plambir ()
Ответ на: комментарий от recon88

При попытке дополнения в printf

printf("%d", moo/* автодополнение */);

Не работает, хотя в :scope в :localvar mooooooo есть.

semantic-analyze-debug-assist выдает

No known possible completions.
Хотя int mooooooo он видит.

plambir ()
Ответ на: комментарий от theos

зато режимов для редактирования literate haskell для эклипса я не видел, да и просто режимы для haskell не очень, по сравнению с emacs

recon88 ()
Ответ на: комментарий от plambir

ну я вобще пользуюсь autocomplete-mode которая работает с кучей источников, поэтому автодополнение есть почти всегда(или из dabbrev, тегов и.т.п) семантик тоже кстати использует, когда возможно

recon88 ()
Ответ на: комментарий от recon88

Спасибо за наводку, взял на вооружение. Удобная штука.

plambir ()
Ответ на: комментарий от plambir

такое иногда бывает - файл не распарсился. можно это дело форсировать с помощью C-u M-x bovinate

ott ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.