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

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

[elpa] externals/auctex d2dfab6 30/57: Fix indentation in ConTeXt mode a


From: Tassilo Horn
Subject: [elpa] externals/auctex d2dfab6 30/57: Fix indentation in ConTeXt mode after indented optional argument
Date: Tue, 25 Jul 2017 14:02:32 -0400 (EDT)

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

    Fix indentation in ConTeXt mode after indented optional argument
    
    * context.el (ConTeXt-find-indent): Fix indentation.  Requested by Henri 
Menke.
    * tests/context/context-test.el:
    * tests/context/context-indentation-in.tex:
    * tests/context/context-indentation-out.tex: New test files.
---
 context.el                                |  5 ++-
 tests/context/context-indentation-in.tex  | 24 +++++++++++++
 tests/context/context-indentation-out.tex | 24 +++++++++++++
 tests/context/context-test.el             | 56 +++++++++++++++++++++++++++++++
 4 files changed, 108 insertions(+), 1 deletion(-)

diff --git a/context.el b/context.el
index 2f302b3..d322afc 100644
--- a/context.el
+++ b/context.el
@@ -1220,7 +1220,10 @@ else.  There might be text before point."
        (condition-case err
           (progn
             (backward-sexp 1)
-            (while (> (current-column) (current-indentation))
+            (while (or (> (current-column) (current-indentation))
+                       ;; Continue going back if we are
+                       ;; at a hanging optional group.
+                       (looking-at (regexp-quote ConTeXt-optop)))
               (backward-sexp 1)))
         (scan-error
          (setq up-list-pos (nth 2 err))))
diff --git a/tests/context/context-indentation-in.tex 
b/tests/context/context-indentation-in.tex
new file mode 100644
index 0000000..c1c3aed
--- /dev/null
+++ b/tests/context/context-indentation-in.tex
@@ -0,0 +1,24 @@
+\setuphead
+[section]
+[before={\blank[big]},
+after={\blank[medium]}]
+
+\setuphead
+[subsection]
+  [
+before={\blank[big]},
+after={\blank[medium]},
+]
+
+\starttext
+
+  \startitemize[a]
+  \item Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua.
+  \item Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
nisi ut
+  aliquip ex ea commodo consequat.
+  \item Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
+    dolore eu fugiat nulla pariatur.
+  \stopitemize
+
+\stoptext
diff --git a/tests/context/context-indentation-out.tex 
b/tests/context/context-indentation-out.tex
new file mode 100644
index 0000000..e963574
--- /dev/null
+++ b/tests/context/context-indentation-out.tex
@@ -0,0 +1,24 @@
+\setuphead
+  [section]
+  [before={\blank[big]},
+    after={\blank[medium]}]
+
+\setuphead
+  [subsection]
+  [
+    before={\blank[big]},
+    after={\blank[medium]},
+  ]
+
+\starttext
+
+\startitemize[a]
+\item Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+  tempor incididunt ut labore et dolore magna aliqua.
+\item Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi 
ut
+  aliquip ex ea commodo consequat.
+\item Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
+  dolore eu fugiat nulla pariatur.
+\stopitemize
+
+\stoptext
diff --git a/tests/context/context-test.el b/tests/context/context-test.el
new file mode 100644
index 0000000..05647e4
--- /dev/null
+++ b/tests/context/context-test.el
@@ -0,0 +1,56 @@
+;;; context-test.el --- tests for ConTeXt mode
+
+;; Copyright (C) 2017 Free Software Foundation, Inc.
+
+;; This file is part of AUCTeX.
+
+;; AUCTeX is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; AUCTeX is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with AUCTeX; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+;; 02110-1301, USA.
+
+;;; Code:
+
+(require 'ert)
+(require 'context)
+
+(defun AUCTeX-set-ert-path (&rest sym-val)
+  "Set first element of SYM-VAL to the next one, and so on.
+
+The value is the path to the test file, make sure it is expanded
+in the right directory even when the ERT test from the command
+line and from another directory."
+  (while sym-val
+    (set (pop sym-val)
+        (expand-file-name (pop sym-val)
+                          (when load-file-name
+                            (file-name-directory load-file-name))))))
+
+(AUCTeX-set-ert-path
+ 'ConTeXt-indent-test/in
+ "context-indentation-in.tex"
+ 'ConTeXt-indent-test/out
+ "context-indentation-out.tex")
+
+(ert-deftest ConTeXt-indent ()
+  (should (string=
+           (with-temp-buffer
+             (insert-file-contents ConTeXt-indent-test/in)
+             (ConTeXt-mode)
+             (indent-region (point-min) (point-max))
+             (buffer-string))
+           (with-temp-buffer
+             (insert-file-contents ConTeXt-indent-test/out)
+             (buffer-string)))))
+
+;;; context-test.el ends here



reply via email to

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