Package

purescript-whine-core

Repository
collegevine/purescript-whine
License
MIT
Uploaded by
pacchettibotti
Published on
2025-01-09T22:40:22Z

A work in progress, this project is a PureScript linter based on pluggable rules and powerful configuration via an external config file, allowing to include/exclude specific files (or globs) and enable/disable/configure specific rules. Plus, escape hatches for one-off opt-outs when you really need it. Inspired by Rubocop.

At the moment, the UX is minimal:

  1. The program takes a set of globs as command-line parameters, e.g. node /where/is/whine.js ./src/**/*.purs
    • The plan is to properly parse command-line parameters to allow for switches.
  2. The set of rules and their IDs are specified in program code, in the Main module.
    • This is likely to stay that way for a long time, but the dream is to allow pluggable rule packages, implemented via the upcoming spago script feature.
  3. The output is a list of rule violations found + non-zero exit code if there are any violations.
    • No particular plans for this one, but one could envision reporting violations as JSON or something. Would be handy to implement a VSCode extension.
Modules
Vscode.Client
Vscode.Client.Configuration
Vscode.Client.Executable
Vscode.Client.FileSystemWatcher
Vscode.Client.Workspace
Vscode.Context
Vscode.Events
Vscode.Server.Capabilities
Vscode.Server.Connection
Vscode.Server.Diagnostic
Vscode.Server.TextDocuments
Whine
Whine.Core.CaseBranchIndentation
Whine.Core.CommaFirstArrays
Whine.Core.UndesirableModules
Whine.Core.WhineRules
Whine.Log
Whine.Muting
Whine.Prelude
Whine.Print
Whine.Runner
Whine.Runner.Cli
Whine.Runner.Config
Whine.Runner.FS
Whine.Runner.Glob
Whine.Runner.LanguageServer
Whine.Runner.PackageVersion
Whine.Runner.Prelude
Whine.Runner.Yaml
Whine.Types
WhineM
Dependencies