emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 8d61f1b 35/66: company-semantic: add simple annotations


From: Dmitry Gutov
Subject: [elpa] master 8d61f1b 35/66: company-semantic: add simple annotations
Date: Tue, 13 Jan 2015 02:44:56 +0000

branch: master
commit 8d61f1b734eb746af35553dac9d62884315d0b3a
Author: aerique <address@hidden>
Commit: aerique <address@hidden>

    company-semantic: add simple annotations
---
 company-semantic.el |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/company-semantic.el b/company-semantic.el
index 6c020a3..a1c7d16 100644
--- a/company-semantic.el
+++ b/company-semantic.el
@@ -99,6 +99,14 @@
       (push tag company-semantic--current-tags)))
   (delete "" (mapcar 'semantic-tag-name company-semantic--current-tags)))
 
+(defun company-semantic-annotation (argument tags)
+  (let* ((tag (assoc argument tags))
+         (kind (when tag (elt tag 1))))
+    (cl-case kind
+      (function (let* ((prototype (semantic-format-tag-prototype tag nil nil))
+                       (par-pos (string-match "(" prototype)))
+                  (when par-pos (substring prototype par-pos)))))))
+
 (defun company-semantic--pre-prefix-length (prefix-length)
   "Sum up the length of all chained symbols before POS.
 Symbols are chained by \".\" or \"->\"."
@@ -133,6 +141,8 @@ Symbols are chained by \".\" or \"->\"."
                   (company-semantic-completions arg)))
     (meta (funcall company-semantic-metadata-function
                    (assoc arg company-semantic--current-tags)))
+    (annotation (company-semantic-annotation arg
+                                             company-semantic--current-tags))
     (doc-buffer (company-semantic-doc-buffer
                  (assoc arg company-semantic--current-tags)))
     ;; Because "" is an empty context and doesn't return local variables.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]