Browse Source

Ctrl+T in the editor opens and focuses Context actions popup. Added tooltip so that the shortcut is discoverable.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6353 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Martin Koníček 15 years ago
parent
commit
33d3af13c7
  1. 15
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs
  2. 5
      src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsBulbControl.xaml
  3. 2
      src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs

15
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs

@ -7,7 +7,9 @@ @@ -7,7 +7,9 @@
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Input;
using System.Windows.Threading;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
@ -54,6 +56,8 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -54,6 +56,8 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.editorView.TextArea.Caret.PositionChanged += CaretPositionChanged;
this.editorView.KeyDown += new KeyEventHandler(ContextActionsRenderer_KeyDown);
editor.TextArea.TextView.ScrollOffsetChanged += ScrollChanged;
this.delayMoveTimer = new DispatcherTimer() { Interval = TimeSpan.FromMilliseconds(delayMoveMilliseconds) };
this.delayMoveTimer.Stop();
@ -62,6 +66,17 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -62,6 +66,17 @@ namespace ICSharpCode.AvalonEdit.AddIn
WorkbenchSingleton.Workbench.ActiveViewContentChanged += WorkbenchSingleton_Workbench_ActiveViewContentChanged;
}
void ContextActionsRenderer_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.T && Keyboard.Modifiers == ModifierKeys.Control)
{
if (popup != null && popup.Actions != null && popup.Actions.Actions != null && popup.Actions.Actions.Count > 0) {
popup.IsDropdownOpen = true;
popup.Focus();
}
}
}
void WorkbenchSingleton_Workbench_ViewClosed(object sender, ViewContentEventArgs e)
{
try {

5
src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsBulbControl.xaml

@ -21,7 +21,10 @@ @@ -21,7 +21,10 @@
<!-- Header -->
<Border x:Name="Header" Grid.Row="0" Grid.Column="0" Padding="2" BorderThickness="1" CornerRadius="2"
BorderBrush="#485763" HorizontalAlignment="Left" MouseUp="Header_MouseUp">
BorderBrush="#485763" HorizontalAlignment="Left" MouseUp="Header_MouseUp" ToolTipService.ShowDuration="3000">
<Border.ToolTip>
<ToolTip Placement="Top"><TextBlock>Available actions (Ctrl+T)</TextBlock></ToolTip>
</Border.ToolTip>
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#F2F2F2" Offset="0"/>

2
src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs

@ -39,6 +39,8 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -39,6 +39,8 @@ namespace ICSharpCode.SharpDevelop.Refactoring
/// </summary>
public IEnumerable<IContextAction> GetAvailableActions(ITextEditor editor)
{
if (ParserService.LoadSolutionProjectsThreadRunning)
yield break;
var parseTask = ParserService.BeginParseCurrentViewContent();
parseTask.Wait();
var editorContext = new EditorContext(editor);

Loading…
Cancel
Save