diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs
index 86c466e08e..ddf1665fbe 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs
@@ -7,6 +7,7 @@
using System;
using ICSharpCode.SharpDevelop;
+using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor;
namespace ICSharpCode.VBNetBinding
@@ -23,5 +24,9 @@ namespace ICSharpCode.VBNetBinding
public override IBracketSearcher BracketSearcher {
get { return new VBNetBracketSearcher(); }
}
+
+ public override LanguageProperties Properties {
+ get { return LanguageProperties.VBNet; }
+ }
}
}
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CaretReferencesRenderer.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CaretReferencesRenderer.cs
index e256860267..7ca0802d98 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CaretReferencesRenderer.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CaretReferencesRenderer.cs
@@ -38,7 +38,15 @@ namespace ICSharpCode.AvalonEdit.AddIn
ExpressionHighlightRenderer highlightRenderer;
ResolveResult lastResolveResult;
-
+
+ public bool IsEnabled
+ {
+ get {
+ string fileName = this.Editor.FileName;
+ return CodeEditorOptions.Instance.HighlightSymbol && (fileName.EndsWith(".cs") || fileName.EndsWith(".vb"));
+ }
+ }
+
///
/// In the code editor, highlights all references to the expression under the caret (for better code readability).
///
@@ -62,22 +70,22 @@ namespace ICSharpCode.AvalonEdit.AddIn
void TimerTick(object sender, EventArgs e)
{
- if (!CodeEditorOptions.Instance.HighlightSymbol)
- return;
-
this.delayTimer.Stop();
- // almost the same as DebuggerService.HandleToolTipRequest
+
+ if (!IsEnabled)
+ return;
var referencesToBeHighlighted = GetReferencesInCurrentFile(this.lastResolveResult);
this.highlightRenderer.SetHighlight(referencesToBeHighlighted);
}
void TimerMoveTick(object sender, EventArgs e)
{
- if (!CodeEditorOptions.Instance.HighlightSymbol)
- return;
-
this.delayMoveTimer.Stop();
this.delayTimer.Stop();
+
+ if (!IsEnabled)
+ return;
+
var resolveResult = GetExpressionUnderCaret();
if (resolveResult == null) {
this.lastResolveResult = resolveResult;
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
index 1d553b4b95..fcbc9bd162 100755
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
@@ -60,7 +60,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.TextArea.TextView.MouseDown += TextViewMouseDown;
this.TextArea.Caret.PositionChanged += HighlightBrackets;
- SetUpTabSnippetHandler();
+ SetupTabSnippetHandler();
}
protected override string FileName {
@@ -74,8 +74,10 @@ namespace ICSharpCode.AvalonEdit.AddIn
HighlightBrackets(null, e);
else if (e.PropertyName == "EnableFolding")
UpdateParseInformation();
- else if (e.PropertyName == "HighlightSymbol")
- this.caretReferencesRenderer.ClearHighlight();
+ else if (e.PropertyName == "HighlightSymbol") {
+ if (this.caretReferencesRenderer != null)
+ this.caretReferencesRenderer.ClearHighlight();
+ }
}
#region CaretPositionChanged - Bracket Highlighting
@@ -102,7 +104,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
#endregion
#region Custom Tab command (code snippet expansion)
- void SetUpTabSnippetHandler()
+ void SetupTabSnippetHandler()
{
var editingKeyBindings = this.TextArea.DefaultInputHandler.Editing.InputBindings.OfType();
var tabBinding = editingKeyBindings.Single(b => b.Key == Key.Tab && b.Modifiers == ModifierKeys.None);
@@ -346,7 +348,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
#region Ctrl+Click Go To Definition
GoToDefinition goToDefinitionCommand;
- protected GoToDefinition GotoDefinitionCommand {
+ protected GoToDefinition GotoDefinitionCommand {
get
{
if (goToDefinitionCommand == null)
diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs
index 88f383c274..011805e264 100644
--- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs
+++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs
@@ -34,6 +34,18 @@ namespace ICSharpCode.AvalonEdit.AddIn
DispatcherTimer delayMoveTimer;
const int delayMoveMilliseconds = 100;
+ public bool IsEnabled
+ {
+ get {
+ try {
+ string fileName = this.Editor.FileName;
+ return fileName.EndsWith(".cs") || fileName.EndsWith(".vb");
+ } catch {
+ return false;
+ }
+ }
+ }
+
public ContextActionsRenderer(CodeEditorView editor)
{
if (editor == null)
@@ -79,6 +91,8 @@ namespace ICSharpCode.AvalonEdit.AddIn
void TimerMoveTick(object sender, EventArgs e)
{
this.delayMoveTimer.Stop();
+ if (!IsEnabled)
+ return;
var availableActions = ContextActionsService.Instance.GetAvailableActions(this.Editor);
var availableActionsVM = new ObservableCollection(
diff --git a/src/Main/Base/Project/Src/Editor/Commands/ClassMemberMenuBuilder.cs b/src/Main/Base/Project/Src/Editor/Commands/ClassMemberMenuBuilder.cs
index d8a39e2964..9342f7353a 100644
--- a/src/Main/Base/Project/Src/Editor/Commands/ClassMemberMenuBuilder.cs
+++ b/src/Main/Base/Project/Src/Editor/Commands/ClassMemberMenuBuilder.cs
@@ -57,6 +57,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
if (!FindReferencesAndRenameHelper.IsReadOnly(member.DeclaringType) &&
!(member is IProperty && ((IProperty)member).IsIndexer)) {
cmd = new MenuCommand("${res:SharpDevelop.Refactoring.RenameCommand}", Rename);
+ cmd.ShortcutKeys = Keys.Control | Keys.R;
cmd.Tag = member;
list.Add(cmd);
}
@@ -68,6 +69,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
}
cmd = new MenuCommand("${res:SharpDevelop.Refactoring.FindReferencesCommand}", FindReferences);
+ cmd.ShortcutKeys = Keys.F12;
cmd.Tag = member;
list.Add(cmd);
diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsBulbControl.xaml.cs b/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsBulbControl.xaml.cs
index f9401c6d1a..583adcbf55 100644
--- a/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsBulbControl.xaml.cs
+++ b/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsBulbControl.xaml.cs
@@ -38,7 +38,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
get { return isOpen; }
set {
isOpen = value;
- this.Header.Opacity = isOpen ? 1.0 : 1.0;
+ this.Header.Opacity = isOpen ? 1.0 : 0.7;
this.Header.BorderThickness = isOpen ? new Thickness(1, 1, 1, 0) : new Thickness(1);
this.ActionsTreeView.Visibility = isOpen ? Visibility.Visible : Visibility.Collapsed;
}
diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs b/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs
index 90c7a0993e..ea10e0d9dd 100644
--- a/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs
+++ b/src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs
@@ -39,8 +39,8 @@ namespace ICSharpCode.SharpDevelop.Refactoring
///
public IEnumerable GetAvailableActions(ITextEditor editor)
{
- //var parseTask = ParserService.BeginParseCurrentViewContent();
- //parseTask.Wait();
+ var parseTask = ParserService.BeginParseCurrentViewContent();
+ parseTask.Wait();
var editorContext = new EditorContext(editor);
// could run providers in parallel
foreach (var provider in this.providers) {
diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/ContextActionsHelper.cs b/src/Main/Base/Project/Src/Services/RefactoringService/ContextActionsHelper.cs
index 08fe044ca6..149da82fcb 100644
--- a/src/Main/Base/Project/Src/Services/RefactoringService/ContextActionsHelper.cs
+++ b/src/Main/Base/Project/Src/Services/RefactoringService/ContextActionsHelper.cs
@@ -34,9 +34,6 @@ namespace ICSharpCode.SharpDevelop.Refactoring
{
var baseClassList = @class.ClassInheritanceTree.Where(
baseClass => (baseClass != @class) && (baseClass.CompilationUnit != null) && (baseClass.CompilationUnit.FileName != null));
- // Reverse to show the base classes from the most general to the most derived one
- //.Reverse();
- //baseClassList.Sort(new BaseClassComparer());
var popupViewModel = new ContextActionsViewModel { Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.BaseClassesOf}", new StringTagPair("Name", @class.Name)))};
popupViewModel.Actions = new PopupListViewModelBuilder().BuildListViewModel(baseClassList);