mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
Further tweaks for comment-start-skip behavior
* lisp/newcomment.el (comment-normalize-vars): Only add escaping check to `comment-start-skip' if not `comment-use-syntax'. (comment-beginning): Use `narrow-to-region' instead of moving back one character. (http://lists.gnu.org/archive/html/emacs-devel/2014-03/msg00488.html) (comment-start-skip): Update the docstring. Fixes: debbugs:16971
This commit is contained in:
parent
1917cf46bb
commit
2b7858ecbd
@ -1,3 +1,12 @@
|
||||
2014-03-18 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
* newcomment.el (comment-normalize-vars): Only add escaping check
|
||||
to `comment-start-skip' if not `comment-use-syntax'. (Bug#16971)
|
||||
(comment-beginning): Use `narrow-to-region' instead of moving back
|
||||
one character.
|
||||
(http://lists.gnu.org/archive/html/emacs-devel/2014-03/msg00488.html)
|
||||
(comment-start-skip): Update the docstring.
|
||||
|
||||
2014-03-18 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* startup.el (tty-handle-args): Remove debug message from 2007.
|
||||
|
@ -120,8 +120,9 @@ Comments might be indented to a different value in order not to go beyond
|
||||
;;;###autoload
|
||||
(defvar comment-start-skip nil
|
||||
"Regexp to match the start of a comment plus everything up to its body.
|
||||
If there are any \\(...\\) pairs, the comment delimiter text is held to begin
|
||||
at the place matched by the close of the first pair.")
|
||||
If there are any \\(...\\) pairs and `comment-use-syntax' is nil,
|
||||
the comment delimiter text is held to begin at the place matched
|
||||
by the close of the first pair.")
|
||||
;;;###autoload
|
||||
(put 'comment-start-skip 'safe-local-variable 'stringp)
|
||||
|
||||
@ -378,7 +379,10 @@ function should first call this function explicitly."
|
||||
;; In case comment-start has changed since last time.
|
||||
(string-match comment-start-skip comment-start))
|
||||
(set (make-local-variable 'comment-start-skip)
|
||||
(concat "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)\\(\\s<+\\|"
|
||||
(concat (unless (eq comment-use-syntax t)
|
||||
;; `syntax-ppss' will detect escaping.
|
||||
"\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)")
|
||||
"\\(\\s<+\\|"
|
||||
(regexp-quote (comment-string-strip comment-start t t))
|
||||
;; Let's not allow any \s- but only [ \t] since \n
|
||||
;; might be both a comment-end marker and \s-.
|
||||
@ -523,12 +527,11 @@ the same as `comment-search-backward'."
|
||||
(when (nth 4 state)
|
||||
(goto-char (nth 8 state))
|
||||
(prog1 (point)
|
||||
(when (or (looking-at comment-start-skip)
|
||||
;; Some older modes use regexps that check the
|
||||
;; char before the comment for quoting. (Bug#16971)
|
||||
(save-excursion
|
||||
(forward-char -1)
|
||||
(looking-at comment-start-skip)))
|
||||
(when (save-restriction
|
||||
;; `comment-start-skip' sometimes checks that the
|
||||
;; comment char is not escaped. (Bug#16971)
|
||||
(narrow-to-region (point) (point-max))
|
||||
(looking-at comment-start-skip))
|
||||
(goto-char (match-end 0))))))
|
||||
;; Can't rely on the syntax table, let's guess based on font-lock.
|
||||
(unless (eq (get-text-property (point) 'face) 'font-lock-string-face)
|
||||
|
Loading…
Reference in New Issue
Block a user