packages feed

nix-lang-0.1.0.0: nix-lang.cabal

cabal-version:      3.0
name:               nix-lang
version:            0.1.0.0
synopsis:           Parser and printers for the Nix language
description:
  nix-lang provides a parser, exact printer, canonical RFC 166-oriented
  formatter, and editable Trees that Grow style AST for the Nix language.
  It supports lossless round-tripping for parsed syntax while also offering
  a fresh syntax tree and formatter for generated Nix expressions.

category:           Nix
license:            BSD-3-Clause
license-file:       LICENSE
author:             berberman
maintainer:         berberman <berberman@yandex.com>
copyright:          Copyright (c) berberman 2022-2026
stability:          alpha
homepage:           https://github.com/berberman/nix-lang
bug-reports:        https://github.com/berberman/nix-lang/issues
tested-with:        GHC ==9.10.3
extra-doc-files:
  CHANGELOG.md
  README.md

extra-source-files:
  test/fixtures/nixfmt/correct/*.nix
  test/fixtures/nixfmt/diff/comment/*.nix
  test/fixtures/nixfmt/diff/inherit_comment/*.nix
  test/fixtures/nixfmt/diff/leading_blank/*.nix
  test/fixtures/nixfmt/diff/string/*.nix
  test/fixtures/nixfmt/diff/string_interpol/*.nix
  test/fixtures/nixfmt/diff/strip_space/*.nix
  test/fixtures/nixfmt/invalid/*.nix
  test/sample.nix

common common-attrs
  build-depends:      base ^>=4.20
  default-language:   Haskell2010
  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-uni-patterns
    -Wincomplete-record-updates

  if impl(ghc >=8.0)
    ghc-options: -Wredundant-constraints

  if impl(ghc >=8.2)
    ghc-options: -fhide-source-paths

  default-extensions:
    BangPatterns
    ConstraintKinds
    DataKinds
    DeriveAnyClass
    DeriveFunctor
    DeriveGeneric
    DerivingStrategies
    DerivingVia
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    KindSignatures
    LambdaCase
    NoStarIsType
    OverloadedStrings
    RecordWildCards
    ScopedTypeVariables
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    ViewPatterns

library
  import:          common-attrs
  build-depends:
    , containers          ^>=0.7
    , megaparsec          ^>=9.7.0
    , mtl                 ^>=2.3.1
    , parser-combinators  ^>=1.3.1
    , prettyprinter       ^>=1.7.1
    , syb                 >=0.7.2   && <0.7.5
    , template-haskell    ^>=2.22.0
    , text                ^>=2.1.3

  exposed-modules:
    Nix.Lang.Annotation
    Nix.Lang.Edit
    Nix.Lang.ExactPrint
    Nix.Lang.ExactPrint.Operations
    Nix.Lang.ExactPrint.Prepare.Parse
    Nix.Lang.ExactPrint.Prepare.Rebuild
    Nix.Lang.ExactPrint.Prepare.Reflow
    Nix.Lang.ExactPrint.Prepare.Repair
    Nix.Lang.ExactPrint.Prepare.Types
    Nix.Lang.ExactPrint.Prepare.Utils
    Nix.Lang.Lexer.Text
    Nix.Lang.Outputable
    Nix.Lang.Parser
    Nix.Lang.QQ.Parsed
    Nix.Lang.RFCPrint
    Nix.Lang.RFCPrint.LayoutHints
    Nix.Lang.Span
    Nix.Lang.Types
    Nix.Lang.Types.Ps
    Nix.Lang.Types.Syn
    Nix.Lang.Utils

  other-modules:   Nix.Lang.Edit.Internal.TH
  hs-source-dirs:  src

test-suite nix-lang-test
  import:         common-attrs
  type:           exitcode-stdio-1.0
  build-depends:
    , directory    ^>=1.3.8
    , filepath     ^>=1.5.4
    , megaparsec
    , nix-lang
    , process
    , tasty
    , tasty-hunit
    , text

  other-modules:
    Edit
    ExactPrint
    Parser
    RFCPrint
    Utils

  hs-source-dirs: test
  main-is:        Spec.hs

source-repository head
  type:     git
  location: https://github.com/berberman/nix-lang