Browse Source

Worked on basic nrefactory completion infrastructure.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
f46609bcc8
  1. 49
      ICSharpCode.NRefactory/Completion/CompletionCategory.cs
  2. 3
      ICSharpCode.NRefactory/Completion/DisplayFlags.cs
  3. 8
      ICSharpCode.NRefactory/Completion/ICompletionData.cs
  4. 49
      ICSharpCode.NRefactory/Completion/IParameterDataProvider.cs
  5. 23
      ICSharpCode.NRefactory/Completion/IVariableCompletionData.cs
  6. 5
      ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj

49
ICSharpCode.NRefactory/Completion/CompletionCategory.cs

@ -0,0 +1,49 @@
//
// CompletionCategory.cs
//
// Author:
// Mike Krüger <mkrueger@xamarin.com>
//
// Copyright (c) 2011 Xamarin Inc. (http://xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
namespace ICSharpCode.NRefactory.Completion
{
public abstract class CompletionCategory : IComparable<CompletionCategory>
{
public string DisplayText { get; set; }
public string Icon { get; set; }
public CompletionCategory ()
{
}
public CompletionCategory (string displayText, string icon)
{
this.DisplayText = displayText;
this.Icon = icon;
}
public abstract int CompareTo (CompletionCategory other);
}
}

3
ICSharpCode.NRefactory/Completion/DisplayFlags.cs

@ -32,7 +32,8 @@ namespace ICSharpCode.NRefactory.Completion
{ {
None = 0, None = 0,
Hidden = 1, Hidden = 1,
Obsolete = 2 Obsolete = 2,
DescriptionHasMarkup = 4
} }
} }

8
ICSharpCode.NRefactory/Completion/ICompletionData.cs

@ -23,7 +23,6 @@
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -31,9 +30,14 @@ namespace ICSharpCode.NRefactory.Completion
{ {
public interface ICompletionData public interface ICompletionData
{ {
CompletionCategory CompletionCategory { get; set; }
string DisplayText { get; set; } string DisplayText { get; set; }
string Description { get; set; } string Description { get; set; }
string CompletionText { get; set; }
DisplayFlags DisplayFlags { get; set; } DisplayFlags DisplayFlags { get; set; }
bool HasOverloads { bool HasOverloads {
@ -43,5 +47,7 @@ namespace ICSharpCode.NRefactory.Completion
IEnumerable<ICompletionData> OverloadedData { IEnumerable<ICompletionData> OverloadedData {
get; get;
} }
void AddOverload (ICompletionData data);
} }
} }

49
ICSharpCode.NRefactory/Completion/IParameterDataProvider.cs

@ -0,0 +1,49 @@
//
// IParameterDataProvider.cs
//
// Author:
// Mike Krüger <mkrueger@xamarin.com>
//
// Copyright (c) 2011 Xamarin Inc. (http://xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
using ICSharpCode.NRefactory.Editor;
namespace ICSharpCode.NRefactory.Completion
{
public interface IParameterDataProvider
{
// Returns the number of methods
int OverloadCount {
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);
// Returns the text to use to represent the specified parameter
string GetParameterMarkup (int overload, int paramIndex);
// Returns the number of parameters of the specified method
int GetParameterCount (int overload);
}
}

23
ICSharpCode.NRefactory/Completion/ICompletionDataFactory.cs → ICSharpCode.NRefactory/Completion/IVariableCompletionData.cs

@ -1,5 +1,5 @@
// //
// ICompletionDataFactory.cs // IVariableCompletionData.cs
// //
// Author: // Author:
// Mike Krüger <mkrueger@xamarin.com> // Mike Krüger <mkrueger@xamarin.com>
@ -28,22 +28,11 @@ using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.Completion namespace ICSharpCode.NRefactory.Completion
{ {
public interface ICompletionDataFactory public interface IVariableCompletionData : ICompletionData
{ {
ICompletionData CreateEntityCompletionData (IEntity entity); IVariable Variable {
get;
/// <summary> }
/// Creates a generic completion data.
/// </summary>
/// <returns>
/// The title of the completion data
/// </param>
/// <param name='description'>
/// The description of the literal.
/// </param>
/// <param name='insertText'>
/// The insert text. If null, title is taken.
/// </param>
ICompletionData CreateLiteralCompletionData (string title, string description, string insertText = null);
} }
} }

5
ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj

@ -49,6 +49,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<DebugType>full</DebugType>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
@ -189,8 +190,10 @@
<Compile Include="TypeSystem\IAnnotatable.cs" /> <Compile Include="TypeSystem\IAnnotatable.cs" />
<Compile Include="Completion\ICompletionData.cs" /> <Compile Include="Completion\ICompletionData.cs" />
<Compile Include="Completion\DisplayFlags.cs" /> <Compile Include="Completion\DisplayFlags.cs" />
<Compile Include="Completion\ICompletionDataFactory.cs" />
<Compile Include="Completion\IEntityCompletionData.cs" /> <Compile Include="Completion\IEntityCompletionData.cs" />
<Compile Include="Completion\CompletionCategory.cs" />
<Compile Include="Completion\IParameterDataProvider.cs" />
<Compile Include="Completion\IVariableCompletionData.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Completion\" /> <Folder Include="Completion\" />

Loading…
Cancel
Save