13

是否有适用于 emacs 的 Groovy 兼容的自动完成模式?

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

帮助将不胜感激。

4

2 回答 2

3

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

HTH,对不起:(

于 2012-07-12T09:31:39.493 回答
3

我已经“破解”了emacs-eclimEclim以获得代码完成,而不是漂亮或功能完整,足以完成几个小时的工作。

1.注意事项

  • 支持代码完成,但有时使用自动完成模式会很慢,尤其是在自动触发完成时。如果我正在查找所有可能的完成,我使用TAB启动自动完成弹出窗口和完成缓冲区的ALT-TAB 。
  • 支持问题报告的源更新,但不完全准确。当您保存缓冲区时,将执行增量构建并且错误报告可用(通过Cc Ce 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)))))    
于 2014-02-28T23:28:50.950 回答