[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/haskell-tng-mode cc657a8 197/385: support type alignment o
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/haskell-tng-mode cc657a8 197/385: support type alignment options |
Date: |
Tue, 5 Oct 2021 23:59:30 -0400 (EDT) |
branch: elpa/haskell-tng-mode
commit cc657a8c186d429322fca3e3c58061a063d761c6
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>
support type alignment options
---
haskell-tng-smie.el | 13 ++++++----
test/haskell-tng-indent-test.el | 22 ++++++++++-------
test/src/indentation-options.hs.append.indent | 6 ++---
test/src/indentation-options.hs.insert.indent | 6 ++---
...entation-options.hs => indentation-options1.hs} | 7 ------
...ns.hs => indentation-options1.hs.append.indent} | 15 +++++++-----
...ns.hs => indentation-options1.hs.insert.indent} | 15 ++++++------
...entation-options.hs => indentation-options2.hs} | 11 ++++-----
...ndent => indentation-options2.hs.append.indent} | 26 ++++++++++----------
...ndent => indentation-options2.hs.insert.indent} | 28 ++++++++++------------
test/src/indentation.hs.append.indent | 4 ++--
test/src/indentation.hs.insert.indent | 4 ++--
12 files changed, 79 insertions(+), 78 deletions(-)
diff --git a/haskell-tng-smie.el b/haskell-tng-smie.el
index 9a61bed..a3243e9 100644
--- a/haskell-tng-smie.el
+++ b/haskell-tng-smie.el
@@ -54,7 +54,6 @@
;; TODO autodetection of indent options
-;; TODO implement haskell-tng-aligntypes
(defcustom haskell-tng-aligntypes nil
"Whether to align arrows to their parent :: declaration.
@@ -68,7 +67,6 @@ foobar :: Monad m
:type 'booleanp
:group 'haskell-tng)
-;; TODO implement haskell-tng-typelead
(defcustom haskell-tng-typelead 3
"Leading spaces in a trailing type signature, relative to type arrows.
For example 3 and 1 are respectively:
@@ -301,7 +299,10 @@ information, to aid in the creation of new rules."
"\\case" ;; LambdaCase
"where" "let" "do" "of"))))
2)
- ("::" 5)
+ ((and "::" (guard (smie-rule-hanging-p)))
+ (if haskell-tng-aligntypes
+ `(column . ,(+ haskell-tng-typelead (current-column)))
+ haskell-tng-typelead))
("," (smie-rule-separator method))
((or "SYMID" "CONSYM" "KINDSYM")
(if (smie-rule-hanging-p) 2 (smie-rule-parent)))
@@ -329,7 +330,11 @@ information, to aid in the creation of new rules."
(smie-rule-separator method)))
((and (or "[" "(" "{") (guard (smie-rule-hanging-p)))
(smie-rule-parent))
- ((and "=>" (guard (not (smie-rule-sibling-p)))) 2)
+ ((and "=>" (guard (smie-rule-parent-p "::")))
+ (if haskell-tng-aligntypes
+ (haskell-tng--smie-rule-parent-column)
+ (smie-rule-parent)))
+ ("::" 2)
("," (smie-rule-separator method))
;; TODO ; as a separator, might remove ad-hoc WLDO rules
((guard (smie-rule-parent-p "SYMID" "CONSYM" "KINDSYM"))
diff --git a/test/haskell-tng-indent-test.el b/test/haskell-tng-indent-test.el
index a4d662c..08d0851 100644
--- a/test/haskell-tng-indent-test.el
+++ b/test/haskell-tng-indent-test.el
@@ -47,17 +47,23 @@
(ert-deftest haskell-tng-append-indent-file-tests:indentation ()
(should (have-expected-append-indent (testdata "src/indentation.hs"))))
-(ert-deftest haskell-tng-append-indent-file-tests:options ()
- (let ((haskell-tng-aligntypes t)
- (haskell-tng-typelead 1))
- (should (have-expected-append-indent (testdata
"src/indentation-options.hs")))))
+(ert-deftest haskell-tng-append-indent-file-tests:options1 ()
+ (let ((haskell-tng-typelead 1))
+ (should (have-expected-append-indent (testdata
"src/indentation-options1.hs")))))
+(ert-deftest haskell-tng-append-indent-file-tests:options2 ()
+ (let ((haskell-tng-typelead 1)
+ (haskell-tng-aligntypes t))
+ (should (have-expected-append-indent (testdata
"src/indentation-options2.hs")))))
(ert-deftest haskell-tng-insert-indent-file-tests:indentation ()
(should (have-expected-insert-indent (testdata "src/indentation.hs"))))
-(ert-deftest haskell-tng-insert-indent-file-tests:options ()
- (let ((haskell-tng-aligntypes t)
- (haskell-tng-typelead 1))
- (should (have-expected-insert-indent (testdata
"src/indentation-options.hs")))))
+(ert-deftest haskell-tng-insert-indent-file-tests:options1 ()
+ (let ((haskell-tng-typelead 1))
+ (should (have-expected-insert-indent (testdata
"src/indentation-options1.hs")))))
+(ert-deftest haskell-tng-insert-indent-file-tests:options2 ()
+ (let ((haskell-tng-typelead 1)
+ (haskell-tng-aligntypes t))
+ (should (have-expected-insert-indent (testdata
"src/indentation-options2.hs")))))
;; TODO reindenting needs attention, it's all over the radar
;; (ert-deftest haskell-tng-reindent-file-tests ()
diff --git a/test/src/indentation-options.hs.append.indent
b/test/src/indentation-options.hs.append.indent
index 6f0976c..36b9b7f 100644
--- a/test/src/indentation-options.hs.append.indent
+++ b/test/src/indentation-options.hs.append.indent
@@ -5,9 +5,9 @@ v
v
types4 ::
-1 v
+1 v
( Monad m )
-2 v1
+2 1 v
=> a
1 v2
-> b
@@ -17,7 +17,7 @@ types4 ::
1 v2
types5 :: Monad m
-1 v
+1 v
=> (?log :: HasLogger m)
1 v
=> a
diff --git a/test/src/indentation-options.hs.insert.indent
b/test/src/indentation-options.hs.insert.indent
index f119ceb..cdff89b 100644
--- a/test/src/indentation-options.hs.insert.indent
+++ b/test/src/indentation-options.hs.insert.indent
@@ -5,9 +5,9 @@ v
v
types4 ::
-2 1 v
+1 v
( Monad m )
-2 v1
+3 12 v
=> a
1 v2
-> b
@@ -17,7 +17,7 @@ types4 ::
v 12
types5 :: Monad m
-2 1 v
+1 v
=> (?log :: HasLogger m)
1 v
=> a
diff --git a/test/src/indentation-options.hs b/test/src/indentation-options1.hs
similarity index 59%
copy from test/src/indentation-options.hs
copy to test/src/indentation-options1.hs
index 5b764fd..db22140 100644
--- a/test/src/indentation-options.hs
+++ b/test/src/indentation-options1.hs
@@ -6,10 +6,3 @@ types4 ::
=> a
-> b
-> c
-
-types5 :: Monad m
- => (?log :: HasLogger m)
- => a
- -> b
- -> c
-
diff --git a/test/src/indentation-options.hs
b/test/src/indentation-options1.hs.append.indent
similarity index 59%
copy from test/src/indentation-options.hs
copy to test/src/indentation-options1.hs.append.indent
index 5b764fd..841deb0 100644
--- a/test/src/indentation-options.hs
+++ b/test/src/indentation-options1.hs.append.indent
@@ -1,15 +1,18 @@
-- | Indentation scenarios to test indentation options.
+v
module Indentation where
+v
+v
types4 ::
+1 v
( Monad m )
+2 v1
=> a
+1 v2
-> b
+1 v2
-> c
+1 v2
-types5 :: Monad m
- => (?log :: HasLogger m)
- => a
- -> b
- -> c
-
+1 v2
\ No newline at end of file
diff --git a/test/src/indentation-options.hs
b/test/src/indentation-options1.hs.insert.indent
similarity index 59%
copy from test/src/indentation-options.hs
copy to test/src/indentation-options1.hs.insert.indent
index 5b764fd..a2c1679 100644
--- a/test/src/indentation-options.hs
+++ b/test/src/indentation-options1.hs.insert.indent
@@ -1,15 +1,16 @@
-- | Indentation scenarios to test indentation options.
+v
module Indentation where
+v
+v
types4 ::
+1 v
( Monad m )
+2 v1
=> a
+1 v2
-> b
+1 v2
-> c
-
-types5 :: Monad m
- => (?log :: HasLogger m)
- => a
- -> b
- -> c
-
+v 12
\ No newline at end of file
diff --git a/test/src/indentation-options.hs b/test/src/indentation-options2.hs
similarity index 71%
rename from test/src/indentation-options.hs
rename to test/src/indentation-options2.hs
index 5b764fd..912ffe1 100644
--- a/test/src/indentation-options.hs
+++ b/test/src/indentation-options2.hs
@@ -1,15 +1,14 @@
-- | Indentation scenarios to test indentation options.
module Indentation where
-types4 ::
- ( Monad m )
- => a
- -> b
- -> c
-
types5 :: Monad m
=> (?log :: HasLogger m)
=> a
-> b
-> c
+types6 ::
+ ( Monad m )
+ => a
+ -> b
+ -> c
diff --git a/test/src/indentation-options.hs.append.indent
b/test/src/indentation-options2.hs.append.indent
similarity index 62%
copy from test/src/indentation-options.hs.append.indent
copy to test/src/indentation-options2.hs.append.indent
index 6f0976c..8b50cd8 100644
--- a/test/src/indentation-options.hs.append.indent
+++ b/test/src/indentation-options2.hs.append.indent
@@ -4,20 +4,8 @@ module Indentation where
v
v
-types4 ::
-1 v
- ( Monad m )
-2 v1
- => a
-1 v2
- -> b
-1 v2
- -> c
-1 v2
-
-1 v2
types5 :: Monad m
-1 v
+1 v
=> (?log :: HasLogger m)
1 v
=> a
@@ -28,5 +16,15 @@ types5 :: Monad m
1 v
1 v
+types6 ::
+1 v
+ ( Monad m )
+2 v1
+ => a
+1 v2
+ -> b
+1 v2
+ -> c
+1 v2
-1 v
\ No newline at end of file
+1 v2
\ No newline at end of file
diff --git a/test/src/indentation-options.hs.append.indent
b/test/src/indentation-options2.hs.insert.indent
similarity index 63%
copy from test/src/indentation-options.hs.append.indent
copy to test/src/indentation-options2.hs.insert.indent
index 6f0976c..e77b0f2 100644
--- a/test/src/indentation-options.hs.append.indent
+++ b/test/src/indentation-options2.hs.insert.indent
@@ -4,20 +4,8 @@ module Indentation where
v
v
-types4 ::
-1 v
- ( Monad m )
-2 v1
- => a
-1 v2
- -> b
-1 v2
- -> c
-1 v2
-
-1 v2
types5 :: Monad m
-1 v
+1 v
=> (?log :: HasLogger m)
1 v
=> a
@@ -27,6 +15,14 @@ types5 :: Monad m
-> c
1 v
-1 v
-
-1 v
\ No newline at end of file
+v 1
+types6 ::
+1 v
+ ( Monad m )
+2 v1
+ => a
+1 v2
+ -> b
+1 v2
+ -> c
+v 12
\ No newline at end of file
diff --git a/test/src/indentation.hs.append.indent
b/test/src/indentation.hs.append.indent
index fe7b3c6..89c7a34 100644
--- a/test/src/indentation.hs.append.indent
+++ b/test/src/indentation.hs.append.indent
@@ -263,7 +263,7 @@ types1 ::
1 v 2
types2 :: (Monad m, MemberLogger m)
-1 v
+1 v
=> a
1 v
-> b
@@ -273,7 +273,7 @@ types2 :: (Monad m, MemberLogger m)
1 v
types3 :: (Monad m, MonadReader Foo m) =>
-1 v
+1 v
(?log :: HasLogger m) =>
1 v
a -> b -> c
diff --git a/test/src/indentation.hs.insert.indent
b/test/src/indentation.hs.insert.indent
index 82df418..694bb46 100644
--- a/test/src/indentation.hs.insert.indent
+++ b/test/src/indentation.hs.insert.indent
@@ -263,7 +263,7 @@ types1 ::
v 1 2
types2 :: (Monad m, MemberLogger m)
-2 1 v
+1 v
=> a
1 v
-> b
@@ -273,7 +273,7 @@ types2 :: (Monad m, MemberLogger m)
v 1
types3 :: (Monad m, MonadReader Foo m) =>
-2 v1
+2 v 1
(?log :: HasLogger m) =>
1 v
a -> b -> c
- [nongnu] elpa/haskell-tng-mode d3a6a22 147/385: no todos in the test/src dir, (continued)
- [nongnu] elpa/haskell-tng-mode d3a6a22 147/385: no todos in the test/src dir, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 85f20b1 154/385: indent coproducts, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 3dbb883 013/385: more progress on multiline type expansion, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode c6382e1 036/385: almost got it with imports, then I lost it..., ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode f3e3838 070/385: starting to transcribe the expression table, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode ceaec13 098/385: groundwork for tab cycling, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 8b6d545 178/385: split all the tests, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 4e1f51c 170/385: indent is deriving aware, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 3ddafce 181/385: disambiguate -> during lexing, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 6b4dca0 189/385: note other build tools, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode cc657a8 197/385: support type alignment options,
ELPA Syncer <=
- [nongnu] elpa/haskell-tng-mode a7098e8 194/385: stylish haskell outputs failures, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 21fe2a0 221/385: fix broken test assertions, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 907255e 026/385: some namespacing, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode e7eaa38 077/385: some ideas for cabal, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode ddd0706 108/385: suggest next line indentation, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 7a8f714 139/385: indent back to the same level of `do', ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode ac55d33 134/385: interactive SMIE debugging, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 6ade588 195/385: key bindings in compilation mode, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 144cabf 202/385: fix test assertions, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 04ebec6 204/385: third party integrations, ELPA Syncer, 2021/10/06