@@ -55,6 +55,11 @@ public VDServerCompletionDataGenerator (string pre)
55
55
prefix = pre ;
56
56
}
57
57
58
+ public void NotifyTimeout ( )
59
+ {
60
+
61
+ }
62
+
58
63
/// <summary>
59
64
/// Adds a token entry
60
65
/// </summary>
@@ -115,8 +120,8 @@ public void Add(INode Node)
115
120
type = "MOD" ;
116
121
117
122
string desc = Node . Description ;
118
- if ( ! string . IsNullOrEmpty ( desc ) )
119
- desc = desc . Trim ( ) ;
123
+ if ( ! string . IsNullOrEmpty ( desc ) )
124
+ desc = desc . Trim ( ) ;
120
125
121
126
string proto = VDServerCompletionDataGenerator . GeneratePrototype ( Node ) ;
122
127
if ( ! string . IsNullOrEmpty ( proto ) && ! string . IsNullOrEmpty ( desc ) )
@@ -169,8 +174,6 @@ public static string GeneratePrototype(INode node, int currentParameter = -1, bo
169
174
return VDServerCompletionDataGenerator . GeneratePrototype ( node as DVariable ) ;
170
175
if ( node is DelegateType )
171
176
return VDServerCompletionDataGenerator . GeneratePrototype ( node as DelegateType , currentParameter ) ;
172
- if ( node is DelegateDeclaration )
173
- return VDServerCompletionDataGenerator . GeneratePrototype ( node as DelegateDeclaration , currentParameter ) ;
174
177
if ( node is AbstractType )
175
178
return VDServerCompletionDataGenerator . GeneratePrototype ( node as AbstractType , currentParameter , isInTemplateArgInsight ) ;
176
179
return null ;
@@ -183,57 +186,56 @@ public static string GeneratePrototype(AbstractType t, int currentParameter = -1
183
186
{
184
187
if ( ms . Definition is DVariable )
185
188
{
186
- var bt = DResolver . StripAliasSymbol ( ms . Base ) ;
189
+ var bt = ms . Base ;
187
190
if ( bt is DelegateType )
188
- return VDServerCompletionDataGenerator . GeneratePrototype ( bt as DelegateType , currentParameter ) ;
191
+ return VDServerCompletionDataGenerator . GeneratePrototype ( bt as DelegateType , isInTemplateArgInsight , currentParameter ) ;
189
192
}
190
193
else if ( ms . Definition is DMethod )
191
194
return VDServerCompletionDataGenerator . GeneratePrototype ( ms . Definition as DMethod , isInTemplateArgInsight , currentParameter ) ;
192
195
}
193
- else if ( t is TemplateIntermediateType )
194
- return VDServerCompletionDataGenerator . GeneratePrototype ( t as TemplateIntermediateType , currentParameter ) ;
196
+ else if ( t is TemplateIntermediateType || t is EponymousTemplateType )
197
+ return VDServerCompletionDataGenerator . GeneratePrototype ( t as DSymbol , currentParameter ) ;
195
198
196
199
return null ;
197
200
}
198
201
199
- public static string GeneratePrototype ( DelegateType dt , int currentParam = - 1 )
200
- {
201
- var dd = dt . TypeDeclarationOf as DelegateDeclaration ;
202
- if ( dd != null )
203
- return VDServerCompletionDataGenerator . GeneratePrototype ( dd , currentParam ) ;
204
-
205
- return null ;
206
- }
207
-
208
- public static string GeneratePrototype ( DelegateDeclaration dd , int currentParam = - 1 )
202
+ public static string GeneratePrototype ( DelegateType dd , bool isInTemplateArgInsight , int currentParam = - 1 )
209
203
{
210
204
var sb = new StringBuilder ( "Delegate: " ) ;
211
205
212
206
if ( dd . ReturnType != null )
213
- sb . Append ( dd . ReturnType . ToString ( true ) ) . Append ( ' ' ) ;
207
+ sb . Append ( dd . ReturnType . ToString ( ) ) . Append ( ' ' ) ;
214
208
215
209
if ( dd . IsFunction )
216
210
sb . Append ( "function" ) ;
217
211
else
218
212
sb . Append ( "delegate" ) ;
219
213
220
- sb . Append ( '(' ) ;
221
- if ( dd . Parameters != null && dd . Parameters . Count != 0 )
214
+ var fn = dd . DeclarationOrExpressionBase as D_Parser . Dom . Expressions . FunctionLiteral ;
215
+ if ( fn != null )
216
+ RenderParametersAndFooters ( fn . AnonymousMethod , sb , isInTemplateArgInsight , currentParam ) ;
217
+ else
222
218
{
223
- for ( int i = 0 ; i < dd . Parameters . Count ; i ++ )
219
+ sb . Append ( '(' ) ;
220
+ var parms = dd . Parameters ;
221
+ if ( parms != null && parms . Length != 0 )
224
222
{
225
- var p = dd . Parameters [ i ] as DNode ;
226
- if ( i == currentParam )
223
+ for ( int i = 0 ; i < parms . Length ; i ++ )
227
224
{
228
- sb . Append ( p . ToString ( false ) ) . Append ( ',' ) ;
225
+ if ( i == currentParam )
226
+ sb . Append ( "<u>" ) ;
227
+
228
+ sb . Append ( parms [ i ] is DSymbol ? ( parms [ i ] as DSymbol ) . Definition . ToString ( true , false ) : parms [ i ] . ToCode ( ) ) ;
229
+
230
+ if ( i == currentParam )
231
+ sb . Append ( "</u>" ) ;
232
+ sb . Append ( ',' ) ;
229
233
}
230
- else
231
- sb . Append ( p . ToString ( false ) ) . Append ( ',' ) ;
232
- }
233
234
234
- sb . Remove ( sb . Length - 1 , 1 ) ;
235
+ sb . Remove ( sb . Length - 1 , 1 ) ;
236
+ }
237
+ sb . Append ( ')' ) ;
235
238
}
236
- sb . Append ( ')' ) ;
237
239
238
240
return sb . ToString ( ) ;
239
241
}
@@ -300,6 +302,12 @@ public static string GeneratePrototype(DMethod dm, bool isTemplateParamInsight=f
300
302
301
303
sb . Append ( name ) ;
302
304
305
+ RenderParametersAndFooters ( dm , sb , isTemplateParamInsight , currentParam ) ;
306
+ return sb . ToString ( ) ;
307
+ }
308
+
309
+ static void RenderParametersAndFooters ( DMethod dm , StringBuilder sb , bool isTemplateParamInsight , int currentParam = - 1 )
310
+ {
303
311
// Template parameters
304
312
if ( dm . TemplateParameters != null && dm . TemplateParameters . Length > 0 )
305
313
{
@@ -340,7 +348,6 @@ public static string GeneratePrototype(DMethod dm, bool isTemplateParamInsight=f
340
348
}
341
349
342
350
sb . Append ( ")" ) ;
343
- return sb . ToString ( ) ;
344
351
}
345
352
346
353
public static string GeneratePrototype ( TemplateIntermediateType tit , int currentParam = - 1 )
@@ -488,7 +495,7 @@ public void GetTip(string filename, int startLine, int startIndex, int endLine,
488
495
foreach ( var c in content )
489
496
{
490
497
if ( ! string . IsNullOrEmpty ( _tipText ) )
491
- _tipText += "\n \n " ;
498
+ _tipText += "\a " ;
492
499
if ( string . IsNullOrWhiteSpace ( c . Description ) )
493
500
_tipText += c . Title ;
494
501
else
@@ -601,10 +608,9 @@ public void GetDefinition(string filename, int startLine, int startIndex, int en
601
608
var rr = DResolver . ResolveType ( _editorData , ctxt ) ;
602
609
603
610
_tipText = "" ;
604
- if ( rr != null && rr . Length > 0 )
611
+ if ( rr != null )
605
612
{
606
- var res = rr [ rr . Length - 1 ] ;
607
- var n = DResolver . GetResultMember ( res ) ;
613
+ var n = DResolver . GetResultMember ( rr ) ;
608
614
609
615
_tipStart = n . Location ;
610
616
_tipEnd = n . EndLocation ;
@@ -656,6 +662,7 @@ void _setupEditorData()
656
662
CompletionOptions . Instance . ShowUFCSItems = ( _flags & 0x2000000 ) != 0 ;
657
663
CompletionOptions . Instance . DisableMixinAnalysis = ( _flags & 0x1000000 ) == 0 ;
658
664
CompletionOptions . Instance . HideDeprecatedNodes = ( _flags & 128 ) != 0 ;
665
+ CompletionOptions . Instance . CompletionTimeout = 500 ;
659
666
}
660
667
661
668
#if false
0 commit comments