[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 5c67eb2d 3/3: Simplify implementation of style/babel.el
From: |
Arash Esbati |
Subject: |
master 5c67eb2d 3/3: Simplify implementation of style/babel.el |
Date: |
Mon, 21 Nov 2022 07:01:54 -0500 (EST) |
branch: master
commit 5c67eb2dfdf7d383f67c1b318c72f508319e307c
Author: Arash Esbati <arash@gnu.org>
Commit: Arash Esbati <arash@gnu.org>
Simplify implementation of style/babel.el
* style/babel.el (TeX-arg-babel-lang, LaTeX-env-babel-lang):
Delete functions.
("babel"): Replace functionality of deleted functions with
standard ones.
For "babelfont", move code inside the query for "Font family" into
a closure at the end of the entry and drop `TeX-arg-eval'.
---
style/babel.el | 115 +++++++++++++++++++++++++++++++--------------------------
1 file changed, 63 insertions(+), 52 deletions(-)
diff --git a/style/babel.el b/style/babel.el
index c58ea9fa..70cc5658 100644
--- a/style/babel.el
+++ b/style/babel.el
@@ -40,6 +40,9 @@
(declare-function font-latex-add-keywords
"font-latex"
(keywords class))
+(declare-function LaTeX-fontspec-auto-cleanup
+ "fontspec"
+ ())
(defvar LaTeX-babel-language-list
'("afrikaans"
@@ -202,10 +205,9 @@
(let ((fam (concat elt "family"))
(def (concat elt "default"))
(mac (concat "text" elt)))
- (apply #'TeX-add-symbols
- `((,fam -1)
- (,def -1)
- (,mac t)))
+ (apply #'TeX-add-symbols `((,fam -1)
+ (,def -1)
+ (,mac t)))
;; Cater for fontification:
(when (and (featurep 'font-latex)
(eq TeX-install-font-lock 'font-latex-setup))
@@ -229,20 +231,6 @@
(add-hook 'TeX-auto-cleanup-hook #'LaTeX-babel-auto-cleanup t)
(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
-(defun TeX-arg-babel-lang (optional &optional prompt)
- "Prompt for a language with completion and insert it as an argument."
- (TeX-argument-insert
- (completing-read
- (TeX-argument-prompt optional prompt "Language")
- (LaTeX-babel-active-languages))
- optional))
-
-(defun LaTeX-env-babel-lang (env)
- "Prompt for a language and insert it as an argument of ENV."
- (LaTeX-insert-environment
- env (format "{%s}" (completing-read "Language: "
- (LaTeX-babel-active-languages)))))
-
(defun LaTeX-babel-load-languages ()
"Load style files of babel active languages."
;; Run style hooks for every active language in loading order, so
@@ -263,22 +251,29 @@
(TeX-add-symbols
;; 1.7 Basic language selectors
- '("selectlanguage" TeX-arg-babel-lang)
- '("foreignlanguage" TeX-arg-babel-lang t)
+ '("selectlanguage"
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language"))
+ '("foreignlanguage"
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language")
+ t)
;; 1.9 More on selection
'("babeltags" t)
- '("babelensure" (TeX-arg-key-val
- (("include") ("exclude")
- ("fontenc" (;; 128+ glyph encodings (text)
- "OT1" "OT2" "OT3" "OT4" "OT6"
- ;; 256 glyph encodings (text)
- "T1" "T2A" "T2B" "T2C" "T3" "T4" "T5"
- ;; 256 glyph encodings (text extended)
- "X2"
- ;; Other encodings
- "LY1" "LV1" "LGR"))))
- TeX-arg-babel-lang)
+ '("babelensure"
+ (TeX-arg-key-val
+ (("include") ("exclude")
+ ("fontenc" (;; 128+ glyph encodings (text)
+ "OT1" "OT2" "OT3" "OT4" "OT6"
+ ;; 256 glyph encodings (text)
+ "T1" "T2A" "T2B" "T2C" "T3" "T4" "T5"
+ ;; 256 glyph encodings (text extended)
+ "X2"
+ ;; Other encodings
+ "LY1" "LV1" "LGR"))))
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language"))
;; 1.10 Shorthands
'("shorthandon" "Shorthands list")
'("shorthandoff" "Shorthands list")
@@ -289,7 +284,9 @@
[TeX-arg-completing-read-multiple (LaTeX-babel-active-languages)
"Language(s)"]
t nil)
- '("languageshorthands" TeX-arg-babel-lang)
+ '("languageshorthands"
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language"))
'("babelshorthand" "Short hand")
'("ifbabelshorthand" "Character" t nil)
'("aliasshorthand" "Original" "Alias")
@@ -300,24 +297,26 @@
t)
;; 1.14 Selecting fonts
- '("babelfont"
+ `("babelfont"
[TeX-arg-completing-read-multiple LaTeX-babel-language-list
"Language(s)"]
- (TeX-arg-eval let ((fontfam (completing-read
- (TeX-argument-prompt nil nil "font family")
- '("rm" "sf" "tt"))))
- ;; Run `TeX-check-engine-add-engines' and then
- ;; load `fontspec.el' if not already loaded and
- ;; make sure the key-vals are up to date.
- (unless (member "fontspec" (TeX-style-list))
- (TeX-check-engine-add-engines 'luatex 'xetex)
- (TeX-run-style-hooks "fontspec")
- (LaTeX-fontspec-auto-cleanup))
- (LaTeX-add-babel-babelfonts fontfam)
- (LaTeX-babel-cleanup-babelfont)
- (format "%s" fontfam))
+ (TeX-arg-completing-read ("rm" "sf" "tt") "Font family")
[TeX-arg-key-val (LaTeX-fontspec-font-features)]
- LaTeX-fontspec-arg-font)
+ LaTeX-fontspec-arg-font
+ ,(lambda (_)
+ ;; Run `TeX-check-engine-add-engines' and then
+ ;; load `fontspec.el' if not already loaded and
+ ;; make sure the key-vals are up to date.
+ (unless (member "fontspec" (TeX-style-list))
+ (TeX-check-engine-add-engines 'luatex 'xetex)
+ (TeX-run-style-hooks "fontspec")
+ (LaTeX-fontspec-auto-cleanup))
+ ;; Now search back for the Font family arg:
+ (save-excursion
+ (re-search-backward "\\\\babelfont\\(?:\\[[^]]*\\]\\)?{\\([^}]+\\)}"
+ (line-beginning-position) t)
+ (LaTeX-add-babel-babelfonts (match-string-no-properties 1))
+ (LaTeX-babel-cleanup-babelfont))))
;; 1.16 Creating a language
'("babelprovide"
@@ -326,7 +325,10 @@
;; 1.19 Accessing language info
'("languagename" 0)
- '("iflanguage" TeX-arg-babel-lang t nil)
+ '("iflanguage"
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language")
+ t nil)
;; 1.20 Hyphenation and line breaking
'("babelhyphen"
@@ -343,7 +345,10 @@
'("ensureascii" "Text")
;; 1.25 Language attributes
- '("languageattribute" TeX-arg-babel-lang t))
+ '("languageattribute"
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language")
+ t))
;; Don't increase indentation at various \if* macros:
(let ((exceptions '("ifbabelshorthand"
@@ -354,9 +359,15 @@
;; New environments: 1.8 Auxiliary language selectors
(LaTeX-add-environments
- '("otherlanguage" LaTeX-env-babel-lang)
- '("otherlanguage*" LaTeX-env-babel-lang)
- '("hyphenrules" LaTeX-env-babel-lang))
+ '("otherlanguage" LaTeX-env-args
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language"))
+ '("otherlanguage*" LaTeX-env-args
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language"))
+ '("hyphenrules" LaTeX-env-args
+ (TeX-arg-completing-read (LaTeX-babel-active-languages)
+ "Language")))
;; Fontification
(when (and (featurep 'font-latex)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 5c67eb2d 3/3: Simplify implementation of style/babel.el,
Arash Esbati <=