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

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

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

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

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

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

@ -495,9 +495,9 @@ namespace ICSharpCode.SharpDevelop.Refactoring
public static IDocument GetDocument(IClass c) 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; if (tecp == null) return null;
return new TextEditorDocument(tecp.TextEditorControl.Document); return tecp.TextEditor.Document;
} }
#endregion #endregion

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

@ -313,7 +313,13 @@ namespace ICSharpCode.SharpDevelop
r.Header = MenuService.ConvertLabel(item.Text); r.Header = MenuService.ConvertLabel(item.Text);
if (item.ImageIndex >= 0) if (item.ImageIndex >= 0)
r.Icon = ClassBrowserIconService.GetImageByIndex(item.ImageIndex).CreateImage(); 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; return r;
} }
} }

Loading…
Cancel
Save