summaryrefslogtreecommitdiff
path: root/utils/clang-completion-mode.el
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-01-13 06:44:51 +0000
committerJohn McCall <rjmccall@apple.com>2010-01-13 06:44:51 +0000
commit7ae4373bde78acf912d7c33423fd2c33606ee851 (patch)
tree4c8e06b3a6b120e32b5089e4785942c3f2182943 /utils/clang-completion-mode.el
parent52388f9aefba585475a38081272ce582d033c883 (diff)
downloadclang-7ae4373bde78acf912d7c33423fd2c33606ee851.tar.gz
Insert clang-flags into the clang command. Currently it needs to be a list;
future work should permit strings (by splitting them into a list o' strings). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93299 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/clang-completion-mode.el')
-rw-r--r--utils/clang-completion-mode.el36
1 files changed, 18 insertions, 18 deletions
diff --git a/utils/clang-completion-mode.el b/utils/clang-completion-mode.el
index 4164eac7ac..873127f5cd 100644
--- a/utils/clang-completion-mode.el
+++ b/utils/clang-completion-mode.el
@@ -144,12 +144,21 @@ This variable will typically contain include paths, e.g., -I~/MyProject."
))))
(defun clang-complete ()
- (let ((ccstring (concat (buffer-file-name)
- ":"
- (number-to-string (+ 1 (current-line)))
- ":"
- (number-to-string (+ 1 (current-column)))))
- (cc-buffer-name (concat "*Clang Completion for " (buffer-name) "*")))
+ (let* ((cc-point (concat (buffer-file-name)
+ ":"
+ (number-to-string (+ 1 (current-line)))
+ ":"
+ (number-to-string (+ 1 (current-column)))))
+ (cc-pch (if (equal clang-completion-prefix-header "") nil
+ (list "-include-pch"
+ (concat clang-completion-prefix-header ".pch"))))
+ (cc-flags (if (listp clang-flags) clang-flags nil))
+ (cc-command (append `(,clang "-cc1" "-fsyntax-only")
+ cc-flags
+ cc-pch
+ `("-code-completion-at" ,cc-point)
+ (list (buffer-file-name))))
+ (cc-buffer-name (concat "*Clang Completion for " (buffer-name) "*")))
;; Start the code-completion process
(if (buffer-file-name)
(progn
@@ -162,18 +171,9 @@ This variable will typically contain include paths, e.g., -I~/MyProject."
(setq clang-result-string "")
(setq clang-completion-buffer cc-buffer-name)
- (let ((cc-proc
- (if (equal clang-completion-prefix-header "")
- (start-process "Clang Code-Completion" cc-buffer-name
- clang "-cc1" "-fsyntax-only"
- "-code-completion-at" ccstring
- (buffer-file-name))
- (start-process "Clang Code-Completion" cc-buffer-name
- clang "-cc1" "-fsyntax-only"
- "-code-completion-at" ccstring
- "-include-pch"
- (concat clang-completion-prefix-header ".pch")
- (buffer-file-name)))))
+ (let ((cc-proc (apply 'start-process
+ (append (list "Clang Code-Completion" cc-buffer-name)
+ cc-command))))
(set-process-filter cc-proc 'clang-completion-stash-filter)
(set-process-sentinel cc-proc 'clang-completion-sentinel)
)))))