unison/unison-cli/package.yaml
Greg Pfeil 9e2fa2bbe7
Replace transcript parser with cmark
We don’t need a very rich parser for transcripts, but we _do_ need to
reliably identify fenced code blocks, and that implies a number of
subtle cases. Using a polished CommonMark parser/printer handles those
subtleties for us.

I chose `cmark` for a few reasons:
- it’s a wrapper around `libcmark`, which is the reference
  implementation of CommonMark, so it should be correct;
- it provides both a parser and a printer (unlike MMark); and
- it is extremely fast (about 20x faster than MMark), so the fact that
  our home-rolled parser got to skip over everything that’s not a block
  isn’t an issue.).

This only _partially_ uses the `cmark` printer. I think it should use it
entirely, but for the cases where we do streaming output (processing UCM
commands, etc.) it’s a more involved change. So I think it should be
handled separately.
2024-07-10 13:26:19 -06:00

192 lines
3.3 KiB
YAML

name: unison-cli
github: unisonweb/unison
copyright: Copyright (C) 2013-2018 Unison Computing, PBC and contributors
flags:
optimized:
manual: true
default: false
ghc-options: -Wall
dependencies:
- IntervalMap
- ListLike
- aeson >= 2.0.0.0
- aeson-pretty
- ansi-terminal
- async
- base
- bytes
- bytestring
- cmark
- co-log-core
- code-page
- concurrent-output
- configurator
- containers >= 0.6.3
- cryptonite
- directory
- either
- errors
- exceptions
- extra
- filepath
- free
- friendly-time
- fsnotify
- fuzzyfind
- generic-lens
- haskeline
- http-client >= 0.7.6
- http-client-tls
- http-types
- jwt
- ki
- lens
- lock-file
- lsp >= 2.2.0.0
- lsp-types >= 2.0.2.0
- megaparsec
- memory
- mtl
- network
- network-simple
- network-udp
- network-uri
- nonempty-containers
- numerals
- open-browser
- optparse-applicative >= 0.16.1.0
- pretty-simple
- process
- random >= 1.2.0
- random-shuffle
- recover-rtti
- regex-tdfa
- semialign
- semigroups
- servant
- servant-client
- shellmet
- stm
- template-haskell
- temporary
- text
- text-ansi
- text-builder
- text-rope
- these
- these-lens
- time
- transformers
- unison-codebase
- unison-codebase-sqlite
- unison-codebase-sqlite-hashing-v2
- unison-core
- unison-core1
- unison-hash
- unison-merge
- unison-parser-typechecker
- unison-prelude
- unison-pretty-printer
- unison-share-api
- unison-share-projects-api
- unison-sqlite
- unison-syntax
- unison-util-base32hex
- unison-util-relation
- unliftio
- unordered-containers
- uri-encode
- uuid
- vector
- wai
- warp
- witch
- witherable
library:
source-dirs: src
when:
- condition: false
other-modules: Paths_unison_cli
- condition: "!os(windows)"
dependencies: unix
dependencies:
- code-page
- optparse-applicative >= 0.16.1.0
- shellmet
- template-haskell
- temporary
tests:
cli-tests:
when:
- condition: false
other-modules: Paths_unison_cli
dependencies:
- code-page
- easytest
- here
- shellmet
- temporary
- unison-cli
main: Main.hs
source-dirs: tests
executables:
transcripts:
when:
- condition: false
other-modules: Paths_unison_cli
source-dirs: transcripts
main: Transcripts.hs
ghc-options: -threaded -rtsopts "-with-rtsopts=-I0 -N -qn4 -qg1" -v0
dependencies:
- code-page
- easytest
- process
- shellmet
- unison-cli
- silently
when:
- condition: flag(optimized)
ghc-options: -O2 -funbox-strict-fields
default-extensions:
- ApplicativeDo
- BangPatterns
- BlockArguments
- DeriveAnyClass
- DeriveFunctor
- DeriveFoldable
- DeriveTraversable
- DeriveGeneric
- DerivingStrategies
- DerivingVia
- DoAndIfThenElse
- DuplicateRecordFields
- FlexibleContexts
- FlexibleInstances
- GADTs
- GeneralizedNewtypeDeriving
- ImportQualifiedPost
- InstanceSigs
- KindSignatures
- LambdaCase
- MultiParamTypeClasses
- MultiWayIf
- NamedFieldPuns
- NumericUnderscores
- OverloadedLabels
- OverloadedRecordDot
- OverloadedStrings
- PatternSynonyms
- RankNTypes
- ScopedTypeVariables
- TupleSections
- TypeApplications
- ViewPatterns