mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-17 10:06:13 +00:00
ispell: Commands to check comments or strings at point or in region
* lisp/textmodes/ispell.el (ispell-comments-and-strings): Accept START and END arguments, defaulting to active region in interactive calls. (ispell-comment-or-string-at-point): New command. (bug#6411)
This commit is contained in:
parent
32f4fa80b5
commit
2aefd55904
9
etc/NEWS
9
etc/NEWS
@ -381,6 +381,15 @@ take the actual screenshot, and defaults to "ImageMagick import".
|
||||
The menu-bar Help menu now has a "Show Recent Inputs" item under the
|
||||
"Describe" sub-menu.
|
||||
|
||||
** Ispell
|
||||
|
||||
---
|
||||
*** 'ispell-comments-and-strings' now accepts START and END arguments,
|
||||
defaulting to active region when used interactively.
|
||||
|
||||
---
|
||||
*** New command 'ispell-comment-or-string-at-point' is provided.
|
||||
|
||||
---
|
||||
** The old non-SMIE indentation of 'sh-mode' has been removed.
|
||||
|
||||
|
@ -44,6 +44,7 @@
|
||||
;; ispell-buffer
|
||||
;; ispell-message
|
||||
;; ispell-comments-and-strings
|
||||
;; ispell-comment-or-string-at-point
|
||||
;; ispell-continue
|
||||
;; ispell-complete-word
|
||||
;; ispell-complete-word-interior-frag
|
||||
@ -3580,24 +3581,40 @@ Returns the sum SHIFT due to changes in word replacements."
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun ispell-comments-and-strings ()
|
||||
"Check comments and strings in the current buffer for spelling errors."
|
||||
(interactive)
|
||||
(goto-char (point-min))
|
||||
(defun ispell-comments-and-strings (&optional start end)
|
||||
"Check comments and strings in the current buffer for spelling errors.
|
||||
If called interactively with an active region, check only comments and
|
||||
strings in the region.
|
||||
When called from Lisp, START and END buffer positions can be provided
|
||||
to limit the check."
|
||||
(interactive (when (use-region-p) (list (region-beginning) (region-end))))
|
||||
(unless end (setq end (point-max)))
|
||||
(goto-char (or start (point-min)))
|
||||
(let (state done)
|
||||
(while (not done)
|
||||
(setq done t)
|
||||
(setq state (parse-partial-sexp (point) (point-max)
|
||||
nil nil state 'syntax-table))
|
||||
(setq state (parse-partial-sexp (point) end nil nil state 'syntax-table))
|
||||
(if (or (nth 3 state) (nth 4 state))
|
||||
(let ((start (point)))
|
||||
(setq state (parse-partial-sexp start (point-max)
|
||||
(setq state (parse-partial-sexp start end
|
||||
nil nil state 'syntax-table))
|
||||
(if (or (nth 3 state) (nth 4 state))
|
||||
(error "Unterminated string or comment"))
|
||||
(save-excursion
|
||||
(setq done (not (ispell-region start (point))))))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun ispell-comment-or-string-at-point ()
|
||||
"Check the comment or string containing point for spelling errors."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(let ((state (syntax-ppss)))
|
||||
(if (or (nth 3 state) (nth 4 state))
|
||||
(ispell-region (nth 8 state)
|
||||
(progn (parse-partial-sexp (point) (point-max)
|
||||
nil nil state 'syntax-table)
|
||||
(point)))
|
||||
(user-error "Not inside a string or comment")))))
|
||||
|
||||
;;;###autoload
|
||||
(defun ispell-buffer ()
|
||||
|
Loading…
Reference in New Issue
Block a user