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

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

[nongnu] elpa/typescript-mode 42a60e5c88 190/222: Merge pull request #13


From: ELPA Syncer
Subject: [nongnu] elpa/typescript-mode 42a60e5c88 190/222: Merge pull request #137 from sirikid/feature/comma-first-lists
Date: Sun, 6 Feb 2022 16:59:31 -0500 (EST)

branch: elpa/typescript-mode
commit 42a60e5c881082db2ec2c541a5c154308c4863e6
Merge: f36fddeb54 710f5425a4
Author: Jostein Kjønigsen <jostein@kjonigsen.net>
Commit: GitHub <noreply@github.com>

    Merge pull request #137 from sirikid/feature/comma-first-lists
    
    Add option for list items indenting
---
 test-files/list-items-indent-comma-first.ts | 22 +++++++++++++++++++
 test-files/list-items-indent-default.ts     | 22 +++++++++++++++++++
 typescript-mode-general-tests.el            | 34 +++++++++++++++++++++++++++++
 typescript-mode.el                          |  8 ++++++-
 4 files changed, 85 insertions(+), 1 deletion(-)

diff --git a/test-files/list-items-indent-comma-first.ts 
b/test-files/list-items-indent-comma-first.ts
new file mode 100644
index 0000000000..2a7485c89c
--- /dev/null
+++ b/test-files/list-items-indent-comma-first.ts
@@ -0,0 +1,22 @@
+const arr =
+    [ 'one'
+    , 'two'
+    , 'three' ];
+
+const obj =
+    { a: 111
+    , b: 222
+    , c: 333 };
+
+const depth = { arr: [ 'one'
+                     , 'two'
+                     , 'three' ]
+              , obj: { a: 111
+                     , b: 222
+                     , c: 333 }
+              , func_call: Object.assign
+              ( {}
+              , { x: 1
+                , y: 2
+                , z: 3 }
+              , { i: 'i', j: 'j' } ) };
diff --git a/test-files/list-items-indent-default.ts 
b/test-files/list-items-indent-default.ts
new file mode 100644
index 0000000000..290c8250dc
--- /dev/null
+++ b/test-files/list-items-indent-default.ts
@@ -0,0 +1,22 @@
+const arr =
+    [ 'one'
+      , 'two'
+      , 'three' ];
+
+const obj =
+    { a: 111
+      , b: 222
+      , c: 333 };
+
+const depth = { arr: [ 'one'
+                       , 'two'
+                       , 'three' ]
+                , obj: { a: 111
+                         , b: 222
+                         , c: 333 }
+                , func_call: Object.assign
+                ( {}
+                  , { x: 1
+                      , y: 2
+                      , z: 3 }
+                  , { i: 'i', j: 'j' } ) };
diff --git a/typescript-mode-general-tests.el b/typescript-mode-general-tests.el
index 6e3f098aa7..aa1f1f8c78 100644
--- a/typescript-mode-general-tests.el
+++ b/typescript-mode-general-tests.el
@@ -52,6 +52,40 @@
                             (typescript-test-get-doc))))
     (kill-buffer buffer)))
 
+(ert-deftest list-items-indent-default ()
+  (with-current-buffer (find-file "test-files/list-items-indent-default.ts")
+    (typescript-mode)
+    (let ((test-reference (typescript-test-get-doc)))
+      (typescript-test-indent-all)
+      (should (string= test-reference (typescript-test-get-doc))))
+    (kill-buffer)))
+
+(ert-deftest list-items-indent-default-not-comma-first ()
+  (with-current-buffer (find-file 
"test-files/list-items-indent-comma-first.ts")
+    (typescript-mode)
+    (let ((test-reference (typescript-test-get-doc)))
+      (typescript-test-indent-all)
+      (should (not (string= test-reference (typescript-test-get-doc)))))
+    (kill-buffer)))
+
+(ert-deftest list-items-indent-comma-first ()
+  (with-current-buffer (find-file 
"test-files/list-items-indent-comma-first.ts")
+    (typescript-mode)
+    (let ((test-reference (typescript-test-get-doc))
+          (typescript-indent-list-items nil))
+      (typescript-test-indent-all)
+      (should (string= test-reference (typescript-test-get-doc))))
+    (kill-buffer)))
+
+(ert-deftest list-items-indent-comma-first-not-default ()
+  (with-current-buffer (find-file "test-files/list-items-indent-default.ts")
+    (typescript-mode)
+    (let ((test-reference (typescript-test-get-doc))
+          (typescript-indent-list-items nil))
+      (typescript-test-indent-all)
+      (should (not (string= test-reference (typescript-test-get-doc)))))
+    (kill-buffer)))
+
 (defun get-all-matched-strings (to-match)
   (let (result)
     (dotimes (x (/ (length (match-data)) 2))
diff --git a/typescript-mode.el b/typescript-mode.el
index 09add95553..7bad249e70 100644
--- a/typescript-mode.el
+++ b/typescript-mode.el
@@ -653,6 +653,11 @@ replicate tsserver behaviour. Indent level is taken to be
   :type 'boolean
   :group 'typescript)
 
+(defcustom typescript-indent-list-items t
+  "Enable indenting of list items, useful for certain code styles."
+  :type 'boolean
+  :group 'typescript)
+
 (defcustom typescript-auto-indent-flag t
   "Whether to automatically indent when typing punctuation characters.
 If non-nil, the characters {}();,: also indent the current line
@@ -2535,7 +2540,8 @@ moved on success."
                        (if (and in-switch-p typescript-indent-switch-clauses)
                            (+ indent typescript-indent-level)
                          indent)))
-                 (unless same-indent-p
+                 (when (and (not same-indent-p)
+                            typescript-indent-list-items)
                    (forward-char)
                    (skip-chars-forward " \t"))
                  (if continued-expr-p



reply via email to

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