packages feed

nvim-hs-2.3.2.3: nvim-hs.cabal

cabal-version:       3.0
name:                nvim-hs
version:             2.3.2.3
synopsis:            Haskell plugin backend for neovim
description:
  This package provides a plugin provider for neovim. It allows you to write
  plugins for one of the great editors of our time in the best programming
  language of our time! ;-)
  .
  You should find all the documentation you need inside the "Neovim" module.
  Most other modules are considered internal, so don't be annoyed if using
  things from there may break your code!
  .
  The following modules may also be of interest and they should not change
  their API: "Neovim.Quickfix"
  .
  If you want to write unit tests that interact with neovim, "Neovim.Test"
  provides some useful functions for that.
  .
  If you are keen to debug /nvim-hs/ or a module you are writing, take a look
  at the "Neovim.Debug" module.
  .
  If you spot any errors or if you have great ideas, feel free to open an issue
  on github.
homepage:            https://github.com/neovimhaskell/nvim-hs
license:             Apache-2.0
license-file:        LICENSE
author:              Sebastian Witte
maintainer:          woozletoff@gmail.com
copyright:           Copyright 2017-2022 Sebastian Witte <woozletoff@gmail.com>
category:            Editor
build-type:          Simple
extra-source-files:    test-files/hello
                     , apiblobs/0.1.7.msgpack
                     , apiblobs/0.2.0.msgpack
                     , apiblobs/0.3.0.msgpack
                     , apiblobs/0.4.3.msgpack
                     , apiblobs/0.5.0.msgpack
                     , apiblobs/0.6.1.msgpack
                     , apiblobs/0.8.0.msgpack
                     , api

extra-doc-files:       CHANGELOG.md
                     , README.md
                     , apiblobs/README.md

source-repository head
    type:            git
    location:        https://github.com/neovimhaskell/nvim-hs

common defaults
  default-language:     Haskell2010
  default-extensions:   BangPatterns
                      , ScopedTypeVariables
                      , StrictData
  other-extensions:     DeriveDataTypeable
                      , DeriveGeneric
                      , DerivingVia
                      , ExistentialQuantification
                      , FlexibleContexts
                      , FlexibleInstances
                      , GADTs
                      , GeneralizedNewtypeDeriving
                      , LambdaCase
                      , MultiParamTypeClasses
                      , NamedFieldPuns
                      , NoOverloadedStrings
                      , NoRebindableSyntax
                      , OverloadedLists
                      , OverloadedStrings
                      , PackageImports
                      , RankNTypes
                      , RecordWildCards
                      , TemplateHaskell
  ghc-options:        -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
  build-depends:        base >=4.9 && < 5 
                      , containers
                      , data-default
                      , deepseq >= 1.1 && < 1.5
                      , prettyprinter
                      , prettyprinter-ansi-terminal
                      , unliftio >= 0.2
                      , unliftio-core >= 0.2
                      , vector
                      , void
  
library
  import: defaults
  exposed-modules:      Neovim
                      , Neovim.Quickfix
                      , Neovim.Debug
                      , Neovim.Test
  -- Note that every module below this is considered internal and if you have to
  -- import it somewhere in your code and you think it should be generally
  -- available , you should open a ticket about inclusion in the export list of
  -- the Neovim module. Since we are still in a prototyping stage, every user of
  -- this library should have the freedom to do what she wants.
                      , Neovim.API.String
                      , Neovim.API.Text
                      , Neovim.API.ByteString
                      , Neovim.Classes
                      , Neovim.Compat.Megaparsec
                      , Neovim.Config
                      , Neovim.Context
                      , Neovim.Context.Internal
                      , Neovim.Exceptions
                      , Neovim.Plugin
                      , Neovim.Plugin.Classes
                      , Neovim.Plugin.Internal
                      , Neovim.Plugin.IPC
                      , Neovim.Plugin.IPC.Classes
                      , Neovim.Log
                      , Neovim.Main
                      , Neovim.OS
                      , Neovim.RPC.Classes
                      , Neovim.RPC.Common
                      , Neovim.RPC.EventHandler
                      , Neovim.RPC.FunctionCall
                      , Neovim.RPC.SocketReader
                      , Neovim.Util
                      , Neovim.API.Parser
                      , Neovim.API.TH
  other-extensions:     CPP
  build-depends:        bytestring
                      , cereal
                      , cereal-conduit >= 0.8.0
                      , conduit >= 1.3.0
                      , foreign-store
                      , hslogger
                      , messagepack >= 0.5.4
                      , network
                      , mtl >= 2.2.1 && < 2.4
                      , optparse-applicative
                      , time-locale-compat
                      , megaparsec < 10
                      , streaming-commons
                      , template-haskell
                      , template-haskell-compat-v0208 >= 0.1.9
                      , text
                      , time
                      , typed-process
                      , utf8-string
  hs-source-dirs:       src

  if os(windows)
    cpp-options: -DWINDOWS
    hs-source-dirs: srcos/windows
  else
    hs-source-dirs: srcos/unix
    

test-suite hspec
  import: defaults
  type:                 exitcode-stdio-1.0
  hs-source-dirs:       tests
  main-is:              Spec.hs
  build-depends:        nvim-hs

                      , hspec ==2.*
                      , hspec-discover
                      , QuickCheck >=2.6

  other-modules:        API.THSpec
                      , API.THSpecFunctions
                      , EmbeddedRPCSpec
                      , EventSubscriptionSpec
                      , Plugin.ClassesSpec
                      , AsyncFunctionSpec
                      , RPC.SocketReaderSpec
                      , RPC.CommonSpec

  ghc-options:          -threaded -rtsopts -with-rtsopts=-N