Skip to content

Commit 81a342f

Browse files
fixed an issue with extract variable refactor command, added some refactor commands also in the Side Bar Menu
1 parent 94b4067 commit 81a342f

File tree

6 files changed

+47
-7
lines changed

6 files changed

+47
-7
lines changed

Context.sublime-menu

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
},
7171
{ "caption": "-" },
7272
{
73-
"caption": "Refactor",
73+
"caption": "JavaScript Refactor",
7474
"id": "refactor",
7575
"children": [
7676
{

Side Bar.sublime-menu

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,33 @@
33
"id": "open_termival_view_here",
44
"caption": "Open TerminalView Here…",
55
"command": "open_termival_view_here"
6-
}
6+
},
7+
{ "caption": "-" },
8+
{
9+
"caption": "JavaScript Refactor",
10+
"id": "refactor",
11+
"children": [
12+
{
13+
"caption": "Safe Copy",
14+
"command": "refactor",
15+
"args": {
16+
"case": "safe_copy"
17+
}
18+
},
19+
{
20+
"caption": "Safe Move",
21+
"command": "refactor",
22+
"args": {
23+
"case": "safe_move"
24+
}
25+
},
26+
{
27+
"caption": "Safe Delete",
28+
"command": "refactor",
29+
"args": {
30+
"case": "safe_delete"
31+
}
32+
}
33+
]
34+
},
735
]

_generated_2018_02_04_at_03_59_09.py renamed to _generated_2018_02_04_at_04_47_41.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6024,7 +6024,6 @@ def run(self, edit, **args):
60246024
windowView.add(text=" \n")
60256025

60266026
elif case == "extract_method" :
6027-
60286027
if view.sel()[0].begin() == view.sel()[0].end():
60296028
return
60306029

@@ -6049,9 +6048,15 @@ def run(self, edit, **args):
60496048
windowView.add(text=" \n")
60506049

60516050
elif case == "extract_parameter" :
6051+
if view.sel()[0].begin() == view.sel()[0].end():
6052+
return
6053+
60526054
self.view.run_command("refactor_extract_parameter")
60536055

60546056
elif case == "extract_variable" :
6057+
if view.sel()[0].begin() == view.sel()[0].end():
6058+
return
6059+
60556060
self.view.run_command("refactor_extract_variable")
60566061

60576062
def is_enabled(self, **args) :
@@ -6934,7 +6939,8 @@ def run(self, edit, **args):
69346939
])
69356940

69366941
variable_kind = ["let", "const", "var"]
6937-
view.window().show_quick_panel(variable_kind, None, 0, 0, lambda index: self.view.run_command("replace_text_view", args={"start": region.begin(), "end": region.begin() + len(view.substr(view.word(region.begin()))) , "text": variable_kind[index]}))
6942+
whitespace_length = len("\n" + space if not prev_line_is_empty else "")
6943+
view.window().show_quick_panel(variable_kind, None, 0, 0, lambda index: self.view.run_command("replace_text_view", args={"start": region.begin() + whitespace_length, "end": region.begin() + whitespace_length + len(view.substr(view.word(region.begin() + whitespace_length))) , "text": variable_kind[index]}))
69386944

69396945
else:
69406946
sublime.error_message("Cannot introduce variable. Some problems occured.")

changelog/0.14.0.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ v0.14.0
1111
## Improvements
1212

1313
- Show hint_parameters tooltip on commit_completion and on insert_snippet "()"
14-
- Added Refactor command:
14+
- Added JavaScript Refactor command:
1515
* Safe Copy
1616
* Safe Move
1717
* Safe Delete

helper/refactor/main.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def run(self, edit, **args):
4646
windowView.add(text=" \n")
4747

4848
elif case == "extract_method" :
49-
5049
if view.sel()[0].begin() == view.sel()[0].end():
5150
return
5251

@@ -71,9 +70,15 @@ def run(self, edit, **args):
7170
windowView.add(text=" \n")
7271

7372
elif case == "extract_parameter" :
73+
if view.sel()[0].begin() == view.sel()[0].end():
74+
return
75+
7476
self.view.run_command("refactor_extract_parameter")
7577

7678
elif case == "extract_variable" :
79+
if view.sel()[0].begin() == view.sel()[0].end():
80+
return
81+
7782
self.view.run_command("refactor_extract_variable")
7883

7984
def is_enabled(self, **args) :

helper/refactor/refactor_extract_variable_command.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ def run(self, edit, **args):
108108
])
109109

110110
variable_kind = ["let", "const", "var"]
111-
view.window().show_quick_panel(variable_kind, None, 0, 0, lambda index: self.view.run_command("replace_text_view", args={"start": region.begin(), "end": region.begin() + len(view.substr(view.word(region.begin()))) , "text": variable_kind[index]}))
111+
whitespace_length = len("\n" + space if not prev_line_is_empty else "")
112+
view.window().show_quick_panel(variable_kind, None, 0, 0, lambda index: self.view.run_command("replace_text_view", args={"start": region.begin() + whitespace_length, "end": region.begin() + whitespace_length + len(view.substr(view.word(region.begin() + whitespace_length))) , "text": variable_kind[index]}))
112113

113114
else:
114115
sublime.error_message("Cannot introduce variable. Some problems occured.")

0 commit comments

Comments
 (0)