Skip to content

Commit

Permalink
Add Rule.withIsInSourceDirectories
Browse files Browse the repository at this point in the history
  • Loading branch information
jfmengels committed Apr 28, 2022
1 parent d11d485 commit e1e522e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
2 changes: 1 addition & 1 deletion docs.json

Large diffs are not rendered by default.

26 changes: 24 additions & 2 deletions src/Review/Rule.elm
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ module Review.Rule exposing
, withFinalModuleEvaluation
, withElmJsonModuleVisitor, withReadmeModuleVisitor, withDependenciesModuleVisitor
, ProjectRuleSchema, newProjectRuleSchema, fromProjectRuleSchema, withModuleVisitor, withModuleContext, withModuleContextUsingContextCreator, withElmJsonProjectVisitor, withReadmeProjectVisitor, withDependenciesProjectVisitor, withFinalProjectEvaluation, withContextFromImportedModules
, ContextCreator, initContextCreator, withModuleName, withModuleNameNode, withFilePath, withModuleNameLookupTable, withModuleKey, withSourceCodeExtractor
, ContextCreator, initContextCreator, withModuleName, withModuleNameNode, withIsInSourceDirectories, withFilePath, withModuleNameLookupTable, withModuleKey, withSourceCodeExtractor
, Metadata, withMetadata, moduleNameFromMetadata, moduleNameNodeFromMetadata, isInSourceDirectories
, Error, error, errorWithFix, ModuleKey, errorForModule, errorForModuleWithFix, ElmJsonKey, errorForElmJson, errorForElmJsonWithFix, ReadmeKey, errorForReadme, errorForReadmeWithFix
, globalError, configurationError
Expand Down Expand Up @@ -224,7 +224,7 @@ first, as they are in practice a simpler version of project rules.
## Requesting more information
@docs ContextCreator, initContextCreator, withModuleName, withModuleNameNode, withFilePath, withModuleNameLookupTable, withModuleKey, withSourceCodeExtractor
@docs ContextCreator, initContextCreator, withModuleName, withModuleNameNode, withIsInSourceDirectories, withFilePath, withModuleNameLookupTable, withModuleKey, withSourceCodeExtractor
@docs Metadata, withMetadata, moduleNameFromMetadata, moduleNameNodeFromMetadata, isInSourceDirectories
Expand Down Expand Up @@ -5091,6 +5091,28 @@ withModuleNameNode (ContextCreator fn requestedData) =
requestedData


{-| Request to know whether the current module is in the "source-directories" of the project. You can use this information to
know whether the module is part of the tests or of the production code.
contextCreator : Rule.ContextCreator () Context
contextCreator =
Rule.initContextCreator
(\isInSourceDirectories () ->
{ isInSourceDirectories = isInSourceDirectories
-- ...other fields
}
)
|> Rule.withIsInSourceDirectories
-}
withIsInSourceDirectories : ContextCreator Bool (from -> to) -> ContextCreator from to
withIsInSourceDirectories (ContextCreator fn requestedData) =
ContextCreator
(\data -> fn data (isInSourceDirectories data.metadata))
requestedData


{-| Requests the module name lookup table for the types and functions inside a module.
When encountering a `Expression.FunctionOrValue ModuleName String` (among other nodes where we refer to a function or value),
Expand Down

0 comments on commit e1e522e

Please sign in to comment.