Eusebiu Marcu 14 years ago
parent
commit
b9f9234dc3
  1. 1
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  2. 4
      src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionBinding.cs
  3. 21
      src/Main/Base/Project/Src/Editor/CodeCompletion/NRefactoryInsightWindowHandler.cs

1
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs

@ -43,7 +43,6 @@ namespace CSharpBinding @@ -43,7 +43,6 @@ namespace CSharpBinding
} else if (ch == ',' && CodeCompletionOptions.InsightRefreshOnComma && CodeCompletionOptions.InsightEnabled) {
IInsightWindow insightWindow;
if (insightHandler.InsightRefreshOnComma(editor, ch, out insightWindow)) {
insightHandler.HighlightParameter(insightWindow, -1); // disable highlighting
return CodeCompletionKeyPressResult.Completed;
}
} else if(ch == '=') {

4
src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionBinding.cs

@ -2,9 +2,7 @@ @@ -2,9 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections;
using System.IO;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
@ -177,7 +175,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -177,7 +175,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
IInsightWindow insightWindow = editor.ShowInsightWindow(new MethodInsightProvider().ProvideInsight(editor));
if (insightWindow != null && insightHandler != null) {
insightHandler.InitializeOpenedInsightWindow(editor, insightWindow);
insightHandler.HighlightParameter(insightWindow, -1); // disable highlighting
insightHandler.HighlightParameter(insightWindow, 0);
}
return CodeCompletionKeyPressResult.Completed;
}

21
src/Main/Base/Project/Src/Editor/CodeCompletion/NRefactoryInsightWindowHandler.cs

@ -20,6 +20,8 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -20,6 +20,8 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
readonly SupportedLanguage language;
readonly int eofToken, commaToken, openParensToken, closeParensToken, openBracketToken, closeBracketToken, openBracesToken, closeBracesToken, statementEndToken;
readonly LanguageProperties languageProperties;
int highlightedParameter;
public NRefactoryInsightWindowHandler(SupportedLanguage language)
{
@ -77,7 +79,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -77,7 +79,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
}
};
insightWindow.DocumentChanged += onDocumentChanged;
insightWindow.SelectedItemChanged += delegate { HighlightParameter(insightWindow, HighlightedParameter); };
insightWindow.SelectedItemChanged += delegate { HighlightParameter(insightWindow, highlightedParameter); };
onDocumentChanged(null, null);
}
@ -167,7 +169,17 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -167,7 +169,17 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
if (c == '(' || c == '[') {
var insightProvider = new MethodInsightProvider { LookupOffset = offset };
var insightItems = insightProvider.ProvideInsight(editor);
insightWindow = ShowInsight(editor, insightItems, ResolveCallParameters(editor, call), ch);
// find highlighted parameter
var parameters = ResolveCallParameters(editor, call);
var parameter = parameters.Reverse().FirstOrDefault(p => p != null && p.GetDefinitionPosition().Column < editor.Caret.Column);
if (parameter == null) {
highlightedParameter = parameters.Count;
} else {
highlightedParameter = parameters.IndexOf(parameter) + 1;
}
insightWindow = ShowInsight(editor, insightItems, parameters, ch);
return insightWindow != null;
} else {
Core.LoggingService.Warn("Expected '(' or '[' at start position");
@ -212,6 +224,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -212,6 +224,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
IMethodOrProperty result = Dom.CSharp.OverloadResolution.FindOverload(methods.Where(m => m != null), argumentTypes, true, false, out overloadIsSure);
defaultIndex = methods.IndexOf(result);
}
IInsightWindow insightWindow = editor.ShowInsightWindow(insightItems);
if (insightWindow != null) {
InitializeOpenedInsightWindow(editor, insightWindow);
@ -274,8 +287,6 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -274,8 +287,6 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
}
}
public int HighlightedParameter { get; set; }
public void HighlightParameter(IInsightWindow window, int index)
{
if (window == null)
@ -284,7 +295,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -284,7 +295,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
if (item != null)
item.HighlightParameter = index;
HighlightedParameter = index;
highlightedParameter = index;
}
}
}

Loading…
Cancel
Save