Browse Source

Do not change the code completion binding API.

Prevent the CtrlShiftSpace support from breaking existing addins that
use ICodeCompletionBinding by adding another optional interface
IInsightCodeCompletionBinding that includes the new method.
pull/648/merge
Matt Ward 10 years ago
parent
commit
eb3bb4198e
  1. 5
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpCompletionBinding.cs
  2. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionBinding.cs
  3. 5
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCodeCompletionBinding.cs
  4. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  5. 5
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlCodeCompletionBinding.cs
  6. 17
      src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionBinding.cs

5
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpCompletionBinding.cs

@ -48,11 +48,6 @@ namespace ICSharpCode.AspNet.Mvc.Completion @@ -48,11 +48,6 @@ namespace ICSharpCode.AspNet.Mvc.Completion
return false;
}
public bool CtrlShiftSpace(ITextEditor editor)
{
return false;
}
public CodeCompletionKeyPressResult HandleKeyPress(ITextEditor editor, char ch)
{
// We use HandleKeyPressed instead.

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionBinding.cs

@ -35,7 +35,7 @@ using CSharpBinding.FormattingStrategy; @@ -35,7 +35,7 @@ using CSharpBinding.FormattingStrategy;
namespace CSharpBinding.Completion
{
public class CSharpCompletionBinding : ICodeCompletionBinding
public class CSharpCompletionBinding : ICodeCompletionBinding, IInsightCodeCompletionBinding
{
ICodeContext context;
TextLocation currentLocation;

5
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCodeCompletionBinding.cs

@ -244,11 +244,6 @@ namespace ICSharpCode.XamlBinding @@ -244,11 +244,6 @@ namespace ICSharpCode.XamlBinding
return false;
}
public bool CtrlShiftSpace(ITextEditor editor)
{
return false;
}
void DoTriggerCompletion(XamlCompletionContext context, XamlCompletionItemList completionList)
{
bool isExplicit;

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -631,7 +631,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -631,7 +631,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
return;
CodeEditorView textEditor = GetTextEditorFromSender(sender);
foreach (ICodeCompletionBinding cc in CodeCompletionBindings) {
foreach (IInsightCodeCompletionBinding cc in CodeCompletionBindings.OfType<IInsightCodeCompletionBinding>()) {
if (cc.CtrlShiftSpace(textEditor.Adapter)) {
e.Handled = true;
break;

5
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlCodeCompletionBinding.cs

@ -98,11 +98,6 @@ namespace ICSharpCode.XmlEditor @@ -98,11 +98,6 @@ namespace ICSharpCode.XmlEditor
}
return false;
}
public bool CtrlShiftSpace(ITextEditor editor)
{
return false;
}
bool ElementStartsWith(string text, int elementStartIndex, ITextSource document)
{

17
src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionBinding.cs

@ -51,7 +51,10 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -51,7 +51,10 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
/// </summary>
/// <returns>Returns whether the completion binding has shown code completion.</returns>
bool CtrlSpace(ITextEditor editor);
}
public interface IInsightCodeCompletionBinding
{
/// <summary>
/// Invokes ctrl-shift-space code insight.
/// </summary>
@ -120,7 +123,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -120,7 +123,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
}
}
public sealed class LazyCodeCompletionBinding : ICodeCompletionBinding
public sealed class LazyCodeCompletionBinding : ICodeCompletionBinding, IInsightCodeCompletionBinding
{
Codon codon;
string[] extensions;
@ -174,10 +177,12 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -174,10 +177,12 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
public bool CtrlShiftSpace(ITextEditor editor)
{
if (MatchesExtension(editor))
return binding.CtrlShiftSpace(editor);
else
return false;
if (MatchesExtension(editor)) {
var insightBinding = binding as IInsightCodeCompletionBinding;
if (insightBinding != null)
return insightBinding.CtrlShiftSpace(editor);
}
return false;
}
}
}

Loading…
Cancel
Save