]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/company/company-nxml.el
Merge commit 'ed44aa9bcebcc055551a2d018db9080ee0e9866f'
[gnu-emacs-elpa] / packages / company / company-nxml.el
index 9a235310de96feb63ef9ffb94be8edd21b0d8668..70e1c096bf31b561d403a5ade0d22187c5e10b3f 100644 (file)
@@ -1,6 +1,6 @@
-;;; company-nxml.el --- company-mode completion back-end for nxml-mode
+;;; company-nxml.el --- company-mode completion back-end for nxml-mode
 
-;; Copyright (C) 2009-2011  Free Software Foundation, Inc.
+;; Copyright (C) 2009-2011, 2013  Free Software Foundation, Inc.
 
 ;; Author: Nikolaj Schumacher
 
 
 
 ;;; Commentary:
-;; 
+;;
 
 ;;; Code:
 
 (require 'company)
-(require 'nxml-mode)
-(require 'rng-nxml)
-(eval-when-compile (require 'cl))
+(require 'cl-lib)
+
+(defvar rng-open-elements)
+(defvar rng-validate-mode)
+(defvar rng-in-attribute-regex)
+(defvar rng-in-attribute-value-regex)
+(declare-function rng-set-state-after "rng-nxml")
+(declare-function rng-match-possible-start-tag-names "rng-match")
+(declare-function rng-adjust-state-for-attribute "rng-nxml")
+(declare-function rng-match-possible-attribute-names "rng-match")
+(declare-function rng-adjust-state-for-attribute-value "rng-nxml")
+(declare-function rng-match-possible-value-strings "rng-match")
 
 (defconst company-nxml-token-regexp
   "\\(?:[_[:alpha:]][-._[:alnum:]]*\\_>\\)")
        ,@body)))
 
 (defun company-nxml-tag (command &optional arg &rest ignored)
-  (case command
+  (cl-case command
     (prefix (and (derived-mode-p 'nxml-mode)
                  rng-validate-mode
                  (company-grab company-nxml-in-tag-name-regexp 1)))
     (candidates (company-nxml-prepared
-                  (company-nxml-all-completions arg
-                   (rng-match-possible-start-tag-names))))
+                 (company-nxml-all-completions
+                  arg (rng-match-possible-start-tag-names))))
     (sorted t)))
 
 (defun company-nxml-attribute (command &optional arg &rest ignored)
-  (case command
+  (cl-case command
     (prefix (and (derived-mode-p 'nxml-mode)
-                  rng-validate-mode
-                  (memq (char-after) '(?\  ?\t ?\n)) ;; outside word
-                  (company-grab rng-in-attribute-regex 1)))
+                 rng-validate-mode
+                 (memq (char-after) '(?\  ?\t ?\n)) ;; outside word
+                 (company-grab rng-in-attribute-regex 1)))
     (candidates (company-nxml-prepared
-                  (and (rng-adjust-state-for-attribute
-                        lt-pos (- (point) (length arg)))
-                       (company-nxml-all-completions arg
-                        (rng-match-possible-attribute-names)))))
+                 (and (rng-adjust-state-for-attribute
+                       lt-pos (- (point) (length arg)))
+                      (company-nxml-all-completions
+                       arg (rng-match-possible-attribute-names)))))
     (sorted t)))
 
 (defun company-nxml-attribute-value (command &optional arg &rest ignored)
-  (case command
+  (cl-case command
     (prefix (and (derived-mode-p 'nxml-mode)
                  rng-validate-mode
                  (and (memq (char-after) '(?' ?\" ?\  ?\t ?\n)) ;; outside word
                           (match-string-no-properties 5)
                           ""))))
     (candidates (company-nxml-prepared
-                  (let (attr-start attr-end colon)
-                    (and (looking-back rng-in-attribute-value-regex lt-pos)
-                         (setq colon (match-beginning 2)
-                               attr-start (match-beginning 1)
-                               attr-end (match-end 1))
-                         (rng-adjust-state-for-attribute lt-pos attr-start)
-                         (rng-adjust-state-for-attribute-value
-                          attr-start colon attr-end)
-                         (all-completions arg
-                          (rng-match-possible-value-strings))))))))
+                 (let (attr-start attr-end colon)
+                   (and (looking-back rng-in-attribute-value-regex lt-pos)
+                        (setq colon (match-beginning 2)
+                              attr-start (match-beginning 1)
+                              attr-end (match-end 1))
+                        (rng-adjust-state-for-attribute lt-pos attr-start)
+                        (rng-adjust-state-for-attribute-value
+                         attr-start colon attr-end)
+                        (all-completions
+                         arg (rng-match-possible-value-strings))))))))
 
 ;;;###autoload
 (defun company-nxml (command &optional arg &rest ignored)
-  "`company-mode' completion back-end for `nxml-mode'."
+  "`company-mode' completion back-end for `nxml-mode'."
   (interactive (list 'interactive))
-  (case command
+  (cl-case command
     (interactive (company-begin-backend 'company-nxml))
     (prefix (or (company-nxml-tag 'prefix)
                 (company-nxml-attribute 'prefix)