Browse Source

Fixed "Implement interface" refactoring.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4496 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 16 years ago
parent
commit
06f1c490bf
  1. 16
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 29
      src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs
  3. 2
      src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowActiveEvaluator.cs
  4. 2
      src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowOpenEvaluator.cs
  5. 4
      src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs
  6. 8
      src/Main/Base/Project/Src/Util/ExtensionMethods.cs

16
AddIns/ICSharpCode.SharpDevelop.addin

@ -1291,7 +1291,7 @@ @@ -1291,7 +1291,7 @@
type = "Item"
command = "Delete"/>
<MenuItem id = "Separator2" type = "Separator" />
<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider" action="Disable">
<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider" action="Disable">
<MenuItem id = "Insert" label = "${res:XML.MainMenu.EditMenu.Insert}" type="Menu">
<MenuItem id = "PasteAsComment"
label = "${res:XML.MainMenu.EditMenu.Paste.AsComment}"
@ -1547,7 +1547,7 @@ @@ -1547,7 +1547,7 @@
shortcut = "Control|Shift|E"
class = "ICSharpCode.SharpDevelop.DefaultEditor.Commands.RunReverseIncrementalSearch"/>
<MenuItem id = "SearchInFilesSeparator" type = "Separator" />
<!-- <Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider" action="Disable"> -->
<!-- <Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider" action="Disable"> -->
<MenuItem id = "ToggleBookmark"
label = "${res:XML.MainMenu.SearchMenu.ToggleBookmark}"
shortcut = "Control|F2"
@ -1590,11 +1590,7 @@ @@ -1590,11 +1590,7 @@
<Include id = "ToolList" path = "/Workspace/Tools" />
<MenuItem id = "Separator2" type = "Separator" />
<ComplexCondition action = "Disable">
<Or>
<Condition name = "WindowActive" activewindow="ICSharpCode.FormsDesigner.FormsDesignerViewContent"/>
<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider"/>
</Or>
<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider">
<MenuItem id = "ConvertCode" label = "${res:XML.MainMenu.ToolMenu.ConvertCodeTo}" type="Menu">
<Condition name="ActiveContentExtension" activeextension=".vb" action = "Disable">
<MenuItem id = "CSharp"
@ -1607,9 +1603,9 @@ @@ -1607,9 +1603,9 @@
class = "ICSharpCode.SharpDevelop.Commands.VBConvertBuffer"/>
</Condition>
</MenuItem>
</ComplexCondition>
</Condition>
<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider" action="Disable">
<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider" action="Disable">
<MenuItem id = "GenerateCodeAction"
label = "${res:XML.MainMenu.ToolMenu.GenerateCode}"
shortcut = "Alt|Insert"
@ -1856,7 +1852,7 @@ @@ -1856,7 +1852,7 @@
<Include id = "Indent" item = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/Indent" />
</MenuItem>
<MenuItem id = "Folding" label = "${res:XML.MainMenu.EditMenu.FoldingMenu}" type="Menu">
<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider" action="Disable">
<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider" action="Disable">
<MenuItem id = "ToggleFolding"
label = "${res:XML.MainMenu.EditMenu.FoldingMenu.ToggleFolding}"
shortcut = "Shift|Control|M"

29
src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs

@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
// <version>$Revision$</version>
// </file>
using ICSharpCode.SharpDevelop.Editor;
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
@ -73,6 +74,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -73,6 +74,7 @@ namespace ICSharpCode.SharpDevelop.Gui
void UpdateTick(ParserUpdateStepEventArgs e)
{
if (!this.IsVisible) return;
LoggingService.Debug("DefinitionViewPad.Update");
ResolveResult res = ResolveAtCaret(e);
@ -90,17 +92,18 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -90,17 +92,18 @@ namespace ICSharpCode.SharpDevelop.Gui
return null;
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
if (window == null) return null;
ITextEditorControlProvider provider = window.ActiveViewContent as ITextEditorControlProvider;
ITextEditorProvider provider = window.ActiveViewContent as ITextEditorProvider;
if (provider == null) return null;
TextEditorControl ctl = provider.TextEditorControl;
ITextEditor editor = provider.TextEditor;
// e might be null when this is a manually triggered update
string fileName = (e == null) ? ctl.FileName : e.FileName;
if (ctl.FileName != fileName) return null;
IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(fileName);
// don't resolve when an unrelated file was changed
if (e != null && editor.FileName != e.FileName) return null;
IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(editor.FileName);
if (expressionFinder == null) return null;
Caret caret = ctl.ActiveTextAreaControl.Caret;
string content = (e == null) ? ctl.Text : e.Content;
ITextEditorCaret caret = editor.Caret;
string content = (e == null) ? editor.Document.Text : e.Content;
if (caret.Offset > content.Length) {
LoggingService.Debug("caret.Offset = " + caret.Offset + ", content.Length=" + content.Length);
return null;
@ -108,11 +111,11 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -108,11 +111,11 @@ namespace ICSharpCode.SharpDevelop.Gui
try {
ExpressionResult expr = expressionFinder.FindFullExpression(content, caret.Offset);
if (expr.Expression == null) return null;
return ParserService.Resolve(expr, caret.Line + 1, caret.Column + 1, fileName, content);
return ParserService.Resolve(expr, caret.Line, caret.Column, editor.FileName, content);
} catch (Exception ex) {
disableDefinitionView = true;
ctl.Visible = false;
MessageService.ShowError(ex, "Error resolving at " + (caret.Line + 1) + "/" + (caret.Column + 1)
MessageService.ShowError(ex, "Error resolving at " + caret.Line + "/" + caret.Column
+ ". DefinitionViewPad is disabled until you restart SharpDevelop.");
return null;
}
@ -138,16 +141,16 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -138,16 +141,16 @@ namespace ICSharpCode.SharpDevelop.Gui
void LoadFile(string fileName)
{
// Get currently open text editor that matches the filename.
TextEditorControl openTextEditor = null;
ITextEditorControlProvider provider = FileService.GetOpenFile(fileName) as ITextEditorControlProvider;
ITextEditor openTextEditor = null;
ITextEditorProvider provider = FileService.GetOpenFile(fileName) as ITextEditorProvider;
if (provider != null) {
openTextEditor = provider.TextEditorControl;
openTextEditor = provider.TextEditor;
}
// Load the text into the definition view's text editor.
if (openTextEditor != null) {
ctl.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategyForFile(fileName);
ctl.Text = openTextEditor.Text;
ctl.Text = openTextEditor.Document.Text;
ctl.FileName = fileName;
} else {
ctl.LoadFile(fileName, true, true); // TODO: get AutoDetectEncoding from settings

2
src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowActiveEvaluator.cs

@ -20,7 +20,7 @@ namespace ICSharpCode.SharpDevelop @@ -20,7 +20,7 @@ namespace ICSharpCode.SharpDevelop
/// "*" to test if any window is active.
/// </attribute>
/// <example title="Test if the current window is a text editor">
/// &lt;Condition name="WindowActive" activewindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider"&gt;
/// &lt;Condition name="WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider"&gt;
/// </example>
/// <example title="Test if any window is active">
/// &lt;Condition name="WindowActive" activewindow="*"&gt;

2
src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowOpenEvaluator.cs

@ -21,7 +21,7 @@ namespace ICSharpCode.SharpDevelop @@ -21,7 +21,7 @@ namespace ICSharpCode.SharpDevelop
/// "*" to test if any window is open.
/// </attribute>
/// <example title="Test if a text editor is opened">
/// &lt;Condition name="WindowOpen" openwindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider"&gt;
/// &lt;Condition name="WindowOpen" openwindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider"&gt;
/// </example>
/// <example title="Test if any window is open">
/// &lt;Condition name="WindowOpen" openwindow="*"&gt;

4
src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs

@ -495,9 +495,9 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -495,9 +495,9 @@ namespace ICSharpCode.SharpDevelop.Refactoring
public static IDocument GetDocument(IClass c)
{
ITextEditorControlProvider tecp = FileService.OpenFile(c.CompilationUnit.FileName) as ITextEditorControlProvider;
ITextEditorProvider tecp = FileService.OpenFile(c.CompilationUnit.FileName) as ITextEditorProvider;
if (tecp == null) return null;
return new TextEditorDocument(tecp.TextEditorControl.Document);
return tecp.TextEditor.Document;
}
#endregion

8
src/Main/Base/Project/Src/Util/ExtensionMethods.cs

@ -313,7 +313,13 @@ namespace ICSharpCode.SharpDevelop @@ -313,7 +313,13 @@ namespace ICSharpCode.SharpDevelop
r.Header = MenuService.ConvertLabel(item.Text);
if (item.ImageIndex >= 0)
r.Icon = ClassBrowserIconService.GetImageByIndex(item.ImageIndex).CreateImage();
r.Click += delegate { item.PerformClick(); };
if (item.DropDownItems.Count > 0) {
foreach (ToolStripMenuItem subItem in item.DropDownItems) {
r.Items.Add(TranslateMenuItemToWpf(subItem));
}
} else {
r.Click += delegate { item.PerformClick(); };
}
return r;
}
}

Loading…
Cancel
Save