emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/auctex c2c7dd9 18/28: Parse user-defined new column typ


From: Tassilo Horn
Subject: [elpa] externals/auctex c2c7dd9 18/28: Parse user-defined new column types.
Date: Fri, 07 Aug 2015 15:59:24 +0000

branch: externals/auctex
commit c2c7dd9bfdaecaef29496504a317fa40ca56c9dd
Author: Arash Esbati <address@hidden>
Commit: Mosè Giordano <address@hidden>

    Parse user-defined new column types.
    
    Signed-off-by: Mosè Giordano <address@hidden>
---
 ChangeLog      |    5 +++++
 style/array.el |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 55 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2813370..148c741 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-07-18  Arash Esbati  <address@hidden>
+
+       * style/array.el: Parse user-defined new column types and add them
+       to `LaTeX-array-column-letters'.
+
 2015-07-09  Mos� Giordano  <address@hidden>
 
        * latex/README: restore file deleted by mistake when preview/
diff --git a/style/array.el b/style/array.el
index 51a27e8..058eb92 100644
--- a/style/array.el
+++ b/style/array.el
@@ -1,6 +1,6 @@
 ;;; array.el --- AUCTeX style for `array.sty'
 
-;; Copyright (C) 2013 Free Software Foundation, Inc.
+;; Copyright (C) 2013, 2015 Free Software Foundation, Inc.
 
 ;; Author: Mads Jensen <address@hidden>
 ;; Maintainer: address@hidden
@@ -29,11 +29,57 @@
 
 ;;; Code:
 
+(require 'tex)
+
+(TeX-auto-add-type "array-newcolumntype" "LaTeX")
+
+(defvar LaTeX-array-newcolumntype-regexp
+  '("\\\\newcolumntype{\\([a-zA-Z]+\\)}"
+    1 LaTeX-auto-array-newcolumntype)
+  "Matches the argument of `\\newcolumntype' from `array'
+package.")
+
+(defun LaTeX-array-auto-prepare ()
+  "Clear `LaTeX-auto-array-newcolumntype' before parsing."
+  (setq        LaTeX-auto-array-newcolumntype nil))
+
+(defun LaTeX-array-auto-cleanup ()
+  "Move parsed column specification from
+`LaTeX-auto-array-newcolumntype' to `LaTeX-array-column-letters'."
+  (when (LaTeX-array-newcolumntype-list)
+    (LaTeX-array-update-column-letters)))
+
+(defun LaTeX-array-update-column-letters ()
+  "Update and uniquify the value of `LaTeX-array-column-letters'
+and make it buffer local. "
+  (set (make-local-variable 'LaTeX-array-column-letters)
+       (mapconcat 'identity
+                 (TeX-delete-duplicate-strings
+                  (split-string
+                   (concat LaTeX-array-column-letters
+                           (mapconcat 'car (LaTeX-array-newcolumntype-list) 
""))
+                   "" t))
+                 "")))
+
+(add-hook 'TeX-auto-prepare-hook #'LaTeX-array-auto-prepare t)
+(add-hook 'TeX-auto-cleanup-hook #'LaTeX-array-auto-cleanup t)
+(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
+
 (TeX-add-style-hook
  "array"
  (lambda ()
+
+   (TeX-auto-add-regexp LaTeX-array-newcolumntype-regexp)
+
    (TeX-add-symbols
-    '("newcolumntype" "Column type" [ "Number of arguments" ] t)
+    '("newcolumntype"
+      (TeX-arg-eval
+       (lambda ()
+        (let ((col (TeX-read-string "Column type: ")))
+          (LaTeX-add-array-newcolumntypes col)
+          (LaTeX-array-update-column-letters)
+          (format "%s" col))))
+      [ "Number of arguments" ] t)
     '("showcols" 0)
     '("firsthline" 0)
     '("lasthline" 0))
@@ -43,7 +89,8 @@
    (LaTeX-add-lengths "extratabsurround" "extrarowheight")
 
    ;; `array.sty' adds some new column specification letters.
-   (set (make-local-variable 'LaTeX-array-column-letters) "clrpmb"))
+   (set (make-local-variable 'LaTeX-array-column-letters)
+       (concat LaTeX-array-column-letters "m" "b")))
  LaTeX-dialect)
 
 (defvar LaTeX-array-package-options nil



reply via email to

[Prev in Thread] Current Thread [Next in Thread]