@@ -99,44 +99,46 @@ func set_text(text, move_caret_to_end = true):
99
99
func execute (input ):
100
100
Console .write_line ('[color=#999999]$[/color] ' + input )
101
101
102
- # @var PoolStringArray
103
- var rawCommands = RegExLib .split (RECOMMANDS_SEPARATOR , input )
104
-
105
102
# @var Dictionary[]
106
- var parsedCommands = self . _parse_commands (rawCommands )
103
+ var parsedCommands = _parse_commands (input )
107
104
108
105
for parsedCommand in parsedCommands :
109
- # @var Command/Command|null
110
- var command = Console .get_command (parsedCommand .name )
111
-
112
- if command :
113
- Console .Log .debug ('Executing `' + parsedCommand .command + '`.' )
114
- command .execute (parsedCommand .arguments )
115
- Console .emit_signal ("command_executed" , command )
116
- else :
117
- Console .write_line ('Command `' + parsedCommand .name + '` not found.' )
118
- Console .emit_signal ("command_not_found" , parsedCommand .name )
106
+ if parsedCommand .name .length ():
107
+ # @var Command/Command|null
108
+ var command = Console .get_command (parsedCommand .name )
109
+
110
+ if command :
111
+ Console .Log .debug ('Executing `' + parsedCommand .command + '`.' )
112
+ command .execute (parsedCommand .arguments )
113
+ Console .emit_signal ("command_executed" , command )
114
+ else :
115
+ Console .write_line ('Command `' + parsedCommand .name + '` not found.' )
116
+ Console .emit_signal ("command_not_found" , parsedCommand .name )
119
117
120
118
Console .History .push (input )
121
119
self .clear ()
122
120
123
121
124
- # @param PoolStringArray rawCommands
125
- # @returns Array
126
- func _parse_commands (rawCommands ):
122
+ # @static
123
+ # @param String input
124
+ # @returns Array<Dictionary>
125
+ static func _parse_commands (input ):
127
126
var resultCommands = []
128
127
128
+ # @var PoolStringArray
129
+ var rawCommands = RegExLib .split (RECOMMANDS_SEPARATOR , input )
129
130
for rawCommand in rawCommands :
130
131
if rawCommand :
131
- resultCommands .append (self . _parse_command (rawCommand ))
132
+ resultCommands .append (_parse_command (rawCommand ))
132
133
133
134
return resultCommands
134
135
135
136
137
+ # @static
136
138
# @param String rawCommand
137
139
# @returns Dictionary
138
- func _parse_command (rawCommand ):
139
- var name = null
140
+ static func _parse_command (rawCommand ):
141
+ var name = ''
140
142
var arguments = PoolStringArray ([])
141
143
142
144
var beginning = 0 # int
@@ -145,7 +147,8 @@ func _parse_command(rawCommand):
145
147
var subString # String|null
146
148
for i in rawCommand .length ():
147
149
# Quote
148
- if rawCommand [i ] in QUOTES and i > 0 and not rawCommand [i - 1 ] in SCREENERS :
150
+ if rawCommand [i ] in QUOTES and \
151
+ (i == 0 or i > 0 and not rawCommand [i - 1 ] in SCREENERS ):
149
152
if isInsideQuotes and rawCommand [i ] == openQuote :
150
153
openQuote = null
151
154
isInsideQuotes = false
0 commit comments