{"slug": "parinfer", "name": "Parinfer", "category": "editors", "category_name": "Editors and IDEs", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.77, "rising": 0.35, "first": "2026-06-02", "latest": "2026-08-13", "why": "I use Parinfer, which allows me to edit Janet as if it was an indentation-based language.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I use Parinfer, which allows me to edit Janet as if it was an indentation-based language.", "kind": "", "icon": false, "domain": null, "github_repo": null, "official_url": "https://shaunlebron.github.io/parinfer/", "pricing": "", "aliases": ["Parinfer"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 774114496, "item_id": 48382156, "url": "https://news.ycombinator.com/item?id=48382156", "by": "pgt", "date": "2026-06-03", "stance": "recommend", "quote": "Paredit / Parinfer ruined other languages for me.", "excerpt": "> \"I do wish there were an easier way to move in the ]}]})))}-ness of block ends though.\" If he means navigating the AST, there is Parinfer: https://shaunlebron.github.io/parinfer/ Paredit / Parinfer ruined other languages for me. It lets you navigate up/down/in/out of the Clojure AST with keyboard commands and mutate those expressions, e.g. \"Split\" will split open the current data structure you're in: `(a| b)` =Spli", "context": "", "use_case": "Structural Lisp editing", "switched_from": "", "story": "My thoughts after using Clojure for about a month"}, {"id": 773898576, "item_id": 48368661, "url": "https://news.ycombinator.com/item?id=48368661", "by": "xigoi", "date": "2026-06-02", "stance": "recommend", "quote": "I use Parinfer, which allows me to edit Janet as if it was an indentation-based language.", "excerpt": "> Also my main objection to Lisps is still the horrible bracket syntax. Yes it's unambiguous and easy to parse, but it's HORRIBLE to read and edit. I use Parinfer, which allows me to edit Janet as if it was an indentation-based language.", "context": "", "use_case": "Editing Lisp code", "switched_from": "", "story": "Why Janet?"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["structural lisp editing", "editing lisp code"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49269429", "title": "Why vibe code in Common Lisp?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48375393", "title": "My thoughts after using Clojure for about a month", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48367907", "title": "Why Janet?", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {"recommend": 2}, "2026-07": {}, "2026-08": {"recommend": 1}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 788565554, "item_id": 49285347, "url": "https://news.ycombinator.com/item?id=49285347", "by": "drob518", "date": "2026-08-13", "stance": "recommend", "quote": "", "excerpt": "In the Clojure world, there is a small utility that is pretty popular called clj_paren_repair (part of clojure-mcp-light: https://github.com/bhauman/clojure-mcp-light/blob/main/src/clojure_mcp_light/paren_repair.clj) that uses parinfer\u2019s indentation algorithm to help repair out of whack Lisp parens (and brackets and braces for Clojure). It\u2019s easy to expose this as a skill or tool. I had Pi create me a tool in 60 seco", "context": "", "use_case": "", "switched_from": "", "story": "Why vibe code in Common Lisp?"}, {"id": 774114496, "item_id": 48382156, "url": "https://news.ycombinator.com/item?id=48382156", "by": "pgt", "date": "2026-06-03", "stance": "recommend", "quote": "Paredit / Parinfer ruined other languages for me.", "excerpt": "> \"I do wish there were an easier way to move in the ]}]})))}-ness of block ends though.\" If he means navigating the AST, there is Parinfer: https://shaunlebron.github.io/parinfer/ Paredit / Parinfer ruined other languages for me. It lets you navigate up/down/in/out of the Clojure AST with keyboard commands and mutate those expressions, e.g. \"Split\" will split open the current data structure you're in: `(a| b)` =Spli", "context": "", "use_case": "Structural Lisp editing", "switched_from": "", "story": "My thoughts after using Clojure for about a month"}, {"id": 773898576, "item_id": 48368661, "url": "https://news.ycombinator.com/item?id=48368661", "by": "xigoi", "date": "2026-06-02", "stance": "recommend", "quote": "I use Parinfer, which allows me to edit Janet as if it was an indentation-based language.", "excerpt": "> Also my main objection to Lisps is still the horrible bracket syntax. Yes it's unambiguous and easy to parse, but it's HORRIBLE to read and edit. I use Parinfer, which allows me to edit Janet as if it was an indentation-based language.", "context": "", "use_case": "Editing Lisp code", "switched_from": "", "story": "Why Janet?"}]}