Merge remote-tracking branch 'upstream/master' into main

remotes/mxxun/master
Taylor Fausak 2022-01-11 13:48:58 +00:00 committed by GitHub
commit 97da38fab7
2 changed files with 25 additions and 209 deletions

View File

@ -61,7 +61,7 @@ log the size of the input, but _not_ the full input/output of requests.)
- via `stack`
~~~~.sh
stack install brittany # --resolver lts-10.0
stack install brittany # --resolver lts-16.31
~~~~
If you use an lts that includes brittany this should just work; otherwise
@ -104,8 +104,8 @@ log the size of the input, but _not_ the full input/output of requests.)
#### VSCode
[This extension](https://marketplace.visualstudio.com/items?itemName=MaxGabriel.brittany)
connects commandline `brittany` to VSCode formatting API. Thanks to @MaxGabriel.
#### Via HIE
[haskell-ide-engine](https://github.com/haskell/haskell-ide-engine)
#### Via HLS
[haskell-language-server](https://github.com/haskell/haskell-language-server)
includes a `brittany` plugin that directly uses the brittany library.
Relevant for any editors that properly support the language-server-protocol.
#### Neovim / Vim 8

View File

@ -5,25 +5,17 @@ module Brittany.Internal.ParseModule where
import qualified Control.Monad as Monad
import qualified Control.Monad.IO.Class as IO
import qualified Control.Monad.Trans.Except as Except
import qualified Data.Set as Set
import qualified GHC
import qualified GHC.ByteOrder
import qualified GHC.Data.Bag
import qualified GHC.Data.EnumSet
import qualified GHC.Data.StringBuffer
import qualified GHC.Driver.Session
import qualified GHC.Parser.Header
import qualified GHC.Platform
import qualified GHC.Settings
import qualified GHC.Types.Basic
import qualified GHC.Types.SrcLoc
import qualified GHC.Unit.Module.Name
import qualified GHC.Unit.State
import qualified GHC.Unit.Types
import qualified GHC.Utils.Error
import qualified GHC.Utils.Fingerprint
import qualified GHC.Utils.Misc
import qualified GHC.Utils.Ppr.Colour
import qualified Language.Haskell.GHC.ExactPrint.Parsers as ExactPrint
import qualified Language.Haskell.GHC.ExactPrint.Types as ExactPrint
@ -77,184 +69,18 @@ handleErrorMessages
handleErrorMessages =
Except.throwE . mappend "errorMessages: " . show . GHC.Data.Bag.bagToList
initialCfgWeights :: GHC.Driver.Session.CfgWeights
initialCfgWeights = GHC.Driver.Session.CFGWeights
{ GHC.Driver.Session.backEdgeBonus = 0
, GHC.Driver.Session.callWeight = 0
, GHC.Driver.Session.condBranchWeight = 0
, GHC.Driver.Session.infoTablePenalty = 0
, GHC.Driver.Session.likelyCondWeight = 0
, GHC.Driver.Session.switchWeight = 0
, GHC.Driver.Session.uncondWeight = 0
, GHC.Driver.Session.unlikelyCondWeight = 0
}
initialDynFlags :: GHC.Driver.Session.DynFlags
initialDynFlags = GHC.Driver.Session.DynFlags
{ GHC.Driver.Session.avx = False
, GHC.Driver.Session.avx2 = False
, GHC.Driver.Session.avx512cd = False
, GHC.Driver.Session.avx512er = False
, GHC.Driver.Session.avx512f = False
, GHC.Driver.Session.avx512pf = False
, GHC.Driver.Session.binBlobThreshold = 0
, GHC.Driver.Session.bmiVersion = Nothing
, GHC.Driver.Session.cachedPlugins = []
, GHC.Driver.Session.canGenerateDynamicToo = error "canGenerateDynamicToo"
, GHC.Driver.Session.canUseColor = False
, GHC.Driver.Session.cfgWeightInfo = initialCfgWeights
, GHC.Driver.Session.cmdlineFrameworks = []
, GHC.Driver.Session.cmmProcAlignment = Nothing
, GHC.Driver.Session.colScheme = GHC.Utils.Ppr.Colour.defaultScheme
, GHC.Driver.Session.debugLevel = 0
, GHC.Driver.Session.depExcludeMods = []
, GHC.Driver.Session.depIncludeCppDeps = False
, GHC.Driver.Session.depIncludePkgDeps = False
, GHC.Driver.Session.depMakefile = ""
, GHC.Driver.Session.depSuffixes = []
, GHC.Driver.Session.dirsToClean = error "dirsToClean"
, GHC.Driver.Session.dump_action = \_ _ _ _ _ _ -> pure ()
, GHC.Driver.Session.dumpDir = Nothing
, GHC.Driver.Session.dumpFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.dumpPrefix = Nothing
, GHC.Driver.Session.dumpPrefixForce = Nothing
, GHC.Driver.Session.dylibInstallName = Nothing
, GHC.Driver.Session.dynHiSuf = ""
, GHC.Driver.Session.dynLibLoader = GHC.Driver.Session.Deployable
, GHC.Driver.Session.dynObjectSuf = ""
, GHC.Driver.Session.dynOutputFile = Nothing
, GHC.Driver.Session.enableTimeStats = False
, GHC.Driver.Session.extensionFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.extensions = []
, GHC.Driver.Session.fatalWarningFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.fileSettings = initialFileSettings
, GHC.Driver.Session.filesToClean = error "filesToClean"
, GHC.Driver.Session.floatLamArgs = Nothing
, GHC.Driver.Session.flushErr = GHC.Driver.Session.defaultFlushErr
, GHC.Driver.Session.flushOut = GHC.Driver.Session.defaultFlushOut
, GHC.Driver.Session.frameworkPaths = []
, GHC.Driver.Session.frontendPluginOpts = []
, GHC.Driver.Session.generalFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.generatedDumps = error "generatedDumps"
, GHC.Driver.Session.ghcHeapSize = Nothing
, GHC.Driver.Session.ghciHistSize = 0
, GHC.Driver.Session.ghciScripts = []
, GHC.Driver.Session.ghcLink = GHC.Driver.Session.NoLink
, GHC.Driver.Session.ghcMode = GHC.Driver.Session.OneShot
, GHC.Driver.Session.ghcNameVersion = initialGhcNameVersion
, GHC.Driver.Session.ghcVersionFile = Nothing
, GHC.Driver.Session.haddockOptions = Nothing
, GHC.Driver.Session.hcSuf = ""
, GHC.Driver.Session.hiDir = Nothing
, GHC.Driver.Session.hieDir = Nothing
, GHC.Driver.Session.hieSuf = ""
, GHC.Driver.Session.historySize = 0
, GHC.Driver.Session.hiSuf = ""
, GHC.Driver.Session.homeUnitId = GHC.Unit.Types.stringToUnitId ""
, GHC.Driver.Session.homeUnitInstanceOfId = Nothing
, GHC.Driver.Session.homeUnitInstantiations = []
, GHC.Driver.Session.hooks = error "hooks"
, GHC.Driver.Session.hpcDir = ""
, GHC.Driver.Session.hscTarget = GHC.Driver.Session.HscNothing
, GHC.Driver.Session.ignorePackageFlags = []
, GHC.Driver.Session.importPaths = []
, GHC.Driver.Session.includePaths = initialIncludeSpecs
, GHC.Driver.Session.incoherentOnLoc = initialSrcSpan
, GHC.Driver.Session.initialUnique = 0
, GHC.Driver.Session.inlineCheck = Nothing
, GHC.Driver.Session.interactivePrint = Nothing
, GHC.Driver.Session.language = Nothing
, GHC.Driver.Session.ldInputs = []
, GHC.Driver.Session.liberateCaseThreshold = Nothing
, GHC.Driver.Session.libraryPaths = []
, GHC.Driver.Session.liftLamsKnown = False
, GHC.Driver.Session.liftLamsNonRecArgs = Nothing
, GHC.Driver.Session.liftLamsRecArgs = Nothing
, GHC.Driver.Session.llvmConfig = initialLlvmConfig
, GHC.Driver.Session.log_action = \_ _ _ _ _ -> pure ()
, GHC.Driver.Session.mainFunIs = Nothing
, GHC.Driver.Session.mainModIs = GHC.Unit.Types.mkModule
(GHC.Unit.Types.stringToUnit "")
(GHC.Unit.Module.Name.mkModuleName "")
, GHC.Driver.Session.maxErrors = Nothing
, GHC.Driver.Session.maxInlineAllocSize = 0
, GHC.Driver.Session.maxInlineMemcpyInsns = 0
, GHC.Driver.Session.maxInlineMemsetInsns = 0
, GHC.Driver.Session.maxPmCheckModels = 0
, GHC.Driver.Session.maxRefHoleFits = Nothing
, GHC.Driver.Session.maxRelevantBinds = Nothing
, GHC.Driver.Session.maxSimplIterations = 0
, GHC.Driver.Session.maxUncoveredPatterns = 0
, GHC.Driver.Session.maxValidHoleFits = Nothing
, GHC.Driver.Session.maxWorkerArgs = 0
, GHC.Driver.Session.newDerivOnLoc = initialSrcSpan
, GHC.Driver.Session.nextTempSuffix = error "nextTempSuffix"
, GHC.Driver.Session.nextWrapperNum = error "nextWrapperNum"
, GHC.Driver.Session.objectDir = Nothing
, GHC.Driver.Session.objectSuf = ""
, GHC.Driver.Session.optLevel = 0
, GHC.Driver.Session.outputFile = Nothing
, GHC.Driver.Session.outputHi = Nothing
, GHC.Driver.Session.overlapInstLoc = initialSrcSpan
, GHC.Driver.Session.packageDBFlags = []
, GHC.Driver.Session.packageEnv = Nothing
, GHC.Driver.Session.packageFlags = []
, GHC.Driver.Session.parMakeCount = Nothing
, GHC.Driver.Session.pkgTrustOnLoc = initialSrcSpan
, GHC.Driver.Session.platformConstants = initialPlatformConstants
, GHC.Driver.Session.platformMisc = initialPlatformMisc
, GHC.Driver.Session.pluginModNameOpts = []
, GHC.Driver.Session.pluginModNames = []
, GHC.Driver.Session.pluginPackageFlags = []
, GHC.Driver.Session.pprCols = 80
, GHC.Driver.Session.pprUserLength = 0
, GHC.Driver.Session.profAuto = GHC.Driver.Session.NoProfAuto
, GHC.Driver.Session.rawSettings = []
, GHC.Driver.Session.reductionDepth = GHC.Types.Basic.mkIntWithInf 0
, GHC.Driver.Session.refLevelHoleFits = Nothing
, GHC.Driver.Session.reverseErrors = False
, GHC.Driver.Session.rtccInfo = error "rtccInfo"
, GHC.Driver.Session.rtldInfo = error "rtldInfo"
, GHC.Driver.Session.rtsOpts = Nothing
, GHC.Driver.Session.rtsOptsEnabled = GHC.Driver.Session.RtsOptsNone
, GHC.Driver.Session.rtsOptsSuggestions = False
, GHC.Driver.Session.ruleCheck = Nothing
, GHC.Driver.Session.safeHaskell = GHC.Driver.Session.Sf_Ignore
, GHC.Driver.Session.safeInfer = False
, GHC.Driver.Session.safeInferred = False
, GHC.Driver.Session.simplPhases = 0
, GHC.Driver.Session.simplTickFactor = 0
, GHC.Driver.Session.solverIterations = GHC.Types.Basic.mkIntWithInf 0
, GHC.Driver.Session.specConstrCount = Nothing
, GHC.Driver.Session.specConstrRecursive = 0
, GHC.Driver.Session.specConstrThreshold = Nothing
, GHC.Driver.Session.splitInfo = Nothing
, GHC.Driver.Session.sseVersion = Nothing
, GHC.Driver.Session.staticPlugins = []
, GHC.Driver.Session.strictnessBefore = []
, GHC.Driver.Session.stubDir = Nothing
, GHC.Driver.Session.targetPlatform = initialTargetPlatform
, GHC.Driver.Session.thOnLoc = initialSrcSpan
, GHC.Driver.Session.toolSettings = initialToolSettings
, GHC.Driver.Session.trace_action = \_ _ _ a -> a
, GHC.Driver.Session.trustFlags = []
, GHC.Driver.Session.trustworthyOnLoc = initialSrcSpan
, GHC.Driver.Session.ufCreationThreshold = 0
, GHC.Driver.Session.ufDearOp = 0
, GHC.Driver.Session.ufDictDiscount = 0
, GHC.Driver.Session.ufFunAppDiscount = 0
, GHC.Driver.Session.ufUseThreshold = 0
, GHC.Driver.Session.ufVeryAggressive = False
, GHC.Driver.Session.uniqueIncrement = 0
, GHC.Driver.Session.unitDatabases = Nothing
, GHC.Driver.Session.unitState = GHC.Unit.State.emptyUnitState
, GHC.Driver.Session.useColor = GHC.Utils.Misc.Never
, GHC.Driver.Session.useUnicode = False
, GHC.Driver.Session.verbosity = 0
, GHC.Driver.Session.warningFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.warnSafeOnLoc = initialSrcSpan
, GHC.Driver.Session.warnUnsafeOnLoc = initialSrcSpan
, GHC.Driver.Session.ways = Set.empty
initialDynFlags = GHC.Driver.Session.defaultDynFlags initialSettings initialLlvmConfig
initialSettings :: GHC.Driver.Session.Settings
initialSettings = GHC.Driver.Session.Settings
{ GHC.Driver.Session.sGhcNameVersion = initialGhcNameVersion
, GHC.Driver.Session.sFileSettings = initialFileSettings
, GHC.Driver.Session.sTargetPlatform = initialTargetPlatform
, GHC.Driver.Session.sToolSettings = initialToolSettings
, GHC.Driver.Session.sPlatformMisc = initialPlatformMisc
, GHC.Driver.Session.sPlatformConstants = initialPlatformConstants
, GHC.Driver.Session.sRawSettings = []
}
initialFileSettings :: GHC.Driver.Session.FileSettings
@ -273,10 +99,17 @@ initialGhcNameVersion = GHC.Driver.Session.GhcNameVersion
, GHC.Driver.Session.ghcNameVersion_projectVersion = ""
}
initialIncludeSpecs :: GHC.Driver.Session.IncludeSpecs
initialIncludeSpecs = GHC.Driver.Session.IncludeSpecs
{ GHC.Driver.Session.includePathsGlobal = []
, GHC.Driver.Session.includePathsQuote = []
initialPlatformMisc :: GHC.Driver.Session.PlatformMisc
initialPlatformMisc = GHC.Driver.Session.PlatformMisc
{ GHC.Driver.Session.platformMisc_ghcDebugged = False
, GHC.Driver.Session.platformMisc_ghcRTSWays = ""
, GHC.Driver.Session.platformMisc_ghcRtsWithLibdw = False
, GHC.Driver.Session.platformMisc_ghcThreaded = False
, GHC.Driver.Session.platformMisc_ghcWithInterpreter = False
, GHC.Driver.Session.platformMisc_ghcWithSMP = False
, GHC.Driver.Session.platformMisc_libFFI = False
, GHC.Driver.Session.platformMisc_llvmTarget = ""
, GHC.Driver.Session.platformMisc_targetPlatformString = ""
}
initialLlvmConfig :: GHC.Driver.Session.LlvmConfig
@ -424,23 +257,6 @@ initialPlatformMini = GHC.Settings.PlatformMini
, GHC.Settings.platformMini_os = GHC.Platform.OSLinux
}
initialPlatformMisc :: GHC.Driver.Session.PlatformMisc
initialPlatformMisc = GHC.Driver.Session.PlatformMisc
{ GHC.Driver.Session.platformMisc_ghcDebugged = False
, GHC.Driver.Session.platformMisc_ghcRTSWays = ""
, GHC.Driver.Session.platformMisc_ghcRtsWithLibdw = False
, GHC.Driver.Session.platformMisc_ghcThreaded = False
, GHC.Driver.Session.platformMisc_ghcWithInterpreter = False
, GHC.Driver.Session.platformMisc_ghcWithSMP = False
, GHC.Driver.Session.platformMisc_libFFI = False
, GHC.Driver.Session.platformMisc_llvmTarget = ""
, GHC.Driver.Session.platformMisc_targetPlatformString = ""
}
initialSrcSpan :: GHC.Types.SrcLoc.SrcSpan
initialSrcSpan =
GHC.Types.SrcLoc.UnhelpfulSpan GHC.Types.SrcLoc.UnhelpfulNoLocationInfo
initialTargetPlatform :: GHC.Settings.Platform
initialTargetPlatform = GHC.Settings.Platform
{ GHC.Settings.platformByteOrder = GHC.ByteOrder.LittleEndian