Browse Source

Implemented Ctrl+Click -> Go to definition.

newNRvisualizers
Daniel Grunwald 14 years ago
parent
commit
104811c874
  1. 7
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  2. 4
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextViewPosition.cs
  3. 12
      src/Main/Base/Project/Src/Editor/Commands/SymbolUnderCaretMenuCommand.cs
  4. 3
      src/Main/Base/Project/Src/Gui/Dialogs/GotoDialog.cs
  5. 2
      src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs

7
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs

@ -481,10 +481,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -481,10 +481,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
var position = GetPositionFromPoint(e.GetPosition(this));
if (position == null)
return;
throw new NotImplementedException();
//Core.AnalyticsMonitorService.TrackFeature(typeof(GoToDefinition).FullName, "Ctrl+Click");
//var goToDefinitionCommand = new GoToDefinition();
//goToDefinitionCommand.Run(this.Adapter, this.Document.GetOffset(position.Value));
Core.AnalyticsMonitorService.TrackFeature(typeof(GoToDefinition).FullName, "Ctrl+Click");
var goToDefinitionCommand = new GoToDefinition();
goToDefinitionCommand.Run(this.Adapter, this.Document.GetOffset(position.Value.Location));
e.Handled = true;
}
}

4
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextViewPosition.cs

@ -97,9 +97,9 @@ namespace ICSharpCode.AvalonEdit @@ -97,9 +97,9 @@ namespace ICSharpCode.AvalonEdit
}
/// <summary>
/// Implicit conversion to <see cref="TextLocation"/>.
/// Obsolete. Use the Location property instead.
/// </summary>
[Obsolete("Avoid")]
[Obsolete("Use the Location property instead.")]
public static implicit operator TextLocation(TextViewPosition position)
{
return new TextLocation(position.Line, position.Column);

12
src/Main/Base/Project/Src/Editor/Commands/SymbolUnderCaretMenuCommand.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using ICSharpCode.Core;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Gui;
@ -19,12 +20,17 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands @@ -19,12 +20,17 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
{
ITextEditorProvider editorProvider = WorkbenchSingleton.Workbench.ActiveViewContent as ITextEditorProvider;
if (editorProvider != null) {
ITextEditor editor = editorProvider.TextEditor;
var resolveResult = ParserService.Resolve(editor.FileName, editor.Caret.Location, editor.Document);
RunImpl(editor, editor.Caret.Offset, resolveResult);
Run(editorProvider.TextEditor, editorProvider.TextEditor.Caret.Offset);
}
}
public void Run(ITextEditor editor, int caretOffset)
{
var location = editor.Document.GetLocation(caretOffset);
var resolveResult = ParserService.Resolve(editor.FileName, location, editor.Document);
RunImpl(editor, editor.Caret.Offset, resolveResult);
}
protected abstract void RunImpl(ITextEditor editor, int caretOffset, ResolveResult symbol);
protected IEntity GetEntity(ResolveResult symbol)

3
src/Main/Base/Project/Src/Gui/Dialogs/GotoDialog.cs

@ -234,8 +234,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -234,8 +234,7 @@ namespace ICSharpCode.SharpDevelop.Gui
foreach (IProject project in ProjectService.OpenSolution.Projects) {
IProjectContent projectContent = project.ProjectContent;
if (projectContent != null) {
#warning also consider nested types
foreach (IUnresolvedTypeDefinition c in projectContent.TopLevelTypeDefinitions) {
foreach (IUnresolvedTypeDefinition c in projectContent.GetAllTypeDefinitions()) {
string className = c.Name;
if (className.Length >= text.Length) {
if (className.IndexOf(text, StringComparison.OrdinalIgnoreCase) >= 0) {

2
src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs

@ -202,7 +202,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -202,7 +202,7 @@ namespace ICSharpCode.SharpDevelop.Gui
return WorkbenchSingleton.Workbench.ViewContentCollection.OfType<ITextEditorProvider>().Any(provider => item.FileName == provider.TextEditor.FileName);
case 3:
// Document
return WorkbenchSingleton.Workbench.ActiveViewContent != null && WorkbenchSingleton.Workbench.ActiveViewContent.PrimaryFileName == FileName.Create(item.FileName);
return WorkbenchSingleton.Workbench.ActiveViewContent != null && WorkbenchSingleton.Workbench.ActiveViewContent.PrimaryFileName == item.FileName;
case 4:
// Namespace
return current != null && itemClass != null && current.Namespace == itemClass.Namespace;

Loading…
Cancel
Save