Skip to content

Commit 4007068

Browse files
committed
feat(rename_variable,js): add rename variable on javascript
1 parent 7ea57b0 commit 4007068

File tree

9 files changed

+99
-10
lines changed

9 files changed

+99
-10
lines changed

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ A set of mappings which help you to refactor code in consistent way across langu
1111
## Supported languages
1212

1313
- PHP
14-
- SH
14+
- Shell
1515
- Extract Method
16-
- JS
16+
- JavaScript
1717
- Extract Method
1818
- Extract Variable
19+
- Inline Variable
20+
- Rename Variable
1921
- TypeScript
2022
- Extract Method
2123
- Extract Variable

autoload/refactoring_toolbox/extract_method/main.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function refactoring_toolbox#extract_method#main#extractMethodForSh() range
3030
\ )
3131
endfunction
3232

33-
function refactoring_toolbox#extract_method#main#extractMethodForJavaScript() range
33+
function refactoring_toolbox#extract_method#main#extractMethodForJavascript() range
3434
call refactoring_toolbox#usage#increment('JsExtractMethod')
3535

3636
call refactoring_toolbox#extract_method#method_extractor#extractSelectedBlock(

autoload/refactoring_toolbox/extract_variable/main.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function refactoring_toolbox#extract_variable#main#execute() range
99
\ )
1010
endfunction
1111

12-
function refactoring_toolbox#extract_variable#main#extractVariableForJavaScript() range
12+
function refactoring_toolbox#extract_variable#main#extractVariableForJavascript() range
1313
call refactoring_toolbox#usage#increment('JsExtractVariable')
1414

1515
call refactoring_toolbox#extract_variable#variable_extractor#execute(

autoload/refactoring_toolbox/inline_variable/main.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function refactoring_toolbox#inline_variable#main#execute()
1010
\ )
1111
endfunction
1212

13-
function refactoring_toolbox#inline_variable#main#inlineVariableForJavaScript()
13+
function refactoring_toolbox#inline_variable#main#inlineVariableForJavascript()
1414
call refactoring_toolbox#usage#increment('JsInlineVariable')
1515

1616
call refactoring_toolbox#inline_variable#variable_inliner#execute(
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
let s:regex_func_line = refactoring_toolbox#adapters#js_regex#func_line
2+
3+
call refactoring_toolbox#adapters#vim#begin_script()
4+
5+
function refactoring_toolbox#rename_variable#adapters#js_language#make()
6+
return s:self
7+
endfunction
8+
9+
let s:self = #{}
10+
11+
function s:self.parseVariable(word)
12+
return a:word
13+
endfunction
14+
15+
function s:self.formatVariable(name)
16+
return a:name
17+
endfunction
18+
19+
function s:self.findCurrentFunctionLineRange()
20+
let l:backupPosition = getcurpos()
21+
22+
call search(s:regex_func_line, 'beW')
23+
let l:startLine = line('.')
24+
25+
call search('{', 'Wc')
26+
call searchpair('{', '', '}', 'W')
27+
let l:stopLine = line('.')
28+
29+
call setpos('.', l:backupPosition)
30+
31+
return [l:startLine, l:stopLine]
32+
endfunction
33+
34+
call refactoring_toolbox#adapters#vim#end_script()

autoload/refactoring_toolbox/rename_variable/main.vim

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,17 @@ function refactoring_toolbox#rename_variable#main#renameLocalVariable()
2222
\ )
2323
endfunction
2424

25+
function refactoring_toolbox#rename_variable#main#renameVariableForJavascript()
26+
call refactoring_toolbox#usage#increment('JsRenameVariable')
27+
28+
call refactoring_toolbox#rename_variable#variable_renamer#execute(
29+
\ refactoring_toolbox#rename_variable#adapters#js_language#make(),
30+
\ refactoring_toolbox#adapters#input#make(),
31+
\ refactoring_toolbox#adapters#output#make(),
32+
\ refactoring_toolbox#adapters#vim_texteditor#make(),
33+
\ )
34+
endfunction
35+
2536
function refactoring_toolbox#rename_variable#main#renameVariableForTypescript()
2637
call refactoring_toolbox#usage#increment('TsRenameVariable')
2738

doc/refactoring-toolbox.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,13 @@ A set of mappings which help you to refactor code in consistent way across langu
2929
Supported languages:
3030

3131
- PHP
32-
- SH
32+
- Shell
3333
- Extract Method
34-
- JS
34+
- JavaScript
3535
- Extract Method
3636
- Extract Variable
37+
- Inline Variable
38+
- Rename Variable
3739
- TypeScript
3840
- Extract Method
3941
- Extract Variable

ftplugin/javascript/refactoring-toolbox.vim

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,25 @@ function s:registerMappings()
99
call s:addBufferVisualMapping(
1010
\ '<LocalLeader>em',
1111
\ '<Plug>refactoring_toolbox_javascript_ExtractMethod',
12-
\ 'refactoring_toolbox#extract_method#main#extractMethodForJavaScript()'
12+
\ 'refactoring_toolbox#extract_method#main#extractMethodForJavascript()'
1313
\ )
1414

1515
call s:addBufferVisualMapping(
1616
\ '<LocalLeader>ev',
1717
\ '<Plug>refactoring_toolbox_javascript_ExtractVariable',
18-
\ 'refactoring_toolbox#extract_variable#main#extractVariableForJavaScript()'
18+
\ 'refactoring_toolbox#extract_variable#main#extractVariableForJavascript()'
1919
\ )
2020

2121
call s:addBufferNormalMapping(
2222
\ '<LocalLeader>iv',
2323
\ '<Plug>refactoring_toolbox_javascript_InlineVariable',
24-
\ 'refactoring_toolbox#inline_variable#main#inlineVariableForJavaScript()'
24+
\ 'refactoring_toolbox#inline_variable#main#inlineVariableForJavascript()'
25+
\ )
26+
27+
call s:addBufferNormalMapping(
28+
\ '<LocalLeader>rv',
29+
\ '<Plug>refactoring_toolbox_javascript_RenameVariable',
30+
\ 'refactoring_toolbox#rename_variable#main#renameVariableForJavascript()'
2531
\ )
2632
endif
2733
endfunction
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Given javascript:
2+
function firstFunctionName() {
3+
const someVariable
4+
}
5+
6+
const currentFunctionName = () => {
7+
const someVariable
8+
someVariable
9+
}
10+
11+
function thirdFunctionName() {
12+
const someVariable
13+
}
14+
15+
Do:
16+
/currentFunctionName\<Enter>
17+
/someVariable\<Enter>
18+
;rv
19+
New\<Enter>
20+
\<Enter>
21+
22+
Expect:
23+
function firstFunctionName() {
24+
const someVariable
25+
}
26+
27+
const currentFunctionName = () => {
28+
const someVariableNew
29+
someVariableNew
30+
}
31+
32+
function thirdFunctionName() {
33+
const someVariable
34+
}

0 commit comments

Comments
 (0)