[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex 5afcc09 10/25: Add parsing support to style/comm
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex 5afcc09 10/25: Add parsing support to style/comment.el |
Date: |
Sun, 21 Mar 2021 11:44:40 -0400 (EDT) |
branch: externals/auctex
commit 5afcc09284eca4e156f5f63943f3ac4a662e98c8
Author: Arash Esbati <arash@gnu.org>
Commit: Arash Esbati <arash@gnu.org>
Add parsing support to style/comment.el
* style/comment.el (LaTeX-comment-include-exclude-regexp):
(LaTeX-comment-package-options): New variables.
(LaTeX-comment-auto-cleanup): New function for processing parsed
elements.
---
style/comment.el | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 94 insertions(+), 7 deletions(-)
diff --git a/style/comment.el b/style/comment.el
index 1e20e7e..8d0c90c 100644
--- a/style/comment.el
+++ b/style/comment.el
@@ -1,6 +1,6 @@
;;; comment.el --- AUCTeX style for `comment.sty' -*- lexical-binding: t; -*-
-;; Copyright (C) 2007, 2018, 2020 Free Software Foundation, Inc.
+;; Copyright (C) 2007, 2018--2021 Free Software Foundation, Inc.
;; Author: Ralf Angeli <angeli@caeruleus.net>
;; Maintainer: auctex-devel@gnu.org
@@ -37,24 +37,108 @@
(declare-function font-latex-add-keywords
"font-latex"
(keywords class))
-
(declare-function font-latex-set-syntactic-keywords
"font-latex")
-
(defvar font-latex-syntactic-keywords-extra)
+;; Prepare for parsing:
+(TeX-auto-add-type "comment-incl-excl" "LaTeX")
+
+(defvar LaTeX-comment-include-exclude-regexp
+ '("\\\\\\(include\\|exclude\\|special\\)comment[ \t\n\r%]*{\\([^}]+\\)}"
+ (2 1) LaTeX-auto-comment-incl-excl)
+ "Matches the name of environments defined by comment macros.")
+
+(defun LaTeX-comment-auto-prepare ()
+ "Reset the value of `LaTeX-auto-comment-incl-excl'."
+ (setq LaTeX-auto-comment-incl-excl nil))
+
+(defun LaTeX-comment-auto-cleanup ()
+ "Process parsed elements for comment package."
+ (dolist (elt (LaTeX-comment-incl-excl-list))
+ (let ((env (car elt))
+ (type (cadr elt)))
+ ;; Make the environment available for completion
+ (LaTeX-add-environments env)
+ ;; Fontification
+ (when (and (boundp 'font-latex-syntactic-keywords-extra)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ ;; For syntactic fontification.
+ (if (string= type "exclude")
+ ;; Argument of \excludecomment:
+ (progn
+ (add-to-list 'font-latex-syntactic-keywords-extra
+ ;; \begin is supposed to start at the
+ ;; beginning of a line.
+ `(,(format "^\\\\begin *{%s}.*\\(\n\\)"
+ env)
+ (1 "!" t)))
+ (add-to-list 'font-latex-syntactic-keywords-extra
+ ;; \end is supposed to start at the
+ ;; beginning of a line.
+ `(,(format "^\\(\\\\\\)end *{%s}"
+ env)
+ (1 "!" t))))
+ ;; Delete the entry from
+ ;; `font-latex-syntactic-keywords-extra' if argument of
+ ;; \includecomment or \specialcomment:
+ (setq font-latex-syntactic-keywords-extra
+ (delete `(,(format "^\\\\begin *{%s}.*\\(\n\\)"
+ env)
+ (1 "!" t))
+ font-latex-syntactic-keywords-extra))
+ (setq font-latex-syntactic-keywords-extra
+ (delete `(,(format "^\\(\\\\\\)end *{%s}"
+ env)
+ (1 "!" t))
+ font-latex-syntactic-keywords-extra))))))
+ ;; Recalculate the fontification rules once at the end:
+ (when (and (LaTeX-comment-incl-excl-list)
+ (fboundp 'font-latex-set-syntactic-keywords)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-set-syntactic-keywords)))
+
+(add-hook 'TeX-auto-prepare-hook #'LaTeX-comment-auto-prepare t)
+(add-hook 'TeX-auto-cleanup-hook #'LaTeX-comment-auto-cleanup t)
+(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
+
(TeX-add-style-hook
"comment"
(lambda ()
+
+ ;; Add comment to the parser.
+ (TeX-auto-add-regexp LaTeX-comment-include-exclude-regexp)
+
;; New symbols
(TeX-add-symbols
- '("includecomment" "Name")
- '("excludecomment" "Name")
- '("specialcomment" "Name" "Before commands" "After commands")
+ '("includecomment"
+ (TeX-arg-eval let ((env (TeX-read-string
+ (TeX-argument-prompt nil nil "Name"))))
+ (LaTeX-add-comment-incl-excls `(,env "include"))
+ (LaTeX-comment-auto-cleanup)
+ (format "%s" env)))
+
+ '("excludecomment"
+ (TeX-arg-eval let ((env (TeX-read-string
+ (TeX-argument-prompt nil nil "Name"))))
+ (LaTeX-add-comment-incl-excls `(,env "exclude"))
+ (LaTeX-comment-auto-cleanup)
+ (format "%s" env)))
+
+ '("specialcomment"
+ (TeX-arg-eval let ((env (TeX-read-string
+ (TeX-argument-prompt nil nil "Name"))))
+ (LaTeX-add-comment-incl-excls `(,env "special"))
+ (LaTeX-comment-auto-cleanup)
+ (format "%s" env))
+ "Before commands" "After commands")
+
'("processcomment" "Name" "Each-line commands"
"Before commands" "After commands"))
+
;; New environments
- (mapc 'LaTeX-add-environments LaTeX-comment-env-list)
+ (mapc #'LaTeX-add-environments LaTeX-comment-env-list)
+
;; Fontification
(when (and (fboundp 'font-latex-add-keywords)
(eq TeX-install-font-lock 'font-latex-setup))
@@ -78,4 +162,7 @@
(font-latex-set-syntactic-keywords)))
TeX-dialect)
+(defvar LaTeX-comment-package-options nil
+ "Package options for the comment package.")
+
;;; comment.el ends here
- [elpa] externals/auctex updated (04d69c5 -> 48fb645), Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 42f1bc3 03/25: ; Fix texinfo error, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 2e9b714 09/25: Add new style/footnotehyper.el, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 0e616b8 16/25: Enable lexical binding in plain-tex.el, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 8bc74dd 01/25: Update style/bigdelim.el to package version 2.6, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex f87d90f 02/25: Document how to load AUCTeX from a local Git repo, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 39c4e77 07/25: Add new style/truncate.el, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 5afcc09 10/25: Add parsing support to style/comment.el,
Tassilo Horn <=
- [elpa] externals/auctex 4384639 11/25: Add new style/changes.el, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 18bc7b6 18/25: Enable lexical binding in context-{en, nl}.el, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 737fa11 20/25: Fix wrapping of active region with \[Hh]ologo macros, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex da52023 24/25: Discard `TeX-auto-update' to silence byte compiler, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 653e272 12/25: Deprioritize "\\.drv\\'" in auto-mode-alist, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 72e645f 13/25: ; * tex-buf.el (TeX-active-master): Fix comment., Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 2848def 14/25: * style/geometry.el ("geometry"): Fontify \restoregeometry macro., Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 331b24c 21/25: Use "wrap region or query for logo" also in \[hH]ologoVariant, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 094c298 23/25: Implement the user option TeX-output-dir, Tassilo Horn, 2021/03/21
- [elpa] externals/auctex 6db8a1a 06/25: ; Use @subsection, Tassilo Horn, 2021/03/21