Skip to content

Commit 1835022

Browse files
committed
Improve diagnostics
1 parent e5fa08e commit 1835022

File tree

27 files changed

+565
-225
lines changed

27 files changed

+565
-225
lines changed

.ghci

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
:set -XNoImplicitPrelude
12
:set -XDuplicateRecordFields
23
:set -XLambdaCase
34
:set -XNoFieldSelectors

.github/workflows/build.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ jobs:
2525
os:
2626
- ubuntu-latest
2727
ghc:
28-
- '9.4'
2928
- '9.6'
3029
- '9.8'
3130
- '9.10'

driver/seito.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module Main (main) where
22

3+
import Prelude
4+
35
import System.Exit
46
import System.Environment
57
import Control.Monad

driver/sensei.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module Main (main) where
22

3+
import Prelude
4+
35
import System.Environment
46

57
import Run

package.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ category: Development
1010

1111
language: GHC2021
1212
default-extensions:
13+
- NoImplicitPrelude
1314
- DuplicateRecordFields
1415
- LambdaCase
1516
- NoFieldSelectors
@@ -21,7 +22,7 @@ default-extensions:
2122
- DerivingVia
2223

2324
dependencies:
24-
- base >= 4.11 && < 5
25+
- base >= 4.18 && < 5
2526
- pretty
2627
- process
2728
- fsnotify == 0.4.*

sensei.cabal

Lines changed: 18 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Builder.hs

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
{-# LANGUAGE CPP #-}
22
{-# LANGUAGE DerivingStrategies #-}
3-
module Builder where
3+
module Builder (
4+
module Builder
5+
, Color(..)
6+
) where
47

5-
import Imports
8+
import Imports hiding (join, unlines)
69

710
import Data.List qualified as List
811
import Data.ByteString qualified as ByteString
912
import Data.Text.Encoding qualified as Text
1013
import Data.Text.Internal.StrictBuilder qualified as StrictBuilder
14+
import System.Console.ANSI
1115

1216
#if MIN_VERSION_text(2,1,2)
1317
newtype Builder = Builder StrictBuilder.StrictTextBuilder
@@ -17,7 +21,10 @@ newtype Builder = Builder StrictBuilder.StrictBuilder
1721
deriving newtype (Semigroup, Monoid)
1822

1923
instance IsString Builder where
20-
fromString = fromText . fromString
24+
fromString = Builder.fromString
25+
26+
fromString :: String -> Builder
27+
fromString = fromText . Imports.fromString
2128

2229
fromText :: Text -> Builder
2330
fromText = Builder . StrictBuilder.fromText
@@ -33,7 +40,24 @@ readFile name = do
3340
False -> either throwIO (return . fromText) $ Text.decodeUtf8' c
3441

3542
show :: Show a => a -> Builder
36-
show = fromString . Imports.show
43+
show = Builder.fromString . Imports.show
3744

3845
join :: Builder -> [Builder] -> Builder
3946
join sep = mconcat . List.intersperse sep
47+
48+
unlines :: [Builder] -> Builder
49+
unlines = \ case
50+
[] -> mempty
51+
l : ls -> l <> "\n" <> unlines ls
52+
53+
withColor :: Color -> Builder -> Builder
54+
withColor color string = set <> string <> reset
55+
where
56+
set :: Builder
57+
set = Builder.fromString $ setSGRCode [SetColor Foreground Dull color]
58+
59+
reset :: Builder
60+
reset = Builder.fromString $ setSGRCode []
61+
62+
toByteString :: Builder -> ByteString
63+
toByteString = Text.encodeUtf8 . Builder.toText

src/DeepSeek.hs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
{-# LANGUAGE CPP #-}
2-
{-# LANGUAGE NoImplicitPrelude #-}
32
module DeepSeek (
43
apply
54
#ifdef TEST

0 commit comments

Comments
 (0)