mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-20 14:57:41 +03:00
Merge pull request #2982 from unisonweb/cp/pretty-printer-package
Split off pretty-printer package
This commit is contained in:
commit
54e96e1e89
19
lib/unison-pretty-printer/LICENSE
Normal file
19
lib/unison-pretty-printer/LICENSE
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2013-2022, Unison Computing, public benefit corp and contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
76
lib/unison-pretty-printer/package.yaml
Normal file
76
lib/unison-pretty-printer/package.yaml
Normal file
@ -0,0 +1,76 @@
|
||||
name: unison-pretty-printer
|
||||
github: unisonweb/unison
|
||||
copyright: Copyright (C) 2013-2022 Unison Computing, PBC and contributors
|
||||
|
||||
default-extensions:
|
||||
- ApplicativeDo
|
||||
- BangPatterns
|
||||
- BlockArguments
|
||||
- DeriveFunctor
|
||||
- DeriveGeneric
|
||||
- DerivingStrategies
|
||||
- DoAndIfThenElse
|
||||
- FlexibleContexts
|
||||
- FlexibleInstances
|
||||
- GeneralizedNewtypeDeriving
|
||||
- LambdaCase
|
||||
- MultiParamTypeClasses
|
||||
- NamedFieldPuns
|
||||
- OverloadedStrings
|
||||
- PatternSynonyms
|
||||
- RankNTypes
|
||||
- ScopedTypeVariables
|
||||
- TupleSections
|
||||
- TypeApplications
|
||||
- ViewPatterns
|
||||
|
||||
ghc-options: -Wall -O0 -fno-warn-name-shadowing -fno-warn-missing-pattern-synonym-signatures
|
||||
|
||||
flags:
|
||||
optimized:
|
||||
manual: true
|
||||
default: true
|
||||
|
||||
when:
|
||||
- condition: flag(optimized)
|
||||
ghc-options: -funbox-strict-fields -O2
|
||||
|
||||
library:
|
||||
source-dirs: src
|
||||
dependencies:
|
||||
- base
|
||||
- unison-core1
|
||||
- unison-prelude
|
||||
- containers
|
||||
- ListLike
|
||||
- ansi-terminal
|
||||
- text
|
||||
- mtl
|
||||
- unliftio
|
||||
- process
|
||||
- extra
|
||||
- terminal-size
|
||||
|
||||
executables:
|
||||
prettyprintdemo:
|
||||
source-dirs: prettyprintdemo
|
||||
main: Main.hs
|
||||
dependencies:
|
||||
- base
|
||||
- safe
|
||||
- text
|
||||
- unison-pretty-printer
|
||||
|
||||
|
||||
tests:
|
||||
pretty-printer-tests:
|
||||
source-dirs: tests
|
||||
main: Suite.hs
|
||||
ghc-options: -W -threaded -rtsopts "-with-rtsopts=-N -T" -v0
|
||||
dependencies:
|
||||
- base
|
||||
- unison-pretty-printer
|
||||
- raw-strings-qq
|
||||
- easytest
|
||||
- containers
|
||||
- code-page
|
29
lib/unison-pretty-printer/tests/Suite.hs
Normal file
29
lib/unison-pretty-printer/tests/Suite.hs
Normal file
@ -0,0 +1,29 @@
|
||||
{-# OPTIONS_GHC -Wno-unused-imports #-}
|
||||
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
|
||||
|
||||
module Main where
|
||||
|
||||
import EasyTest
|
||||
import System.Environment (getArgs)
|
||||
import System.IO
|
||||
import System.IO.CodePage (withCP65001)
|
||||
import qualified Unison.Test.ColorText as ColorText
|
||||
import qualified Unison.Test.Range as Range
|
||||
import qualified Unison.Test.Util.Pretty as Pretty
|
||||
|
||||
test :: Test ()
|
||||
test =
|
||||
tests
|
||||
[ Range.test,
|
||||
ColorText.test,
|
||||
Pretty.test
|
||||
]
|
||||
|
||||
main :: IO ()
|
||||
main = withCP65001 do
|
||||
args <- getArgs
|
||||
mapM_ (`hSetEncoding` utf8) [stdout, stdin, stderr]
|
||||
case args of
|
||||
[] -> runOnly "" test
|
||||
[prefix] -> runOnly prefix test
|
||||
[seed, prefix] -> rerunOnly (read seed) prefix test
|
@ -7,7 +7,7 @@ module Unison.Test.ColorText where
|
||||
import qualified Data.Map as Map
|
||||
import EasyTest
|
||||
import Text.RawString.QQ
|
||||
import Unison.Lexer (Pos (..))
|
||||
import Unison.Lexer.Pos (Pos (..))
|
||||
import Unison.Util.AnnotatedText
|
||||
( AnnotatedExcerpt (..),
|
||||
condensedExcerptToText,
|
@ -1,7 +1,7 @@
|
||||
module Unison.Test.Range where
|
||||
|
||||
import EasyTest
|
||||
import Unison.Lexer (Pos (..))
|
||||
import Unison.Lexer.Pos (Pos (..))
|
||||
import Unison.Util.Range
|
||||
|
||||
test :: Test ()
|
33
lib/unison-pretty-printer/tests/Unison/Test/Util/Pretty.hs
Normal file
33
lib/unison-pretty-printer/tests/Unison/Test/Util/Pretty.hs
Normal file
@ -0,0 +1,33 @@
|
||||
module Unison.Test.Util.Pretty
|
||||
( test,
|
||||
)
|
||||
where
|
||||
|
||||
import Control.Monad
|
||||
import Data.String (fromString)
|
||||
import EasyTest
|
||||
import qualified Unison.Util.Pretty as Pretty
|
||||
|
||||
test :: Test ()
|
||||
test =
|
||||
scope "util.pretty" . tests $
|
||||
[ scope "Delta.Semigroup.<>.associative" $ do
|
||||
replicateM_ 100 $ do
|
||||
d1 <- randomDelta
|
||||
d2 <- randomDelta
|
||||
d3 <- randomDelta
|
||||
expect' $ (d1 <> d2) <> d3 == d1 <> (d2 <> d3)
|
||||
ok
|
||||
]
|
||||
|
||||
randomDelta :: Test Pretty.Delta
|
||||
randomDelta =
|
||||
Pretty.delta <$> randomPretty
|
||||
where
|
||||
randomPretty :: Test (Pretty.Pretty String)
|
||||
randomPretty =
|
||||
fromString <$> randomString
|
||||
|
||||
randomString :: Test String
|
||||
randomString =
|
||||
replicateM 3 (pick ['x', 'y', 'z', '\n'])
|
155
lib/unison-pretty-printer/unison-pretty-printer.cabal
Normal file
155
lib/unison-pretty-printer/unison-pretty-printer.cabal
Normal file
@ -0,0 +1,155 @@
|
||||
cabal-version: 1.12
|
||||
|
||||
-- This file has been generated from package.yaml by hpack version 0.34.4.
|
||||
--
|
||||
-- see: https://github.com/sol/hpack
|
||||
|
||||
name: unison-pretty-printer
|
||||
version: 0.0.0
|
||||
homepage: https://github.com/unisonweb/unison#readme
|
||||
bug-reports: https://github.com/unisonweb/unison/issues
|
||||
copyright: Copyright (C) 2013-2022 Unison Computing, PBC and contributors
|
||||
license: MIT
|
||||
license-file: LICENSE
|
||||
build-type: Simple
|
||||
|
||||
source-repository head
|
||||
type: git
|
||||
location: https://github.com/unisonweb/unison
|
||||
|
||||
flag optimized
|
||||
manual: True
|
||||
default: True
|
||||
|
||||
library
|
||||
exposed-modules:
|
||||
Unison.Lexer.Pos
|
||||
Unison.PrettyTerminal
|
||||
Unison.Util.AnnotatedText
|
||||
Unison.Util.ColorText
|
||||
Unison.Util.Less
|
||||
Unison.Util.Pretty
|
||||
Unison.Util.Range
|
||||
Unison.Util.SyntaxText
|
||||
other-modules:
|
||||
Paths_unison_pretty_printer
|
||||
hs-source-dirs:
|
||||
src
|
||||
default-extensions:
|
||||
ApplicativeDo
|
||||
BangPatterns
|
||||
BlockArguments
|
||||
DeriveFunctor
|
||||
DeriveGeneric
|
||||
DerivingStrategies
|
||||
DoAndIfThenElse
|
||||
FlexibleContexts
|
||||
FlexibleInstances
|
||||
GeneralizedNewtypeDeriving
|
||||
LambdaCase
|
||||
MultiParamTypeClasses
|
||||
NamedFieldPuns
|
||||
OverloadedStrings
|
||||
PatternSynonyms
|
||||
RankNTypes
|
||||
ScopedTypeVariables
|
||||
TupleSections
|
||||
TypeApplications
|
||||
ViewPatterns
|
||||
ghc-options: -Wall -O0 -fno-warn-name-shadowing -fno-warn-missing-pattern-synonym-signatures
|
||||
build-depends:
|
||||
ListLike
|
||||
, ansi-terminal
|
||||
, base
|
||||
, containers
|
||||
, extra
|
||||
, mtl
|
||||
, process
|
||||
, terminal-size
|
||||
, text
|
||||
, unison-core1
|
||||
, unison-prelude
|
||||
, unliftio
|
||||
if flag(optimized)
|
||||
ghc-options: -funbox-strict-fields -O2
|
||||
default-language: Haskell2010
|
||||
|
||||
executable prettyprintdemo
|
||||
main-is: Main.hs
|
||||
other-modules:
|
||||
Paths_unison_pretty_printer
|
||||
hs-source-dirs:
|
||||
prettyprintdemo
|
||||
default-extensions:
|
||||
ApplicativeDo
|
||||
BangPatterns
|
||||
BlockArguments
|
||||
DeriveFunctor
|
||||
DeriveGeneric
|
||||
DerivingStrategies
|
||||
DoAndIfThenElse
|
||||
FlexibleContexts
|
||||
FlexibleInstances
|
||||
GeneralizedNewtypeDeriving
|
||||
LambdaCase
|
||||
MultiParamTypeClasses
|
||||
NamedFieldPuns
|
||||
OverloadedStrings
|
||||
PatternSynonyms
|
||||
RankNTypes
|
||||
ScopedTypeVariables
|
||||
TupleSections
|
||||
TypeApplications
|
||||
ViewPatterns
|
||||
ghc-options: -Wall -O0 -fno-warn-name-shadowing -fno-warn-missing-pattern-synonym-signatures
|
||||
build-depends:
|
||||
base
|
||||
, safe
|
||||
, text
|
||||
, unison-pretty-printer
|
||||
if flag(optimized)
|
||||
ghc-options: -funbox-strict-fields -O2
|
||||
default-language: Haskell2010
|
||||
|
||||
test-suite pretty-printer-tests
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: Suite.hs
|
||||
other-modules:
|
||||
Unison.Test.ColorText
|
||||
Unison.Test.Range
|
||||
Unison.Test.Util.Pretty
|
||||
Paths_unison_pretty_printer
|
||||
hs-source-dirs:
|
||||
tests
|
||||
default-extensions:
|
||||
ApplicativeDo
|
||||
BangPatterns
|
||||
BlockArguments
|
||||
DeriveFunctor
|
||||
DeriveGeneric
|
||||
DerivingStrategies
|
||||
DoAndIfThenElse
|
||||
FlexibleContexts
|
||||
FlexibleInstances
|
||||
GeneralizedNewtypeDeriving
|
||||
LambdaCase
|
||||
MultiParamTypeClasses
|
||||
NamedFieldPuns
|
||||
OverloadedStrings
|
||||
PatternSynonyms
|
||||
RankNTypes
|
||||
ScopedTypeVariables
|
||||
TupleSections
|
||||
TypeApplications
|
||||
ViewPatterns
|
||||
ghc-options: -Wall -O0 -fno-warn-name-shadowing -fno-warn-missing-pattern-synonym-signatures -W -threaded -rtsopts "-with-rtsopts=-N -T" -v0
|
||||
build-depends:
|
||||
base
|
||||
, code-page
|
||||
, containers
|
||||
, easytest
|
||||
, raw-strings-qq
|
||||
, unison-pretty-printer
|
||||
if flag(optimized)
|
||||
ghc-options: -funbox-strict-fields -O2
|
||||
default-language: Haskell2010
|
@ -136,6 +136,7 @@ library:
|
||||
- unison-core
|
||||
- unison-core1
|
||||
- unison-prelude
|
||||
- unison-pretty-printer
|
||||
- unison-util
|
||||
- unison-util-relation
|
||||
- open-browser
|
||||
@ -143,15 +144,6 @@ library:
|
||||
- generic-lens
|
||||
|
||||
executables:
|
||||
prettyprintdemo:
|
||||
source-dirs: prettyprintdemo
|
||||
main: Main.hs
|
||||
dependencies:
|
||||
- base
|
||||
- safe
|
||||
- text
|
||||
- unison-parser-typechecker
|
||||
|
||||
tests:
|
||||
source-dirs: tests
|
||||
main: Suite.hs
|
||||
@ -187,3 +179,4 @@ executables:
|
||||
- unison-prelude
|
||||
- unison-util
|
||||
- unison-util-relation
|
||||
- unison-pretty-printer
|
||||
|
@ -15,12 +15,10 @@ import qualified Unison.Test.Codebase.Branch as Branch
|
||||
import qualified Unison.Test.Codebase.Causal as Causal
|
||||
import qualified Unison.Test.Codebase.Path as Path
|
||||
import qualified Unison.Test.CodebaseInit as CodebaseInit
|
||||
import qualified Unison.Test.ColorText as ColorText
|
||||
import qualified Unison.Test.DataDeclaration as DataDeclaration
|
||||
import qualified Unison.Test.FileParser as FileParser
|
||||
import qualified Unison.Test.Lexer as Lexer
|
||||
import qualified Unison.Test.MCode as MCode
|
||||
import qualified Unison.Test.Range as Range
|
||||
import qualified Unison.Test.Referent as Referent
|
||||
import qualified Unison.Test.Term as Term
|
||||
import qualified Unison.Test.TermParser as TermParser
|
||||
@ -33,7 +31,6 @@ import qualified Unison.Test.Typechecker.TypeError as TypeError
|
||||
import qualified Unison.Test.UnisonSources as UnisonSources
|
||||
import qualified Unison.Test.Util.Bytes as Bytes
|
||||
import qualified Unison.Test.Util.PinBoard as PinBoard
|
||||
import qualified Unison.Test.Util.Pretty as Pretty
|
||||
import qualified Unison.Test.Util.Relation as Relation
|
||||
import qualified Unison.Test.Util.Text as Text
|
||||
import qualified Unison.Test.Var as Var
|
||||
@ -52,8 +49,6 @@ test =
|
||||
UnisonSources.test,
|
||||
FileParser.test,
|
||||
DataDeclaration.test,
|
||||
Range.test,
|
||||
ColorText.test,
|
||||
Bytes.test,
|
||||
Text.test,
|
||||
Relation.test,
|
||||
@ -67,7 +62,6 @@ test =
|
||||
Typechecker.test,
|
||||
Context.test,
|
||||
Name.test,
|
||||
Pretty.test,
|
||||
PinBoard.test,
|
||||
CodebaseInit.test,
|
||||
Branch.test
|
||||
|
@ -101,7 +101,6 @@ library
|
||||
Unison.Hashing.V2.Type
|
||||
Unison.Hashing.V2.TypeEdit
|
||||
Unison.Lexer
|
||||
Unison.Lexer.Pos
|
||||
Unison.NamePrinter
|
||||
Unison.Parser
|
||||
Unison.Parser.Ann
|
||||
@ -112,7 +111,6 @@ library
|
||||
Unison.PrettyPrintEnv.Util
|
||||
Unison.PrettyPrintEnvDecl
|
||||
Unison.PrettyPrintEnvDecl.Names
|
||||
Unison.PrettyTerminal
|
||||
Unison.PrintError
|
||||
Unison.Result
|
||||
Unison.Runtime.ANF
|
||||
@ -164,9 +162,7 @@ library
|
||||
Unison.UnisonFile.Error
|
||||
Unison.UnisonFile.Names
|
||||
Unison.UnisonFile.Type
|
||||
Unison.Util.AnnotatedText
|
||||
Unison.Util.Bytes
|
||||
Unison.Util.ColorText
|
||||
Unison.Util.Convert
|
||||
Unison.Util.CycleTable
|
||||
Unison.Util.CyclicEq
|
||||
@ -175,14 +171,10 @@ library
|
||||
Unison.Util.Exception
|
||||
Unison.Util.Find
|
||||
Unison.Util.Free
|
||||
Unison.Util.Less
|
||||
Unison.Util.Logger
|
||||
Unison.Util.PinBoard
|
||||
Unison.Util.Pretty
|
||||
Unison.Util.Range
|
||||
Unison.Util.Rope
|
||||
Unison.Util.Star3
|
||||
Unison.Util.SyntaxText
|
||||
Unison.Util.Text
|
||||
Unison.Util.TQueue
|
||||
Unison.Util.TransitiveClosure
|
||||
@ -300,6 +292,7 @@ library
|
||||
, unison-core
|
||||
, unison-core1
|
||||
, unison-prelude
|
||||
, unison-pretty-printer
|
||||
, unison-util
|
||||
, unison-util-relation
|
||||
, unliftio
|
||||
@ -317,43 +310,6 @@ library
|
||||
ghc-options: -funbox-strict-fields -O2
|
||||
default-language: Haskell2010
|
||||
|
||||
executable prettyprintdemo
|
||||
main-is: Main.hs
|
||||
other-modules:
|
||||
Paths_unison_parser_typechecker
|
||||
hs-source-dirs:
|
||||
prettyprintdemo
|
||||
default-extensions:
|
||||
ApplicativeDo
|
||||
BangPatterns
|
||||
BlockArguments
|
||||
DeriveFunctor
|
||||
DeriveGeneric
|
||||
DerivingStrategies
|
||||
DoAndIfThenElse
|
||||
FlexibleContexts
|
||||
FlexibleInstances
|
||||
GeneralizedNewtypeDeriving
|
||||
LambdaCase
|
||||
MultiParamTypeClasses
|
||||
NamedFieldPuns
|
||||
OverloadedStrings
|
||||
PatternSynonyms
|
||||
RankNTypes
|
||||
ScopedTypeVariables
|
||||
TupleSections
|
||||
TypeApplications
|
||||
ViewPatterns
|
||||
ghc-options: -Wall -O0 -fno-warn-name-shadowing -fno-warn-missing-pattern-synonym-signatures
|
||||
build-depends:
|
||||
base
|
||||
, safe
|
||||
, text
|
||||
, unison-parser-typechecker
|
||||
if flag(optimized)
|
||||
ghc-options: -funbox-strict-fields -O2
|
||||
default-language: Haskell2010
|
||||
|
||||
executable tests
|
||||
main-is: Suite.hs
|
||||
other-modules:
|
||||
@ -365,13 +321,11 @@ executable tests
|
||||
Unison.Test.Codebase.Causal
|
||||
Unison.Test.Codebase.Path
|
||||
Unison.Test.CodebaseInit
|
||||
Unison.Test.ColorText
|
||||
Unison.Test.Common
|
||||
Unison.Test.DataDeclaration
|
||||
Unison.Test.FileParser
|
||||
Unison.Test.Lexer
|
||||
Unison.Test.MCode
|
||||
Unison.Test.Range
|
||||
Unison.Test.Referent
|
||||
Unison.Test.Term
|
||||
Unison.Test.TermParser
|
||||
@ -442,6 +396,7 @@ executable tests
|
||||
, unison-core1
|
||||
, unison-parser-typechecker
|
||||
, unison-prelude
|
||||
, unison-pretty-printer
|
||||
, unison-util
|
||||
, unison-util-relation
|
||||
, unliftio
|
||||
|
@ -24,6 +24,7 @@ packages:
|
||||
- lib/unison-prelude
|
||||
- lib/unison-sqlite
|
||||
- lib/unison-util-relation
|
||||
- lib/unison-pretty-printer
|
||||
|
||||
#compiler-check: match-exact
|
||||
resolver: lts-18.13
|
||||
|
@ -40,6 +40,7 @@ dependencies:
|
||||
- unison-prelude
|
||||
- unison-util
|
||||
- unison-util-relation
|
||||
- unison-pretty-printer
|
||||
- unliftio
|
||||
|
||||
library:
|
||||
|
@ -108,6 +108,7 @@ library
|
||||
, unison-core1
|
||||
, unison-parser-typechecker
|
||||
, unison-prelude
|
||||
, unison-pretty-printer
|
||||
, unison-util
|
||||
, unison-util-relation
|
||||
, unliftio
|
||||
@ -185,6 +186,7 @@ executable integration-tests
|
||||
, unison-core1
|
||||
, unison-parser-typechecker
|
||||
, unison-prelude
|
||||
, unison-pretty-printer
|
||||
, unison-util
|
||||
, unison-util-relation
|
||||
, unliftio
|
||||
@ -256,6 +258,7 @@ executable transcripts
|
||||
, unison-core1
|
||||
, unison-parser-typechecker
|
||||
, unison-prelude
|
||||
, unison-pretty-printer
|
||||
, unison-util
|
||||
, unison-util-relation
|
||||
, unliftio
|
||||
@ -331,6 +334,7 @@ executable unison
|
||||
, unison-core1
|
||||
, unison-parser-typechecker
|
||||
, unison-prelude
|
||||
, unison-pretty-printer
|
||||
, unison-util
|
||||
, unison-util-relation
|
||||
, unliftio
|
||||
@ -410,6 +414,7 @@ test-suite tests
|
||||
, unison-core1
|
||||
, unison-parser-typechecker
|
||||
, unison-prelude
|
||||
, unison-pretty-printer
|
||||
, unison-util
|
||||
, unison-util-relation
|
||||
, unliftio
|
||||
|
Loading…
Reference in New Issue
Block a user