- Do not restrict activesupport version
- Raise error to notify user instance method should not be called in rewriter
- Remove
save_data
andload_data
dsls
- Update
parser_node_ext
to 1.4.2 - Update
prism_ext
to 0.4.2 - Update
syntax_tree_ext
to 0.9.2 - Update
node_query
to 1.15.4
- Allow to parse ruby version
ruby-3.3.0\n
- Update
node_visitor
to 1.1.0
- Remove
add_leading_spaces
method - Add
indent
anddedent
helper methods
- Fix
gem_spec_spec
test failures - Use
NodeMutation
to fetch file line
- Do not raise error for prism
- Update
node_query
to 1.15.3
- Rescue Prism and SyntaxTree parser error
- Unlock activesupport version
- Add instance variable
Instance#current_parser
- Add callback and visit ast nodes
- Eval snippet on gist.github.com
- Update
prism_ext
to 0.3.2 - Update
syntax_tree_ext
to 0.8.2 - Update
parser_node_ext
to 1.3.2 - Remove
reject_keys_from_hash
helper method
- Explicitly read file as UTF-8 encoding
- Update
node_mutation
to 1.24.4
- Fix
wrap
dsl comments - Update
prism_ext
to 0.3.1
- Update
prism_ext
to 0.3.0 - Update
syntax_tree_ext
to 0.8.1 - Update
parser_node_ext
to 1.3.0 - Update
node_query
to 1.15.2 - Update
node_mutation
to 1.24.3 - Remove
if_only_exist_node
dsl
- Add
with_configurations
dsl - Add
save_data
dsl - Add
load_data
dsl
- Preserve current parser
- Reset
@warnings
,@affected_files
, and@test_results
- Puts
Parser::SyntaxError
message only whenENV[DEBUG]
is true - Raise
ParserNotSupported
if parser is not supported
- Try 10 times at maximum when process
- Add
Configuration.respect_gitignore
- Glob files with
git check-ignore
ifConfiguration.respect_gitignore
is true
- Update
node_mutation
to 1.23.2 - Update
node_query
to 1.15.1
- Support
prism
- Update
node_mutation
to 1.23.0 - Update
node_query
to 1.15.0
- Update
node_mutation
to 1.22.4 - Remove
redo_until_no_change
dsl
- Support
Configuration.test_result
inadd_file
andremove_file
dsl - Get new source in
Rewriter#test
- Add
Configuration.test_result
option
- Add
Configuration.strict
option
- It is
parser
option instead ofadapter
- Update
node_mutation
to 1.22.0 - Update
node_query
to 1.14.1 - Add
adapter
asRewriter::ReplaceErbStmtWithExprAction
parameter - Initialize
NodeQuery
andNodeMutation
withadapter
- Remove
ensure_current_adapter
as adapter is an instance variable of Rewriter
- Update
node_mutation
to 1.21.4
- Update
node_mutation
to 1.21.3 - Add
__FILE__
and__LINE__
to eval
- Update
parser_node_ext
to 1.2.1 - Update
node_mutation
to 1.21.3
- Update
node-query
to 1.13.12
- Update
node_mutation
to 1.21.0 - Revert "Combine actions within scope"
- Add
group
dsl
- Update
node-query
to 1.13.11 - Update
node_mutation
to 1.20.0 - Combine actions within scope
- Iterate actions in engine
- Merge
test_results
based on file_path - Update
node-query
to 1.13.9 - Update
node_mutation
to 1.19.3
- Update
node_mutation
to 1.19.1 - Remove
node_ext
- Update
node_query
to 1.13.5
- Do not use keyword options in
call_helper
- Update
node_query
to 1.13.3 andnode_mutation
to 1.18.3 - Update
parser_node_ext
to 1.2.0 andsyntax_tree_ext
to 0.6.0
- Add
Synvert::Core::Helper
- Add
call_helper
dsl in rewriter
- Puts error message when rescue
Parser::SyntaxError
- Update
node_mutation
to 1.18.2
- Configure
parser
, can beparser
orsyntax_tree
- Add
Errors
module - Require
parser_node_ext
andsynvert_tree_ext
properly
- Fix haml and slim engine to support attribute and ruby evaluation in the same line
- Fix ruby block in multi lins in haml and slim
- Update
node_mutation
to 1.16.0
- Compact test results
- Fix erb regex
add_file
andremove_file
work for test- Add
indent
dsl - Add
type
to Action - Update
node_mutation
to 1.15.3
- Update
wrap
dsl - Update
node_mutation
to 1.15.1 - Fix
erb
encoded source
- Add
Slim
engine - Abstract
Engine/Elegant
module - Rewrite
Haml
andSlim
engine by StringScanner
- Fix array index name in
GotoScope
- Update
node_query
to 1.12.1
- Add
Haml
engine - Add
Engine.register
andEngine.encode
andEngine.generate_transform_proc
- Set NodeMutation
transform_proc
- Update
node_mutation
to 1.14.0
- Do not replace white space characters in erb engine
- Check erb source in
ReplaceErbStmtWithExprAction
- Update
node_mutation
to 1.13.1
- Fix indent when
insert_after
orinsert_before
to a child node - Update
node_mutation
to 1.13.0
- Add
and_comma
option toinsert
,insert_before
,insert_after
api
- Polish
erb
engine - Update
node_mutation
to 1.12.1
RAILS_VIEW_FILES
do not checkhaml
andslim
files until we support them- Add constants
ALL_FILES
andALL_ERB_FILES
- Rewrite erb engine, no need to decode
- Rewrite
ReplaceErbStmtWithExprAction
to insert "=" instead - Erb encoded source passed to
node_query
, but notnode_mutation
- Do not rescue
NoMethodError
and output debug info
- Update
parser_node_ext
to 1.0.0
- Call block multiple times when goto node array
- Update
node_mutation
to 1.9.2
- Add
tab_size
option toadd_leading_spaces
- Add
Configuration#tab_width
- Add
Instance#add_leading_spaces
- Add
Configuration#single_quote
- Add
Instance#wrap_with_quotes
- Remove
Instance#query_adapter
- Fix glob with only paths
- Remove
todo
dsl - Update
parser_node_ext
to 0.9.0
- Add
add_action
dsl - Remove
any_value
- No access to
Instance#current_mutation
- Add
Instance#query_adapter
andInstance#mutation_adapter
- One instance handle only one file
- Use
instance.file_path
instead ofinstance.current_file
- Load snippet from github
- Specify
node_query
,node_mutation
andparser_node_ext
versions
- Abstract
AnyValue
to NodeQuery
insert_after
andinsert_before
acceptsto
option- Add
configure
dsl to configure the strategy
- Do not send hash to keyword arguments
- Add
insert_before
dsl - Update
insert_after
to reuseNodeMutation#insert
- Condition accepts both nql and rules
- Make
find_node
as an alias towithin_node
- Remove skip files only once
- Add
Configuration.number_of_workers
- Test rewriter in parallel
- Do not reset
@options
Rewriter.fetch
does not raise error if rewriter not found
- Eval snippet by http url, file path or snippet name
- Remove
execute_command
option - Remove
Rewriter.call
- Remove
Rewriter.execute
- Fix
test
in sub_snippets
- Read / write absolute path
- Add
noop
dsl
- Fix test snippet, return test results
- Rename config
path
toroot_path
- Rename config
skip_files
toskip_paths
- Add config
only_paths
- Change dir to
root_path
- Add
Rewriter#test
- Use option
run_instance
instead ofsandbox
- Make use of
NodeQuery
to query nodes - Remove
Node#to_hash
- Downgrade
activesupport
to < 7.0.0
- Abstract
node_query
- Abstract
node_mutation
- Abstract
parser_node_ext
- Drop support
:first-child
and:last-child
- Redefine goto scope in nql
- Fix shift/reduce conflict
- Add
add_comma
option to remove extra comma
- Support
*=
,^=
and$=
operators - Simplify RELATIONSHIP parser
- Rewrite compiler, let the selector to query nodes
- Selector always after a node type in NQL
- Define
pairs
method forhash
node
- Remove comma in NQL array value
- Parse pseudo class without selector in NQL
- Parse multiple goto scope in NQL
- Parse
nil?
in NQL
- Parse empty string properly in node query language
- Parse
[]
and[]=
properly in node query language
- Dynamic define Node methods by
TYPE_CHILDREN
const - Add
Node#to_hash
- Parse empty string in node query language
- Identifier value can contain
?
,<
,=
,>
in node query language
- Introduce new node query language
- Drop ruby 2.5 support
- Read absolute path of Gemfile.lock
- Remove unused
Node#to_s
- Yardoc comments
- Drop
within_direct_node(rules)
, usewithin_node(rules, { direct: true })
instead
- Add
to
option toInsertAction
- Add
gt
,gte
,lt
andlte
rules
- Support
csend
node - Restrict
activesupport
version to~> 6
- Fix
prepend
action fordef
anddefs
nodes - Fix
append
action fordef
anddefs
nodes
- Add
Node#child_node_by_name
- Fix
Node#child_node_range
for array
- Add
to_string
tosym
node
- Use option
stop_when_match
instead ofrecursive
- Add file pattern constants
- Instance supports array of file patterns
- Return block value by
next
- Add
Node#filename
method
- Support
left_value
andright_value
forand
andor
node - Rewrite
within_node
andwithin_direct_node
,WithinScope
acceptsrecursive
anddirect
options
- Compare ruby version in
.ruby-version
or.rvmrc
- Support
left_value
andright_value
forcasgn
node - Refactor -
calculate_position
to setbegin_pos
andend_pos
- Abstract
squeeze_spaces
andsqueeze_lines
- Remove unused comma after delete/remove action
- Handle array child node in
childNodeRange
- Support
name
for:lvar
,:ivar
,:cvar
- Delete one more space if two spaces left
- Add
Configuration.show_run_process
- Fix remove action
begin_pos
andend_pos
- Fix
nil
match - Rewrite
remove
action
- Change
goto_scope
param from array to string
- Fix nested child in Node#child_node_range
- Rename synvert-core to synvert-core-ruby
Node#child_node_range
supports nested child- Require
fileutils
- Rename
Node#indent
toNode#column
- Add
wrap
action - Add new dsl
redo_until_no_change
- Support
:module
inbody
- Fix symbol match
- Support :erange in to_value
- Do not use to_value in match_value?
- Force to read file as utf-8
- Add logo
- Add
to_single_quote
tostr
node - Add
to_symbol
tostr
node - Add
to_lambda_literal
tolambda
node
- Add
strip_curly_braces
andwrap_curly_braces
forhash
node - Simplify symbol
match_value?
- Unwrap quote when matching string value
- Handle
nil
child node forbegin_pos
andend_pos
- Remove
Rewriter::Instance
options
- Return rewriter after executing snippet
left_value
andright_value
supportor_asgn
nodechild_node_range
supports sendparentheses
- Match string with quote
match_value?
returns true if actual and expected are the same
- Remove unused autoindent option
- Add
insert 'xxx', at: 'beginning'
- Rewrite
insert
action
- Add
prepend
action instead ofinsert
- Add
xxx_source
forhash
node
- Require
active_support/core_ext/array
- Add
contain
rule
child_node_name
supports [:def, :parentheses] and [:defs, :parentheses]- Rename
pipe
topipes
- Add
body
forclass
node
- Remove
ArgumentsNode
- Add
in
andnot_in
rules
goto_node
accepts multiple child node names- Match any_value
- Make
child_name_range
support [:block, :pipe] - Get key value for hash node
- Make
child_name_range
support all dsl nodes - Make
replace
action support multi child names - Fix
delete
action arguments
- Support
:class
inchild_node_range
- Add
delete
action
- attr_reader ruby_version and gem_spec
- Add
replace
action
- Use
Gem::Dependency#match?
to check gem version
- Rename helper method
has_key?
tokey?
- Accept a node as goto_node argument
- Track
affected_files
for rewriter - Fix
find_matching_nodes
forcurrent_node
- Set
env['BUNDLE_GEMFILE']
before parsingGemfile.lock
- Add
Rewriter::RubyVersion
test - Add
reject_keys_from_hash
helper method
- Call snippet in sandbox mode
- Simplify
Configuration
- Add
Rewriter.execute
- Ignore
gem_spec
check ifGemfile.lock
does not exist
- Use parser 3.0.0
- Fix magic number
- Add
within_direct_node
scope
- Use parser 2.5.1.1
- Add helper add_curly_brackets_if_necessary
- Add name for restarg node
- Add message for zsuper node
- Add message for super node
- Add name and to_s for mlhs node
- Use parser 2.4.0.0
- Add parent_const accessor for constant nodes with a namespace
- Warning if add_file already exists and make sure directory exists for add_file
- Add options to Rewriter::Instance
- Add sort_by option to Rewriter::Instance
- Use parser 2.3.1.2
- Add options to Rewriter::Action
- Add autoindent option to Rewriter::Action
- Add if_ruby dsl
- Fix rewritten indent when number of lines and arguments are equal
- Fix match_value between symbol and string
- Add line method to ast node
- Add add_arguments_with_parenthesis_if_necessary helper method
- Fix left_value and right_value node attribute
- Print warn when file was not parsed correctly
- Handle indent for node array source
- Rescue NoMethodError and output node debug info
- Add debug info for MethodNotSupported error.
- Add left_value and right_value ext to ast node
- Add arguments for def and defs nodes
- Add name for arg and blockarg nodes
- Remove trailing whitespace in rewritten code
- Rewriter.available always returns a hash
- Support ArgumentsNode in rewritten_source
- Add goto_node dsl
- Add ArgumentsNode to handle args both as a node and as an array
- Add body for :defs node
- Raise RewriterNotFound if rewriter not found
- Remove Rewriter::Instance class methods current and current_source
- Add group to rewriter
- Add parent_class for :class node
- Add Rewriter::Helper module to provide common helper methods.
- Fix indent for append and replace_with action
- Cache file source and ast
- Add erb support
- Add replace_erb_stmt_with_expr dsl
- Improve Parser::AST::Node#to_value
- Rename node.source(instance) to node.to_source
- Add has_key? and hash_value helper methods for hash node
- Fix Instance#check_conflict_actions
- Add remove_file dsl
- Add warn dsl
- Return empty array if no available rewriters
- Abstract from synvert