diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 10 | ||||
-rw-r--r-- | lisp/progmodes/sh-script.el | 4 | ||||
-rw-r--r-- | lisp/simple.el | 4 |
3 files changed, 14 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b4e51a6eebb..79ee9d75906 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,15 @@ 2014-12-05 Stefan Monnier <monnier@iro.umontreal.ca> + * progmodes/sh-script.el (sh-smie-sh-rules): Go back to the beginning + of the whole pipe when indenting an opening keyword after a |. + Generalize this treatment to opening keywords like "while" (bug#18031). + +2014-12-05 Stefan Monnier <monnier@iro.umontreal.ca> +2014-12-05 Stefan Monnier <monnier@iro.umontreal.ca> + + * simple.el (newline): Place the hook buffer-locally, + to make sure it's first. + * progmodes/prog-mode.el (prettify-symbols--compose-symbol): Fix handling of symbols with different syntax at beginning/end or with symbol rather than word syntax. diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 5631358b472..524749d6266 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -2014,12 +2014,12 @@ May return nil if the line should not be treated as continued." (and (numberp indent) (numberp initial) (<= indent initial))))) `(column . ,(+ initial sh-indentation))) - (`(:before . ,(or `"(" `"{" `"[")) + (`(:before . ,(or `"(" `"{" `"[" "while" "if" "for" "case")) (if (not (smie-rule-prev-p "&&" "||" "|")) (when (smie-rule-hanging-p) (smie-rule-parent)) (unless (smie-rule-bolp) - (smie-backward-sexp 'halfexp) + (while (equal "|" (nth 2 (smie-backward-sexp 'halfexp)))) `(column . ,(smie-indent-virtual))))) ;; FIXME: Maybe this handling of ;; should be made into ;; a smie-rule-terminator function that takes the substitute ";" as arg. diff --git a/lisp/simple.el b/lisp/simple.el index 900828aad1c..9f447988a2f 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -440,12 +440,12 @@ A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'." (self-insert-command (prefix-numeric-value arg))) (unwind-protect (progn - (add-hook 'post-self-insert-hook postproc) + (add-hook 'post-self-insert-hook postproc nil t) (self-insert-command (prefix-numeric-value arg))) ;; We first used let-binding to protect the hook, but that was naive ;; since add-hook affects the symbol-default value of the variable, ;; whereas the let-binding might only protect the buffer-local value. - (remove-hook 'post-self-insert-hook postproc))) + (remove-hook 'post-self-insert-hook postproc t))) (cl-assert (not (member postproc post-self-insert-hook))) (cl-assert (not (member postproc (default-value 'post-self-insert-hook)))))) nil) |