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 @@
or you can add NR5 code action providers using <CSharpCodeActionProvider> --> or you can add NR5 code action providers using <CSharpCodeActionProvider> -->
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddAnotherAccessorAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddAnotherAccessorAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddCatchTypeAction" /> <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.CheckIfParameterIsNullAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAnonymousDelegateToLambdaAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAnonymousDelegateToLambdaAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAsToCastAction" /> <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;
namespace CSharpBinding.Completion namespace CSharpBinding.Completion
{ {
/// <summary>
/// Completion item that introduces a using declaration.
/// </summary>
class ImportCompletionData : EntityCompletionData class ImportCompletionData : EntityCompletionData
{ {
string insertUsing; string insertUsing;
@ -42,11 +45,7 @@ namespace CSharpBinding.Completion
SD.Log.Debug("Insert using '" + insertUsing + "'"); SD.Log.Debug("Insert using '" + insertUsing + "'");
var refactoringContext = SDRefactoringContext.Create(context.Editor, CancellationToken.None); var refactoringContext = SDRefactoringContext.Create(context.Editor, CancellationToken.None);
using (var script = refactoringContext.StartScript()) { using (var script = refactoringContext.StartScript()) {
// TODO: sort usings; insert inside namespace if other usings are there; etc. UsingHelper.InsertUsing(refactoringContext, script, new UsingDeclaration(insertUsing));
var prevUsing = refactoringContext.RootNode.Children.LastOrDefault(p => p is UsingDeclaration);
if (prevUsing != null) {
script.InsertAfter(prevUsing, 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
Assert.IsFalse(c2.IsMatch(c1)); // and vice versa Assert.IsFalse(c2.IsMatch(c1)); // and vice versa
} }
[Test, Ignore("broken")] [Test]
public void CommentBeforeTryCatchFinally() public void CommentBeforeTryCatchFinally()
{ {
var stmt = ParseUtilCSharp.ParseStatement<BlockStatement>( var stmt = ParseUtilCSharp.ParseStatement<BlockStatement>(

Loading…
Cancel
Save