Skip to content

Commit

Permalink
Make imports more maintable
Browse files Browse the repository at this point in the history
  • Loading branch information
alexbiehl committed May 28, 2024
1 parent 0142a9b commit b827d9d
Show file tree
Hide file tree
Showing 16 changed files with 213 additions and 295 deletions.
180 changes: 49 additions & 131 deletions src/Tie/Codegen/Imports.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,137 +26,55 @@ import Tie.Name

codegenModuleHeader :: Text -> Doc ann
codegenModuleHeader moduleName =
"{-#"
<+> "LANGUAGE"
<+> "BangPatterns"
<+> "#-}"
<> PP.line
<> "{-#"
<+> "LANGUAGE"
<+> "DataKinds"
<+> "#-}"
<> PP.line
<> "{-#"
<+> "LANGUAGE"
<+> "DuplicateRecordFields"
<+> "#-}"
<> PP.line
<> "{-#"
<+> "LANGUAGE"
<+> "OverloadedStrings"
<+> "#-}"
<> PP.line
<> "{-#"
<+> "LANGUAGE"
<+> "ScopedTypeVariables"
<+> "#-}"
<> PP.line
<> "{-#"
<+> "LANGUAGE"
<+> "RankNTypes"
<+> "#-}"
<> PP.line
<> "{-#"
<+> "LANGUAGE"
<+> "RecordWildCards"
<+> "#-}"
<> PP.line
<> "module"
<+> PP.pretty moduleName
<+> "where"
<> PP.line
<> PP.line
<> "import"
<+> "qualified"
<+> "Control.Applicative"
<> PP.line
<> "import"
<+> "qualified"
<+> "Control.Exception"
<> PP.line
<> "import"
<+> "qualified"
<+> "Control.Monad"
<> PP.line
<> "import"
<+> "qualified"
<+> "Control.Monad.IO.Class"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Aeson"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Aeson.Encoding"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Aeson.Types"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Attoparsec.ByteString"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.ByteString"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.List"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.List.NonEmpty"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Map"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Maybe"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Text"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Time"
<> PP.line
<> "import"
<+> "qualified"
<+> "Data.Text.Encoding"
<> PP.line
<> "import"
<+> "qualified"
<+> "GHC.Float"
<> PP.line
<> "import"
<+> "qualified"
<+> "GHC.Int"
<> PP.line
<> "import"
<+> "qualified"
<+> "GHC.Records"
<> PP.line
<> "import"
<+> "qualified"
<+> "GHC.Types"
<> PP.line
<> "import"
<+> "qualified"
<+> "Network.HTTP.Types"
<> PP.line
<> "import"
<+> "qualified"
<+> "Network.Wai"
<> PP.line
<> "import"
<+> "qualified"
<+> "Web.HttpApiData"
let languageExtensions :: [Text]
languageExtensions =
sort
[ "BangPatterns",
"DataKinds",
"DuplicateRecordFields",
"OverloadedStrings",
"ScopedTypeVariables",
"RankNTypes",
"RecordWildCards"
]

imports :: [Text]
imports =
sort
[ "Control.Applicative",
"Control.Exception",
"Control.Monad",
"Control.Monad.IO.Class",
"Data.Aeson",
"Data.Aeson.Types",
"Data.Aeson.Encoding",
"Data.Attoparsec.ByteString",
"Data.ByteString",
"Data.List",
"Data.List.NonEmpty",
"Data.Map",
"Data.Maybe",
"Data.Text",
"Data.Time",
"Data.Text.Encoding",
"GHC.Float",
"GHC.Int",
"GHC.Records",
"GHC.Types",
"Network.HTTP.Types",
"Network.Wai",
"Web.HttpApiData"
]
in PP.vcat $
( map
(\extension -> "{-#" <+> "LANGUAGE" <+> PP.pretty extension <+> "#-}")
languageExtensions
)
++ ["module" <+> PP.pretty moduleName <+> "where", ""]
++ ( map
(\import_ -> "import" <+> "qualified" <+> PP.pretty import_)
imports
)

codegenExtraApiModuleDependencies :: ApiName -> Doc ann
codegenExtraApiModuleDependencies apiName =
Expand Down
20 changes: 10 additions & 10 deletions test/golden/additional-properties.yaml.out
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ Test/Api.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Test.Api where

import qualified Control.Applicative
Expand All @@ -23,8 +23,8 @@ import qualified Data.List.NonEmpty
import qualified Data.Map
import qualified Data.Maybe
import qualified Data.Text
import qualified Data.Time
import qualified Data.Text.Encoding
import qualified Data.Time
import qualified GHC.Float
import qualified GHC.Int
import qualified GHC.Records
Expand Down Expand Up @@ -442,9 +442,9 @@ Test/Response/ListPets.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Test.Response.ListPets where

import qualified Control.Applicative
Expand All @@ -461,8 +461,8 @@ import qualified Data.List.NonEmpty
import qualified Data.Map
import qualified Data.Maybe
import qualified Data.Text
import qualified Data.Time
import qualified Data.Text.Encoding
import qualified Data.Time
import qualified GHC.Float
import qualified GHC.Int
import qualified GHC.Records
Expand Down Expand Up @@ -492,9 +492,9 @@ Test/Response/ListPets2.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Test.Response.ListPets2 where

import qualified Control.Applicative
Expand All @@ -511,8 +511,8 @@ import qualified Data.List.NonEmpty
import qualified Data.Map
import qualified Data.Maybe
import qualified Data.Text
import qualified Data.Time
import qualified Data.Text.Encoding
import qualified Data.Time
import qualified GHC.Float
import qualified GHC.Int
import qualified GHC.Records
Expand Down Expand Up @@ -582,9 +582,9 @@ Test/Schemas/Pet.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Test.Schemas.Pet where

import qualified Control.Applicative
Expand All @@ -601,8 +601,8 @@ import qualified Data.List.NonEmpty
import qualified Data.Map
import qualified Data.Maybe
import qualified Data.Text
import qualified Data.Time
import qualified Data.Text.Encoding
import qualified Data.Time
import qualified GHC.Float
import qualified GHC.Int
import qualified GHC.Records
Expand Down Expand Up @@ -649,9 +649,9 @@ Test/Schemas/Pets.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Test.Schemas.Pets where

import qualified Control.Applicative
Expand All @@ -668,8 +668,8 @@ import qualified Data.List.NonEmpty
import qualified Data.Map
import qualified Data.Maybe
import qualified Data.Text
import qualified Data.Time
import qualified Data.Text.Encoding
import qualified Data.Time
import qualified GHC.Float
import qualified GHC.Int
import qualified GHC.Records
Expand Down
8 changes: 4 additions & 4 deletions test/golden/bug-1.yaml.out
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ Test/Api.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Test.Api where

import qualified Control.Applicative
Expand All @@ -23,8 +23,8 @@ import qualified Data.List.NonEmpty
import qualified Data.Map
import qualified Data.Maybe
import qualified Data.Text
import qualified Data.Time
import qualified Data.Text.Encoding
import qualified Data.Time
import qualified GHC.Float
import qualified GHC.Int
import qualified GHC.Records
Expand Down Expand Up @@ -428,9 +428,9 @@ Test/Response/Test.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Test.Response.Test where

import qualified Control.Applicative
Expand All @@ -447,8 +447,8 @@ import qualified Data.List.NonEmpty
import qualified Data.Map
import qualified Data.Maybe
import qualified Data.Text
import qualified Data.Time
import qualified Data.Text.Encoding
import qualified Data.Time
import qualified GHC.Float
import qualified GHC.Int
import qualified GHC.Records
Expand Down
Loading

0 comments on commit b827d9d

Please sign in to comment.