summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2023-05-01 23:09:49 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2023-06-27 17:31:00 -0400
commit202a3f940481b537ab3b8273a166616d5e2b4bb9 (patch)
tree70c379e3f69f23ab616d9449bc1dcbb0bf8c6114
parentf00a0feb2e31be5474e56f5fac0dcae3110dcfe6 (diff)
* hui-select.el: Fix a few warnings and improve some docstrings
(hui-select-initialize): Use `dolist`; let-bind vars rather than just `setq`ing them; use closures. (hui-select-goto-matching-tag): Fix markup. (hui-select-indent-non-end-regexp-alist) (hui-select-indent-end-regexp-alist): Use conventional markup for metavars.
-rw-r--r--hui-select.el56
1 files changed, 29 insertions, 27 deletions
diff --git a/hui-select.el b/hui-select.el
index 4880e46..8624c33 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -366,33 +366,35 @@ Also, add language-specific syntax setups to aid in thing selection."
;;
;; Make tag begin and end delimiters act like grouping characters,
;; for easy syntactical selection of tags.
- (let (hook-sym mode-str)
- (mapc (lambda (mode)
- (setq mode-str (symbol-name mode)
- hook-sym (intern (concat mode-str "-hook"))
- syntax-table-sym (intern (concat mode-str "-syntax-table"))
- keymap-sym (intern (concat mode-str "-map")))
- (var:add-and-run-hook hook-sym
- `(lambda ()
- (let ((syntax-table (symbol-value ',syntax-table-sym))
- (keymap (symbol-value ',keymap-sym)))
- (modify-syntax-entry ?\< "(>" syntax-table)
- (modify-syntax-entry ?\> ")<" syntax-table)
- (modify-syntax-entry ?\{ "(}" syntax-table)
- (modify-syntax-entry ?\} "){" syntax-table)
- (modify-syntax-entry ?\" "\"" syntax-table)
- (modify-syntax-entry ?= "." syntax-table)
- (modify-syntax-entry ?. "_" syntax-table)
- (setq sentence-end "\\([^ \t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\| \\)\\)[ \t\n]*")
- (define-key keymap "\C-c." 'hui-select-goto-matching-tag))))
- (unless (eq mode 'web-mode)
- (var:add-and-run-hook
- hook-sym (lambda ()
- (make-local-variable 'comment-start)
- (make-local-variable 'comment-end)
- (setq comment-start "<!--" comment-end "-->")
- (make-local-variable 'sentence-end)))))
- hui-select-markup-modes)))
+ (dolist (mode hui-select-markup-modes)
+ (let* ((mode-str (symbol-name mode))
+ (hook-sym (intern (concat mode-str "-hook")))
+ (syntax-table-sym (intern (concat mode-str "-syntax-table")))
+ (keymap-sym (intern (concat mode-str "-map"))))
+ ;; FIXME: Don't add lambdas to hooks. Instead give names to
+ ;; those functions and add the symbol to the hook. Makes it
+ ;; easier/possible to remove/update the function on the hook.
+ (var:add-and-run-hook hook-sym
+ (lambda ()
+ (let ((syntax-table (symbol-value syntax-table-sym))
+ (keymap (symbol-value keymap-sym)))
+ (modify-syntax-entry ?\< "(>" syntax-table)
+ (modify-syntax-entry ?\> ")<" syntax-table)
+ (modify-syntax-entry ?\{ "(}" syntax-table)
+ (modify-syntax-entry ?\} "){" syntax-table)
+ (modify-syntax-entry ?\" "\"" syntax-table)
+ (modify-syntax-entry ?= "." syntax-table)
+ (modify-syntax-entry ?. "_" syntax-table)
+ (setq sentence-end "\\([^ \t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\| \\)\\)[ \t\n]*")
+ (define-key keymap "\C-c." #'hui-select-goto-matching-tag))))
+ (unless (eq mode 'web-mode)
+ (var:add-and-run-hook
+ hook-sym (lambda ()
+ ;; FIXME: Why not rely on the major mode's own settings?
+ (make-local-variable 'comment-end) ;FIXME: Why?
+ (setq-local comment-start "<!--" comment-end "-->")
+ (make-local-variable 'sentence-end) ;FIXME: Why?
+ ))))))
(defun hui-select-get-region-boundaries ()
"Return the (START . END) boundaries of region for `hui-select-thing'."