]> git.eshelyaron.com Git - emacs.git/commitdiff
* progmodes/octave.el (octave-begin-keywords, octave-end-keywords)
authorLeo Liu <sdl.web@gmail.com>
Sat, 11 May 2013 07:39:59 +0000 (15:39 +0800)
committerLeo Liu <sdl.web@gmail.com>
Sat, 11 May 2013 07:39:59 +0000 (15:39 +0800)
(octave-reserved-words, octave-smie-bnf-table)
(octave-smie-rules): Add new keywords from Octave 3.6.4.

lisp/ChangeLog
lisp/progmodes/octave.el

index ed9726de79707ac3093a2ca0fdd76453235ed8b9..378df9359cb89afb724aed74f51b6ef846e42cac 100644 (file)
@@ -5,6 +5,9 @@
        out of more syntactic contructs since moving to smie.
        (octave-indent-comment): New function.
        (octave-mode): Use it in smie-indent-functions.  (Bug#14350)
+       (octave-begin-keywords, octave-end-keywords)
+       (octave-reserved-words, octave-smie-bnf-table)
+       (octave-smie-rules): Add new keywords from Octave 3.6.4.
 
 2013-05-11  Glenn Morris  <rgm@gnu.org>
 
index b8f72182d22c13f6ca78c521ffa77ab258b23f24..b2a21f2337ae1eff318281d339bd57af5a65ace4 100644 (file)
@@ -68,20 +68,22 @@ Used in `octave-mode' and `inferior-octave-mode' buffers.")
   "Regexp to match the start of an Octave comment up to its body.")
 
 (defvar octave-begin-keywords
-  '("do" "for" "function" "if" "switch" "try" "unwind_protect" "while"))
+  '("classdef" "do" "enumeration" "events" "for" "function" "if" "methods"
+    "parfor" "properties" "switch" "try" "unwind_protect" "while"))
 
 (defvar octave-else-keywords
   '("case" "catch" "else" "elseif" "otherwise" "unwind_protect_cleanup"))
 
 (defvar octave-end-keywords
-  '("endfor" "endfunction" "endif" "endswitch" "end_try_catch"
+  '("endclassdef" "endenumeration" "endevents" "endfor" "endfunction" "endif"
+    "endmethods" "endparfor" "endproperties" "endswitch" "end_try_catch"
     "end_unwind_protect" "endwhile" "until" "end"))
 
 (defvar octave-reserved-words
   (append octave-begin-keywords
          octave-else-keywords
          octave-end-keywords
-         '("break" "continue" "end" "global" "persistent" "return"))
+         '("break" "continue" "global" "persistent" "return"))
   "Reserved words in Octave.")
 
 (defvar octave-function-header-regexp
@@ -303,6 +305,8 @@ Non-nil means always go to the next Octave code line after sending."
          ("unwind_protect" exp "unwind_protect_cleanup" exp "end")
          ("for" exp "endfor")
          ("for" exp "end")
+         ("parfor" exp "endparfor")
+         ("parfor" exp "end")
          ("do" exp "until" atom)
          ("while" exp "endwhile")
          ("while" exp "end")
@@ -316,7 +320,17 @@ Non-nil means always go to the next Octave code line after sending."
          ("switch" exp "case" exp "case" exp "otherwise" exp "endswitch")
          ("switch" exp "case" exp "case" exp "otherwise" exp "end")
          ("function" exp "endfunction")
-         ("function" exp "end"))
+         ("function" exp "end")
+         ("enumeration" exp "endenumeration")
+         ("enumeration" exp "end")
+         ("events" exp "endevents")
+         ("events" exp "end")
+         ("methods" exp "endmethods")
+         ("methods" exp "end")
+         ("properties" exp "endproperties")
+         ("properties" exp "end")
+         ("classdef" exp "endclassdef")
+         ("classdef" exp "end"))
     ;; (fundesc (atom "=" atom))
     ))
 
@@ -406,8 +420,10 @@ Non-nil means always go to the next Octave code line after sending."
     ;; aligns it with "switch".
     (`(:before . "case") (if (not (smie-rule-sibling-p)) octave-block-offset))
     (`(:after . ";")
-     (if (smie-rule-parent-p "function" "if" "while" "else" "elseif" "for"
-                             "otherwise" "case" "try" "catch" "unwind_protect"
+     (if (smie-rule-parent-p "classdef" "events" "enumeration" "function" "if"
+                             "while" "else" "elseif" "for" "parfor"
+                             "properties" "methods" "otherwise" "case"
+                             "try" "catch" "unwind_protect"
                              "unwind_protect_cleanup")
          (smie-rule-parent octave-block-offset)
        ;; For (invalid) code between switch and case.