|
|
|
@ -152,7 +152,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
@@ -152,7 +152,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
|
|
|
|
|
if (invoke.Node is ConstructorInitializer) { |
|
|
|
|
var init = (ConstructorInitializer)invoke.Node; |
|
|
|
|
if (init.ConstructorInitializerType == ConstructorInitializerType.This) { |
|
|
|
|
return factory.CreateConstructorProvider(document.GetOffset(invoke.Node.StartLocation), ctx.CurrentTypeDefinition); |
|
|
|
|
return factory.CreateConstructorProvider(document.GetOffset(invoke.Node.StartLocation), ctx.CurrentTypeDefinition, init); |
|
|
|
|
} else { |
|
|
|
|
var baseType = ctx.CurrentTypeDefinition.DirectBaseTypes.FirstOrDefault(bt => bt.Kind != TypeKind.Interface); |
|
|
|
|
if (baseType == null) { |
|
|
|
@ -194,17 +194,17 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
@@ -194,17 +194,17 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
|
|
|
|
|
return factory.CreateDelegateDataProvider(document.GetOffset(invoke.Node.StartLocation), resolveResult.Type); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// if (result.ExpressionContext == ExpressionContext.BaseConstructorCall) {
|
|
|
|
|
// if (resolveResult is ThisResolveResult)
|
|
|
|
|
// return new NRefactoryParameterDataProvider (textEditorData, resolver, resolveResult as ThisResolveResult);
|
|
|
|
|
// if (resolveResult is BaseResolveResult)
|
|
|
|
|
// return new NRefactoryParameterDataProvider (textEditorData, resolver, resolveResult as BaseResolveResult);
|
|
|
|
|
// }
|
|
|
|
|
// IType resolvedType = resolver.SearchType (resolveResult.ResolvedType);
|
|
|
|
|
// if (resolvedType != null && resolvedType.ClassType == ClassType.Delegate) {
|
|
|
|
|
// return new NRefactoryParameterDataProvider (textEditorData, result.Expression, resolvedType);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// if (result.ExpressionContext == ExpressionContext.BaseConstructorCall) {
|
|
|
|
|
// if (resolveResult is ThisResolveResult)
|
|
|
|
|
// return new NRefactoryParameterDataProvider (textEditorData, resolver, resolveResult as ThisResolveResult);
|
|
|
|
|
// if (resolveResult is BaseResolveResult)
|
|
|
|
|
// return new NRefactoryParameterDataProvider (textEditorData, resolver, resolveResult as BaseResolveResult);
|
|
|
|
|
// }
|
|
|
|
|
// IType resolvedType = resolver.SearchType (resolveResult.ResolvedType);
|
|
|
|
|
// if (resolvedType != null && resolvedType.ClassType == ClassType.Delegate) {
|
|
|
|
|
// return new NRefactoryParameterDataProvider (textEditorData, result.Expression, resolvedType);
|
|
|
|
|
// }
|
|
|
|
|
break; |
|
|
|
|
case ',': |
|
|
|
|
invoke = GetInvocationBeforeCursor(true) ?? GetIndexerBeforeCursor(); |
|
|
|
|