@@ -158,6 +158,44 @@ public void DisambiguateComa_FunctionArgument()
158
158
Assert . AreEqual ( ComaExpression . FunctionDeclaration , coma ) ;
159
159
}
160
160
161
+ [ Test ( Description = "This includes PR #963" ) ]
162
+ public void DisambiguateComa_GenericFunctionArgumentType ( )
163
+ {
164
+ var pluginMain = Substitute . For < PluginMain > ( ) ;
165
+ var pluginUiMock = new PluginUIMock ( pluginMain ) ;
166
+ pluginMain . MenuItems . Returns ( new List < System . Windows . Forms . ToolStripItem > ( ) ) ;
167
+ pluginMain . Settings . Returns ( new GeneralSettings ( ) ) ;
168
+ pluginMain . Panel . Returns ( pluginUiMock ) ;
169
+ ASContext . GlobalInit ( pluginMain ) ;
170
+ ASContext . Context = new AS3Context . Context ( new AS3Settings ( ) ) ;
171
+
172
+ var sci = GetBaseScintillaControl ( ) ;
173
+ sci . Text = "function test<K:(ArrayAccess, {})>(arg:" ;
174
+ sci . ConfigurationLanguage = "as3" ;
175
+
176
+ var coma = ASComplete . DisambiguateComa ( sci , 39 , 0 ) ;
177
+ Assert . AreEqual ( ComaExpression . FunctionDeclaration , coma ) ;
178
+ }
179
+
180
+ [ Test ( Description = "This includes PR #963" ) ]
181
+ public void DisambiguateComa_GenericFunctionArgument ( )
182
+ {
183
+ var pluginMain = Substitute . For < PluginMain > ( ) ;
184
+ var pluginUiMock = new PluginUIMock ( pluginMain ) ;
185
+ pluginMain . MenuItems . Returns ( new List < System . Windows . Forms . ToolStripItem > ( ) ) ;
186
+ pluginMain . Settings . Returns ( new GeneralSettings ( ) ) ;
187
+ pluginMain . Panel . Returns ( pluginUiMock ) ;
188
+ ASContext . GlobalInit ( pluginMain ) ;
189
+ ASContext . Context = new AS3Context . Context ( new AS3Settings ( ) ) ;
190
+
191
+ var sci = GetBaseScintillaControl ( ) ;
192
+ sci . Text = "function test<K:(ArrayAccess, {})>(arg:String, arg2" ;
193
+ sci . ConfigurationLanguage = "as3" ;
194
+
195
+ var coma = ASComplete . DisambiguateComa ( sci , 51 , 0 ) ;
196
+ Assert . AreEqual ( ComaExpression . FunctionDeclaration , coma ) ;
197
+ }
198
+
161
199
[ Test ]
162
200
public void DisambiguateComa_ArrayValue ( )
163
201
{
@@ -197,5 +235,63 @@ public void DisambiguateComa_ObjectParameter()
197
235
198
236
Assert . AreEqual ( ComaExpression . AnonymousObjectParam , coma ) ;
199
237
}
238
+
239
+ [ Test ]
240
+ public void DisambiguateComa_ObjectProperty ( )
241
+ {
242
+ var pluginMain = Substitute . For < PluginMain > ( ) ;
243
+ var pluginUiMock = new PluginUIMock ( pluginMain ) ;
244
+ pluginMain . MenuItems . Returns ( new List < System . Windows . Forms . ToolStripItem > ( ) ) ;
245
+ pluginMain . Settings . Returns ( new GeneralSettings ( ) ) ;
246
+ pluginMain . Panel . Returns ( pluginUiMock ) ;
247
+ ASContext . GlobalInit ( pluginMain ) ;
248
+ ASContext . Context = new AS3Context . Context ( new AS3Settings ( ) ) ;
249
+
250
+ var sci = GetBaseScintillaControl ( ) ;
251
+ sci . Text = "var obj:Object = {test" ;
252
+ sci . ConfigurationLanguage = "as3" ;
253
+
254
+ var coma = ASComplete . DisambiguateComa ( sci , 22 , 0 ) ;
255
+ // Should this be AnonymousObject?
256
+ Assert . AreEqual ( ComaExpression . AnonymousObjectParam , coma ) ;
257
+ }
258
+
259
+ [ Test ]
260
+ public void DisambiguateComa_VariableType ( )
261
+ {
262
+ var pluginMain = Substitute . For < PluginMain > ( ) ;
263
+ var pluginUiMock = new PluginUIMock ( pluginMain ) ;
264
+ pluginMain . MenuItems . Returns ( new List < System . Windows . Forms . ToolStripItem > ( ) ) ;
265
+ pluginMain . Settings . Returns ( new GeneralSettings ( ) ) ;
266
+ pluginMain . Panel . Returns ( pluginUiMock ) ;
267
+ ASContext . GlobalInit ( pluginMain ) ;
268
+ ASContext . Context = new AS3Context . Context ( new AS3Settings ( ) ) ;
269
+
270
+ var sci = GetBaseScintillaControl ( ) ;
271
+ sci . Text = "var obj:Obj" ;
272
+ sci . ConfigurationLanguage = "as3" ;
273
+
274
+ var coma = ASComplete . DisambiguateComa ( sci , 11 , 0 ) ;
275
+ Assert . AreEqual ( ComaExpression . VarDeclaration , coma ) ;
276
+ }
277
+
278
+ [ Test ]
279
+ public void DisambiguateComa_FunctionCallSimple ( )
280
+ {
281
+ var pluginMain = Substitute . For < PluginMain > ( ) ;
282
+ var pluginUiMock = new PluginUIMock ( pluginMain ) ;
283
+ pluginMain . MenuItems . Returns ( new List < System . Windows . Forms . ToolStripItem > ( ) ) ;
284
+ pluginMain . Settings . Returns ( new GeneralSettings ( ) ) ;
285
+ pluginMain . Panel . Returns ( pluginUiMock ) ;
286
+ ASContext . GlobalInit ( pluginMain ) ;
287
+ ASContext . Context = new AS3Context . Context ( new AS3Settings ( ) ) ;
288
+
289
+ var sci = GetBaseScintillaControl ( ) ;
290
+ sci . Text = "this.call(true" ;
291
+ sci . ConfigurationLanguage = "as3" ;
292
+
293
+ var coma = ASComplete . DisambiguateComa ( sci , 14 , 0 ) ;
294
+ Assert . AreEqual ( ComaExpression . FunctionParameter , coma ) ;
295
+ }
200
296
}
201
297
}
0 commit comments