Mercurial > emacs
changeset 106830:4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
(ada-subprog-start-re, ada-imenu-subprogram-menu-re): Add keyword.
(ada-get-current-indent, ada-imenu-generic-expression)
(ada-which-function): Check for it.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Thu, 14 Jan 2010 13:52:37 +0100 |
parents | e9774faca8a4 |
children | 7fd22a65b1a9 |
files | lisp/ChangeLog lisp/progmodes/ada-mode.el |
diffstat | 2 files changed, 20 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Thu Jan 14 13:36:14 2010 +0100 +++ b/lisp/ChangeLog Thu Jan 14 13:52:37 2010 +0100 @@ -1,3 +1,10 @@ +2010-01-14 Stephen Leake <stephen_leake@member.fsf.org> + + * progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword. + (ada-subprog-start-re, ada-imenu-subprogram-menu-re): Add keyword. + (ada-get-current-indent, ada-imenu-generic-expression) + (ada-which-function): Check for it. + 2010-01-14 Stephen Leake <stephen_leake@member.fsf.org> * progmodes/ada-mode.el (ada-clean-buffer-before-saving): Make obsolete.
--- a/lisp/progmodes/ada-mode.el Thu Jan 14 13:36:14 2010 +0100 +++ b/lisp/progmodes/ada-mode.el Thu Jan 14 13:52:37 2010 +0100 @@ -674,7 +674,7 @@ (defvar ada-subprog-start-re (eval-when-compile - (concat "\\<" (regexp-opt '("accept" "entry" "function" "package" "procedure" + (concat "\\<" (regexp-opt '("accept" "entry" "function" "overriding" "package" "procedure" "protected" "task") t) "\\>")) "Regexp for the start of a subprogram.") @@ -721,7 +721,7 @@ (defconst ada-imenu-comment-re "\\([ \t]*--.*\\)?") (defconst ada-imenu-subprogram-menu-re - (concat "^[ \t]*\\(procedure\\|function\\)[ \t\n]+" + (concat "^[ \t]*\\(overriding[ \t]*\\)?\\(procedure\\|function\\)[ \t\n]+" "\\(\\(\\sw\\|_\\)+\\)[ \t\n]*\\([ \t\n]\\|([^)]+)" ada-imenu-comment-re "\\)[ \t\n]*" @@ -729,7 +729,7 @@ (defvar ada-imenu-generic-expression (list - (list nil ada-imenu-subprogram-menu-re 2) + (list nil ada-imenu-subprogram-menu-re 3) (list "*Specs*" (concat "^[ \t]*\\(procedure\\|function\\)[ \t\n]+\\(\\(\\sw\\|_\\)+\\)" @@ -2477,7 +2477,7 @@ (list (progn (back-to-indentation) (point)) 'ada-indent)) (save-excursion (ada-goto-stmt-start) - (if (looking-at "\\<package\\|procedure\\|function\\>") + (if (looking-at "\\<overriding\\|package\\|procedure\\|function\\>") (list (progn (back-to-indentation) (point)) 0) (list (progn (back-to-indentation) (point)) 'ada-indent))))) @@ -2626,20 +2626,23 @@ (looking-at "\\<\\(package\\|function\\|procedure\\)\\>")) (save-excursion ;; Go up until we find either a generic section, or the end of the - ;; previous subprogram/package + ;; previous subprogram/package, or 'overriding' for this function/procedure (let (found) (while (and (not found) (ada-search-ignore-string-comment - "\\<\\(generic\\|end\\|begin\\|package\\|procedure\\|function\\)\\>" t)) + "\\<\\(generic\\|end\\|begin\\|overriding\\|package\\|procedure\\|function\\)\\>" t)) ;; avoid "with procedure"... in generic parts (save-excursion (forward-word -1) (setq found (not (looking-at "with")))))) - (if (looking-at "generic") - (list (progn (back-to-indentation) (point)) 0) - (ada-indent-on-previous-lines nil orgpoint orgpoint)))) + (cond + ((looking-at "\\<generic\\|overriding\\>") + (list (progn (back-to-indentation) (point)) 0)) + + (t + (ada-indent-on-previous-lines nil orgpoint orgpoint))))) ;;--------------------------------- ;; label @@ -5057,7 +5060,7 @@ ;; Get the function name, but not the properties, or this changes ;; the face in the modeline on Emacs 21 - (setq func-name (match-string-no-properties 2)) + (setq func-name (match-string-no-properties 3)) (if (and (not (ada-in-comment-p)) (not (save-excursion (goto-char (match-end 0))