[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/haskell-tng-mode 1cceb64 182/385: cleaner tests
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/haskell-tng-mode 1cceb64 182/385: cleaner tests |
Date: |
Tue, 5 Oct 2021 23:59:27 -0400 (EDT) |
branch: elpa/haskell-tng-mode
commit 1cceb641101a41ee6187ea3997f36afc39ede379
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>
cleaner tests
---
README.md | 2 +-
haskell-tng-compile.el | 6 ++---
haskell-tng-rx.el | 1 +
haskell-tng-smie.el | 11 +++++---
test/haskell-tng-compile-test.el | 2 ++
test/haskell-tng-indent-test.el | 1 +
test/src/indentation-options.hs | 20 ++------------
test/src/indentation-options.hs.append.indent | 38 +++------------------------
test/src/indentation-options.hs.insert.indent | 38 +++------------------------
test/src/indentation.hs | 16 ++---------
test/src/indentation.hs.append.indent | 32 +++-------------------
test/src/indentation.hs.insert.indent | 30 +++------------------
test/src/indentation.hs.layout | 16 ++---------
test/src/indentation.hs.lexer | 12 ---------
test/src/indentation.hs.sexps | 16 ++---------
test/src/indentation.hs.syntax | 12 ---------
16 files changed, 36 insertions(+), 217 deletions(-)
diff --git a/README.md b/README.md
index e55658c..0d69112 100644
--- a/README.md
+++ b/README.md
@@ -102,7 +102,7 @@ Some blue sky features are being considered but may be best
as independent proje
- is there a solution to thinking "right to left" vs writing "left to right"?
- identify trivial / helper functions and forward their `edit-definition` to
another location.
- Code gen
- - `instance` boilerplate
+ - `instance` boilerplate (populate `where` with functions that are needed)
- record of functions boilerplate
- Refactoring
- be compatible with
[`apply-refact`](https://github.com/mpickering/apply-refact) /
[`hlint-refactor-mode`](https://github.com/mpickering/hlint-refactor-mode)
diff --git a/haskell-tng-compile.el b/haskell-tng-compile.el
index b1147c0..b468553 100644
--- a/haskell-tng-compile.el
+++ b/haskell-tng-compile.el
@@ -35,12 +35,12 @@
(,(rx-to-string `(: bol ,file ":(" ,num "," ,num ")-(" ,num "," ,num ")"
,war))
1 (2 . 4) (3 . 5) 1 1 (6 'compilation-warning))
- ;; tasty / hspec
+ ;; tasty / hspec and miscellaneous ghc extra info
(,(rx-to-string
- `(: bol (? (+ space) "error, called at") (+ space) ,file ":" ,num ":"
,num (? "-" ,num ":")))
+ `(: bol (? (+ space) "error, called at") (+ space) (? "(") ,file ":"
,num ":" ,num (? "-" ,num ":")))
1 2 (3 . 4) 2 1)
(,(rx-to-string
- `(: bol (? (+ space) "error, called at") (+ space) ,file ":(" ,num
"," ,num ")-(" ,num "," ,num ")"))
+ `(: bol (? (+ space) "error, called at") (+ space) (? "(") ,file ":("
,num "," ,num ")-(" ,num "," ,num ")"))
1 (2 . 4) (3 . 5) 2 1)
;; ghc information.
diff --git a/haskell-tng-rx.el b/haskell-tng-rx.el
index 1943ac1..b745715 100644
--- a/haskell-tng-rx.el
+++ b/haskell-tng-rx.el
@@ -80,6 +80,7 @@ give false positives." `(|
(rx-to-string `(: word-start ,haskell-tng:rx:conid)))
(defconst haskell-tng:regexp:varid
(rx-to-string `(| (: word-start ,haskell-tng:rx:varid)
+ ;; TODO symids in brackets (==)
(: symbol-start (char ??) ,haskell-tng:rx:varid) ;;
ImplicitParams
)))
(defconst haskell-tng:regexp:symid
diff --git a/haskell-tng-smie.el b/haskell-tng-smie.el
index bdc4885..3bbdec4 100644
--- a/haskell-tng-smie.el
+++ b/haskell-tng-smie.el
@@ -30,7 +30,7 @@
(require 'haskell-tng-font-lock)
(require 'haskell-tng-lexer)
-;; TODO implement
+;; TODO maybe autodetect? Then delete this user variable
(defcustom haskell-tng-indent-aligntypes nil
"Whether to align arrows to their parent :: declaration.
@@ -44,7 +44,7 @@ foobar :: Monad m
:type 'booleanp
:group 'haskell-tng)
-;; TODO implement
+;; TODO maybe autodetect? Then delete this user variable
(defcustom haskell-tng-indent-typelead 3
"Leading spaces in a trailing type signature, relative to type arrows.
For example 3 and 1 are respectively:
@@ -94,8 +94,11 @@ foobar1 ::
(record
(id "::" type)
+ ;; (id "=" id) precedence cycle: .| < ., < =. < .|
+ ;; TODO copy syntax { foo = ... }, maybe it needs a disambiguator
("{" record "}")
- (record "," record))
+ (record "," record)
+ )
;; operators all have the same precedence
(infixexp
@@ -379,7 +382,7 @@ BEFORE is t if the line appears before the indentation."
(while (< (point) bound)
(when (not
(looking-at
- (rx (* space) (| "where" "let" "do") word-end)))
+ (rx (* space) (| "where" "do") word-end)))
(push (current-indentation) relevant))
(when
(and
diff --git a/test/haskell-tng-compile-test.el b/test/haskell-tng-compile-test.el
index 6f5d4c6..2208441 100644
--- a/test/haskell-tng-compile-test.el
+++ b/test/haskell-tng-compile-test.el
@@ -51,6 +51,8 @@
(should (have-expected-errors (testdata "compile/ghc-8.4.4-error.compile")))
(should (have-expected-errors (testdata
"compile/ghc-8.4.4-errorspan.compile"))))
+;; TODO test with multiline error info, e.g. toplevels with different param
lengths
+
(ert-deftest haskell-tng-compile-warnings-file-tests ()
(should (have-expected-errors (testdata
"compile/ghc-8.4.4-warning.compile")))
(should (have-expected-errors (testdata
"compile/ghc-8.4.4-warningspan.compile"))))
diff --git a/test/haskell-tng-indent-test.el b/test/haskell-tng-indent-test.el
index 907ba0f..a7909d4 100644
--- a/test/haskell-tng-indent-test.el
+++ b/test/haskell-tng-indent-test.el
@@ -15,6 +15,7 @@
;; FIXME implement more indentation rules
;;
;; TODO multiline type signatures
+;; TODO records of functions tests
;; TODO user config for typesig preference (incompatible versions)
;; TODO ImplicitParams in type signatures (without parens)
;; TODO if/then/else
diff --git a/test/src/indentation-options.hs b/test/src/indentation-options.hs
index 843e2c5..5b764fd 100644
--- a/test/src/indentation-options.hs
+++ b/test/src/indentation-options.hs
@@ -1,31 +1,15 @@
-- | Indentation scenarios to test indentation options.
module Indentation where
-typesig :: a -> b -> c
-
-types1 ::
- Monad m
- => a
- -> b
- -> c
-
-types2 ::
+types4 ::
( Monad m )
=> a
-> b
-> c
-types3 :: (Monad m, MemberLogger m)
- => a
- -> b
- -> c
-
-types4 :: Monad m
+types5 :: Monad m
=> (?log :: HasLogger m)
=> a
-> b
-> c
-types5 :: (Monad m, MonadReader Foo m) =>
- (?log :: HasLogger m) =>
- a -> b -> c
diff --git a/test/src/indentation-options.hs.append.indent
b/test/src/indentation-options.hs.append.indent
index 552f7ad..6f0976c 100644
--- a/test/src/indentation-options.hs.append.indent
+++ b/test/src/indentation-options.hs.append.indent
@@ -4,23 +4,7 @@ module Indentation where
v
v
-typesig :: a -> b -> c
-1 v
-
-1 v
-types1 ::
-1 v
- Monad m
-2 v 1
- => a
-1 v 2
- -> b
-1 v 2
- -> c
-1 v 2
-
-1 v 2
-types2 ::
+types4 ::
1 v
( Monad m )
2 v1
@@ -32,17 +16,7 @@ types2 ::
1 v2
1 v2
-types3 :: (Monad m, MemberLogger m)
-1 v
- => a
-1 v
- -> b
-1 v
- -> c
-1 v
-
-1 v
-types4 :: Monad m
+types5 :: Monad m
1 v
=> (?log :: HasLogger m)
1 v
@@ -54,11 +28,5 @@ types4 :: Monad m
1 v
1 v
-types5 :: (Monad m, MonadReader Foo m) =>
-1 v
- (?log :: HasLogger m) =>
-1 v
- a -> b -> c
-1 v
-1 v
\ No newline at end of file
+1 v
\ No newline at end of file
diff --git a/test/src/indentation-options.hs.insert.indent
b/test/src/indentation-options.hs.insert.indent
index e81ccd9..f119ceb 100644
--- a/test/src/indentation-options.hs.insert.indent
+++ b/test/src/indentation-options.hs.insert.indent
@@ -4,23 +4,7 @@ module Indentation where
v
v
-typesig :: a -> b -> c
-1 v
-
-v
-types1 ::
-1 v
- Monad m
-2 v 1
- => a
-1 v 2
- -> b
-1 v 2
- -> c
-1 v 2
-
-v 1 2
-types2 ::
+types4 ::
2 1 v
( Monad m )
2 v1
@@ -32,17 +16,7 @@ types2 ::
1 v2
v 12
-types3 :: (Monad m, MemberLogger m)
-2 1 v
- => a
-1 v
- -> b
-1 v
- -> c
-1 v
-
-v 1
-types4 :: Monad m
+types5 :: Monad m
2 1 v
=> (?log :: HasLogger m)
1 v
@@ -53,10 +27,4 @@ types4 :: Monad m
-> c
1 v
-v 1
-types5 :: (Monad m, MonadReader Foo m) =>
-2 v1
- (?log :: HasLogger m) =>
-1 v
- a -> b -> c
-v 1
\ No newline at end of file
+v 1
\ No newline at end of file
diff --git a/test/src/indentation.hs b/test/src/indentation.hs
index 18a7ee3..c9865cd 100644
--- a/test/src/indentation.hs
+++ b/test/src/indentation.hs
@@ -130,23 +130,11 @@ types1 ::
-> b
-> c
-types2 ::
- ( Monad m )
+types2 :: (Monad m, MemberLogger m)
=> a
-> b
-> c
-types3 :: (Monad m, MemberLogger m)
- => a
- -> b
- -> c
-
-types4 :: Monad m
- => (?log :: HasLogger m)
- => a
- -> b
- -> c
-
-types5 :: (Monad m, MonadReader Foo m) =>
+types3 :: (Monad m, MonadReader Foo m) =>
(?log :: HasLogger m) =>
a -> b -> c
diff --git a/test/src/indentation.hs.append.indent
b/test/src/indentation.hs.append.indent
index 48bdce9..9eaada9 100644
--- a/test/src/indentation.hs.append.indent
+++ b/test/src/indentation.hs.append.indent
@@ -99,9 +99,9 @@ let_in a b = let
implicit_let foo bar =
1 v
let ?foo = foo
-1 v
+2 1 v
?bar = bar
-1 v
+1 2 v
in rar
v 1 2
@@ -262,19 +262,7 @@ types1 ::
1 v 2
1 v 2
-types2 ::
-1 v
- ( Monad m )
-2 v1
- => a
-1 v2
- -> b
-1 v2
- -> c
-1 v2
-
-1 v2
-types3 :: (Monad m, MemberLogger m)
+types2 :: (Monad m, MemberLogger m)
1 v
=> a
1 v
@@ -284,19 +272,7 @@ types3 :: (Monad m, MemberLogger m)
1 v
1 v
-types4 :: Monad m
-1 v
- => (?log :: HasLogger m)
-1 v
- => a
-1 v
- -> b
-1 v
- -> c
-1 v
-
-1 v
-types5 :: (Monad m, MonadReader Foo m) =>
+types3 :: (Monad m, MonadReader Foo m) =>
1 v
(?log :: HasLogger m) =>
1 v
diff --git a/test/src/indentation.hs.insert.indent
b/test/src/indentation.hs.insert.indent
index 2fee7d3..9b29da9 100644
--- a/test/src/indentation.hs.insert.indent
+++ b/test/src/indentation.hs.insert.indent
@@ -99,7 +99,7 @@ let_in a b = let
implicit_let foo bar =
2 v 1
let ?foo = foo
-1 v
+2 1 v
?bar = bar
2 1 v
in rar
@@ -262,19 +262,7 @@ types1 ::
1 v 2
v 1 2
-types2 ::
-2 1 v
- ( Monad m )
-2 v1
- => a
-1 v2
- -> b
-1 v2
- -> c
-1 v2
-
-v 12
-types3 :: (Monad m, MemberLogger m)
+types2 :: (Monad m, MemberLogger m)
2 1 v
=> a
1 v
@@ -284,19 +272,7 @@ types3 :: (Monad m, MemberLogger m)
1 v
v 1
-types4 :: Monad m
-2 1 v
- => (?log :: HasLogger m)
-1 v
- => a
-1 v
- -> b
-1 v
- -> c
-1 v
-
-v 1
-types5 :: (Monad m, MonadReader Foo m) =>
+types3 :: (Monad m, MonadReader Foo m) =>
2 v1
(?log :: HasLogger m) =>
1 v
diff --git a/test/src/indentation.hs.layout b/test/src/indentation.hs.layout
index 25f1b7b..e9c5438 100644
--- a/test/src/indentation.hs.layout
+++ b/test/src/indentation.hs.layout
@@ -130,24 +130,12 @@ module Indentation where
-> b
-> c
-;types2 ::
- ( Monad m )
+;types2 :: (Monad m, MemberLogger m)
=> a
-> b
-> c
-;types3 :: (Monad m, MemberLogger m)
- => a
- -> b
- -> c
-
-;types4 :: Monad m
- => (?log :: HasLogger m)
- => a
- -> b
- -> c
-
-;types5 :: (Monad m, MonadReader Foo m) =>
+;types3 :: (Monad m, MonadReader Foo m) =>
(?log :: HasLogger m) =>
a -> b -> c
}
\ No newline at end of file
diff --git a/test/src/indentation.hs.lexer b/test/src/indentation.hs.lexer
index a584362..0836754 100644
--- a/test/src/indentation.hs.lexer
+++ b/test/src/indentation.hs.lexer
@@ -130,23 +130,11 @@ CONID VARID
=> VARID
=> VARID
-; VARID ::
-« CONID VARID »
-=> VARID
-=> VARID
-=> VARID
-
; VARID :: « CONID VARID , CONID VARID »
=> VARID
=> VARID
=> VARID
-; VARID :: CONID VARID
-=> « VARID :: CONID VARID »
-=> VARID
-=> VARID
-=> VARID
-
; VARID :: « CONID VARID , CONID CONID VARID » =>
« VARID :: CONID VARID » =>
VARID => VARID => VARID
diff --git a/test/src/indentation.hs.sexps b/test/src/indentation.hs.sexps
index 0df94ee..3679272 100644
--- a/test/src/indentation.hs.sexps
+++ b/test/src/indentation.hs.sexps
@@ -130,24 +130,12 @@
-> (b)
-> (c))
-((types2) ::
- ( (Monad) (m) )
+((types2) :: ((Monad) (m), (MemberLogger) (m))
=> (a)
-> (b)
-> (c))
-((types3) :: ((Monad) (m), (MemberLogger) (m))
- => (a)
- -> (b)
- -> (c))
-
-((types4) :: (Monad) (m)
- => ((?log) :: (HasLogger) (m))
- => (a)
- -> (b)
- -> (c))
-
-((types5) :: ((Monad) (m), (MonadReader) (Foo) (m)) =>
+((types3) :: ((Monad) (m), (MonadReader) (Foo) (m)) =>
((?log) :: (HasLogger) (m)) =>
(a) -> (b) -> (c))))))))))))))
)))
\ No newline at end of file
diff --git a/test/src/indentation.hs.syntax b/test/src/indentation.hs.syntax
index 40e2ef0..8a59b88 100644
--- a/test/src/indentation.hs.syntax
+++ b/test/src/indentation.hs.syntax
@@ -130,23 +130,11 @@ wwwwww __>
__ w>
__ w>
>
-wwwwww __>
- ( wwwww w )>
- __ w>
- __ w>
- __ w>
->
wwwwww __ (wwwww w. wwwwwwwwwwww w)>
__ w>
__ w>
__ w>
>
-wwwwww __ wwwww w>
- __ (_www __ wwwwwwwww w)>
- __ w>
- __ w>
- __ w>
->
wwwwww __ (wwwww w. wwwwwwwwwww www w) __>
(_www __ wwwwwwwww w) __>
w __ w __ w>
- [nongnu] elpa/haskell-tng-mode 2c6c772 150/385: better WLDO indentation, (continued)
- [nongnu] elpa/haskell-tng-mode 2c6c772 150/385: better WLDO indentation, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 3f54673 155/385: don't fontify toplevel, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 32175c0 158/385: thots, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 8c2e3f7 157/385: better symid indentation, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode bc5c827 160/385: tuple indentation, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode e0acc42 156/385: better tasty error detection, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode c211672 174/385: indentation for hanging type definition, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode ef7f335 171/385: note stack compatibility, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 86bcd98 175/385: constraint indentation, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode e1c0f0a 179/385: allow indentation option to be tested, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 1cceb64 182/385: cleaner tests,
ELPA Syncer <=
- [nongnu] elpa/haskell-tng-mode b1122e4 188/385: allow users to use unsupported build tools, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode bd4ff6f 192/385: standardise on naming convention:, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 3b5ac7f 190/385: package-lint, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode a227f7e 200/385: blank lines end a run of type definitions, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode e4ead98 201/385: thots on prettify-symbol, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 387aa18 203/385: more efficient layout algorithm, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode bfc3841 193/385: remove bind-key dependency, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 6acba95 206/385: better insertion indentation on toplevels, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 9bfc6bf 215/385: really basic imenu, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode f648cf9 212/385: fallback to current directory (e.g. for cabal scripts), ELPA Syncer, 2021/10/06