Emacs自动补全模式适用于Groovy吗?

13

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

我也找不到可以与emacs自动完成一起使用的关键字词典。

非常感谢帮助。

2个回答

3
我“黑掉”了emacs-eclimEclim来实现代码补全,虽然不太美观也不是功能齐全的,但足以满足几个小时的工作。
1. 注意事项:
- 支持代码补全,但有时使用auto-complete-mode会很慢,特别是当自动触发补全时。我使用TAB键启动自动完成弹出窗口,ALT-TAB用于查找所有可能的完成。 - 支持源更新以进行问题报告,但不是完全准确的。当您保存缓冲区时,将执行增量构建,并且错误报告可用(通过C-c C-e o查看问题)。
如果使用auto-complete,请设置以下内容:
(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)))))    

3
据我所知,目前没有适用于Groovy的(智能)自动完成插件。如果您想进行一些编程实践,实现这一点最简单的方法是修改 emacs-eclim (一个用于与Eclipse通信的Emacs包),使其与Eclipse Groovy插件兼容。由于存在与Eclipse Java相应的代码可供支持,因此不应该难到哪里去。
希望对您有所帮助,很抱歉无法提供更多解释。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接