{"id":41805,"library":"pursfmt","title":"pursfmt","description":"Configurable syntax formatter for PureScript. Current stable version is 0.17.0. Uses a pre-baked operator precedence table for correct formatting without full codebase parsing. Key differentiator: editor integrations (Spacemacs, Vim, VS Code) and CI check commands. Compared to purty, it offers more configuration options and supports Nix.","status":"active","version":"0.17.0","language":"javascript","source_language":"en","source_url":"https://github.com/ad-si/pursfmt","tags":["javascript","PureScript","formatter","format"],"install":[{"cmd":"npm install pursfmt","lang":"bash","label":"npm"},{"cmd":"yarn add pursfmt","lang":"bash","label":"yarn"},{"cmd":"pnpm add pursfmt","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"pursfmt is primarily a CLI tool; programmatic API may not be intended. Use the CLI via npx or local install.","wrong":"const pursfmt = require('pursfmt')","symbol":"main","correct":"import pursfmt from 'pursfmt'"}],"quickstart":{"code":"npm install --save-dev pursfmt\nnpx pursfmt format-in-place \"src/**/*.purs\"\nnpx pursfmt generate-config --indent 2 --width 80 --arrow-last\nnpx pursfmt check \"src/**/*.purs\"","lang":"javascript","description":"Install pursfmt as a dev dependency, format PureScript files in-place, generate a config file, and verify files are formatted in CI."},"warnings":[{"fix":"Install as a devDependency per project: npm install --save-dev pursfmt","message":"Do not install globally; different projects may need different versions.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Generate a custom operator table: spago sources | xargs pursfmt generate-operators > .pursfmtoperators","message":"Operator precedence table may not cover all operators; custom table generation needed for contrib or custom operators.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use either config file or CLI arguments consistently.","message":"Config file (.pursfmt.yaml) overrides CLI arguments; mixing can lead to unexpected behavior.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"search_vec":"'0.17.0':11 'bake':16 'check':37 'ci':36 'code':34 'codebas':25 'command':38 'compar':39 'configur':2,45 'correct':21 'current':7 'differenti':28 'editor':29 'format':22,53 'formatt':4,52 'full':24 'integr':30 'javascript':50 'key':27 'nix':49 'offer':43 'oper':17 'option':46 'pars':26 'pre':15 'pre-bak':14 'preced':18 'purescript':6,51 'pursfmt':1 'purti':41 'spacemac':31 'stabl':8 'support':48 'syntax':3 'tabl':19 'use':12 'version':9 'vim':32 'vs':33 'without':23","created_at":"2026-06-04T18:54:11.465247+00:00","updated_at":"2026-06-04T18:54:11.465247+00:00","problems":[{"fix":"Ensure installed locally: npx pursfmt ...","cause":"pursfmt not installed or not in PATH (global install missing).","error":"pursfmt: command not found"},{"fix":"pursfmt is CLI-only; use npx or run via scripts.","cause":"Node.js cannot load the module when using programmatic API incorrectly.","error":"Error: Cannot find module 'pursfmt'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/ad-si/pursfmt#readme","github":"https://github.com/ad-si/pursfmt","docs":null,"changelog":null,"pypi":null,"npm":"pursfmt","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}