All notable changes to this project will be documented in this file. Dates are displayed in UTC.
Generated by auto-changelog
.
- Breaking change: refactor: remove unused type generic
9b13d41
- Breaking change: fix: update pyo3 test
ff10e81
- fix: fix parallel thread output
be230ca
31 January 2024
- Breaking change: refactor: use more concise name
6a4a17c
30 January 2024
- Breaking change: refactor: remove IndentSensitive trait
#868
- feat: add support for rewriters
#855
- Breaking change: refactor: rename RuleWithConstraints to RuleCore
#862
- feat: move fix to SerializableRuleCore
#859
- Breaking change: refactor: remove MetaVarMatchers
beb6f50
- Breaking change: feat: move fixer to RuleCore
8a43a26
- Breaking change: refactor: move language out of SerializableRuleCore
c5e0dc8
- Breaking change: refactor: remove Content generic from Fixer
87bbf93
- Breaking change: feat: improve get_fixer signature
e629e0f
- Breaking change: refactor: make TemplateFix non-generic
0f462a5
- feat: migrate constraints to Rule
230ee9c
- refactor: move SerializableRuleCore to rule_core mod
3a303c1
12 January 2024
- feat: respect user's language extension option
#848
11 January 2024
- Breaking change: feat: change get_fixer to return Fixer
07c5363
- feat: add modify_range for tweaking fix range selection
eeb2f98
- feat: rename modify_range -> get_replace_range
54837df
5 January 2024
- feat: add support for bash and php
#639
- Breaking change: fix: more strict meta var parsing
13ad32b
- Breaking change: refactor: remove thrift language
26ecdf6
- fix(deps): update dependency @swc/core to v1.3.102
9ca9711
29 December 2023
- feat: add language globs to findInFiles in napi
#780
- Breaking change: fix: rename MetaVar for better naming
#805
- refactor: reorgnanize napi file structure
93f8577
- refactor: move file type related function out of lib
64e33a3
- feat: handle FileOption in LangOption::infer
7bc3efe
17 December 2023
- feat: support mutliple rules in -r and --inline-rules
#786
- refactor: unify run_worker and run_std_in
#785
- Breaking change: feat: --stdin now always awaits user input
#791
- feat: support --inline-rules option for sg scan
#396
- refactor: separate PathWorker and StdInWorker and Worker
ef3d8ad
- test: add test cases for sg scan
ed35c71
- fix: revert github action
a2f22d8
15 December 2023
- Breaking change: feat: reduce metavar_env string allocation
e1ab015
- Breaking change: fix: remove pattern as replacer
f6e4293
- Breaking change: feat: better metavar detection
e1ab18a
11 December 2023
- fix: use tempfile to remove vuln
#765
- chore(deps): update dependency typescript to v5.3.3
dbac17d
- chore(deps): update dependency @napi-rs/cli to v2.17.0
f2d32be
- chore(deps): update dependency prettier to v3.1.1
990f09b
10 December 2023
- feat: add getTransformed in napi
#551
- fix: load custom languages in new command
#751
- chore(deps): update dependency ava to v6
496eb9d
- feat: add support for Elixir
57edde1
- feat: rename fixer to TemplateFix
5b53ce0
2 December 2023
- fix: update line number color
#739
- test: add test case for running sg without arg
#748
- fix(deps): update dependency @babel/core to v7.23.5
21e404c
- fix(deps): update dependency @swc/core to v1.3.100
941bffe
- test: add tes for lang_globs
a16001c
30 November 2023
- feat: add languageGlobs
#601
- doc: import config reference link in error message
#736
- fix: report error for wrong config file
#736
- feat: support register alias language for extension override
#601
- chore(deps): update dependency typescript to v5.3.2
55a43bd
- fix: remove alias languages
1f26f62
- feat: support language globs
fafd27c
20 November 2023
- chore: add cargo fmt/clippy to CI pipeline
#698
- refactor: better reusability code for benchmark
775cee4
- feat: add async call
11cf0dd
- feat: support napi's parseAsync
ac78bc0
15 November 2023
- Breaking change: fix: use ansi by default on windows
#680
- fix: guard against wrong tree-sitter traversal
#713
- docs(binding/py): basic readme
2d39b9b
- fix(deps): update dependency @oxidation-compiler/napi to ^0.2.0
d64c09b
- feat: rename ast-grep-py
3e891c0
5 November 2023
- feat: support pyo3 TypedDict
#389
- chore(deps): update yarn to v4
818bcc2
- refactor: move node outside
40028b0
- chore: formatting
254e0de
15 October 2023
- fix: rewrite out of bound panic
#668
- chore: bump windows action version
#620
- fix: correct stopBy json schema
#666
- feat:
cargo xtask schema
for rule's JSON schema#665
- feat: add json schema
73d6299
- feat: initialize pyo3
810c454
- feat: update rules field doc
c9d611d
3 October 2023
- fix: fix word split after delimiter appear
b1bcd61
3 October 2023
- fix: correct indent for multiple MV in same line
#647
- Breaking change: feat: change string case interface
4b60f82
- feat: add string split
fe52289
- feat:change string case name and implement conversion
f073ee3
29 September 2023
- Add identifier convention conversions
#638
- Breaking change: feat: change API name toCase
fa50666
- fix: make code compiles
8f29f4f
- fix: remove unused func temporarily
710f76e
13 September 2023
- Implement string conversions described in #436 as a stand-alone chainable
convert
transformdc1e435
- Move structs around in transform.rs for better readability
95a9ab8
- fix(deps): update rust crate serde_json to 1.0.106
b41cfc0
9 September 2023
- chore(deps): update dependency windows to v2022
#623
- Breaking change: feat: interactive print one item a time
#444
- refactor: mvoe combined scan to config crate
#626
- test: add test for test case
#553
- Breaking change: feat: revamp diff printing schema
2b30111
- Breaking change: feat: accept multiple scanning
4860aa4
- refactor: move reporter out of verify.rs
58fb152
17 August 2023
- feat: support context lines in JSON mode
#585
- fix(cli): update typos and usage instructions
9fcf34f
- fix: lock maturin version
83608ac
- fix: allow newer maturin
3704f63
13 August 2023
- feat: Rename scan --rule-id → scan --filter
#596
- feat: improve completions command
#595
- Breaking change: feat: test -f now accepts regex
6465200
- Breaking change: fix: remove -f -F short form argument
d6d2c23
- feat: add option
scan --rule-id <rule_id>…
a424121
4 August 2023
- [feat] Make CLI reports a soft warning if query is invalid
#575
- feat: improve swift support
#573
- doc: add descriptions and links in npm page
3be3764
- feat: implement soft error reporting
c581c34
- fix: show at least three lines of context in diffing
ff61688
30 July 2023
- feat: support multiple JSON printing style
#561
- refactor: move output related arguments out
#539
- feat: improve readability of argument value
#546
- feat: use checked_ilog10 to reduce string allocation
#550
- feat: nicer line number printing color
#547
- refactor: move common input args out
a9bd29a
- refactor: reorganize utils files and add comments
19dacf8
- feat(test): add test case filter for sg test
52f51e9
27 July 2023
- feat: add before/after context
#464
- test: move test out and fix heading never
67037aa
- test: add json print test
374db3b
- fix: fix display context
08a52d1
22 July 2023
- feat(language): add initial support for JSON
#522
- test: add lua language test
#519
- feat: Support meta-variable in ERROR
#526
- infra: add napi benckmark
#442
- feat: support GitHub format
#499
- fix: tweak style
6ec490b
- chore(deps): update yarn to v3.6.1
23a2684
- fix(deps): update dependency @oxidation-compiler/napi to ^0.1.0
492d5c8
16 July 2023
- fix: fix wrong text
#517
- feat: support ruby language
#518
- refactor: use macro to unify language impl
#516
- fix: fix kotlin grammar
e7faadb
- test: add test for diff printing
5330149
- fix(deps): update rust crate dashmap to 5.5.0
05282aa
15 July 2023
- Breaking change: feat: unify
--accept-all
and--update-snapshots
to--update-all
#513
- Breaking change: infra: add breaking change in changelog
#514
- Breaking change: feat: change line separator to colon
:
in CLI output#512
- fix: tsx should only discover *.tsx, ts discover only *.ts
#502
- refactor: refactor path to parallelwalk
d697aad
- fix(deps): update rust crate globset to 0.4.11
3da277f
- test: add test for
sg test
command arg parsing2735057
10 July 2023
- feat: add changelog to tag release
#498
- feat: add changelog to release
#498
- napi: add napi declaration
e897d93
- feat: change
--no-stdin
to--stdin
1e26573
- fix: update napi typing doc
59dfcb7
9 July 2023
- feat: add getRoot for SgNode
#497
- feat: add option to disable a rule
#489
- feat: add pattern fixed string optimizer
#349
- feat: add support for --no-stdin
#490
- feat: change language implementations
7525927
- test: add test for sg scan with off-rule
0eeb99d
- fix: change returning type
10e676b
29 June 2023
- feat: add supported languages in help string
#482
- feat: add Scala support
84492b9
- feat: improve language's crate's organization
429aa35
- feat: Use existing language FromStr impl when Deserializing
ad0e9a6
25 June 2023
- feat: support scan from stdin
#397
- feat: support search code from stdin
#397
- doc: add pip install option
#465
- feat: support stdin as input
2e8f0ef
- fix(deps): update rust crate toml_edit to 0.19.11
f0facff
- fix: remove redundant line number highlighting
aaae3a3
23 June 2023
19 June 2023
19 June 2023
- feat: support check multivar pattern equality
#460
- feat(language): add initial support for C++
9315571
- doc: add docs string for all core modules
e0214f7
- test: add test for transform
100f081
17 June 2023
11 June 2023
- chore: move test cases location
3c0276e
- feat: add support for transform
47feee1
- refactor: move get text to meta_var
5692c26
6 June 2023
6 June 2023
- fix: reindent back into src code
a522875
- perf: remove all possible allocations
45558a5
- fix: use Cow to otpimize allocation
b4c85b3
5 June 2023
- feat: add indentation sensitive replacement
#394
- fix: use ubuntu20.04 instead of latest
#416
- refactor: refine replacer modules
79dc46b
- test: add root replacer test back
99aa031
- feat: add design notes for indentation sensitive fixer
9c8cc05
29 May 2023
- wildcard and spread rust tests
#415
- fix: fix multi variate capturing hangs
#411
- feat: smarter matching algorithm
#374
- chore(deps): update dependency ava to v5.3.0
67e8ec1
- test: add test for match end
3e61667
- chore(deps): update rust crate criterion to 0.5
3579862
25 May 2023
- fix: bump tree-sitter-facade version and support next_all on web
a48ba62
- fix: update tree-sitter-facade version
8e44f6a
- chore: update changelog
78f751a
24 May 2023
24 May 2023
- fix: implement generic Doc replacer for pattern
#405
- fix: use get_range instead as_slice to handle byte_offset and underlying arry size
#400
- chore: bump version
998691d
- feat: support generic new Pattern/Root from str
36d91e7
- chore: use workspace package info
960fa8d
18 May 2023
- perf: optimize relational rule's stopBy: neighbor
#358
- perf: optimize node's next_all by tree-cursor
#358
- test: add test for node operators
ac38cb8
- refactor: add comments for ansi link
d9ebbe5
- test: add test for precedes/follows serialization
1d7d8ff
13 May 2023
- docs: fix readme typo
#366
- chore: add cargo build before git tag
#367
- 0.5.2 bump version
54ba0a7
- feat: add go setting
a1d579b
- fix: fix fmt and clippy
efab639
12 May 2023
12 May 2023
- feat: provide additional binary name
ast-grep
#361
- fix: support custom lang for sg run
#357
- feat: support dynamic lib loading
#347
- feat: replace SupportLanguage with SgLang
f6014f9
- Used result in test code to remove unwrap
07bcf7e
- feat: improve implementation of dynamic lang
3757887
23 April 2023
23 April 2023
- feat: reduce MetaVarEnv cloning in any
#217
- fix: support correct row/col offset for napi!
#336
- refactor: break down napi modules
67062a6
- feat: migrate node
5e15d8d
- feat: change ts_parser to source
a3bef23
6 April 2023
- infra: add criterion benchmark
#141
- feat: Add edit option for rules without fix
#297
- feat: optimize readability of test output
#293
- test: add integration test for run
#292
- refactor: move out lib and main
a95c19e
- fix(deps): update rust crate clap to 4.2.1
b3fb9c9
- feat: add base_dir for new command
2a75a0a
11 March 2023
- fix: find_rule should also find contingent rule
#286
- feat: create new project/util/rule command
#266
- feat: add write sgconfig
750df87
- feat: rename find_config to find_rules
8e5a181
- 0.3.2 bump version
4f41f46
28 February 2023
- fix: fix panic when matching root node
#275
- 0.3.1 bump version
703467e
- fix: fix napi error
3d305a6
- chore: bump version
a25bef1
28 February 2023
- fix: add is_named_leaf
#276
- fix: report indirect cyclic dependencies
#272
- fix: register global rules by dependent order
#269
- [feature] register util rules by their topological sort order
#270
- feat: change stopBy default value to neighbor
#265
- feat: add global utils
#250
- feat: add thrift support
#255
- fix: avoid strong reference in ReferentRule
#253
- refactor: factor out deserialize rule
a6207ae
- refactor: move stop_by to separate file
398c53d
- refactor: reorganize rule and serialization
37a303f
8 February 2023
- feat: add maybe to differentiate null/missing/value
#241
- feat: add error exit code
#238
- refactor: disable color by default if output is not tty
#239
- feat: unify immediate and until to stopBy
ff69866
- 0.2.6 bump version
136a75f
- feat: support field in Inside
c503f0f
4 February 2023
- feat: improve napi error message
#227
- feat: add reference
303ec8c
- feat: add find_in_files
07735df
- feat: add napi findInFiles
3f4e847
29 January 2023
- perf: use potential_kinds for more scenarios
#221
- refactor: remove var_matchers from MetaVarEnv
#218
- refactor: remove get meta_var_matchers in Matcher
#218
- refactor: split scan and run
bf1e7e2
- Revert "perf: use potential_kinds for more scenarios"
c264e32
- refactor: remove duplicate MatchUnit/filter_file
ab2222e
27 January 2023
- feat: make inside util inclusive
#205
- feat: support search multiple paths
#207
- fix: use return number for napi
#205
- 0.2.3 bump version
753e972
- refactor: use stop_by for all relational rule
279edeb
- refactor: cleaner StopBy matching
974a307
25 January 2023
24 January 2023
24 January 2023
- feat: support multi node pattern
#199
- [refactor] Extract a match node iterator function in matcher_tree
#199
- feat: print out serialized rule message
#200
- fix: fix nested leaf match crash in non-entrant traversal
#197
- feat: add Dart support
#172
- fix: fix wrong line number in diff
#192
- feat: support inclusive until
#191
- feat: allow shorthands to combine all rule kinds
51f72db
- refactor: refactor deser for better error message
f28f964
- 0.2.0 bump version
e580932
16 January 2023
- fix: revert write env for unmatched pattern
#190
- fix: fix Has relation
#188
- feat: add rule info to config fixer
#122
- refactor: deduplicate json printer code
#185
- feat: add regex matcher
0a40ed2
- 0.1.18 bump version
bfdde22
- feat: add debugging assert
5b17e8b
15 January 2023
- feat: add error handling for parsing RuleConfig
#182
- feat: better error handling in constraints config
#181
- feat: improve error handling in config
#181
- 0.1.17 bump version
0a638f1
- feat: add try_new for pattern creation
a9510d2
- refactor: cleanup public API
875ef1e
14 January 2023
- fix(deps): update rust crate ignore to 0.4.19
#165
- fix(deps): update rust crate globset to 0.4.10
#164
- feat: support --no-ignore for scan/test
#162
- fix: fix two adjacent sticking but not overlapping matches
#171
- feat: add source
1a23b6a
- 0.1.16 bump version
8cc6765
- feat: add
adopt
method to safely create Node6ea01ae
8 January 2023
- feat: make tree-sitter-* parsers optional dependencies
#160
- 0.1.15 bump version
fa56cf1
- refactor: use macro to abstract away repetitive lang method impl
fb58b15
- feat: edit cargo toml
1611af5
4 January 2023
- chore(deps): update dependency @napi-rs/cli to v2.14.0
#149
- fix(deps): update rust crate num_cpus to 1.15.0
#147
- fix(deps): update rust crate clap to 4.0.32
#145
- chore(deps): update robinraju/release-downloader action to v1.7
#146
- fix(deps): update rust crate serde_json to 1.0.91
#136
- fix(deps): update rust crate serde_yaml to 0.9.16
#137
- fix(deps): update rust crate serde_yaml to 0.9.15
#116
- feat: merge adjacent matches in match printing
#134
- feat: refactor printers to accept output destination
#153
- feat: add traversal mod for sg-core
#152
- [refactor] simplify Matcher trait
#151
- feat: move interactive printer
#135
- feat: implement better heading show
#150
- test: add test for command arg parsing
#128
- feat: support run only one rule for scanning
#139
- feat: support color control on run/scan output
#131
- fix: fix stackoverflow in find_node_impl
#148
- feat: add labels and env info to json output
#121
- refactor: abstract out scan as worker
#138
- refactor: use mpsc for non-interactive output
#125
- feature: extract out a language crate
#126
- refactor: remove some inner call
#3
- refactor: extract out two printers
9328cd7
- feat: fix interactive print rule
17fbaf0
- feat: migrate run with specific lang
ea46263
18 December 2022
- fix(deps): update rust crate serde_json to 1.0.90
#115
- Update dependency @napi-rs/cli to v2.13.3
#114
- feat: implement proper json output
0c031c1
- chore: add changelog
d6fc114
- feat: add json output support
f33e39f
15 December 2022
- Update dependency @napi-rs/cli to v2.13.2
#103
- Update dependency typescript to v4.9.4
#104
- Update Rust crate tree-sitter-java to 0.20.0
#105
- Update dependency chalk to v5.2.0
#106
- feat: use better color output for readability
#111
- feat: support version and help argument
#110
- fix: skip extremely large file
#109
- 0.1.12 bump version
5ea05eb
- fix: use
get_matcher
instead of get_rule in verify4b4ea8e
- fix: better large file detection
293a5c8
11 December 2022
7 December 2022
- Update Rust crate clap to 4.0.29
#102
- Update Rust crate serde_json to 1.0.89
#101
- Update Rust crate clap to 4.0.28
#100
- Update dependency @napi-rs/cli to v2.13.0
#99
- Update dependency ava to v5.1.0
#97
- Update dependency typescript to v4.9.3
#98
- Update Rust crate similar to 2.2.1
#95
- Update dependency @napi-rs/cli to v2.12.1
#92
- Update Rust crate clap to 4.0.23
#91
- chore: break down matcher to smaller files and add potential kind
74e5e7d
- feat: improve contingent rule handling
9c500af
- feat: add augmented rules
c7dc0fe
5 November 2022
- Update Rust crate regex to 1.7.0
#88
- feat: add contingent rules with tests
#82
- Update Rust crate clap to 4.0.19
#83
- Update Rust crate tree-sitter-lua to 0.0.14
#84
- Update Rust crate num_cpus to 1.14.0
#86
- Update Rust crate tree-sitter-rust to 0.20.3
#85
- 0.1.9 bump version
0ddb562
31 October 2022
- Update robinraju/release-downloader action to v1.6
#81
- refactor: move relational rule outside
4c5321d
- test: add test for inside/has
428dd62
- fix: fix precedes/follows operator
020bb3c
27 October 2022
- Update dependency ava to v5
#77
- Update Rust crate serde_yaml to 0.9.14
#76
- Update Rust crate clap to 4.0.18
#74
- Update Rust crate serde_json to 1.0.87
#75
- Update dependency chalk to v5.1.2
#73
- Update dependency @napi-rs/cli to v2.12.0
#66
- Update Rust crate serde_json to 1.0.86
#70
- Update Rust crate tree-sitter-swift to 0.3.4
#69
- Update dependency chalk to v5.1.0
#67
- Revert "Update dependency @swc-node/register to v1.5.2 (#62)"
#64
- 0.1.6 fix napi
d2501ed
- [feat] refine test command
3802816
- [feat] add test command
e45039e
3 October 2022
- Update dependency typescript to v4.8.4
#63
- Update dependency @swc-node/register to v1.5.2
#62
- fix(52): normalize file path output in command line
#55
- [docs] add interactive argument explanation
#59
- [chore] migrate github pages
cc38e5a
- [feat] better error reporting
8e94d1e
- [feat] add lsp fixing
9f3754b
21 September 2022
- [feat] more thorough napi support
6b2bfe0
- 0.1.4 remove optional dep
84b0e59
- [feat] add support for rule matching in napi
78dbe99
19 September 2022
19 September 2022
- Update dependency vite to v3.1.2
#46
- Update dependency @algolia/client-search to v4.14.2
#47
- Update Rust crate tree-sitter-lua to 0.0.13
#44
- Update Rust crate tree-sitter-swift to 0.3.3
#45
- Update Rust crate clap to 3.2.22
#42
- Pin dependencies
#41
- Update Rust crate serde_yaml to 0.9.13
#43
- [fix] reimplement language
Python
to overrideexpando_char
#40
- Update dependency vue to v3.2.39
#34
- Update dependency vue-tsc to v0.40.13
#35
- Update dependency @vitejs/plugin-vue to v3.1.0
#36
- Update dependency vite to v3.1.0
#37
- Update dependency detect-libc to v2
#39
- Update actions/checkout action to v3
#38
- Update dependency typescript to v4.8.3
#33
- Pin dependency detect-libc to v1.0.3
#32
- [feat] use vitepress to host docs
ad09d42
- [feat] add YAML config to playground
e54b244
- [feat] improve styling
e8d4f0d
6 September 2022
- Update dependency vue-tsc to v0.40.6
#29
- Update dependency web-tree-sitter to v0.20.7
#28
- Update Rust crate clap to 3.2.20
#27
- Update Rust crate serde_yaml to 0.9.11
#18
- Update dependency vue-tsc to v0.40.5
#26
- Update Rust crate clap to 3.2.19
#24
- Update Rust crate dashmap to 5.4.0
#25
- Pin dependencies
#20
- Update dependency vue to v3.2.38
#23
- Update Rust crate tree-sitter-swift to 0.3.2
#16
- Update Rust crate similar to 2.2.0
#19
- Update Rust crate tree-sitter-lua to 0.0.12
#14
- Update Rust crate tree-sitter-swift to 0.3.1
#15
- Update Rust crate clap to 3.2.17
#10
- Update Rust crate tree-sitter-c to 0.20.2
#13
- Update Rust crate console_error_panic_hook to 0.1.7
#12
- Pin dependencies
#9
- Configure Renovate
#1
- [fix] Add Rust exmaple test, fix #6
#6
- [feat] add napi support
532f055
- [feat]: add csharp
9a14a4b
- [fix] update napi
ae6d5f1
23 August 2022
5 September 2022
- Update dependency vue-tsc to v0.40.6
#29
- Update dependency web-tree-sitter to v0.20.7
#28
- Update Rust crate clap to 3.2.20
#27
- Update Rust crate serde_yaml to 0.9.11
#18
- Update dependency vue-tsc to v0.40.5
#26
- Update Rust crate clap to 3.2.19
#24
- Update Rust crate dashmap to 5.4.0
#25
- Pin dependencies
#20
- Update dependency vue to v3.2.38
#23
- Update Rust crate tree-sitter-swift to 0.3.2
#16
- Update Rust crate similar to 2.2.0
#19
- Update Rust crate tree-sitter-lua to 0.0.12
#14
- Update Rust crate tree-sitter-swift to 0.3.1
#15
- Update Rust crate clap to 3.2.17
#10
- Update Rust crate tree-sitter-c to 0.20.2
#13
- Update Rust crate console_error_panic_hook to 0.1.7
#12
- Pin dependencies
#9
- Configure Renovate
#1
- fix(playground): color in dark mode
#2
- [fix] Add Rust exmaple test, fix #6
#6
- [feat] add napi support
532f055
- initial commit
94db982
- [feat] initial wasm research
041cc64