emacs-diffs
[Top][All Lists]
Advanced

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

master 1787b86 2/2: Add ability to find ObjC method names


From: Alan Third
Subject: master 1787b86 2/2: Add ability to find ObjC method names
Date: Sat, 18 Jan 2020 10:36:07 -0500 (EST)

branch: master
commit 1787b86b89b8973151980cbef115a6584f477509
Author: Alan Third <address@hidden>
Commit: Alan Third <address@hidden>

    Add ability to find ObjC method names
    
    * lisp/progmodes/cc-cmds.el (c-defun-name-1): Add Objective-C method
    name ability.
---
 lisp/progmodes/cc-cmds.el | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index 1071191..da614d7 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -2024,6 +2024,23 @@ other top level construct with a brace block."
             (c-backward-syntactic-ws)
             (point))))
 
+        ((and (c-major-mode-is 'objc-mode) (looking-at "[-+]\\s-*("))     ; 
Objective-C method
+         ;; Move to the beginning of the method name.
+         (c-forward-token-2 2 t)
+         (let* ((class
+                 (save-excursion
+                   (when (re-search-backward
+                          
"^\\s-*@\\(implementation\\|class\\|interface\\)\\s-+\\(\\sw+\\)" nil t)
+                     (match-string-no-properties 2))))
+                (limit (save-excursion (re-search-forward "[;{]" nil t)))
+                (method (when (re-search-forward "\\(\\sw+:?\\)" limit t)
+                          (match-string-no-properties 1))))
+           (when (and class method)
+             ;; Add the parameter labels onto name.  They always end in ':'.
+             (while (re-search-forward "\\(\\sw+:\\)" limit 1)
+               (setq method (concat method (match-string-no-properties 1))))
+             (concat "[" class " " method "]"))))
+
         (t                             ; Normal function or initializer.
          (when (looking-at c-defun-type-name-decl-key) ; struct, etc.
            (goto-char (match-end 0))



reply via email to

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