;;
;; Copyright (C) 2009 Nikolaj Schumacher
;;
-;; This file is part of company 0.3.
+;; This file is part of company 0.5.
;;
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License
(setq company-xcode-tags nil))
(defcustom company-xcode-types
- '("Class" "Const" "Constant" "Enum" "Macro" "Modeled Class" "Structure"
+ '("Class" "Constant" "Enum" "Macro" "Modeled Class" "Structure"
"Type" "Union" "Function")
"*The types of symbols offered by `company-xcode'
No context-enabled completion is available. Types like methods will be
(company-xcode-reset))
:group 'company-xcode
:type '(set (const "Category") (const "Class") (const "Class Method")
- (const "Const") (const "Constant") (const "Enum") (const "Field")
- (const "Instance Method") (const "Instance Variables")
- (const "Macro") (const "Modeled Class") (const "Modeled Method")
- (const "Property") (const "Protocol") (const "Structure")
- (const "Type") (const "Union") (const "Variable")
- (const "Function")))
+ (const "Class Variable") (const "Constant") (const "Enum")
+ (const "Field") (const "Instance Method")
+ (const "Instance Variable") (const "Macro")
+ (const "Modeled Class") (const "Modeled Method")
+ (const "Modeled Property") (const "Property") (const "Protocol")
+ (const "Structure") (const "Type") (const "Union")
+ (const "Variable") (const "Function")))
(defvar company-xcode-project 'unknown)
(make-variable-buffer-local 'company-xcode-project)
(let ((dir (if buffer-file-name
(file-name-directory buffer-file-name)
(expand-file-name default-directory)))
+ (prev-dir nil)
file)
- (while (not (or file (equal dir "/")))
+ (while (not (or file (equal dir prev-dir)))
(setq file (car (directory-files dir t ".xcodeproj\\'" t))
+ prev-dir dir
dir (file-name-directory (directory-file-name dir))))
file))
"A `company-mode' completion back-end for Xcode projects."
(interactive (list 'interactive))
(case command
- ('interactive (company-begin-backend 'company-xcode))
- ('prefix (and company-xcode-xcodeindex-executable
- (not (company-in-string-or-comment))
+ (interactive (company-begin-backend 'company-xcode))
+ (prefix (and company-xcode-xcodeindex-executable
+ (company-xcode-tags)
+ (not (company-in-string-or-comment))
+ (or (company-grab-symbol) 'stop)))
+ (candidates (let ((completion-ignore-case nil))
(company-xcode-tags)
- (or (company-grab-symbol) 'stop)))
- ('candidates (let ((completion-ignore-case nil))
- (all-completions arg (company-xcode-tags))))))
+ (all-completions arg (company-xcode-tags))))))
(provide 'company-xcode)