packages feed

yi-0.12.2: yi.cabal

name:           yi
version:        0.12.2
category:       Development, Editor
synopsis:       The Haskell-Scriptable Editor
description:
  Yi is a text editor written in Haskell and extensible in Haskell. The goal of the Yi project is
  to provide a flexible, powerful, and correct editor for haskell hacking.
license:        GPL-2
license-file:   LICENSE
author:         AUTHORS
maintainer:     yi-devel@googlegroups.com
homepage:       https://yi-editor.github.io
bug-reports:    https://github.com/yi-editor/yi/issues
Cabal-Version:  >= 1.20
tested-with:    GHC==7.8.4, GHC==7.10.1
build-type:     Simple
data-files:
  art/*.png
  art/*.pdf
  example-configs/*.hs

extra-source-files:
  src/tests/vimtests/README.rst
  src/tests/vimtests/blockvisual/*.test
  src/tests/vimtests/change/*.test
  src/tests/vimtests/delete/*.test
  src/tests/vimtests/digraphs/*.test
  src/tests/vimtests/empty/*.test
  src/tests/vimtests/empty/emptytest/events
  src/tests/vimtests/empty/emptytest/input
  src/tests/vimtests/empty/emptytest/output
  src/tests/vimtests/ex/*.test
  src/tests/vimtests/ex/d/*.test
  src/tests/vimtests/ex/g/*.test
  src/tests/vimtests/ex/gotoline/*.test
  src/tests/vimtests/ex/s/*.test
  src/tests/vimtests/find/*.test
  src/tests/vimtests/indent/*.test
  src/tests/vimtests/insertion/*.test
  src/tests/vimtests/insertion/cursorkeys/*.test
  src/tests/vimtests/joinlines/*.test
  src/tests/vimtests/jumplist/*.test
  src/tests/vimtests/macros/*.test
  src/tests/vimtests/marks/*.test
  src/tests/vimtests/movement/*.test
  src/tests/vimtests/movement/bigWord/*.test
  src/tests/vimtests/movement/char/*.test
  src/tests/vimtests/movement/char/h_at_bol/events
  src/tests/vimtests/movement/char/h_at_bol/input
  src/tests/vimtests/movement/char/h_at_bol/output
  src/tests/vimtests/movement/char/hl/events
  src/tests/vimtests/movement/char/hl/input
  src/tests/vimtests/movement/char/hl/output
  src/tests/vimtests/movement/char/j/events
  src/tests/vimtests/movement/char/j/input
  src/tests/vimtests/movement/char/j/output
  src/tests/vimtests/movement/char/l_at_eol/events
  src/tests/vimtests/movement/char/l_at_eol/input
  src/tests/vimtests/movement/char/l_at_eol/output
  src/tests/vimtests/movement/cursorkeys/*.test
  src/tests/vimtests/movement/file/*.test
  src/tests/vimtests/movement/intraline/*.test
  src/tests/vimtests/movement/word/*.test
  src/tests/vimtests/numbers/*.test
  src/tests/vimtests/paste/*.test
  src/tests/vimtests/repeat/*.test
  src/tests/vimtests/replace/*.test
  src/tests/vimtests/search/*.test
  src/tests/vimtests/searchword/*.test
  src/tests/vimtests/sort/*.test
  src/tests/vimtests/switchcase/*.test
  src/tests/vimtests/undo/*.test
  src/tests/vimtests/unicode/*.test
  src/tests/vimtests/unsorted/*.test
  src/tests/vimtests/visual/*.test
  src/tests/vimtests/yank/*.test

source-repository head
  type:     git
  location: https://github.com/yi-editor/yi.git

-- Frontends
flag pango
  Default: False
  Description: Build with Pango frontend

flag vty
  Default: True
  Description: Build with Vty frontend

flag profiling
  Default: False
  Description:
    Runtime binary will be compiled with profiling and RTS
    options enabled.

flag eventlog
  Default: False
  Description:
    Runtime binary will be compiled with eventlog and RTS
    options enabled.

flag testing
  Description: bake-in the self-checks

flag hint
  Default: True
  Description: Include hint (haskell interpreter) in yi

library
  hs-source-dirs: src/library
  default-language: Haskell2010

  if flag(profiling)
    CPP-options: -DPROFILING

  if flag(eventlog)
    CPP-options: -DEVENTLOG

  if flag(hint)
    CPP-options: -DHINT

  exposed-modules:
    Yi
    Yi.Boot
    Yi.Boot.Internal
    Yi.Buffer
    Yi.Buffer.Adjusted
    Yi.Buffer.HighLevel
    Yi.Buffer.Indent
    Yi.Buffer.Normal
    Yi.Buffer.Misc
    Yi.Buffer.Region
    Yi.Buffer.TextUnit
    Yi.Buffer.Undo
    Yi.Command
    Yi.Command.Help
    Yi.Completion
    Yi.Config
    Yi.Config.Default
    Yi.Config.Misc
    Yi.Config.Lens
    Yi.Config.Simple
    Yi.Config.Simple.Types
    Yi.Core
    Yi.Debug
    Yi.Dired
    Yi.Editor
    Yi.Eval
    Yi.Event
    Yi.File
    Yi.History
    Yi.Hoogle
    Yi.Hooks
    Yi.IReader
    Yi.IncrementalParse
    Yi.Interact
    Yi.JumpList
    Yi.Keymap
    Yi.Keymap.Completion
    Yi.Keymap.Cua
    Yi.Keymap.Emacs
    Yi.Keymap.Emacs.KillRing
    Yi.Keymap.Emacs.Utils
    Yi.Keymap.Keys
    Yi.Keymap.Vim
    Yi.Keymap.Vim.Common
    Yi.Keymap.Vim.Digraph
    Yi.Keymap.Vim.Eval
    Yi.Keymap.Vim.EventUtils
    Yi.Keymap.Vim.Ex
    Yi.Keymap.Vim.Ex.Commands.Common
    Yi.Keymap.Vim.Ex.Commands.Buffer
    Yi.Keymap.Vim.Ex.Commands.Buffers
    Yi.Keymap.Vim.Ex.Commands.BufferDelete
    Yi.Keymap.Vim.Ex.Commands.Cabal
    Yi.Keymap.Vim.Ex.Commands.Delete
    Yi.Keymap.Vim.Ex.Commands.Edit
    Yi.Keymap.Vim.Ex.Commands.Global
    Yi.Keymap.Vim.Ex.Commands.GotoLine
    Yi.Keymap.Vim.Ex.Commands.Help
    Yi.Keymap.Vim.Ex.Commands.Make
    Yi.Keymap.Vim.Ex.Commands.Nohl
    Yi.Keymap.Vim.Ex.Commands.Paste
    Yi.Keymap.Vim.Ex.Commands.Quit
    Yi.Keymap.Vim.Ex.Commands.Reload
    Yi.Keymap.Vim.Ex.Commands.Shell
    Yi.Keymap.Vim.Ex.Commands.Sort
    Yi.Keymap.Vim.Ex.Commands.Substitute
    Yi.Keymap.Vim.Ex.Commands.Tag
    Yi.Keymap.Vim.Ex.Commands.Undo
    Yi.Keymap.Vim.Ex.Commands.Write
    Yi.Keymap.Vim.Ex.Commands.Yi
    Yi.Keymap.Vim.Ex.Types
    Yi.Keymap.Vim.Ex.Eval
    Yi.Keymap.Vim.ExMap
    Yi.Keymap.Vim.InsertMap
    Yi.Keymap.Vim.MatchResult
    Yi.Keymap.Vim.Motion
    Yi.Keymap.Vim.NormalMap
    Yi.Keymap.Vim.NormalOperatorPendingMap
    Yi.Keymap.Vim.Operator
    Yi.Keymap.Vim.ReplaceMap
    Yi.Keymap.Vim.ReplaceSingleCharMap
    Yi.Keymap.Vim.Search
    Yi.Keymap.Vim.SearchMotionMap
    Yi.Keymap.Vim.StateUtils
    Yi.Keymap.Vim.StyledRegion
    Yi.Keymap.Vim.Tag
    Yi.Keymap.Vim.TextObject
    Yi.Keymap.Vim.Utils
    Yi.Keymap.Vim.VisualMap
    Yi.KillRing
    Yi.Layout
    Yi.Main
    Yi.MiniBuffer
    Yi.Misc
    Yi.Mode.Abella
    Yi.Mode.Buffers
    Yi.Mode.Compilation
    Yi.Mode.GHCi
    Yi.Mode.Haskell
    Yi.Mode.Haskell.Dollarify
    Yi.Mode.IReader
    Yi.Mode.Interactive
    Yi.Mode.JavaScript
    Yi.Mode.Latex
    Yi.Modes
    Yi.Monad
    Yi.Paths
    Yi.PersistentState
    Yi.Process
    Yi.Rectangle
    Yi.Snippets
    Yi.Snippets.Haskell
    Yi.Search
    Yi.Search.Internal
    Yi.String
    Yi.Syntax.Driver
    Yi.Syntax.Haskell
    Yi.Syntax.JavaScript
    Yi.Syntax.Latex
    Yi.Syntax.Layout
    Yi.Syntax.OnlineTree
    Yi.Syntax.Paren
    Yi.Syntax.Tree
    Yi.Syntax.Strokes.Haskell
    Yi.Tab
    Yi.Tag
    Yi.TextCompletion
    Yi.Types
    Yi.UI.Common
    Yi.UI.Batch
    Yi.UI.SimpleLayout
    Yi.UI.TabBar
    Yi.UI.Utils
    Yi.Verifier.JavaScript
    Yi.Window
    Yi.Char.Unicode

  if flag(hint)
    build-depends: hint > 0.3.1

  build-depends:
    Cabal >= 1.10,
    array,
    binary >= 0.7,
    containers,
    directory,
    process >= 1.0.1.1,
    old-locale,
    base >= 4 && < 5,
    bytestring >= 0.9.1 && < 0.11,
    dynamic-state >= 0.1.0.5,
    data-default,
    lens >= 4.7,
    dlist >=0.4.1,
    dyre >=0.8.11,
    filepath >= 1.1,
    hashable >=1.1.2.5,
    mtl >= 0.1.0.1,
    parsec >= 3.0,
    pointedlist >= 0.5,
    text-icu >= 0.7,
    safe >= 0.3.4 && < 0.4,
    split >= 0.1 && < 0.3,
    template-haskell >= 2.4,
    text >= 1.1.1.3,
    time >= 1.1,
    unix-compat >=0.1 && <0.5,
    unordered-containers >= 0.1.3 && < 0.3,
    xdg-basedir >= 0.2.1 && < 0.3,
    transformers-base,
    semigroups,
    word-trie >= 0.2.0.4,
    yi-language >= 0.1.1.0,
    oo-prototypes,
    yi-rope >= 0.7.0.0 && < 0.8,
    exceptions

  ghc-options: -Wall -fno-warn-orphans -ferror-spans
  ghc-prof-options: -prof -auto-all -rtsopts

  if flag(profiling)
    cpp-options: -DPROFILING

  if flag(eventlog)
    CPP-options: -DEVENTLOG
    ghc-options: -Wall -fno-warn-orphans -eventlog

  default-extensions: NondecreasingIndentation

  if !os(windows)
    build-depends:
      unix

  if os(windows)
    build-depends:
      Win32

  if flag(testing)
    cpp-options: -DTESTING
    build-depends:
      QuickCheck >= 2.7 && < 2.9,
      random

  -- Frontends
  if flag(pango)
    exposed-modules:
      Yi.UI.Pango
      Yi.UI.Pango.Control
    other-modules:
      Yi.UI.Pango.Layouts
      Yi.UI.Pango.Utils
    build-depends:
      gtk ==0.13.*,
      glib ==0.13.*,
      pango ==0.13.*
    cpp-options: -DFRONTEND_PANGO

  if flag(vty)
    exposed-modules:
      Yi.UI.Vty
      Yi.UI.Vty.Conversions
    build-depends:
      vty >= 5.4,
      stm >= 2.2
    cpp-options: -DFRONTEND_VTY

  other-modules:
    Paths_yi,

    -- "Internal" modules that the user better not see.
    Yi.Buffer.Implementation,
    Parser.Incremental,

    -- Should probably be split out to another package.
    Control.Exc,
    Data.DelayList,
    System.CanonicalizePath,
    System.FriendlyPath

executable yi
  hs-source-dirs: src/executable
  default-language: Haskell2010

  if flag(profiling)
    cpp-options: -DPROFILING

  main-is: Main.hs

  build-depends:
    base >=4 && <5, yi

  ghc-options: -threaded
  ghc-prof-options: -prof -auto-all -rtsopts

Test-Suite test-suite
  default-language: Haskell2010
  hs-source-dirs: src/tests
  type: exitcode-stdio-1.0
  main-is: TestSuite.hs
  other-modules:
    Driver
    Generic.TestPureBufferManipulations
    Generic.TestUtils
    Vim.EditorManipulations.BufferExCommand
    Vim.TestExCommandParsers
    Vim.TestPureBufferManipulations
    Vim.TestPureEditorManipulations
  build-depends:
    base,
    lens >= 4.7,
    semigroups,
    tasty,
    tasty-hunit,
    tasty-quickcheck,
    HUnit,
    QuickCheck,
    filepath,
    directory,
    text,
    yi-language >= 0.1.1.0,
    yi-rope,
    yi