Browse Source

Enable "Add using" context action.

newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
1e503a1b53
  1. 1
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
  2. 9
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/ImportCompletionData.cs
  3. 2
      src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/Parser/Statements/TryCatchStatementTests.cs

1
src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin

@ -210,6 +210,7 @@ @@ -210,6 +210,7 @@
or you can add NR5 code action providers using <CSharpCodeActionProvider> -->
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddAnotherAccessorAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddCatchTypeAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddUsingAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CheckIfParameterIsNullAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAnonymousDelegateToLambdaAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAsToCastAction" />

9
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/ImportCompletionData.cs

@ -16,6 +16,9 @@ using ICSharpCode.SharpDevelop.Editor.CodeCompletion; @@ -16,6 +16,9 @@ using ICSharpCode.SharpDevelop.Editor.CodeCompletion;
namespace CSharpBinding.Completion
{
/// <summary>
/// Completion item that introduces a using declaration.
/// </summary>
class ImportCompletionData : EntityCompletionData
{
string insertUsing;
@ -42,11 +45,7 @@ namespace CSharpBinding.Completion @@ -42,11 +45,7 @@ namespace CSharpBinding.Completion
SD.Log.Debug("Insert using '" + insertUsing + "'");
var refactoringContext = SDRefactoringContext.Create(context.Editor, CancellationToken.None);
using (var script = refactoringContext.StartScript()) {
// TODO: sort usings; insert inside namespace if other usings are there; etc.
var prevUsing = refactoringContext.RootNode.Children.LastOrDefault(p => p is UsingDeclaration);
if (prevUsing != null) {
script.InsertAfter(prevUsing, new UsingDeclaration(insertUsing));
}
UsingHelper.InsertUsing(refactoringContext, script, new UsingDeclaration(insertUsing));
}
}
}

2
src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/Parser/Statements/TryCatchStatementTests.cs

@ -86,7 +86,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Statements @@ -86,7 +86,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Statements
Assert.IsFalse(c2.IsMatch(c1)); // and vice versa
}
[Test, Ignore("broken")]
[Test]
public void CommentBeforeTryCatchFinally()
{
var stmt = ParseUtilCSharp.ParseStatement<BlockStatement>(

Loading…
Cancel
Save