emacs-diffs
[Top][All Lists]
Advanced

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

master a3979a66430 2/2: Add `M-x align` support to conf-toml-mode


From: Stefan Kangas
Subject: master a3979a66430 2/2: Add `M-x align` support to conf-toml-mode
Date: Tue, 1 Aug 2023 04:40:59 -0400 (EDT)

branch: master
commit a3979a664304006afa0761884ae0927d269c698c
Author: Stefan Kangas <stefankangas@gmail.com>
Commit: Stefan Kangas <stefankangas@gmail.com>

    Add `M-x align` support to conf-toml-mode
    
    * lisp/align.el (align-rules-list): Add rule for conf-toml-mode.
    * test/lisp/align-resources/conf-toml-mode.erts: New file.
    * test/lisp/align-tests.el (align-toml): New test.
---
 lisp/align.el                                 |  9 +++++-
 test/lisp/align-resources/conf-toml-mode.erts | 45 +++++++++++++++++++++++++++
 test/lisp/align-tests.el                      |  5 +++
 3 files changed, 58 insertions(+), 1 deletion(-)

diff --git a/lisp/align.el b/lisp/align.el
index 79a75dcec79..2e667ca4749 100644
--- a/lisp/align.el
+++ b/lisp/align.el
@@ -568,7 +568,14 @@ The possible settings for `align-region-separate' are:
     (css-declaration
      (regexp . "^\\s-*\\(?:\\w-?\\)+:\\(\\s-*\\).*;")
      (group . (1))
-     (modes . '(css-mode html-mode))))
+     (modes . '(css-mode html-mode)))
+
+    (toml-assignment
+     (regexp . ,(rx (group (zero-or-more (syntax whitespace)))
+                    "="
+                    (group (zero-or-more (syntax whitespace)))))
+     (group . (1 2))
+     (modes . '(conf-toml-mode))))
   "A list describing all of the available alignment rules.
 The format is:
 
diff --git a/test/lisp/align-resources/conf-toml-mode.erts 
b/test/lisp/align-resources/conf-toml-mode.erts
new file mode 100644
index 00000000000..d1fcbd58708
--- /dev/null
+++ b/test/lisp/align-resources/conf-toml-mode.erts
@@ -0,0 +1,45 @@
+Name: align key-value pairs
+
+=-=
+[foo]
+foo1=10
+foo22=20
+
+[bar]
+bar333="example.org"
+bar4444 = "zzz"
+=-=
+[foo]
+foo1  = 10
+foo22 = 20
+
+[bar]
+bar333  = "example.org"
+bar4444 = "zzz"
+=-=-=
+
+Name: align list values
+
+=-=
+[foo]
+a = 1
+some_list = [
+    true,
+    false,
+]
+some_other_list = [
+    1,
+    2,
+]
+=-=
+[foo]
+a               = 1
+some_list       = [
+    true,
+    false,
+]
+some_other_list = [
+    1,
+    2,
+]
+=-=-=
diff --git a/test/lisp/align-tests.el b/test/lisp/align-tests.el
index 5f9580fabf0..9f94bcb611f 100644
--- a/test/lisp/align-tests.el
+++ b/test/lisp/align-tests.el
@@ -38,6 +38,11 @@
   (ert-test-erts-file (ert-resource-file "java-mode.erts")
                       (test-align-transform-fun #'java-mode)))
 
+(ert-deftest align-toml ()
+  (let ((indent-tabs-mode nil))
+    (ert-test-erts-file (ert-resource-file "conf-toml-mode.erts")
+                        (test-align-transform-fun #'conf-toml-mode))))
+
 (provide 'align-tests)
 
 ;;; align-tests.el ends here



reply via email to

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