Skip to content

Commit eca20d4

Browse files
committed
Rename only happens in post-command and recursion is prevented
1 parent 754a505 commit eca20d4

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

auto-rename-tag.el

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@
4747
(defvar-local auto-rename-tag--pre-command-actived nil
4848
"Check if `pre-command-hook' called.")
4949

50+
(defvar-local auto-rename-tag--after-action-active nil
51+
"Check if `after-action' is currently called.")
52+
5053
(defvar-local auto-rename-tag--record-prev-word ""
5154
"Record down the word in `pre-command-hook'.")
5255

@@ -344,30 +347,33 @@ DIRECT can be either only 'backward and 'forward."
344347

345348
(defun auto-rename-tag--before-action ()
346349
"Before rename core action."
347-
(setq auto-rename-tag--record-prev-word "") ; Reset record.
348-
(setq auto-rename-tag--pre-command-actived nil) ; Reset flag.
350+
(unless auto-rename-tag--after-action-active
351+
(setq auto-rename-tag--record-prev-word "") ; Reset record.
352+
(setq auto-rename-tag--pre-command-actived nil) ; Reset flag.
349353

350-
(when (and (not undo-in-progress)
351-
(auto-rename-tag--inside-tag-p)
352-
(not (auto-rename-tag--self-tag-p)))
353-
(save-excursion
354-
;; Set active flag.
355-
(setq auto-rename-tag--pre-command-actived t)
354+
(when (and (not undo-in-progress)
355+
(auto-rename-tag--inside-tag-p)
356+
(not (auto-rename-tag--self-tag-p)))
357+
(save-excursion
358+
;; Set active flag.
359+
(setq auto-rename-tag--pre-command-actived t)
356360

357-
(setq auto-rename-tag--record-prev-word (auto-rename-tag--get-tag-name-at-point))
361+
(setq auto-rename-tag--record-prev-word (auto-rename-tag--get-tag-name-at-point))
358362

359-
(when (string= auto-rename-tag--record-prev-word "/")
360-
(setq auto-rename-tag--record-prev-word ""))
363+
(when (string= auto-rename-tag--record-prev-word "/")
364+
(setq auto-rename-tag--record-prev-word ""))
361365

362-
;; Ensure `auto-rename-tag--record-prev-word' is something other than nil.
363-
(unless auto-rename-tag--record-prev-word
364-
(setq auto-rename-tag--record-prev-word "")))))
366+
;; Ensure `auto-rename-tag--record-prev-word' is something other than nil.
367+
(unless auto-rename-tag--record-prev-word
368+
(setq auto-rename-tag--record-prev-word ""))))))
365369

366370
(defun auto-rename-tag--after-action ()
367371
"After rename core action."
368-
(when auto-rename-tag--pre-command-actived
372+
(when (and auto-rename-tag--pre-command-actived
373+
(not auto-rename-tag--after-action-active))
369374
(save-excursion
370-
(let ((is-end-tag nil)
375+
(let ((auto-rename-tag--after-action-active t)
376+
(is-end-tag nil)
371377
(current-word "") (pair-tag-word ""))
372378
;; Goto the first character inside the tag.
373379
(auto-rename-tag--goto-the-start-of-tag-name)
@@ -416,25 +422,18 @@ DIRECT can be either only 'backward and 'forward."
416422
"Do stuff before buffer is changed."
417423
(auto-rename-tag--before-action))
418424

419-
(defun auto-rename-tag--after-change (&rest _args)
420-
"Do stuff after buffer is changed."
421-
(auto-rename-tag--after-action))
422-
423425
(defun auto-rename-tag--post-command ()
424-
"Do stuff after buffer is changed.
425-
NOTE: Having this function is for `lsp` display issue with flycheck."
426+
"Do stuff after buffer is changed."
426427
(auto-rename-tag--after-action))
427428

428429
(defun auto-rename-tag--enable ()
429430
"Enable `auto-rename-tag' in current buffer."
430431
(add-hook 'before-change-functions #'auto-rename-tag--before-change nil t)
431-
(add-hook 'after-change-functions #'auto-rename-tag--after-change nil t)
432432
(add-hook 'post-command-hook #'auto-rename-tag--post-command nil t))
433433

434434
(defun auto-rename-tag--disable ()
435435
"Disable `auto-rename-tag' in current buffer."
436436
(remove-hook 'before-change-functions #'auto-rename-tag--before-change t)
437-
(remove-hook 'after-change-functions #'auto-rename-tag--after-change t)
438437
(remove-hook 'post-command-hook #'auto-rename-tag--post-command t))
439438

440439
;;;###autoload

0 commit comments

Comments
 (0)