首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs自动完成模式

Emacs自动完成模式
EN

Stack Overflow用户
提问于 2012-01-09 20:55:48
回答 1查看 1.5K关注 0票数 1

emacs的新特性。我不能为Gtk+3实现自动完成。我正在使用CEDET和自动完成模式作为UI。Semantic无法找到include files ( ),但它可以解析开放缓冲区中的代码标签。

这里是我的.emacs配置文件

代码语言:javascript
复制
;;----------------------------------------------------------------------------------
(load-file "~/.emacs.d/cedet-1.0/common/cedet.el")
(global-ede-mode 1)
(semantic-load-enable-excessive-code-helpers)
;;(semantic-load-enable-semantic-debugging-helpers)
;; ede customization
(require 'semantic-lex-spp)
(ede-enable-generic-projects)
(setq senator-minor-mode-name "SN")
(setq semantic-imenu-auto-rebuild-directory-indexes nil)
(global-srecode-minor-mode 1)
(global-semantic-mru-bookmark-mode 1)
(require 'semantic-decorate-include)
;; gcc setup
(require 'semantic-gcc)
;; smart completions
(require 'semantic-ia)
(setq-mode-local c-mode semanticdb-find-default-throttle
             '(project unloaded system recursive))
(setq-mode-local c++-mode semanticdb-find-default-throttle
             '(project unloaded system recursive))
(setq-mode-local erlang-mode semanticdb-find-default-throttle
             '(project unloaded system recursive))
(require 'eassist)
(require 'semanticdb)
(global-semanticdb-minor-mode 1)
;; gnu global support
(require 'semanticdb-global)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)
;; ctags
(require 'semanticdb-ectag)
;;(semantic-load-enable-primary-exuberent-ctags-support)
(global-semantic-tag-folding-mode)

(defun my-cedet-hook ()
(local-set-key [(control return)] 'semantic-ia-complete-symbol)
(local-set-key "\C-c?" 'semantic-ia-complete-symbol-menu)
(local-set-key "\C-c>" 'semantic-complete-analyze-inline)
(local-set-key "\C-cp" 'semantic-analyze-proto-impl-toggle))
(add-hook 'c-mode-common-hook 'my-cedet-hook)

;;semantic gtk gdk
(defun my-semantic-hook ()
(semantic-add-system-include "/usr/include/gtk-3.0/gtk/" 'c-mode)
(semantic-add-system-include "/usr/include/gtk-3.0/gdk/" 'c-mode))
(add-hook 'semantic-init-hooks 'my-semantic-hook)

;; END CEDET
;;----------------------------------------------------------------------------

有什么建议吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-01-10 09:43:31

在我看来,您的设置还可以;我想知道您的add-system-includes中额外的"gtk/“和"gdk/”是否有问题。我使用以下命令在gtk-3.0上实现了这个功能:

代码语言:javascript
复制
(semantic-add-system-include "/usr/include/gtk-3.0" 'c-mode)

然后在你的源文件中,

代码语言:javascript
复制
#include <gtk/gtk.h>

然后是:

代码语言:javascript
复制
gtk_[C-c ?] 

花费一分钟左右的时间处理所有头文件,但它确实会按预期返回完成菜单。

如果这对您不起作用,我注意到您使用的可能是较旧版本的CEDET。我使用来自bazaar存储库的最新开发版本;我强烈建议您也这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8788746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档