用于Groovy的Emacs自动完成模式?

时间:2012-04-04 20:50:57

标签: emacs groovy autocomplete

是否有针对emacs的Groovy兼容自动完成模式?

我也无法找到可以与emacs autocomplete一起使用的关键字词典。

非常感谢帮助。

2 个答案:

答案 0 :(得分:3)

AFAIK Groovy没有工作(智能)自动完成功能。如果您倾向于进行一些黑客行为,最简单的方法是修改emacs-eclim(与Eclipse交谈的Emacs包)以使用Eclipse Groovy plugin。不应该那么糟糕,因为现有的代码可以用作Eclipse Java,可以用作脚手架。

HTH和抱歉:(

答案 1 :(得分:3)

我已经黑了' emacs-eclimEclim都可以获得代码完成,不是很漂亮或功能齐全,足以让他们工作几个小时。

<强> 1。注释

    支持
  • 代码完成,但有时会出现自动完成模式,特别是在自动触发完成时。如果我正在查找所有可能的完成,我使用 TAB 启动自动完成弹出窗口和 ALT-TAB 作为完成缓冲区。
  • 支持问题报告的来源更新但不完全准确。当您保存缓冲区时,将执行增量构建并且可以使用错误报告(通过 C-c C-e o 的问题。

如果使用自动完成,请设置以下内容:

(ac-set-trigger-key "TAB")
(setq ac-auto-start nil)

<强> 2。安装

第3。通过use-package和ELPA进行Emacs配置示例。

如果您不使用use-package,请根据需要进行调整......

(use-package eclim                                                                                                               
  :ensure emacs-eclim // overwrite ELPA install with my copy                                                                                                           

  :init (setq help-at-pt-display-when-idle t                                                                                     
              eclimd-default-workspace "~/Documents/workspace/"                                                                  
              help-at-pt-timer-delay 0.1)                                                                                        

  :config (progn (help-at-pt-set-timer)                                                                                          
                 (mapc #'require '(eclimd auto-complete-config))                                                                 
                 (ac-config-default)                                                                                             
                 (add-hook 'groovy-mode-hook 'auto-complete-mode)                                                                
                 (require 'ac-emacs-eclim-source)                                                                                
                 (ac-emacs-eclim-config)                                                                                         

                 (defun ers/eclim-run-class ()                                                                                   
                   (interactive)                                                                                                 
                   (beginning-of-buffer)                                                                                         
                   (search "class ")                                                                                             
                   (forward-word)                                                                                                
                   (eclim-run-class))                                                                                            

                 (bind-keys :map eclim-mode-map                                                                                  
                            ("C-c C-e l m" . eclim-manage-projects)                                                              
                            ("C-c C-e l r" . ers/eclim-run-class)                                                                
                            ("C-c C-e l c" . garbage-collect)                                                                    
                            ("C-c C-e l b" . eclim-project-build))                                                               

                 (add-hook 'groovy-mode-hook                                                                                     
                           (lambda ()                                                                                            
                             (remove 'ac-source-clang 'ac-sources)                                                               
                             (eclim-mode t)))                                                                                    

                 (add-hook 'java-mode-hook                                                                                       
                           (lambda ()                                                                                            
                             (remove 'ac-source-clang 'ac-sources)                                                               
                             (eclim-mode t)))))