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 @@ -2100,7 +2100,7 @@ class Test
}
");
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");
}

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

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

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

@ -55,12 +55,17 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -55,12 +55,17 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
{
public IEnumerable<IMethod> Data { get; set; }
#region IParameterDataProvider implementation
public string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter)
public string GetHeading (int overload, string[] parameterDescription, int currentParameter)
{
return "";
}
public string GetParameterMarkup (int overload, int paramIndex)
public string GetDescription (int overload, int currentParameter)
{
return "";
}
public string GetParameterDescription (int overload, int paramIndex)
{
return "";
}
@ -71,7 +76,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -71,7 +76,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
return method.Parameters.Count;
}
public int OverloadCount {
public bool AllowParameterList (int overload)
{
return false;
}
public int Count {
get {
return Data.Count ();
}
@ -82,13 +92,19 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -82,13 +92,19 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
class IndexerProvider : IParameterDataProvider
{
public IEnumerable<IProperty> Data { get; set; }
#region IParameterDataProvider implementation
public string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter)
public string GetHeading (int overload, string[] parameterDescription, int currentParameter)
{
return "";
}
public string GetParameterMarkup (int overload, int paramIndex)
public string GetDescription (int overload, int currentParameter)
{
return "";
}
public string GetParameterDescription (int overload, int paramIndex)
{
return "";
}
@ -99,7 +115,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -99,7 +115,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
return method.Parameters.Count;
}
public int OverloadCount {
public bool AllowParameterList (int overload)
{
return false;
}
public int Count {
get {
return Data.Count ();
}
@ -108,16 +129,20 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -108,16 +129,20 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
}
class ArrayProvider : IParameterDataProvider
{
#region IParameterDataProvider implementation
public string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter)
public string GetHeading (int overload, string[] parameterDescription, int currentParameter)
{
return "";
}
public string GetParameterMarkup (int overload, int paramIndex)
public string GetDescription (int overload, int currentParameter)
{
return "";
}
public string GetParameterDescription (int overload, int paramIndex)
{
return "";
}
@ -127,7 +152,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -127,7 +152,12 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
return 1;
}
public int OverloadCount {
public bool AllowParameterList (int overload)
{
return false;
}
public int Count {
get {
return 1;
}
@ -139,23 +169,33 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -139,23 +169,33 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
{
public IEnumerable<IType> Data { get; set; }
#region IParameterDataProvider implementation
public string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter)
public string GetHeading (int overload, string[] parameterDescription, int currentParameter)
{
return "";
}
public string GetParameterMarkup (int overload, int paramIndex)
public string GetDescription (int overload, int currentParameter)
{
return "";
}
public string GetParameterDescription (int overload, int paramIndex)
{
return "";
}
public int GetParameterCount (int overload)
{
var method = Data.ElementAt (overload);
return method.TypeParameterCount;
var data = Data.ElementAt (overload);
return data.TypeParameterCount;
}
public bool AllowParameterList (int overload)
{
return false;
}
public int OverloadCount {
public int Count {
get {
return Data.Count ();
}
@ -284,7 +324,7 @@ class AClass @@ -284,7 +324,7 @@ class AClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (2, provider.OverloadCount);
Assert.AreEqual (2, provider.Count);
}
/// <summary>
@ -306,7 +346,7 @@ class Test @@ -306,7 +346,7 @@ class Test
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
/// <summary>
@ -327,7 +367,7 @@ class Test @@ -327,7 +367,7 @@ class Test
}
}");
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");
}
@ -346,7 +386,7 @@ class Test @@ -346,7 +386,7 @@ class Test
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
/// <summary>
@ -371,7 +411,7 @@ class AClass @@ -371,7 +411,7 @@ class AClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
/// <summary>
@ -396,7 +436,7 @@ class TestClass @@ -396,7 +436,7 @@ class TestClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
@ -421,7 +461,7 @@ class AClass @@ -421,7 +461,7 @@ class AClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
/// <summary>
@ -454,7 +494,7 @@ class AClass @@ -454,7 +494,7 @@ class AClass
}");
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");
}
@ -475,7 +515,7 @@ class TestClass @@ -475,7 +515,7 @@ class TestClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
[Test()]
@ -492,7 +532,7 @@ class TestClass @@ -492,7 +532,7 @@ class TestClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
[Test()]
@ -509,7 +549,7 @@ class TestClass @@ -509,7 +549,7 @@ class TestClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
@ -529,7 +569,7 @@ class TestClass @@ -529,7 +569,7 @@ class TestClass
}
}");
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
@ -548,7 +588,7 @@ class TestClass @@ -548,7 +588,7 @@ class TestClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (6, provider.OverloadCount);
Assert.AreEqual (6, provider.Count);
}
[Test()]
@ -605,7 +645,7 @@ class A @@ -605,7 +645,7 @@ class A
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
@ -632,7 +672,7 @@ namespace Test @@ -632,7 +672,7 @@ namespace Test
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (2, provider.OverloadCount);
Assert.AreEqual (2, provider.Count);
}
[Test()]
@ -652,7 +692,7 @@ namespace Test @@ -652,7 +692,7 @@ namespace Test
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (16, provider.OverloadCount);
Assert.AreEqual (16, provider.Count);
}
[Test()]
@ -672,7 +712,7 @@ namespace Test @@ -672,7 +712,7 @@ namespace Test
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (16, provider.OverloadCount);
Assert.AreEqual (16, provider.Count);
}
[Ignore("TODO")]
@ -697,7 +737,7 @@ namespace Test @@ -697,7 +737,7 @@ namespace Test
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
[Ignore("TODO")]
@ -722,7 +762,7 @@ namespace Test @@ -722,7 +762,7 @@ namespace Test
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
[Test()]
@ -739,7 +779,7 @@ class TestClass @@ -739,7 +779,7 @@ class TestClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
[Test()]
@ -756,7 +796,7 @@ class TestClass @@ -756,7 +796,7 @@ class TestClass
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.OverloadCount);
Assert.AreEqual (1, provider.Count);
}
[Ignore("MCS TODO!")]
@ -771,7 +811,7 @@ namespace Test @@ -771,7 +811,7 @@ namespace Test
$class A : Tuple<$
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (16, provider.OverloadCount);
Assert.AreEqual (16, provider.Count);
}
@ -799,7 +839,7 @@ namespace Test @@ -799,7 +839,7 @@ namespace Test
}
}");
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (2, provider.OverloadCount);
Assert.AreEqual (2, provider.Count);
}
[Test()]
@ -828,7 +868,7 @@ namespace Test @@ -828,7 +868,7 @@ namespace Test
}
}");
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; @@ -28,22 +28,45 @@ using ICSharpCode.NRefactory.Editor;
namespace ICSharpCode.NRefactory.Completion
{
/// <summary>
/// Provides intellisense information for a collection of parametrized members.
/// </summary>
public interface IParameterDataProvider
{
// Returns the number of methods
int OverloadCount {
/// <summary>
/// Gets the overload count.
/// </summary>
int Count {
get;
}
// Returns the markup to use to represent the specified method overload
// in the parameter information window.
string GetMethodMarkup (int overload, string[] parameterMarkup, int currentParameter);
/// <summary>
/// Returns the markup to use to represent the specified method overload
/// in the parameter information window.
/// </summary>
string GetHeading (int overload, string[] parameterDescription, int currentParameter);
// Returns the text to use to represent the specified parameter
string GetParameterMarkup (int overload, int paramIndex);
/// <summary>
/// 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);
/// <summary>
/// Used for the params lists. (for example "params" in c#).
/// </summary>
bool AllowParameterList (int overload);
}
}

Loading…
Cancel
Save