Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>purescript-cst-linterNew to Visual Studio Code? Get it now.
purescript-cst-linter

purescript-cst-linter

Devshram

|
3 installs
| (0) | Free
A simple library to run linting ps code easily.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

PureScript Linter

A configurable linting tool for PureScript codebases that helps maintain code quality and consistency.

Installation

npm install --save-dev purescript-linter
# or
spago install purescript-linter

Configuration

Create a .pslintrc.json file in your project root:

{
  "files": ["src/**/*.purs"],
  "ignore": [],
  "rules": {
    "mandatory-signature": "error",
    "no-array-jsx": null,
    "no-class-constraint": null,
    "dom-syntax-safety": { 
      "exprApp": []
    }
  }
}

Available Rules

mandatory-signature

Enforces that all top-level declarations have type signatures.

  • Options:
    • "error": Treats violations as errors
    • "warn": Treats violations as warnings
    • null: Disables the rule

no-array-jsx

Prevents accidental use of array syntax in JSX contexts.

  • Options:
    • "error": Treats violations as errors
    • "warn": Treats violations as warnings
    • null: Disables the rule

no-class-constraint

Discourages the use of class constraints in type signatures when not necessary.

  • Options:
    • "error": Treats violations as errors
    • "warn": Treats violations as warnings
    • null: Disables the rule

dom-syntax-safety

Enforces safe DOM manipulation patterns.

  • Options:
    • "error": Treats violations as errors
    • "warn": Treats violations as warnings
    • A configuration object with:
      • exprApp: Array of expression application configurations:
        {
          "name": "functionName",
          "syntax": ["any", "string", "int", "array"],
          "strict": true
        }
        
    • null: Disables the rule

Usage

# Run the linter on your codebase
pslint

# Check specific files
pslint src/Main.purs src/Types.purs

# Show help
pslint --help

Configuration Schema

The linter configuration uses the following PureScript types:

type PSLintConfig = 
  { files :: Array String
  , ignore :: Array String
  , rules :: 
    { "mandatory-signature" :: Maybe (RulesConfig {})
    , "no-array-jsx" :: Maybe (RulesConfig { exprApp :: Maybe (Array String)})
    , "no-class-constraint" :: Maybe (RulesConfig {})
    , "dom-syntax-safety" :: Maybe (RulesConfig DomSyntaxConfig)
    } 
  }

data RulesConfig a = Error | Warn | Config a

type DomSyntaxConfig = 
  { exprApp :: Array 
    { name :: String
    , syntax :: Array Syntax
    , strict :: Maybe Boolean 
    } 
  }

Extending the Linter

You can extend the linter with custom rules by implementing the LinterRule type class.

See the documentation for more details on creating custom rules for your specific codebase needs.

Contributing

Contributions are welcome! Please see our contribution guidelines for more information.

License

This project is licensed under the MIT License - see the LICENSE file for details.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft