Author: mkrueger
Date: 2007-10-18 07:02:23 -0400 (Thu, 18 Oct 2007)
New Revision: 87743
Modified:
trunk/monodevelop/Extras/CSharpBinding/ChangeLog
trunk/monodevelop/Extras/CSharpBinding/Gui/CSharpParameterDataProvider.cs
trunk/monodevelop/Extras/CSharpBinding/Gui/CSharpTextEditorExtension.cs
Log:
* Gui/CSharpParameterDataProvider.cs, Gui/CSharpTextEditorExtension.cs:
Fixed "Bug 325509 - Inaccessible methods displayed in
autocomplete".
Modified: trunk/monodevelop/Extras/CSharpBinding/ChangeLog
===================================================================
--- trunk/monodevelop/Extras/CSharpBinding/ChangeLog 2007-10-18 10:36:03 UTC
(rev 87742)
+++ trunk/monodevelop/Extras/CSharpBinding/ChangeLog 2007-10-18 11:02:23 UTC
(rev 87743)
@@ -1,3 +1,8 @@
+2007-10-18 Mike Krüger <[EMAIL PROTECTED]>
+
+ * Gui/CSharpParameterDataProvider.cs, Gui/CSharpTextEditorExtension.cs:
+ Fixed "Bug 325509 - Inaccessible methods displayed in autocomplete".
+
2007-10-17 Mike Krüger <[EMAIL PROTECTED]>
* Parser/Resolver.cs: changed is/as resolve.
Modified:
trunk/monodevelop/Extras/CSharpBinding/Gui/CSharpParameterDataProvider.cs
===================================================================
--- trunk/monodevelop/Extras/CSharpBinding/Gui/CSharpParameterDataProvider.cs
2007-10-18 10:36:03 UTC (rev 87742)
+++ trunk/monodevelop/Extras/CSharpBinding/Gui/CSharpParameterDataProvider.cs
2007-10-18 11:02:23 UTC (rev 87743)
@@ -16,12 +16,12 @@
TextEditor editor;
CSharpAmbience ambience = new CSharpAmbience ();
- public CSharpParameterDataProvider (TextEditor editor, IClass
cls, string methodName): base (cls, methodName)
+ public CSharpParameterDataProvider (TextEditor editor,
MethodParameterDataProvider.Scope scope, IClass cls, string methodName): base
(cls, methodName, scope)
{
this.editor = editor;
}
- public CSharpParameterDataProvider (TextEditor editor, IClass
cls): base (cls)
+ public CSharpParameterDataProvider (TextEditor editor,
MethodParameterDataProvider.Scope scope, IClass cls): base (cls, scope)
{
this.editor = editor;
}
Modified:
trunk/monodevelop/Extras/CSharpBinding/Gui/CSharpTextEditorExtension.cs
===================================================================
--- trunk/monodevelop/Extras/CSharpBinding/Gui/CSharpTextEditorExtension.cs
2007-10-18 10:36:03 UTC (rev 87742)
+++ trunk/monodevelop/Extras/CSharpBinding/Gui/CSharpTextEditorExtension.cs
2007-10-18 11:02:23 UTC (rev 87743)
@@ -537,13 +537,31 @@
Resolver res = new Resolver (pctx);
ILanguageItem it = res.ResolveIdentifier (pctx,
ex, lin, col - 1, FileName, Editor.Text);
- // Create the parameter data provider if a
method is found.
+ MethodParameterDataProvider.Scope scope =
MethodParameterDataProvider.Scope.All;
+ if (it is IMember) {
+ IMember member = it as IMember;
+ IClass insideClass = LookupClass
(res.CompilationUnit, lin, col);
+ if (insideClass != null) {
+ if
(insideClass.FullyQualifiedName == member.DeclaringType.FullyQualifiedName) {
+ scope =
MethodParameterDataProvider.Scope.All;
+ } else {
+ scope =
MethodParameterDataProvider.Scope.Public;
+ foreach (IClass c in
pctx.GetClassInheritanceTree (insideClass)) {
+ if
(c.FullyQualifiedName == member.DeclaringType.FullyQualifiedName) {
+ scope
|= MethodParameterDataProvider.Scope.Protected;
+ break;
+ }
+ }
+ }
+ scope |=
MethodParameterDataProvider.Scope.Internal;
+ }
+ }
if (it is IMethod) {
IMethod met = (IMethod) it;
if (met.IsConstructor)
- return new
CSharpParameterDataProvider (Editor, met.DeclaringType);
+ return new
CSharpParameterDataProvider (Editor, scope, met.DeclaringType);
else
- return new
CSharpParameterDataProvider (Editor, met.DeclaringType, met.Name);
+ return new
CSharpParameterDataProvider (Editor, scope, met.DeclaringType, met.Name);
}
else if (it is IEvent) {
IEvent ev = (IEvent) it;
@@ -551,12 +569,12 @@
if (cls != null) {
foreach(IMethod m in
cls.Methods) {
if (m.Name == "Invoke")
- return new
CSharpParameterDataProvider (Editor, cls, "Invoke");
+ return new
CSharpParameterDataProvider (Editor, scope, cls, "Invoke");
}
}
}
else if (it is IClass) {
- return new CSharpParameterDataProvider
(Editor, (IClass)it);
+ return new CSharpParameterDataProvider
(Editor, scope, (IClass)it);
}
}
return null;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches