[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r102409: * lisp/progmodes/octave-mod.
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r102409: * lisp/progmodes/octave-mod.el: Rely on elecric-*-modes. |
Date: |
Tue, 16 Nov 2010 16:19:34 -0500 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 102409
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Tue 2010-11-16 16:19:34 -0500
message:
* lisp/progmodes/octave-mod.el: Rely on elecric-*-modes.
(octave-mode-map): Don't bind ;, SPC, and LF.
(octave-auto-indent, octave-auto-newline): Remove.
(electric-layout-rules): Declare.
(octave-mode): Set electric-layout-rules.
(octave-indent-new-comment-line): Use reindent-then-newline-and-indent.
(octave-reindent-then-newline-and-indent, octave-electric-semi)
(octave-electric-space): Remove.
modified:
lisp/ChangeLog
lisp/progmodes/octave-mod.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2010-11-16 21:14:46 +0000
+++ b/lisp/ChangeLog 2010-11-16 21:19:34 +0000
@@ -1,5 +1,14 @@
2010-11-16 Stefan Monnier <address@hidden>
+ * progmodes/octave-mod.el: Rely on elecric-*-modes.
+ (octave-mode-map): Don't bind ;, SPC, and LF.
+ (octave-auto-indent, octave-auto-newline): Remove.
+ (electric-layout-rules): Declare.
+ (octave-mode): Set electric-layout-rules.
+ (octave-indent-new-comment-line): Use reindent-then-newline-and-indent.
+ (octave-reindent-then-newline-and-indent, octave-electric-semi)
+ (octave-electric-space): Remove.
+
* electric.el (electric-layout-mode): New minor mode.
(electric--after-char-pos): New function.
(electric-indent-post-self-insert-function): Use it.
=== modified file 'lisp/progmodes/octave-mod.el'
--- a/lisp/progmodes/octave-mod.el 2010-11-10 08:21:06 +0000
+++ b/lisp/progmodes/octave-mod.el 2010-11-16 21:19:34 +0000
@@ -212,9 +212,6 @@
(defvar octave-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "`" 'octave-abbrev-start)
- (define-key map ";" 'octave-electric-semi)
- (define-key map " " 'octave-electric-space)
- (define-key map "\n" 'octave-reindent-then-newline-and-indent)
(define-key map "\e\n" 'octave-indent-new-comment-line)
(define-key map "\M-\C-q" 'octave-indent-defun)
(define-key map "\C-c\C-b" 'octave-submit-bug-report)
@@ -319,16 +316,6 @@
table)
"Syntax table in use in `octave-mode' buffers.")
-(defcustom octave-auto-indent nil
- "Non-nil means indent line after a semicolon or space in Octave mode."
- :type 'boolean
- :group 'octave)
-
-(defcustom octave-auto-newline nil
- "Non-nil means automatically newline after a semicolon in Octave mode."
- :type 'boolean
- :group 'octave)
-
(defcustom octave-blink-matching-block t
"Control the blinking of matching Octave block keywords.
Non-nil means show matching begin of block when inserting a space,
@@ -536,7 +523,7 @@
;; (if (smie-parent-p "switch") 4)
0))))
-(defvar electric-indent-chars)
+(defvar electric-layout-rules)
;;;###autoload
(define-derived-mode octave-mode prog-mode "Octave"
@@ -567,14 +554,6 @@
Variables you can use to customize Octave mode
==============================================
-`octave-auto-indent'
- Non-nil means indent current line after a semicolon or space.
- Default is nil.
-
-`octave-auto-newline'
- Non-nil means auto-insert a newline and indent after a semicolon.
- Default is nil.
-
`octave-blink-matching-block'
Non-nil means show matching begin of block when inserting a space,
newline or semicolon after an else or end keyword. Default is t.
@@ -636,6 +615,9 @@
(set (make-local-variable 'electric-indent-chars)
(cons ?\; electric-indent-chars))
+ ;; IIUC matlab-mode takes the opposite approach: it makes RET insert
+ ;; a ";" at those places where it's correct (i.e. outside of parens).
+ (set (make-local-variable 'electric-layout-rules) '((?\; . after)))
(set (make-local-variable 'comment-start) octave-comment-start)
(set (make-local-variable 'comment-end) "")
@@ -736,7 +718,7 @@
(error "Cannot split a code line inside a string"))
(t
(insert (concat " " octave-continuation-string))
- (octave-reindent-then-newline-and-indent))))
+ (reindent-then-newline-and-indent))))
(defun octave-indent-defun ()
"Properly indent the Octave function which contains point."
@@ -1017,45 +999,6 @@
(apply 'completion-in-region (octave-completion-at-point-function)))
;;; Electric characters && friends
-(defun octave-reindent-then-newline-and-indent ()
- "Reindent current Octave line, insert newline, and indent the new line.
-If Abbrev mode is on, expand abbrevs first."
- ;; FIXME: None of this is Octave-specific.
- (interactive)
- (reindent-then-newline-and-indent))
-
-(defun octave-electric-semi ()
- "Insert a semicolon in Octave mode.
-Maybe expand abbrevs and blink matching block open keywords.
-Reindent the line if `octave-auto-indent' is non-nil.
-Insert a newline if `octave-auto-newline' is non-nil."
- (interactive)
- (setq last-command-event ?\;)
- (if (not (octave-not-in-string-or-comment-p))
- (self-insert-command 1)
- (if octave-auto-indent
- (indent-according-to-mode))
- (self-insert-command 1)
- (if octave-auto-newline
- (newline-and-indent))))
-
-(defun octave-electric-space ()
- "Insert a space in Octave mode.
-Maybe expand abbrevs and blink matching block open keywords.
-Reindent the line if `octave-auto-indent' is non-nil."
- (interactive)
- (setq last-command-event ? )
- (if (and octave-auto-indent
- (not (octave-not-in-string-or-comment-p)))
- (progn
- (indent-according-to-mode)
- (self-insert-command 1))
- (if (and octave-auto-indent
- (save-excursion
- (skip-syntax-backward " ")
- (not (bolp))))
- (indent-according-to-mode))
- (self-insert-command 1)))
(defun octave-abbrev-start ()
"Start entering an Octave abbreviation.
@@ -1213,8 +1156,6 @@
octave-maintainer-address
(concat "Emacs version " emacs-version)
(list
- 'octave-auto-indent
- 'octave-auto-newline
'octave-blink-matching-block
'octave-block-offset
'octave-comment-char
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r102409: * lisp/progmodes/octave-mod.el: Rely on elecric-*-modes.,
Stefan Monnier <=