Skip to content

Instantly share code, notes, and snippets.

@thierryvolpiatto
Created September 29, 2025 13:07
Show Gist options
  • Save thierryvolpiatto/9c95686a65d62d0f15fbc21d741ac0e8 to your computer and use it in GitHub Desktop.
Save thierryvolpiatto/9c95686a65d62d0f15fbc21d741ac0e8 to your computer and use it in GitHub Desktop.
Modify syntax-table in some modes while iedit-mode is running.
;; Modify syntax-table in some modes while iedit-mode is running.
(defvar tv-syntax-for-iedit-alist
'((ninja-mode . ((?/ . ".") (?$ . "'")))))
(defvar tv--syntax-for-iedit-modified nil)
(defun tv-iedit-syntax-hook-fn ()
(let ((mode-syntax (assoc-default major-mode tv-syntax-for-iedit-alist))
(table (copy-syntax-table)))
(when mode-syntax
(set-syntax-table table)
(cl-loop for (x . y) in mode-syntax
do (modify-syntax-entry x y table))
(setq tv--syntax-for-iedit-modified t))))
(defun tv-iedit-restore-syntax-fn ()
(when tv--syntax-for-iedit-modified
(set-syntax-table (symbol-value
(intern (format "%s-syntax-table" major-mode))))
(setq tv--syntax-for-iedit-modified nil)))
(add-hook 'iedit-mode-before-hook #'tv-iedit-syntax-hook-fn)
(add-hook 'iedit-mode-end-hook #'tv-iedit-restore-syntax-fn)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment