0

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)))
New contributor
A.King is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
0

[ 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).

Your Answer

A.King is a new contributor. Be nice, and check out our Code of Conduct.

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.