[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))