1

When a function is called on a region, I want a visual indication of affected area (a blink for ex.). Say, I've written a function upcasing previous word, and after evaluation I immediately get the result (and that's good) but I also want region highlighted for a sec. How could it be implemented?

Also I even can't get the region remain highlighted after the evaluation. (setq mark-active t) doesn't seem to work at all. Mark is forced to deactivate after interactive function or what?

(defun upcase-previous-WORD ()
  (interactive)
  (set-mark (point))
  (forward-whitespace -1)
  (call-interactively
     'upcase-region)
  (exchange-point-and-mark)
  (setq mark-active t)))
Drew
  • 77,472
  • 10
  • 114
  • 243
A.King
  • 53
  • 3

1 Answers1

1

[ I'll answer the second question. ]

Yes, Emacs resets mark-active to nil automatically after executing a command which modified the buffer (or more specifically, after executing a command which set deactivate-mark to a non-nil value). To prevent that you can use (setq deactivate-mark nil) in your function (after performing the buffer modification).

Stefan
  • 26,404
  • 3
  • 48
  • 85