Browse Source

Updated parameter data provider interface.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
ea14dc823b
  1. 2
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs
  2. 2
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/ObjectInitializerTests.cs
  3. 118
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/ParameterCompletionTests.cs
  4. 39
      ICSharpCode.NRefactory/Completion/IParameterDataProvider.cs

2
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

@ -2100,7 +2100,7 @@ class Test
} }
"); ");
Assert.IsNotNull (provider, "provider not found."); Assert.IsNotNull (provider, "provider not found.");
Assert.AreEqual (1, provider.OverloadCount, "There should be one overload"); Assert.AreEqual (1, provider.Count, "There should be one overload");
Assert.AreEqual (1, provider.GetParameterCount (0), "Parameter 'test' should exist"); Assert.AreEqual (1, provider.GetParameterCount (0), "Parameter 'test' should exist");
} }

2
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/ObjectInitializerTests.cs

@ -84,7 +84,7 @@ class MyTest
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.Greater (provider.OverloadCount, 1); Assert.Greater (provider.Count, 1);
} }
/// <summary> /// <summary>

118
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/ParameterCompletionTests.cs

@ -55,12 +55,17 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
{ {
public IEnumerable<IMethod> Data { get; set; } public IEnumerable<IMethod> Data { get; set; }
#region IParameterDataProvider implementation #region IParameterDataProvider implementation
public string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter) public string GetHeading (int overload, string[] parameterDescription, int currentParameter)
{ {
return ""; return "";
} }
public string GetParameterMarkup (int overload, int paramIndex) public string GetDescription (int overload, int currentParameter)
{
return "";
}
public string GetParameterDescription (int overload, int paramIndex)
{ {
return ""; return "";
} }
@ -71,7 +76,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
return method.Parameters.Count; return method.Parameters.Count;
} }
public int OverloadCount { public bool AllowParameterList (int overload)
{
return false;
}
public int Count {
get { get {
return Data.Count (); return Data.Count ();
} }
@ -82,13 +92,19 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
class IndexerProvider : IParameterDataProvider class IndexerProvider : IParameterDataProvider
{ {
public IEnumerable<IProperty> Data { get; set; } public IEnumerable<IProperty> Data { get; set; }
#region IParameterDataProvider implementation #region IParameterDataProvider implementation
public string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter) public string GetHeading (int overload, string[] parameterDescription, int currentParameter)
{ {
return ""; return "";
} }
public string GetParameterMarkup (int overload, int paramIndex) public string GetDescription (int overload, int currentParameter)
{
return "";
}
public string GetParameterDescription (int overload, int paramIndex)
{ {
return ""; return "";
} }
@ -99,7 +115,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
return method.Parameters.Count; return method.Parameters.Count;
} }
public int OverloadCount { public bool AllowParameterList (int overload)
{
return false;
}
public int Count {
get { get {
return Data.Count (); return Data.Count ();
} }
@ -108,16 +129,20 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
} }
class ArrayProvider : IParameterDataProvider class ArrayProvider : IParameterDataProvider
{ {
#region IParameterDataProvider implementation #region IParameterDataProvider implementation
public string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter) public string GetHeading (int overload, string[] parameterDescription, int currentParameter)
{ {
return ""; return "";
} }
public string GetParameterMarkup (int overload, int paramIndex) public string GetDescription (int overload, int currentParameter)
{
return "";
}
public string GetParameterDescription (int overload, int paramIndex)
{ {
return ""; return "";
} }
@ -127,7 +152,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
return 1; return 1;
} }
public int OverloadCount { public bool AllowParameterList (int overload)
{
return false;
}
public int Count {
get { get {
return 1; return 1;
} }
@ -139,23 +169,33 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
{ {
public IEnumerable<IType> Data { get; set; } public IEnumerable<IType> Data { get; set; }
#region IParameterDataProvider implementation #region IParameterDataProvider implementation
public string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter) public string GetHeading (int overload, string[] parameterDescription, int currentParameter)
{ {
return ""; return "";
} }
public string GetParameterMarkup (int overload, int paramIndex) public string GetDescription (int overload, int currentParameter)
{
return "";
}
public string GetParameterDescription (int overload, int paramIndex)
{ {
return ""; return "";
} }
public int GetParameterCount (int overload) public int GetParameterCount (int overload)
{ {
var method = Data.ElementAt (overload); var data = Data.ElementAt (overload);
return method.TypeParameterCount; return data.TypeParameterCount;
}
public bool AllowParameterList (int overload)
{
return false;
} }
public int OverloadCount { public int Count {
get { get {
return Data.Count (); return Data.Count ();
} }
@ -284,7 +324,7 @@ class AClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (2, provider.OverloadCount); Assert.AreEqual (2, provider.Count);
} }
/// <summary> /// <summary>
@ -306,7 +346,7 @@ class Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
/// <summary> /// <summary>
@ -327,7 +367,7 @@ class Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount, "There should be one overload"); Assert.AreEqual (1, provider.Count, "There should be one overload");
Assert.AreEqual (1, provider.GetParameterCount(0), "Parameter 'start' should exist"); Assert.AreEqual (1, provider.GetParameterCount(0), "Parameter 'start' should exist");
} }
@ -346,7 +386,7 @@ class Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
/// <summary> /// <summary>
@ -371,7 +411,7 @@ class AClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
/// <summary> /// <summary>
@ -396,7 +436,7 @@ class TestClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
@ -421,7 +461,7 @@ class AClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
/// <summary> /// <summary>
@ -454,7 +494,7 @@ class AClass
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
Assert.AreEqual (1, provider.GetParameterCount(0), "Parameter 'test' should exist"); Assert.AreEqual (1, provider.GetParameterCount(0), "Parameter 'test' should exist");
} }
@ -475,7 +515,7 @@ class TestClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
[Test()] [Test()]
@ -492,7 +532,7 @@ class TestClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
[Test()] [Test()]
@ -509,7 +549,7 @@ class TestClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
@ -529,7 +569,7 @@ class TestClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
/// Bug 3307 - Chained linq methods do not work correctly /// Bug 3307 - Chained linq methods do not work correctly
@ -548,7 +588,7 @@ class TestClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (6, provider.OverloadCount); Assert.AreEqual (6, provider.Count);
} }
[Test()] [Test()]
@ -605,7 +645,7 @@ class A
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
@ -632,7 +672,7 @@ namespace Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (2, provider.OverloadCount); Assert.AreEqual (2, provider.Count);
} }
[Test()] [Test()]
@ -652,7 +692,7 @@ namespace Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (16, provider.OverloadCount); Assert.AreEqual (16, provider.Count);
} }
[Test()] [Test()]
@ -672,7 +712,7 @@ namespace Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (16, provider.OverloadCount); Assert.AreEqual (16, provider.Count);
} }
[Ignore("TODO")] [Ignore("TODO")]
@ -697,7 +737,7 @@ namespace Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
[Ignore("TODO")] [Ignore("TODO")]
@ -722,7 +762,7 @@ namespace Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
[Test()] [Test()]
@ -739,7 +779,7 @@ class TestClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
[Test()] [Test()]
@ -756,7 +796,7 @@ class TestClass
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
[Ignore("MCS TODO!")] [Ignore("MCS TODO!")]
@ -771,7 +811,7 @@ namespace Test
$class A : Tuple<$ $class A : Tuple<$
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (16, provider.OverloadCount); Assert.AreEqual (16, provider.Count);
} }
@ -799,7 +839,7 @@ namespace Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (2, provider.OverloadCount); Assert.AreEqual (2, provider.Count);
} }
[Test()] [Test()]
@ -828,7 +868,7 @@ namespace Test
} }
}"); }");
Assert.IsNotNull (provider, "provider was not created."); Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount); Assert.AreEqual (1, provider.Count);
} }
} }
} }

39
ICSharpCode.NRefactory/Completion/IParameterDataProvider.cs

@ -28,22 +28,45 @@ using ICSharpCode.NRefactory.Editor;
namespace ICSharpCode.NRefactory.Completion namespace ICSharpCode.NRefactory.Completion
{ {
/// <summary>
/// Provides intellisense information for a collection of parametrized members.
/// </summary>
public interface IParameterDataProvider public interface IParameterDataProvider
{ {
// Returns the number of methods /// <summary>
int OverloadCount { /// Gets the overload count.
/// </summary>
int Count {
get; get;
} }
// Returns the markup to use to represent the specified method overload /// <summary>
// in the parameter information window. /// Returns the markup to use to represent the specified method overload
string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter); /// in the parameter information window.
/// </summary>
string GetHeading (int overload, string[] parameterDescription, int currentParameter);
// Returns the text to use to represent the specified parameter /// <summary>
string GetParameterMarkup (int overload, int paramIndex); /// Returns the markup for the description to use to represent the specified method overload
/// in the parameter information window.
/// </summary>
string GetDescription (int overload, int currentParameter);
// Returns the number of parameters of the specified method /// <summary>
/// Returns the text to use to represent the specified parameter
/// </summary>
string GetParameterDescription (int overload, int paramIndex);
/// <summary>
/// Returns the number of parameters of the specified method
/// </summary>
int GetParameterCount (int overload); int GetParameterCount (int overload);
/// <summary>
/// Used for the params lists. (for example "params" in c#).
/// </summary>
bool AllowParameterList (int overload);
} }
} }

Loading…
Cancel
Save