[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[AUCTeX-diffs] [elpa] externals/auctex 199bc6e 48/71: Use coherent logic
From: |
Tassilo Horn |
Subject: |
[AUCTeX-diffs] [elpa] externals/auctex 199bc6e 48/71: Use coherent logic to identify code comment (bug#51762) |
Date: |
Fri, 17 Dec 2021 15:00:35 -0500 (EST) |
branch: externals/auctex
commit 199bc6e51c443c77853aaeca2fcca0a9df544c99
Author: Ikumi Keita <ikumi@ikumi.que.jp>
Commit: Ikumi Keita <ikumi@ikumi.que.jp>
Use coherent logic to identify code comment (bug#51762)
* latex.el (LaTeX-fill-region-as-paragraph): Use the same logic to
identify code comment as the rest of latex.el.
Use shy regexp groups when possible.
Add some comments.
* tests/latex/latex-test.el (LaTeX-filling):
* tests/latex/latex-filling-in.tex:
* tests/latex/latex-filling-out.tex:
Add new tests (including ones for bug#48937).
---
latex.el | 63 +++++++++++++++++++++++++--------------
tests/latex/latex-filling-in.tex | 33 ++++++++++++++++++++
tests/latex/latex-filling-out.tex | 34 +++++++++++++++++++++
tests/latex/latex-test.el | 7 ++++-
4 files changed, 114 insertions(+), 23 deletions(-)
diff --git a/latex.el b/latex.el
index 0523834..af44053 100644
--- a/latex.el
+++ b/latex.el
@@ -4004,7 +4004,7 @@ You can disable filling inside a specific environment by
adding
it to `LaTeX-indent-environment-list', only indentation is
performed in that case."
(interactive "*r\nP")
- (let ((end-marker (save-excursion (goto-char to) (point-marker))))
+ (let ((end-marker (copy-marker to)) has-code-comment)
(if (or (assoc (LaTeX-current-environment) LaTeX-indent-environment-list)
(member (TeX-current-macro) LaTeX-fill-excluded-macros)
;; This could be generalized, if there are more cases where
@@ -4016,29 +4016,47 @@ performed in that case."
"Local Variables:")))))
;; Filling disabled, only do indentation.
(indent-region from to nil)
+ ;; XXX: This `save-restriction' is a leftover of older codes and
+ ;; can now be removed.
(save-restriction
(goto-char from)
(while (< (point) end-marker)
- (if (re-search-forward
- (concat "\\("
- ;; Code comments.
- "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*"
- TeX-comment-start-regexp
- "\\|"
- ;; Lines ending with `\par'.
- "\\(\\=\\|[^" TeX-esc "\n]\\)\\("
- (regexp-quote (concat TeX-esc TeX-esc))
- "\\)*"
- (regexp-quote TeX-esc) "par[ \t]*"
- "\\({[ \t]*}\\)?[ \t]*$"
- "\\)\\|\\("
- ;; Lines ending with `\\'.
- (regexp-quote TeX-esc)
- (regexp-quote TeX-esc)
- "\\(\\s-*\\*\\)?"
- "\\(\\s-*\\[[^]]*\\]\\)?"
- "\\s-*$\\)")
- end-marker t)
+ (if (or
+ ;; Code comments.
+ (when (setq has-code-comment
+ (TeX-search-forward-comment-start end-marker))
+ (goto-char has-code-comment)
+ (when
+ ;; See if there is at least one non-whitespace
+ ;; character before the comment starts.
+ (save-excursion
+ (skip-chars-backward " \t" (line-beginning-position))
+ (bolp))
+ ;; Not a code comment. Go back to the former
+ ;; point.
+ (setq has-code-comment nil)
+ (goto-char from))
+ has-code-comment)
+ (re-search-forward
+ (concat "\\("
+ ;; Lines ending with `\par'.
+ ;; XXX: Why exclude \n? vv
+ "\\(?:\\=\\|[^" TeX-esc "\n]\\)\\(?:"
+ (regexp-quote (concat TeX-esc TeX-esc))
+ "\\)*"
+ (regexp-quote TeX-esc) "par[ \t]*"
+ ;; XXX: What's this "whitespaces in braces" ?
+ ;; vvvvvvvv
+ "\\(?:{[ \t]*}\\)?[ \t]*$"
+ "\\)\\|"
+ ;; Lines ending with `\\'.
+ (regexp-quote (concat TeX-esc TeX-esc))
+ ;; XXX: Why not just "\\s-*\\*?" ?
+ "\\(?:\\s-*\\*\\)?"
+ ;; XXX: Why not "\\s-*\\(?:\\[[^]]*\\]\\)?" ?
+ "\\(?:\\s-*\\[[^]]*\\]\\)?"
+ "\\s-*$")
+ end-marker t))
(progn
(goto-char (line-end-position))
(delete-horizontal-space)
@@ -4052,7 +4070,8 @@ performed in that case."
;; Code comments and lines ending with `\par' are
;; included in filling. Lines ending with `\\' are
;; skipped.
- (if (match-string 1)
+ (if (or has-code-comment
+ (match-beginning 1))
(LaTeX-fill-region-as-para-do from (point) justify-flag)
(LaTeX-fill-region-as-para-do
from (line-beginning-position 0) justify-flag)
diff --git a/tests/latex/latex-filling-in.tex b/tests/latex/latex-filling-in.tex
index 274d03c..f1de81b 100644
--- a/tests/latex/latex-filling-in.tex
+++ b/tests/latex/latex-filling-in.tex
@@ -26,3 +26,36 @@ Lorem ipsum dolor sit amet, consectetur adipisci,
lorem ipsum dolor
\par
sit amet, consectetur adipisci
+
+% bug#48937-1 "\% %" should be considered as comment
+Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus
+et netus et malesuada fames ac turpis egestas. 35\% % FIXME check this number
+Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum
+urna fringilla ultrices.
+
+% bug#48937-2 "\%%" should be considered as comment
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus
+elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur
+dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer
+id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque
+habitant morbi tristique senectus et netus et malesuada fames ac
+turpis egestas. 35\%% FIXME check this number
+Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus
+vestibulum urna fringilla ultrices.
+
+% bug#51762-1 "\ %" should be considered as comment
+$$ \fundefline p{A \times B}{A}{(x,y)}{x}\ %%
+\et\ \fundefline q{A \times B}{B}{(x,y)}{y}\ %%
+\text{les projections canoniques}\ .$$
+
+% bug#51762-2 another form of code comment
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit
+tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et,
+ \\% This is a code comment.
+mattis eget, convallis nec, purus.
+
+% bug#51762-3 "%" in \verb should not introduce code comment
+Cum sociis natoque penatibus et magnis \verb|a%b|
+dis parturient montes, nascetur ridiculus mus. Nulla posuere. Donec vitae
+dolor. Nullam tristique diam non turpis.
+Cras placerat accumsan nulla. Nullam rutrum. Nam vestibulum accumsan nisl.
diff --git a/tests/latex/latex-filling-out.tex
b/tests/latex/latex-filling-out.tex
index 764628c..232464b 100644
--- a/tests/latex/latex-filling-out.tex
+++ b/tests/latex/latex-filling-out.tex
@@ -24,3 +24,37 @@ Lorem ipsum dolor sit amet, consectetur adipisci, lorem
ipsum dolor
Lorem ipsum dolor sit amet, consectetur adipisci, lorem ipsum dolor
\par
sit amet, consectetur adipisci
+
+% bug#48937-1 "\% %" should be considered as comment
+Donec vehicula augue eu neque. Pellentesque habitant morbi tristique
+senectus et netus et malesuada fames ac turpis egestas.
+35\% % FIXME check this number
+Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus
+vestibulum urna fringilla ultrices.
+
+% bug#48937-2 "\%%" should be considered as comment
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus
+elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur
+dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer
+id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque
+habitant morbi tristique senectus et netus et malesuada fames ac
+turpis egestas. 35\%% FIXME check this number
+Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus
+vestibulum urna fringilla ultrices.
+
+% bug#51762-1 "\ %" should be considered as comment
+$$ \fundefline p{A \times B}{A}{(x,y)}{x}\ %%
+\et\ \fundefline q{A \times B}{B}{(x,y)}{y}\ %%
+\text{les projections canoniques}\ .$$
+
+% bug#51762-2 another form of code comment
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec
+hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam
+nisl, tincidunt et, \\% This is a code comment.
+mattis eget, convallis nec, purus.
+
+% bug#51762-3 "%" in \verb should not introduce code comment
+Cum sociis natoque penatibus et magnis \verb|a%b| dis parturient
+montes, nascetur ridiculus mus. Nulla posuere. Donec vitae
+dolor. Nullam tristique diam non turpis. Cras placerat accumsan
+nulla. Nullam rutrum. Nam vestibulum accumsan nisl.
diff --git a/tests/latex/latex-test.el b/tests/latex/latex-test.el
index b6135b2..9c1198d 100644
--- a/tests/latex/latex-test.el
+++ b/tests/latex/latex-test.el
@@ -140,13 +140,18 @@
(LaTeX-mode)
(let ((fill-column 70))
(fill-paragraph)
+
(let ((cmds '("captionsetup" "caption"
"parencite" "par")))
(dolist (cmd cmds)
(search-forward (concat "\\" cmd))
(save-excursion
(end-of-line 0)
- (fill-paragraph)))))
+ (fill-paragraph))))
+
+ (while (search-forward "% bug#" nil t)
+ (forward-line 1)
+ (fill-paragraph)))
(buffer-string))
(with-temp-buffer
(insert-file-contents LaTeX-filling/out)
- [AUCTeX-diffs] [elpa] externals/auctex updated (46c464b -> 2ee9a07), Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 2e6846e 04/71: Check the options and load the style backref.el, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 3174ded 01/71: Add new style/backref.el, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 45d3a11 08/71: ; Fix unbalanced parentheses, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 9a42bf4 29/71: ; Minor doc fixes, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 2d9944d 03/71: ; Improve initial commit., Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 199bc6e 48/71: Use coherent logic to identify code comment (bug#51762),
Tassilo Horn <=
- [AUCTeX-diffs] [elpa] externals/auctex 4e15656 19/71: Cleanup indentation of verbatim environments, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex ba1cbd2 53/71: Improve handling of key=vals in style/caption.el, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex f72f849 15/71: Delete obsolete files and targets, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 9284ac6 22/71: Explain how to do forward search by mouse, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 43f6398 46/71: Improve handling of key=vals in style/enumitem.el, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex c457aab 35/71: * style/babel.el ("babel"): Use `LaTeX-fontspec-font-features'., Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex dfd3369 59/71: Add new style/xr.el, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex cd4a1c9 28/71: * style/graphicx.el (LaTeX-graphicx-key-val-options): Add alt key., Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex 0322057 55/71: Fix misc minor issues, Tassilo Horn, 2021/12/17
- [AUCTeX-diffs] [elpa] externals/auctex ec9362d 16/71: ; * doc/todo.texi (Mid-term Goals): Fix spacing., Tassilo Horn, 2021/12/17