]> git.eshelyaron.com Git - emacs.git/commitdiff
Add `M-x align` support to conf-toml-mode
authorStefan Kangas <stefankangas@gmail.com>
Tue, 1 Aug 2023 08:38:45 +0000 (10:38 +0200)
committerStefan Kangas <stefankangas@gmail.com>
Tue, 1 Aug 2023 08:40:14 +0000 (10:40 +0200)
* 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
test/lisp/align-resources/conf-toml-mode.erts [new file with mode: 0644]
test/lisp/align-tests.el

index 79a75dcec794630e526eb9a8b5daf5ee5872a900..2e667ca4749a8996c27bd7f411e29680cc3cbf20 100644 (file)
@@ -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 (file)
index 0000000..d1fcbd5
--- /dev/null
@@ -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,
+]
+=-=-=
index 5f9580fabf096f30567e55b4af3fe3b7e30ed3fa..9f94bcb611f16fa2b4d3eacd9532cd0f2660c530 100644 (file)
   (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