Packages
sourceror
1.12.2
1.12.2
1.12.1
1.12.0
1.11.0
1.10.1
1.10.0
1.9.0
1.8.2
1.8.0
1.7.1
1.7.0
1.6.0
1.5.0
1.4.0
1.3.0
1.2.1
1.2.0
1.1.0
1.0.3
1.0.2
1.0.1
1.0.0
0.14.1
0.14.0
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.2
0.11.1
0.11.0
0.10.0
0.9.0
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.2.2
Utilities to work with Elixir source code.
Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog for Sourceror v1.0
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.12.2](https://github.com/doorgan/sourceror/compare/v1.12.1...v1.12.2) (2026-06-16)
### Bug Fixes
* make get_start_position return the default for nodes without metadata ([#210](https://github.com/doorgan/sourceror/issues/210)) ([df0cf31](https://github.com/doorgan/sourceror/commit/df0cf31770d0f2756c14d10f03a62d7f6fb6207c))
## [1.12.1](https://github.com/doorgan/sourceror/compare/v1.12.0...v1.12.1) (2026-06-16)
### Bug Fixes
* clear all sourceror compilation warnings ([#208](https://github.com/doorgan/sourceror/issues/208)) ([f5bcdf9](https://github.com/doorgan/sourceror/commit/f5bcdf9a0d6fb38bf3735f40fead7f046dfc4b37))
### Performance Improvements
* make compare_positions extract metadata once ([#206](https://github.com/doorgan/sourceror/issues/206)) ([7014665](https://github.com/doorgan/sourceror/commit/7014665d95310a02802d694d6771e470444126c0))
## [1.12.0](https://github.com/doorgan/sourceror/compare/v1.11.0...v1.12.0) (2026-03-06)
### Features
* add `Zipper.path_to_ancestor/2` and `Zipper.follow_path/2` ([#202](https://github.com/doorgan/sourceror/issues/202)) ([1f94431](https://github.com/doorgan/sourceror/commit/1f94431509e29068f7b4271ed20b920edf253855))
## [1.11.0](https://github.com/doorgan/sourceror/compare/v1.10.1...v1.11.0) (2026-02-20)
### Features
* allow removing root nodes in traverse_while ([#196](https://github.com/doorgan/sourceror/issues/196)) ([49f5c18](https://github.com/doorgan/sourceror/commit/49f5c1860c4ff0870cf9105d207f2a210e5ba71e))
* port Igniter.Code functions ([#198](https://github.com/doorgan/sourceror/issues/198)) ([e3cc41d](https://github.com/doorgan/sourceror/commit/e3cc41d48eb3f6647f89c09391cdb8861023af67))
## v1.10.1 (2026-01-26)
- [Sourceror] Fixed range calculation for charlists with concatenations.
## v1.10.0 (2025-05-08)
- [Sourceror.FastZipper] Added experimental high performance API for zippers.
## v1.9.0 (2025-04-11)
### 1. Enhancements
- [Sourceror.Zippper] Added `at_range/2` to jump to a zipper within the specified
range
### 2. Bug fixes
- [Sourceror] Fixed range calculations for anonymous function (`fn`) nodes
## v1.8.2 (2025-04-3)
### 1. Enchancements
- [Sourceror] Allow passing `:formatter` to `to_string/2` to perform custom
formatting.
## v1.8.0 (2025-03-31)
### 1. Enhancements
- [Sourceror] Allow passing `:line` and `:column` to `parse_string/2` and
`parse_string!/2`
## v1.7.1 (2024-11-1)
### 1. Bug fixes
- [Sourceror.Zipper] Fixed `search_pattern/2` and `move_to_cursor/2` returning false
positives in the presence of `__cursor__()`
## v1.7.0 (2024-10-29)
### 1. Enhancements
- [Sourceror.Zipper] Added `supertree/1`
- [Sourceror.Zipper] Changed most functions to accept and "pass-through" `nil` zippers
instead of crashing to allow piping those functions.
- [Sourceror.Zipper] Show `#subtree root` when inspecting subtree zippers
## v1.6.0 (2024-08-12)
### 1. Enhancements
- [Sourceror.Zipper] Added `find_all/3`
## v1.5.0 (2024-07-23)
### 1. Enchancements
- [Sourceror] Added `strip_meta/1`
- [Sourceror.Zipper] Added `search_pattern/2`
- [Sourceror.Zipper] Added `at/2`
- [Sourceror.Zipper] Added `find_value/3`
- [Sourceror.Zipper] Allow updating the outer tree with `within/2`
## v1.4.0 (2024-06-24)
### 1. Enhancements
- [Sourceror.Zipper] Added `move_to_cursor/2` to move to the next node that matches a pattern
### 2. Bug fixes
- [Sourceror] Fixed `get_range` for qualified double calls like `Mod.fun()()`
## v1.3.0 (2024-06-14)
### 1. Enhancements
- [Sourceror] Converted patch and range maps into `Patch` and `Range` structs
- [Sourceror.Zipper] Added `within/2`
last elemetn in a block
- [Sourceror.Zipper] Add `topmost` and `topmost_root`
### 2. Bug fixes
- [Sourceror] Fix range calculations for heredocs
- [Sourceror.Zipper] Fixed `remove/1` producing invalid AST when removing the
- [Sourceror.Zipper] Fixed match on empty children list in `down/1`
## v1.2.1 (2024-05-23)
### 1. Bug fixes
- [Sourceror] Fixed line/column metadata for map literals.
## v1.2.0 (2024-05-22)
### 1. Enhancements
- [Sourceror.Zipper] Added `subtree/1` to get a zipper for the current node.
## v1.1.0 (2024-05-09)
### 1. Bug fixes
- [Sourceror] Fix trailing comments being misplaced
## v1.0.3 (2024-04-12)
### 1. Bug fixes
- [Sourceror] Fix `Sourceror.get_range` for interpolation nodes inside
strings and charlists
## v1.0.2 (2024-03-13)
### 1. Bug fixes
- [Sourceror] Fix `Sourceror.get_range` for binaries
- [Sourceror] Fix `Sourceror.get_range` for `do`/`end` blocks that have
`end_of_expression` metadata
## v1.0.1 (2024-01-04)
### 1. Bug fixes
- [Sourceror] Fix `Sourceror.get_range` returning incorrect ranges for
anonymous functions with empty bodies
## v1.0.0 (2023-12-28)
### 1. Bug fixes
- [Sourceror] Add support for Elixir 1.16
## v0.13.0 (2023-08-23)
The changelog for v0.14 releases can be found [in the 0.14
branch](https://github.com/doorgan/sourceror/blob/v0.14/CHANGELOG.md).