X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/4fe2993438f1b8e967102d8546925d8a9544146b..b8f877703a0d50b46254fcfee3c815ae5e386013:/company-eclim.el diff --git a/company-eclim.el b/company-eclim.el index d6f699a9d..208daf514 100644 --- a/company-eclim.el +++ b/company-eclim.el @@ -1,6 +1,6 @@ -;;; company-eclim.el --- company-mode completion back-end for Eclim +;;; company-eclim.el --- company-mode completion backend for Eclim -;; Copyright (C) 2009, 2011, 2013 Free Software Foundation, Inc. +;; Copyright (C) 2009, 2011, 2013, 2015 Free Software Foundation, Inc. ;; Author: Nikolaj Schumacher @@ -21,10 +21,10 @@ ;;; Commentary: ;; -;; Using `emacs-eclim' together with (or instead of) this back-end is +;; Using `emacs-eclim' together with (or instead of) this backend is ;; recommended, as it allows you to use other Eclim features. ;; -;; The alternative back-end provided by `emacs-eclim' uses `yasnippet' +;; The alternative backend provided by `emacs-eclim' uses `yasnippet' ;; instead of `company-template' to expand function calls, and it supports ;; some languages other than Java. @@ -32,23 +32,25 @@ (require 'company) (require 'company-template) -(eval-when-compile (require 'cl)) +(require 'cl-lib) (defgroup company-eclim nil - "Completion back-end for Eclim." + "Completion backend for Eclim." :group 'company) (defun company-eclim-executable-find () (let (file) - (dolist (eclipse-root '("/Applications/eclipse" "/usr/lib/eclipse" + (cl-dolist (eclipse-root '("/Applications/eclipse" "/usr/lib/eclipse" "/usr/local/lib/eclipse")) (and (file-exists-p (setq file (expand-file-name "plugins" eclipse-root))) (setq file (car (last (directory-files file t "^org.eclim_")))) (file-exists-p (setq file (expand-file-name "bin/eclim" file))) - (return file))))) + (cl-return file))))) (defcustom company-eclim-executable - (or (executable-find "eclim") (company-eclim-executable-find)) + (or (bound-and-true-p eclim-executable) + (executable-find "eclim") + (company-eclim-executable-find)) "Location of eclim executable." :type 'file) @@ -60,11 +62,9 @@ eclim can only complete correctly when the buffer has been saved." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defvar company-eclim--project-dir 'unknown) -(make-variable-buffer-local 'company-eclim--project-dir) +(defvar-local company-eclim--project-dir 'unknown) -(defvar company-eclim--project-name nil) -(make-variable-buffer-local 'company-eclim--project-name) +(defvar-local company-eclim--project-name nil) (declare-function json-read "json") (defvar json-array-type) @@ -92,7 +92,7 @@ eclim can only complete correctly when the buffer has been saved." (setq company-eclim--project-dir (directory-file-name (expand-file-name - (company-locate-dominating-file buffer-file-name ".project")))) + (locate-dominating-file buffer-file-name ".project")))) company-eclim--project-dir)) (defun company-eclim--project-name () @@ -100,9 +100,9 @@ eclim can only complete correctly when the buffer has been saved." (let ((dir (company-eclim--project-dir))) (when dir (setq company-eclim--project-name - (loop for project in (company-eclim--project-list) - when (equal (cdr (assoc 'path project)) dir) - return (cdr (assoc 'name project)))))))) + (cl-loop for project in (company-eclim--project-list) + when (equal (cdr (assoc 'path project)) dir) + return (cdr (assoc 'name project)))))))) (defun company-eclim--candidates (prefix) (interactive "d") @@ -134,7 +134,7 @@ eclim can only complete correctly when the buffer has been saved." (all-completions prefix completions)))) (defun company-eclim--search-point (prefix) - (if (or (plusp (length prefix)) (eq (char-before) ?.)) + (if (or (cl-plusp (length prefix)) (eq (char-before) ?.)) (1- (point)) (point))) @@ -155,7 +155,7 @@ eclim can only complete correctly when the buffer has been saved." prefix))) (defun company-eclim (command &optional arg &rest ignored) - "`company-mode' completion back-end for Eclim. + "`company-mode' completion backend for Eclim. Eclim provides access to Eclipse Java IDE features for other editors. Eclim version 1.7.13 or newer (?) is required. @@ -163,7 +163,7 @@ Eclim version 1.7.13 or newer (?) is required. Completions only work correctly when the buffer has been saved. `company-eclim-auto-save' determines whether to do this automatically." (interactive (list 'interactive)) - (case command + (cl-case command (interactive (company-begin-backend 'company-eclim)) (prefix (and (derived-mode-p 'java-mode 'jde-mode) buffer-file-name