Browse Source

remove unnecessary properties and clear the code.

pull/19/head
Eusebiu Marcu 14 years ago committed by Daniel Grunwald
parent
commit
9f4a336bdd
  1. 4
      src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
  2. 7
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs
  3. 2
      src/AddIns/DisplayBindings/ILSpyAddIn/DebuggerDecompilerService.cs
  4. 26
      src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs
  5. 8
      src/Main/Base/Project/Src/Bookmarks/BookmarkConverter.cs
  6. 16
      src/Main/Base/Project/Src/Commands/DebugCommands.cs
  7. 7
      src/Main/Base/Project/Src/Gui/AbstractViewContentWithoutFile.cs
  8. 1
      src/Main/Base/Project/Src/Services/Debugger/CurrentLineBookmark.cs
  9. 33
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
  10. 15
      src/Main/Base/Project/Src/Services/Debugger/DecompiledBreakpointBookmark.cs

4
src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs

@ -774,8 +774,6 @@ namespace ICSharpCode.SharpDevelop.Services @@ -774,8 +774,6 @@ namespace ICSharpCode.SharpDevelop.Services
int[] ilRanges;
int methodToken;
if (debuggerDecompilerService.GetILAndTokenByLineNumber(token, dbb.LineNumber, out ilRanges, out methodToken)) {
dbb.ILFrom = ilRanges[0];
dbb.ILTo = ilRanges[1];
// create BP
breakpoint = new ILBreakpoint(
debugger,
@ -783,7 +781,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -783,7 +781,7 @@ namespace ICSharpCode.SharpDevelop.Services
dbb.LineNumber,
memberReference.MetadataToken.ToInt32(),
methodToken,
dbb.ILFrom,
ilRanges[0],
dbb.IsEnabled);
debugger.Breakpoints.Add(breakpoint);

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

@ -235,17 +235,16 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -235,17 +235,16 @@ namespace ICSharpCode.AvalonEdit.AddIn
// no bookmark on the line: create a new breakpoint
ITextEditor textEditor = TextView.Services.GetService(typeof(ITextEditor)) as ITextEditor;
if (textEditor != null) {
DebuggerService.ToggleBreakpointAt(textEditor, line);
DebuggerService.ToggleBreakpointAt(textEditor, line, typeof(BreakpointBookmark));
return;
}
// create breakpoint for the other posible active contents
var viewContent = WorkbenchSingleton.Workbench.ActiveContent as AbstractViewContentWithoutFile;
if (viewContent != null && viewContent.Tag is MemberReference) {
var memberReference = (MemberReference)viewContent.Tag;
if (viewContent != null) {
textEditor = viewContent.Services.GetService(typeof(ITextEditor)) as ITextEditor;
if (textEditor != null) {
DebuggerService.ToggleBreakpointAt(memberReference, textEditor, line);
DebuggerService.ToggleBreakpointAt(textEditor, line, typeof(DecompiledBreakpointBookmark));
return;
}
}

2
src/AddIns/DisplayBindings/ILSpyAddIn/DebuggerDecompilerService.cs

@ -10,6 +10,7 @@ using ICSharpCode.Decompiler.Ast; @@ -10,6 +10,7 @@ using ICSharpCode.Decompiler.Ast;
using ICSharpCode.Decompiler.ILAst;
using ICSharpCode.ILSpyAddIn.LaunchILSpy;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Project;
using Mono.Cecil;
namespace ICSharpCode.ILSpyAddIn
@ -24,6 +25,7 @@ namespace ICSharpCode.ILSpyAddIn @@ -24,6 +25,7 @@ namespace ICSharpCode.ILSpyAddIn
static DebuggerDecompilerService()
{
DebugInformation = new ConcurrentDictionary<int, DecompileInformation>();
ProjectService.SolutionClosed += delegate { DebugInformation.Clear(); };
}
internal static IDebuggerDecompilerService Instance { get; private set; }

26
src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs

@ -11,8 +11,6 @@ using ICSharpCode.Decompiler; @@ -11,8 +11,6 @@ using ICSharpCode.Decompiler;
using ICSharpCode.Decompiler.Ast;
using ICSharpCode.ILSpyAddIn.LaunchILSpy;
using ICSharpCode.ILSpyAddIn.ViewContent;
using ICSharpCode.NRefactory.CSharp;
using ICSharpCode.NRefactory.Utils;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Debugging;
@ -41,6 +39,8 @@ namespace ICSharpCode.ILSpyAddIn @@ -41,6 +39,8 @@ namespace ICSharpCode.ILSpyAddIn
readonly CodeView codeView;
readonly CancellationTokenSource cancellation = new CancellationTokenSource();
MemberReference decompiledType;
#region Constructor
public DecompiledViewContent(string assemblyFile, string fullTypeName, string entityTag)
{
@ -86,14 +86,6 @@ namespace ICSharpCode.ILSpyAddIn @@ -86,14 +86,6 @@ namespace ICSharpCode.ILSpyAddIn
get { return true; }
}
public MemberReference MemberReference {
get; private set;
}
public override object Tag {
get { return MemberReference; }
}
#endregion
#region Dispose
@ -176,17 +168,13 @@ namespace ICSharpCode.ILSpyAddIn @@ -176,17 +168,13 @@ namespace ICSharpCode.ILSpyAddIn
astBuilder.GenerateCode(textOutput);
// save decompilation data
var nodes = TreeTraversal
.PreOrder((AstNode)astBuilder.CompilationUnit, n => n.Children)
.Where(n => n is AttributedNode && n.Annotation<Tuple<int, int>>() != null);
MemberReference = typeDefinition;
decompiledType = typeDefinition;
int token = MemberReference.MetadataToken.ToInt32();
int token = decompiledType.MetadataToken.ToInt32();
var info = new DecompileInformation {
CodeMappings = astBuilder.CodeMappings,
LocalVariables = astBuilder.LocalVariables,
DecompiledMemberReferences = astBuilder.DecompiledMemberReferences,
AstNodes = nodes
DecompiledMemberReferences = astBuilder.DecompiledMemberReferences
};
// save the data
@ -227,10 +215,10 @@ namespace ICSharpCode.ILSpyAddIn @@ -227,10 +215,10 @@ namespace ICSharpCode.ILSpyAddIn
{
if (!DebuggerService.IsDebuggerStarted)
return;
if (MemberReference == null || MemberReference.MetadataToken == null)
if (decompiledType == null || decompiledType.MetadataToken == null)
return;
int typeToken = MemberReference.MetadataToken.ToInt32();
int typeToken = decompiledType.MetadataToken.ToInt32();
if (!DebuggerDecompilerService.DebugInformation.ContainsKey(typeToken))
return;
var decompilerService = DebuggerDecompilerService.Instance;

8
src/Main/Base/Project/Src/Bookmarks/BookmarkConverter.cs

@ -56,10 +56,8 @@ namespace ICSharpCode.SharpDevelop.Bookmarks @@ -56,10 +56,8 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
action = (Debugging.BreakpointAction)Enum.Parse(typeof(Debugging.BreakpointAction), v[5]);
scriptLanguage = v[6];
script = v[7];
int ilfrom = Convert.ToInt32(v[8]);
int ilto = Convert.ToInt32(v[9]);
bbm = new DecompiledBreakpointBookmark(null, ilfrom, ilto, fileName, new Location(columnNumber, lineNumber), action, scriptLanguage, script);
bbm = new DecompiledBreakpointBookmark(fileName, new Location(columnNumber, lineNumber), action, scriptLanguage, script);
bbm.IsEnabled = bool.Parse(v[4]);
bbm.Action = action;
bbm.ScriptLanguage = scriptLanguage;
@ -126,10 +124,6 @@ namespace ICSharpCode.SharpDevelop.Bookmarks @@ -126,10 +124,6 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
b.Append(bbm.ScriptLanguage);
b.Append('|');
b.Append(bbm.Condition);
b.Append('|');
b.Append(bbm.ILFrom);
b.Append('|');
b.Append(bbm.ILTo);
} else if (bookmark is Debugging.BreakpointBookmark) {
var bbm = (Debugging.BreakpointBookmark)bookmark;
b.Append('|');

16
src/Main/Base/Project/Src/Commands/DebugCommands.cs

@ -121,18 +121,20 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -121,18 +121,20 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
{
var viewContent = WorkbenchSingleton.Workbench.ActiveContent;
ITextEditorProvider provider = viewContent as ITextEditorProvider;
ITextEditor editor = null;
if (provider != null) {
ITextEditor editor = provider.TextEditor;
editor = provider.TextEditor;
if (!string.IsNullOrEmpty(editor.FileName)) {
DebuggerService.ToggleBreakpointAt(editor, editor.Caret.Line);
DebuggerService.ToggleBreakpointAt(editor, editor.Caret.Line, typeof(BreakpointBookmark));
}
} else {
if (viewContent is AbstractViewContentWithoutFile) {
dynamic codeView = ((AbstractViewContentWithoutFile)viewContent).Control;
var editor = codeView.TextEditor as ITextEditor;
if (editor != null && !string.IsNullOrEmpty(editor.FileName))
DebuggerService.ToggleBreakpointAt(editor, editor.Caret.Line);
var view = viewContent as AbstractViewContentWithoutFile;
if (view != null) {
editor = view.GetService(typeof(ITextEditor)) as ITextEditor;
if (editor != null) {
DebuggerService.ToggleBreakpointAt(editor, editor.Caret.Line, typeof(DecompiledBreakpointBookmark));
}
}
}
}

7
src/Main/Base/Project/Src/Gui/AbstractViewContentWithoutFile.cs

@ -16,13 +16,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -16,13 +16,6 @@ namespace ICSharpCode.SharpDevelop.Gui
/// </summary>
public abstract class AbstractViewContentWithoutFile : AbstractViewContent, ICustomizedCommands
{
/// <summary>
/// Gets specific information (from implementations) regarding this view content.
/// </summary>
public virtual object Tag {
get { return null; }
}
public override bool IsViewOnly {
get { return false; }
}

1
src/Main/Base/Project/Src/Services/Debugger/CurrentLineBookmark.cs

@ -3,7 +3,6 @@ @@ -3,7 +3,6 @@
using System;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.Core;
using ICSharpCode.NRefactory;
using ICSharpCode.SharpDevelop.Bookmarks;

33
src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

@ -3,9 +3,7 @@ @@ -3,9 +3,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows;
using System.Windows.Forms;
using ICSharpCode.Core;
@ -226,22 +224,29 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -226,22 +224,29 @@ namespace ICSharpCode.SharpDevelop.Debugging
}
}
public static void ToggleBreakpointAt(ITextEditor editor, int lineNumber)
/// <summary>
/// Toggles a breakpoint bookmark.
/// </summary>
/// <param name="editor">Text editor where the bookmark is toggled.</param>
/// <param name="lineNumber">Line number.</param>
/// <param name="breakpointType">Type of breakpoint bookmark.</param>
/// <param name="parameters">Optional constructor parameters.</param>
public static void ToggleBreakpointAt(ITextEditor editor, int lineNumber, Type breakpointType, object[] parameters = null)
{
if (editor == null)
throw new ArgumentNullException("editor");
if (breakpointType == null)
throw new ArgumentNullException("breakpointType");
if (!typeof(BreakpointBookmark).IsAssignableFrom(breakpointType))
throw new ArgumentException("breakpointType is not a BreakpointBookmark");
BookmarkManager.ToggleBookmark(
editor, lineNumber,
b => b.CanToggle && b is BreakpointBookmark,
location => new BreakpointBookmark(editor.FileName, location, BreakpointAction.Break, "", ""));
}
public static void ToggleBreakpointAt(MemberReference memberReference, ITextEditor editor, int lineNumber)
{
// no bookmark on the line: create a new breakpoint
BookmarkManager.ToggleBookmark(
editor, lineNumber,
b => b.CanToggle,
location => new DecompiledBreakpointBookmark(
memberReference, 0, 0, editor.FileName, location, BreakpointAction.Break, "", ""));
location => (BreakpointBookmark)Activator.CreateInstance(breakpointType,
parameters ?? new object[] { editor.FileName, location, BreakpointAction.Break, "", ""}));
}
/* TODO: reimplement this stuff

15
src/Main/Base/Project/Src/Services/Debugger/DecompiledBreakpointBookmark.cs

@ -15,19 +15,10 @@ namespace ICSharpCode.SharpDevelop.Bookmarks @@ -15,19 +15,10 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
MemberReference memberReference;
string assemblyFile;
public DecompiledBreakpointBookmark(MemberReference member, int ilFrom, int ilTo, FileName fileName, Location location, BreakpointAction action, string scriptLanguage, string script) : base(fileName, location, action, scriptLanguage, script)
public DecompiledBreakpointBookmark(FileName fileName, Location location, BreakpointAction action, string scriptLanguage, string script)
: base(fileName, location, action, scriptLanguage, script)
{
this.memberReference = member;
this.ILFrom = ilFrom;
this.ILTo = ILTo;
}
public int ILFrom {
get; set;
}
public int ILTo {
get; set;
}
public MemberReference MemberReference {

Loading…
Cancel
Save