Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
February 2026
- 15 participants
- 31 messages
[Ann] BPatterns: The rewrite engine at your fingertips
by Denis Kudriashov
Hi all.
This is the release of *BPatterns* project, one of my old ideas on how to
make the rewrite engine usable for scripting.
As a quick reminder, here is an example of the classic rewrite-engine
matching syntax:
*``@receiver isNil ifTrue: ``@nilBlock*
In practice, patterns like this usually live inside string literalsâhidden
away in lint rules, deprecations, or refactorings.
To use them for *manual* code search or rewriting, you typically need a
dedicated tool.
Now compare that with the same pattern expressed as a *BPattern*:
*[ any isNil ifTrue: anyBlock ] bpattern*
No special syntax.
No magical tools.
Just pure Smalltalk.
You write a block.
You send #bpattern.
Youâre done.
Every editor understands it.
Every tool respects it.
Want to see where this pattern appears?
* [ any isNil ifTrue: anyBlock ] bpattern browseUsers*
[image: Screenshot 2026-01-31 at 12.16.19.png]
Want to rewrite all of them?
*[[ any isNil ifTrue: anyBlock ] -> [ any ifNil: anyBlock ]] brewrite
preview*
[image: Screenshot 2026-01-31 at 12.17.57.png]
Because *BPatterns are real Smalltalk code*, all development tools work out
of the box:
syntax highlighting, completion, navigation, refactorings.
This is the rewrite engine treated as a *first-class citizen*.
Not strings.
Not tooling sidecars.
Not just for advanced users.
*A rewrite engine you can actually use.*
* A rewrite engine at your fingertips.*
More details are in the blog post:
-
https://dionisiydk.blogspot.com/2026/02/bpatterns-rewrite-engine-with-small…
And follow the project on GitHub:
- https://github.com/dionisiydk/BPatterns
-
Feb. 2, 2026