emacs-devel
[Top][All Lists]
Advanced

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

Casing of number literals in ada-mode


From: jemarch
Subject: Casing of number literals in ada-mode
Date: Sun, 07 Feb 2010 23:06:02 +0100
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/23.1.91 (i686-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

Hi.

Appended is a little patch that makes ada-mode to not case number
literals to avoid situations like:

      subtype U32 is range 16#0000_0000#..16#Ffff_Ffff#;

Note the Ffff_Ffff.



2010-02-06  Jose E. Marchesi  <address@hidden>

        * progmodes/ada-mode.el (ada-in-numeric-literal-p): New function.
        (ada-adjust-case): Don't adjust case in hexadecimal number
        literals.

=== modified file 'lisp/progmodes/ada-mode.el'
--- lisp/progmodes/ada-mode.el  2010-01-23 12:34:52 +0000
+++ lisp/progmodes/ada-mode.el  2010-02-07 22:02:29 +0000
@@ -1009,6 +1009,10 @@
             (parse-partial-sexp
              (line-beginning-position) (point)))))
 
+(defsubst ada-in-numeric-literal-p ()
+  "Return t if point is after a prefix of a numeric literal."
+  (looking-back "\\([0-9]+#[0-9a-fA-F_]+\\)"))
+
 (defsubst ada-in-string-or-comment-p (&optional parse-result)
   "Return t if inside a comment or string.
 If PARSE-RESULT is non-nil, use it instead of calling `parse-partial-sexp'."
@@ -1606,6 +1610,8 @@
                 (eq (char-syntax (char-before)) ?w)
                 ;;  if in a string or a comment
                 (not (ada-in-string-or-comment-p))
+                 ;;  if in a numeric literal
+                 (not (ada-in-numeric-literal-p))
                 )
            (if (save-excursion
                  (forward-word -1)




reply via email to

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