启用"。"和" - >"在emacs自动完成

时间:2014-04-05 09:02:26

标签: c++ emacs autocomplete

在键入“。”后,有没有办法让弹出窗口自动完成。或“ - >”?

我认为这个代码是

       (add-to-list 'ac-omni-completion-sources
                    (cons "\\." '(ac-source-semantic)))
       (add-to-list 'ac-omni-completion-sources
                    (cons "->" '(ac-source-semantic)))

但似乎这可能已被弃用。

我最接近的是Alex Ott的回复here使用:

(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)

然而,这总是弹出另一个框架来显示语义的建议。如果可能的话,我希望所有内容都使用autocomplete的本机弹出窗口,这样当我尝试使用“myClass->”引用类的成员函数时,自动完成将弹出建议。有什么想法可以实现吗?

1 个答案:

答案 0 :(得分:1)

抱歉对我的评论有很大的疏忽。我有点失落。在带有自动完成1.3.1的Emacs 24.3.1中,我实际上看到了启用自动完成和语义模式时所需的行为。也就是说,当我输入以下内容之一时,我会自动弹出:

someObj.
someObj->

我添加了这个作为答案,所以我可以列出一些代码。如果有帮助,我的自动完成设置如下:

(add-to-list 'load-path "<ac-install-dir>")
(require 'auto-complete-config)`
(add-to-list 'ac-dictionary-directories "<ac-install-dir>/ac-dict")
(ac-config-default)
(defun ac-common-setup ()
  (setq ac-sources (append ac-sources '(ac-source-gtags ac-source-semantic ac-source-semantic-raw))))

似乎变量ac-prefix-definitions管理作为触发完成的前缀的模式。我看到的价值是:

((symbol . ac-prefix-symbol)
 (file . ac-prefix-file)
 (valid-file . ac-prefix-valid-file)
 (c-dot . ac-prefix-c-dot)
 (c-dot-ref . ac-prefix-c-dot-ref))

ac-prefix-c-dotac-prefix-c-dot-ref似乎是与.->匹配的模式。