Browse Source

Add XmlDocTooltipProvider.

newNRvisualizers
Daniel Grunwald 14 years ago
parent
commit
aa1642faa8
  1. 19
      SharpDevelop.sln
  2. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj
  3. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin
  4. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
  5. 23
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  6. 21
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DocumentPrinter.cs
  7. 438
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/XmlDoc/DocumentationUIBuilder.cs
  8. 87
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/XmlDoc/XmlDocTooltipProvider.cs
  9. 12
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/RopeTextSource.cs
  10. 14
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/TextDocument.cs
  11. 60
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/Rope.cs
  12. 6
      src/Main/Base/Project/Configuration/AssemblyInfo.cs
  13. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  14. 19
      src/Main/Base/Project/Src/Editor/ToolTipRequestEventArgs.cs
  15. 12
      src/Main/Base/Project/Src/Editor/ToolTipService.cs
  16. 8
      src/Main/Base/Project/Src/Gui/Dialogs/GotoDialog.cs
  17. 117
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
  18. 15
      src/Main/Base/Project/Src/Services/Debugger/DefaultDebugger.cs
  19. 13
      src/Main/Base/Project/Src/Services/Debugger/IDebugger.cs
  20. 2
      src/Main/Core/Project/Configuration/AssemblyInfo.cs
  21. 5
      src/Main/ICSharpCode.Core.WinForms/Properties/AssemblyInfo.cs
  22. 3
      src/Main/ICSharpCode.SharpDevelop.Sda/Configuration/AssemblyInfo.cs
  23. 10
      src/Main/ICSharpCode.SharpDevelop.Sda/ICSharpCode.SharpDevelop.Sda.csproj
  24. 3
      src/Main/StartUp/Project/StartUp.csproj

19
SharpDevelop.sln

@ -65,6 +65,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory", "s @@ -65,6 +65,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory", "s
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.CSharp", "src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj", "{53DCA265-3C3C-42F9-B647-F72BA678122B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.Xml", "src\Libraries\NRefactory\ICSharpCode.NRefactory.Xml\ICSharpCode.NRefactory.Xml.csproj", "{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonDock", "src\Libraries\AvalonDock\AvalonDock\AvalonDock.csproj", "{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
@ -339,6 +341,22 @@ Global @@ -339,6 +341,22 @@ Global
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|x86.ActiveCfg = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Debug.Build.0 = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Debug.ActiveCfg = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Win32.Build.0 = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Win32.ActiveCfg = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|x86.Build.0 = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|x86.ActiveCfg = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Debug.Build.0 = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Debug.ActiveCfg = Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Any CPU.Build.0 = Release|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Win32.Build.0 = Release|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Win32.ActiveCfg = Release|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|x86.Build.0 = Release|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|x86.ActiveCfg = Release|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Debug.Build.0 = Release|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Debug.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -362,6 +380,7 @@ Global @@ -362,6 +380,7 @@ Global
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{F208FF4F-E5D8-41D5-A7C7-B463976F156E} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}

2
src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj

@ -106,7 +106,7 @@ @@ -106,7 +106,7 @@
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
<Private>True</Private>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>

8
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin

@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
<Class id="CodeEditorView" class="ICSharpCode.AvalonEdit.AddIn.AvalonEditorControlService"/>
</Path>
<!--
<!--
<Path name = "/SharpDevelop/ViewContent/TextEditor/ContextMenu">
<Condition name = "WindowActive" activewindow="ICSharpCode.AvalonEdit.AddIn.ICodeEditorProvider">
<MenuItem id = "SaveWithEncoding"
@ -163,4 +163,10 @@ @@ -163,4 +163,10 @@
<Class id="default" class="ICSharpCode.AvalonEdit.AddIn.Snippets.DefaultSnippetElementProvider" />
<Class id="anchor" class="ICSharpCode.AvalonEdit.AddIn.Snippets.AnchorSnippetElementProvider" />
</Path>
<Path name = "/SharpDevelop/ViewContent/TextEditor/ToolTips">
<Class id = "DefaultXmlDocToolTips"
insertafter="DefaultDebuggerToolTips"
class = "ICSharpCode.AvalonEdit.AddIn.XmlDoc.XmlDocTooltipProvider"/>
</Path>
</AddIn>

8
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj

@ -72,6 +72,8 @@ @@ -72,6 +72,8 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Src\XmlDoc\DocumentationUIBuilder.cs" />
<Compile Include="Src\XmlDoc\XmlDocTooltipProvider.cs" />
<None Include="AvalonEdit.AddIn.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@ -195,6 +197,11 @@ @@ -195,6 +197,11 @@
<Name>Mono.Cecil</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.Xml\ICSharpCode.NRefactory.Xml.csproj">
<Project>{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}</Project>
<Name>ICSharpCode.NRefactory.Xml</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
@ -241,5 +248,6 @@ @@ -241,5 +248,6 @@
<ItemGroup>
<Folder Include="Src\MyersDiff" />
<Folder Include="Src\HiddenDefinition" />
<Folder Include="Src\XmlDoc" />
</ItemGroup>
</Project>

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

@ -23,6 +23,7 @@ using ICSharpCode.AvalonEdit.Folding; @@ -23,6 +23,7 @@ using ICSharpCode.AvalonEdit.Folding;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
@ -104,17 +105,17 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -104,17 +105,17 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// </summary>
void HighlightBrackets(object sender, EventArgs e)
{
/*
* Special case: ITextEditor.Language guarantees that it never returns null.
* In this case however it can be null, since this code may be called while the document is loaded.
* ITextEditor.Language gets set in CodeEditorAdapter.FileNameChanged, which is called after
* loading of the document has finished.
* */
if (this.Adapter.Language != null) {
/*
* Special case: ITextEditor.Language guarantees that it never returns null.
* In this case however it can be null, since this code may be called while the document is loaded.
* ITextEditor.Language gets set in CodeEditorAdapter.FileNameChanged, which is called after
* loading of the document has finished.
* */
if (this.Adapter.Language != null) {
if (CodeEditorOptions.Instance.HighlightBrackets || CodeEditorOptions.Instance.ShowHiddenDefinitions) {
var bracketSearchResult = this.Adapter.Language.BracketSearcher.SearchBracket(this.Adapter.Document, this.TextArea.Caret.Offset);
if (CodeEditorOptions.Instance.HighlightBrackets) {
this.bracketRenderer.SetHighlight(bracketSearchResult);
this.bracketRenderer.SetHighlight(bracketSearchResult);
} else {
this.bracketRenderer.SetHighlight(null);
}
@ -124,12 +125,12 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -124,12 +125,12 @@ namespace ICSharpCode.AvalonEdit.AddIn
} else {
this.hiddenDefinitionRenderer.ClosePopup();
}
} else {
this.bracketRenderer.SetHighlight(null);
} else {
this.bracketRenderer.SetHighlight(null);
this.hiddenDefinitionRenderer.ClosePopup();
}
}
}
}
#endregion
#region Custom Tab command (code snippet expansion)

21
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DocumentPrinter.cs

@ -13,6 +13,7 @@ using System.Windows.Xps.Packaging; @@ -13,6 +13,7 @@ using System.Windows.Xps.Packaging;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.NRefactory.Editor;
namespace ICSharpCode.AvalonEdit.AddIn
{
@ -21,7 +22,17 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -21,7 +22,17 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// </summary>
public static class DocumentPrinter
{
public static Block ConvertTextDocumentToBlock(TextDocument document, IHighlighter highlighter)
public static Block ConvertTextDocumentToBlock(ReadOnlyDocument document, IHighlightingDefinition highlightingDefinition)
{
IHighlighter highlighter;
if (highlightingDefinition != null)
highlighter = new DocumentHighlighter(document, highlightingDefinition.MainRuleSet);
else
highlighter = null;
return ConvertTextDocumentToBlock(document, highlighter);
}
public static Block ConvertTextDocumentToBlock(IDocument document, IHighlighter highlighter)
{
if (document == null)
throw new ArgumentNullException("document");
@ -31,8 +42,11 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -31,8 +42,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
// TableRowGroup trg = new TableRowGroup();
// table.RowGroups.Add(trg);
Paragraph p = new Paragraph();
foreach (DocumentLine line in document.Lines) {
int lineNumber = line.LineNumber;
p.TextAlignment = TextAlignment.Left;
for (int lineNumber = 1; lineNumber <= document.LineCount; lineNumber++) {
if (lineNumber > 1)
p.Inlines.Add(new LineBreak());
var line = document.GetLineByNumber(lineNumber);
// TableRow row = new TableRow();
// trg.Rows.Add(row);
// row.Cells.Add(new TableCell(new Paragraph(new Run(lineNumber.ToString()))) { TextAlignment = TextAlignment.Right });
@ -46,7 +60,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -46,7 +60,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
// Paragraph p = new Paragraph();
// row.Cells.Add(new TableCell(p));
p.Inlines.AddRange(inlineBuilder.CreateRuns());
p.Inlines.Add(new LineBreak());
}
return p;
}

438
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/XmlDoc/DocumentationUIBuilder.cs

@ -0,0 +1,438 @@ @@ -0,0 +1,438 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.AddIn.Options;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Xml;
using ICSharpCode.SharpDevelop;
namespace ICSharpCode.AvalonEdit.AddIn.XmlDoc
{
/// <summary>
/// Builds a FlowDocument for XML documentation.
/// </summary>
public class DocumentationUIBuilder
{
FlowDocument flowDocument;
BlockCollection blockCollection;
InlineCollection inlineCollection;
IAmbience ambience;
public DocumentationUIBuilder(IAmbience ambience = null)
{
this.ambience = ambience ?? AmbienceService.GetCurrentAmbience();
this.flowDocument = new FlowDocument();
this.blockCollection = flowDocument.Blocks;
this.ShowSummary = true;
this.ShowAllParameters = true;
this.ShowReturns = true;
this.ShowThreadSafety = true;
this.ShowExceptions = true;
this.ShowTypeParameters = true;
this.ShowExample = true;
this.ShowPreliminary = true;
this.ShowSeeAlso = true;
this.ShowValue = true;
this.ShowPermissions = true;
this.ShowRemarks = true;
}
public FlowDocument FlowDocument {
get { return flowDocument; }
}
public bool ShowExceptions { get; set; }
public bool ShowPermissions { get; set; }
public bool ShowExample { get; set; }
public bool ShowPreliminary { get; set; }
public bool ShowRemarks { get; set; }
public bool ShowSummary { get; set; }
public bool ShowReturns { get; set; }
public bool ShowSeeAlso { get; set; }
public bool ShowThreadSafety { get; set; }
public bool ShowTypeParameters { get; set; }
public bool ShowValue { get; set; }
public bool ShowAllParameters { get; set; }
/// <summary>
/// Gets/Sets the name of the parameter that should be shown.
/// </summary>
public string ParameterName { get; set; }
public void AddDocumentationElement(XmlDocumentationElement element)
{
if (element == null)
throw new ArgumentNullException("element");
if (element.IsTextNode) {
AddText(element.TextContent);
return;
}
switch (element.Name) {
case "b":
AddSpan(new Bold(), element.Children);
break;
case "i":
AddSpan(new Italic(), element.Children);
break;
case "c":
AddSpan(new Span { FontFamily = GetCodeFont() }, element.Children);
break;
case "code":
AddCodeBlock(element.TextContent);
break;
case "example":
if (ShowExample)
AddSection("Example: ", element.Children);
break;
case "exception":
if (ShowExceptions)
AddException(element.ReferencedEntity, element.Children);
break;
case "list":
AddList(element.GetAttribute("type"), element.Children);
break;
//case "note":
// throw new NotImplementedException();
case "para":
AddParagraph(new Paragraph { Margin = new Thickness(0, 5, 0, 5) }, element.Children);
break;
case "param":
if (ShowAllParameters || (ParameterName != null && ParameterName == element.GetAttribute("name")))
AddParam(element.GetAttribute("name"), element.Children);
break;
case "paramref":
AddParamRef(element.GetAttribute("name"));
break;
case "permission":
if (ShowPermissions)
AddPermission(element.ReferencedEntity, element.Children);
break;
case "preliminary":
if (ShowPreliminary)
AddPreliminary(element.Children);
break;
case "remarks":
if (ShowRemarks)
AddSection("Remarks: ", element.Children);
break;
case "returns":
if (ShowReturns)
AddSection("Returns: ", element.Children);
break;
case "see":
AddSee(element);
break;
case "seealso":
if (inlineCollection != null)
AddSee(element);
else if (ShowSeeAlso)
AddSection(new Run("See also: "), () => AddSee(element));
break;
case "summary":
if (ShowSummary)
AddSection("Summary: ", element.Children);
break;
case "threadsafety":
if (ShowThreadSafety)
AddThreadSafety(ParseBool(element.GetAttribute("static")), ParseBool(element.GetAttribute("instance")), element.Children);
break;
case "typeparam":
if (ShowTypeParameters)
AddSection("Type parameter " + element.GetAttribute("name") + ": ", element.Children);
break;
case "typeparamref":
AddText(element.GetAttribute("name"));
break;
case "value":
if (ShowValue)
AddSection("Value: ", element.Children);
break;
case "exclude":
case "filterpriority":
case "overloads":
// ignore children
break;
default:
foreach (var child in element.Children)
AddDocumentationElement(child);
break;
}
}
void AddList(string type, IEnumerable<XmlDocumentationElement> items)
{
List list = new List();
AddBlock(list);
list.Margin = new Thickness(0, 5, 0, 5);
if (type == "number")
list.MarkerStyle = TextMarkerStyle.Decimal;
else if (type == "bullet")
list.MarkerStyle = TextMarkerStyle.Disc;
var oldBlockCollection = blockCollection;
try {
foreach (var itemElement in items) {
if (itemElement.Name == "listheader" || itemElement.Name == "item") {
ListItem item = new ListItem();
blockCollection = item.Blocks;
inlineCollection = null;
foreach (var prop in itemElement.Children) {
AddDocumentationElement(prop);
}
FlushAddedText(false);
list.ListItems.Add(item);
}
}
} finally {
blockCollection = oldBlockCollection;
}
}
public void AddCodeBlock(string textContent, bool keepLargeMargin = false)
{
var document = new ReadOnlyDocument(textContent);
var highlightingDefinition = HighlightingManager.Instance.GetDefinition("C#");
var block = DocumentPrinter.ConvertTextDocumentToBlock(document, highlightingDefinition);
block.FontFamily = GetCodeFont();
if (!keepLargeMargin)
block.Margin = new Thickness(0, 6, 0, 6);
AddBlock(block);
}
bool? ParseBool(string input)
{
bool result;
if (bool.TryParse(input, out result))
return result;
else
return null;
}
void AddThreadSafety(bool? staticThreadSafe, bool? instanceThreadSafe, IEnumerable<XmlDocumentationElement> children)
{
AddSection(
new Run("Thread-safety: "),
delegate {
if (staticThreadSafe == true)
AddText("Any public static members of this type are thread safe. ");
else if (staticThreadSafe == false)
AddText("The static members of this type are not thread safe. ");
if (instanceThreadSafe == true)
AddText("Any public instance members of this type are thread safe. ");
else if (instanceThreadSafe == false)
AddText("Any instance members are not guaranteed to be thread safe. ");
foreach (var child in children)
AddDocumentationElement(child);
});
}
FontFamily GetCodeFont()
{
return new FontFamily(CodeEditorOptions.Instance.FontFamily);
}
void AddException(IEntity referencedEntity, IList<XmlDocumentationElement> children)
{
Span span = new Span();
if (referencedEntity != null)
span.Inlines.Add(ConvertReference(referencedEntity));
else
span.Inlines.Add("Exception");
span.Inlines.Add(": ");
AddSection(span, children);
}
void AddPermission(IEntity referencedEntity, IList<XmlDocumentationElement> children)
{
Span span = new Span();
span.Inlines.Add("Permission");
if (referencedEntity != null) {
span.Inlines.Add(" ");
span.Inlines.Add(ConvertReference(referencedEntity));
}
span.Inlines.Add(": ");
AddSection(span, children);
}
Inline ConvertReference(IEntity referencedEntity)
{
var h = new Hyperlink(new Run(ambience.ConvertEntity(referencedEntity)));
h.Click += delegate(object sender, RoutedEventArgs e) {
SharpDevelop.NavigationService.NavigateTo(referencedEntity);
e.Handled = true;
};
return h;
}
void AddParam(string name, IEnumerable<XmlDocumentationElement> children)
{
Span span = new Span();
span.Inlines.Add(new Run(name ?? string.Empty) { FontStyle = FontStyles.Italic });
span.Inlines.Add(": ");
AddSection(span, children);
}
void AddParamRef(string name)
{
if (name != null) {
AddInline(new Run(name) { FontStyle = FontStyles.Italic });
}
}
void AddPreliminary(IEnumerable<XmlDocumentationElement> children)
{
if (children.Any()) {
foreach (var child in children)
AddDocumentationElement(child);
} else {
AddText("[This is preliminary documentation and subject to change.]");
}
}
void AddSee(XmlDocumentationElement element)
{
IEntity referencedEntity = element.ReferencedEntity;
if (referencedEntity != null) {
if (element.Children.Any()) {
Hyperlink link = new Hyperlink();
link.Click += delegate(object sender, RoutedEventArgs e) {
SharpDevelop.NavigationService.NavigateTo(referencedEntity);
e.Handled = true;
};
AddSpan(link, element.Children);
} else {
AddInline(ConvertReference(referencedEntity));
}
} else if (element.GetAttribute("langword") != null) {
AddInline(new Run(element.GetAttribute("langword")) { FontFamily = GetCodeFont() });
} else if (element.GetAttribute("href") != null) {
Uri uri;
if (Uri.TryCreate(element.GetAttribute("href"), UriKind.Absolute, out uri)) {
if (element.Children.Any()) {
AddSpan(new Hyperlink { NavigateUri = uri }, element.Children);
} else {
AddInline(new Hyperlink(new Run(element.GetAttribute("href"))) { NavigateUri = uri });
}
}
} else {
// Invalid reference: print the cref value
AddText(element.GetAttribute("cref"));
}
}
void AddSection(string title, IEnumerable<XmlDocumentationElement> children)
{
AddSection(new Run(title), children);
}
void AddSection(Inline title, IEnumerable<XmlDocumentationElement> children)
{
AddSection(
title, delegate {
foreach (var child in children)
AddDocumentationElement(child);
});
}
void AddSection(Inline title, Action addChildren)
{
var section = new Section();
blockCollection.Add(section);
var oldBlockCollection = blockCollection;
try {
blockCollection = section.Blocks;
inlineCollection = null;
if (title != null)
AddInline(new Bold(title));
addChildren();
FlushAddedText(false);
} finally {
blockCollection = oldBlockCollection;
inlineCollection = null;
}
}
void AddParagraph(Paragraph para, IEnumerable<XmlDocumentationElement> children)
{
blockCollection.Add(para);
try {
inlineCollection = para.Inlines;
foreach (var child in children)
AddDocumentationElement(child);
FlushAddedText(false);
} finally {
inlineCollection = null;
}
}
void AddSpan(Span span, IEnumerable<XmlDocumentationElement> children)
{
AddInline(span);
var oldInlineCollection = inlineCollection;
try {
inlineCollection = span.Inlines;
foreach (var child in children)
AddDocumentationElement(child);
FlushAddedText(false);
} finally {
inlineCollection = oldInlineCollection;
}
}
public void AddInline(Inline inline)
{
FlushAddedText(false);
if (inlineCollection == null) {
var para = new Paragraph();
para.Margin = new Thickness(0, 0, 0, 5);
inlineCollection = para.Inlines;
AddBlock(para);
}
inlineCollection.Add(inline);
}
public void AddBlock(Block block)
{
FlushAddedText(true);
blockCollection.Add(block);
}
string addedText;
public void AddText(string textContent)
{
if (string.IsNullOrEmpty(textContent))
return;
if (inlineCollection == null && string.IsNullOrWhiteSpace(textContent))
return;
FlushAddedText(false);
addedText = textContent;
}
void FlushAddedText(bool trimEnd)
{
if (addedText == null)
return;
string text = addedText;
addedText = null;
AddInline(new Run(trimEnd ? text.TrimEnd() : text));
}
}
}

87
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/XmlDoc/XmlDocTooltipProvider.cs

@ -0,0 +1,87 @@ @@ -0,0 +1,87 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.AddIn.Options;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Xml;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
namespace ICSharpCode.AvalonEdit.AddIn.XmlDoc
{
public class XmlDocTooltipProvider : ITextAreaToolTipProvider
{
public void HandleToolTipRequest(ToolTipRequestEventArgs e)
{
if (e.ResolveResult == null)
return;
TypeResolveResult trr = e.ResolveResult as TypeResolveResult;
MemberResolveResult mrr = e.ResolveResult as MemberResolveResult;
LocalResolveResult lrr = e.ResolveResult as LocalResolveResult;
if (trr != null && trr.Type.GetDefinition() != null) {
e.SetToolTip(CreateTooltip(trr.Type.GetDefinition()));
} else if (mrr != null) {
e.SetToolTip(CreateTooltip(mrr.Member));
} else if (lrr != null) {
var ambience = AmbienceService.GetCurrentAmbience();
e.SetToolTip(ambience.ConvertVariable(lrr.Variable));
}
}
sealed class FlowDocumentTooltip : Border, ITooltip
{
FlowDocumentScrollViewer viewer;
public FlowDocumentTooltip(FlowDocument document)
{
viewer = new FlowDocumentScrollViewer();
viewer.Document = document;
this.Child = viewer;
this.Background = SystemColors.InfoBrush;
viewer.Foreground = SystemColors.InfoTextBrush;
this.BorderBrush = SystemColors.InfoTextBrush;
this.BorderThickness = new Thickness(1);
this.MaxHeight = 400;
document.FontSize = CodeEditorOptions.Instance.FontSize;
}
public event RoutedEventHandler Closed { add {} remove {} }
public bool ShowAsPopup {
get { return true; }
}
public bool Close(bool mouseClick)
{
return true;
}
}
object CreateTooltip(IEntity entity)
{
var ambience = AmbienceService.GetCurrentAmbience();
ambience.ConversionFlags = ConversionFlags.StandardConversionFlags;
string header = ambience.ConvertEntity(entity);
var documentation = XmlDocumentationElement.Get(entity);
if (documentation != null) {
ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList;
DocumentationUIBuilder b = new DocumentationUIBuilder(ambience);
b.AddCodeBlock(header, keepLargeMargin: true);
foreach (var child in documentation.Children) {
b.AddDocumentationElement(child);
}
return new FlowDocumentTooltip(b.FlowDocument);
} else {
return header;
}
}
}
}

12
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/RopeTextSource.cs

@ -101,12 +101,24 @@ namespace ICSharpCode.AvalonEdit.Document @@ -101,12 +101,24 @@ namespace ICSharpCode.AvalonEdit.Document
return new RopeTextSource(rope.GetRange(offset, length));
}
/// <inheritdoc/>
public int IndexOf(char c, int startIndex, int count)
{
return rope.IndexOf(c, startIndex, count);
}
/// <inheritdoc/>
public int IndexOfAny(char[] anyOf, int startIndex, int count)
{
return rope.IndexOfAny(anyOf, startIndex, count);
}
/// <inheritdoc/>
public int LastIndexOf(char c, int startIndex, int count)
{
return rope.LastIndexOf(c, startIndex, count);
}
/// <inheritdoc/>
public ITextSourceVersion Version {
get { return version; }

14
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/TextDocument.cs

@ -157,6 +157,20 @@ namespace ICSharpCode.AvalonEdit.Document @@ -157,6 +157,20 @@ namespace ICSharpCode.AvalonEdit.Document
return GetText(segment.Offset, segment.Length);
}
/// <inheritdoc/>
public int IndexOf(char c, int startIndex, int count)
{
DebugVerifyAccess();
return rope.IndexOf(c, startIndex, count);
}
/// <inheritdoc/>
public int LastIndexOf(char c, int startIndex, int count)
{
DebugVerifyAccess();
return rope.LastIndexOf(c, startIndex, count);
}
/// <inheritdoc/>
public int IndexOfAny(char[] anyOf, int startIndex, int count)
{

60
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/Rope.cs

@ -622,12 +622,62 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -622,12 +622,62 @@ namespace ICSharpCode.AvalonEdit.Utils
/// </remarks>
public int IndexOf(T item)
{
return IndexOf(item, 0, this.Length);
}
/// <summary>
/// Gets the index of the first occurrence the specified item.
/// </summary>
/// <param name="item">Item to search for.</param>
/// <param name="startIndex">Start index of the search.</param>
/// <param name="count">Length of the area to search.</param>
/// <returns>The first index where the item was found; or -1 if no occurrence was found.</returns>
/// <remarks>
/// This method counts as a read access and may be called concurrently to other read accesses.
/// </remarks>
public int IndexOf(T item, int startIndex, int count)
{
VerifyRange(startIndex, count);
while (count > 0) {
var entry = FindNodeUsingCache(startIndex).UnsafePeek();
T[] contents = entry.node.contents;
int startWithinNode = startIndex - entry.nodeStartIndex;
int nodeLength = Math.Min(entry.node.length, startWithinNode + count);
int r = Array.IndexOf(contents, item, startWithinNode, nodeLength - startWithinNode);
if (r >= 0)
return entry.nodeStartIndex + r;
count -= nodeLength - startWithinNode;
startIndex = entry.nodeStartIndex + nodeLength;
}
return -1;
}
/// <summary>
/// Gets the index of the last occurrence of the specified item in this rope.
/// </summary>
public int LastIndexOf(T item)
{
return LastIndexOf(item, 0, this.Length);
}
/// <summary>
/// Gets the index of the last occurrence of the specified item in this rope.
/// </summary>
/// <param name="item">The search item</param>
/// <param name="startIndex">Start index of the area to search.</param>
/// <param name="count">Length of the area to search.</param>
/// <returns>The last index where the item was found; or -1 if no occurrence was found.</returns>
/// <remarks>The search proceeds backwards from (startIndex+count) to startIndex.
/// This is different than the meaning of the parameters on Array.LastIndexOf!</remarks>
public int LastIndexOf(T item, int startIndex, int count)
{
VerifyRange(startIndex, count);
var comparer = EqualityComparer<T>.Default;
int index = 0;
foreach (T element in this) {
if (comparer.Equals(item, element))
return index;
index++;
for (int i = startIndex + count - 1; i >= startIndex; i--) {
if (comparer.Equals(this[i], item))
return i;
}
return -1;
}

6
src/Main/Base/Project/Configuration/AssemblyInfo.cs

@ -16,12 +16,6 @@ using System.Windows; @@ -16,12 +16,6 @@ using System.Windows;
[assembly: Dependency("ICSharpCode.Core.Presentation", LoadHint.Always)]
[assembly: Dependency("ICSharpCode.AvalonEdit", LoadHint.Always)]
[assembly: Dependency("ICSharpCode.NRefactory", LoadHint.Always)]
[assembly: Dependency("ICSharpCode.SharpDevelop.Dom", LoadHint.Always)]
[assembly: Dependency("ICSharpCode.SharpDevelop.Widgets", LoadHint.Always)]
[assembly: Dependency("System.Core", LoadHint.Always)]
[assembly: Dependency("System.Drawing", LoadHint.Always)]
[assembly: Dependency("System.Xml", LoadHint.Always)]
[assembly: Dependency("System.Windows.Forms", LoadHint.Always)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.SourceAssembly, //where theme specific resource dictionaries are located

1
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -875,6 +875,7 @@ @@ -875,6 +875,7 @@
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\Core\Project\ICSharpCode.Core.csproj">
<Project>{35cef10f-2d4c-45f2-9dd1-161e0fec583c}</Project>

19
src/Main/Base/Project/Src/Editor/ToolTipRequestEventArgs.cs

@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
using System;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.SharpDevelop.Parser;
namespace ICSharpCode.SharpDevelop.Editor
{
@ -33,6 +35,23 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -33,6 +35,23 @@ namespace ICSharpCode.SharpDevelop.Editor
/// </summary>
public object ContentToShow { get; set; }
bool resolveResultInitialized;
ResolveResult resolveResult;
/// <summary>
/// The resolve result at the mouse position.
/// </summary>
public ResolveResult ResolveResult {
get {
if (!resolveResultInitialized) {
if (InDocument)
resolveResult = ParserService.Resolve(this.Editor.FileName, this.LogicalPosition, this.Editor.Document);
resolveResultInitialized = true;
}
return resolveResult;
}
}
/// <summary>
/// Sets the tooltip to be shown.
/// </summary>

12
src/Main/Base/Project/Src/Editor/ToolTipService.cs

@ -26,12 +26,16 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -26,12 +26,16 @@ namespace ICSharpCode.SharpDevelop.Editor
if (e == null)
throw new ArgumentNullException("e");
if (!CodeCompletionOptions.EnableCodeCompletion) return;
if (!CodeCompletionOptions.TooltipsEnabled) return;
if (!CodeCompletionOptions.EnableCodeCompletion || !CodeCompletionOptions.TooltipsEnabled) {
e.Handled = true;
return;
}
if (CodeCompletionOptions.TooltipsOnlyWhenDebugging) {
if (!DebuggerService.IsDebuggerLoaded) return;
if (!DebuggerService.CurrentDebugger.IsDebugging) return;
if (!DebuggerService.IsDebuggerLoaded || !DebuggerService.CurrentDebugger.IsDebugging) {
e.Handled = true;
return;
}
}
// Query all registered tooltip providers using the AddInTree.

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

@ -347,12 +347,12 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -347,12 +347,12 @@ namespace ICSharpCode.SharpDevelop.Gui
int i = Math.Min(editor.Document.LineCount, Math.Max(1, (int)tag));
editor.JumpTo(i, int.MaxValue);
}
} else if (tag is ITypeDefinition) {
ITypeDefinition c = tag as ITypeDefinition;
} else if (tag is IUnresolvedEntity) {
IUnresolvedEntity c = tag as IUnresolvedEntity;
CodeCompletionDataUsageCache.IncrementUsage(c.ReflectionName);
GotoRegion(c.Region);
} else if (tag is IMember) {
IMember m = tag as IMember;
} else if (tag is IEntity) {
IEntity m = tag as IEntity;
CodeCompletionDataUsageCache.IncrementUsage(m.ReflectionName);
GotoRegion(m.Region);
} else if (tag is FileLineReference) {

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

@ -272,7 +272,7 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -272,7 +272,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
BookmarkManager.ToggleBookmark(
editor, lineNumber,
b => b.CanToggle && b is BreakpointBookmark,
location => (BreakpointBookmark)Activator.CreateInstance(breakpointType,
location => (BreakpointBookmark)Activator.CreateInstance(breakpointType,
parameters ?? new object[] { editor.FileName, location, BreakpointAction.Break, "", ""}));
}
@ -296,118 +296,6 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -296,118 +296,6 @@ namespace ICSharpCode.SharpDevelop.Debugging
((ITextEditorProvider)viewContent).TextEditor.JumpTo(startLine, startColumn);
CurrentLineBookmark.SetPosition(viewContent, startLine, startColumn, endLine, endColumn);
}
#region Tool tips
/// <summary>
/// Gets debugger tooltip information for the specified position.
/// A descriptive string for the element or a DebuggerTooltipControl
/// showing its current value (when in debugging mode) can be returned
/// through the ToolTipRequestEventArgs.SetTooltip() method.
/// </summary>
internal static void HandleToolTipRequest(ToolTipRequestEventArgs e)
{
if (!e.InDocument)
return;
TextLocation logicPos = e.LogicalPosition;
IDocument document = e.Editor.Document;
FileName fileName = e.Editor.FileName;
// Look if it is variable
ResolveResult result = ParserService.Resolve(fileName, logicPos, document);
bool debuggerCanShowValue;
string toolTipText = GetText(e, result, out debuggerCanShowValue);
if (toolTipText != null) {
if (debuggerCanShowValue && currentDebugger != null) {
object toolTip = currentDebugger.GetTooltipControl(e, result);
if (toolTip != null)
e.SetToolTip(toolTip);
else
e.SetToolTip(toolTipText);
} else {
e.SetToolTip(toolTipText);
}
}
}
static string GetText(ToolTipRequestEventArgs e, ResolveResult result, out bool debuggerCanShowValue)
{
debuggerCanShowValue = false;
if (result == null)
return null;
IAmbience ambience = AmbienceService.GetCurrentAmbience();
ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.UseFullyQualifiedMemberNames;
if (result is MemberResolveResult) {
return GetMemberText(ambience, ((MemberResolveResult)result).Member, e, result, out debuggerCanShowValue);
} else if (result is LocalResolveResult) {
LocalResolveResult rr = (LocalResolveResult)result;
ambience.ConversionFlags = ConversionFlags.UseFullyQualifiedTypeNames
| ConversionFlags.ShowReturnType | ConversionFlags.ShowDefinitionKeyWord;
StringBuilder b = new StringBuilder();
if (rr.IsParameter)
b.Append("parameter ");
else if (rr.Variable.IsConst)
b.Append("constant ");
else
b.Append("local variable ");
b.Append(ambience.ConvertVariable(rr.Variable));
if (!rr.IsCompileTimeConstant && currentDebugger != null) {
string currentValue = currentDebugger.GetValueAsString(e, rr);
if (currentValue != null) {
debuggerCanShowValue = true;
b.Append(" = ");
if (currentValue.Length > 256)
currentValue = currentValue.Substring(0, 256) + "...";
b.Append(currentValue);
}
}
return b.ToString();
} else if (result is NamespaceResolveResult) {
return "namespace " + ((NamespaceResolveResult)result).NamespaceName;
} else if (result is TypeResolveResult) {
ITypeDefinition c = result.Type.GetDefinition();
if (c != null)
return GetMemberText(ambience, c, e, result, out debuggerCanShowValue);
else
return ambience.ConvertType(result.Type);
} else {
#if DEBUG
if (Control.ModifierKeys == Keys.Control) {
return result.ToString();
}
#endif
return null;
}
}
static string GetMemberText(IAmbience ambience, IEntity member, ToolTipRequestEventArgs e, ResolveResult result, out bool debuggerCanShowValue)
{
bool tryDisplayValue = false;
debuggerCanShowValue = false;
StringBuilder text = new StringBuilder();
text.Append(ambience.ConvertEntity(member));
tryDisplayValue = ((member is IField && !((IField)member).IsConst) || member is IProperty);
if (tryDisplayValue && currentDebugger != null) {
LoggingService.Info("asking debugger for value of '" + result + "'");
string currentValue = currentDebugger.GetValueAsString(e, result);
if (currentValue != null) {
debuggerCanShowValue = true;
text.Append(" = ");
if (currentValue.Length > 256)
currentValue = currentValue.Substring(0, 256) + "...";
text.Append(currentValue);
}
}
string documentation = member.Documentation;
if (documentation != null && documentation.Length > 0) {
text.Append('\n');
text.Append(documentation);
//text.Append(ICSharpCode.SharpDevelop.Editor.CodeCompletion.CodeCompletionItem.ConvertDocumentation(documentation));
}
return text.ToString();
}
#endregion
}
/// <summary>
@ -420,7 +308,8 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -420,7 +308,8 @@ namespace ICSharpCode.SharpDevelop.Debugging
{
public void HandleToolTipRequest(ToolTipRequestEventArgs e)
{
DebuggerService.HandleToolTipRequest(e);
if (DebuggerService.IsDebuggerLoaded)
DebuggerService.CurrentDebugger.HandleToolTipRequest(e);
}
}

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

@ -121,21 +121,8 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -121,21 +121,8 @@ namespace ICSharpCode.SharpDevelop.Debugging
throw new NotSupportedException();
}
/// <summary>
/// Gets the current value of the variable as string that can be displayed in tooltips.
/// </summary>
public string GetValueAsString(ToolTipRequestEventArgs e, ResolveResult expression)
public void HandleToolTipRequest(ToolTipRequestEventArgs e)
{
return null;
}
/// <summary>
/// Gets the tooltip control that shows the value of given variable.
/// Return null if no tooltip is available.
/// </summary>
public object GetTooltipControl(ToolTipRequestEventArgs e, ResolveResult expression)
{
return null;
}
public bool CanSetInstructionPointer(string filename, int line, int column)

13
src/Main/Base/Project/Src/Services/Debugger/IDebugger.cs

@ -10,7 +10,7 @@ using ICSharpCode.SharpDevelop.Project; @@ -10,7 +10,7 @@ using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Debugging
{
public interface IDebugger : IDisposable
public interface IDebugger : IDisposable, ITextAreaToolTipProvider
{
/// <summary>
/// Returns true if debuger is attached to a process
@ -73,17 +73,6 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -73,17 +73,6 @@ namespace ICSharpCode.SharpDevelop.Debugging
void Attach(Process process);
void Detach();
/// <summary>
/// Gets the current value of the variable as string that can be displayed in tooltips.
/// </summary>
string GetValueAsString(ToolTipRequestEventArgs e, ResolveResult expression);
/// <summary>
/// Gets the tooltip control that shows the value of given variable.
/// Return null if no tooltip is available.
/// </summary>
object GetTooltipControl(ToolTipRequestEventArgs e, ResolveResult expression);
/// <summary>
/// Queries the debugger whether it is possible to set the instruction pointer to a given position.

2
src/Main/Core/Project/Configuration/AssemblyInfo.cs

@ -8,8 +8,6 @@ using System.Runtime.CompilerServices; @@ -8,8 +8,6 @@ using System.Runtime.CompilerServices;
[assembly: CLSCompliant(true)]
[assembly: StringFreezing()]
[assembly: Dependency("System.Xml", LoadHint.Always)]
[assembly: AssemblyTitle("ICSharpCode.Core")]
[assembly: AssemblyDescription("The ICSharpCode Core containing the AddInTree and service Subsystem")]
[assembly: AssemblyConfiguration("")]

5
src/Main/ICSharpCode.Core.WinForms/Properties/AssemblyInfo.cs

@ -8,11 +8,6 @@ using System.Runtime.CompilerServices; @@ -8,11 +8,6 @@ using System.Runtime.CompilerServices;
[assembly: CLSCompliant(true)]
[assembly: StringFreezing()]
[assembly: Dependency("ICSharpCode.Core", LoadHint.Always)]
[assembly: Dependency("System.Xml", LoadHint.Always)]
[assembly: Dependency("System.Drawing", LoadHint.Always)]
[assembly: Dependency("System.Windows.Forms", LoadHint.Always)]
[assembly: AssemblyTitle("ICSharpCode.Core.WinForms")]
[assembly: AssemblyDescription("Windows Forms binding for ICSharpCode.Core")]
[assembly: AssemblyConfiguration("")]

3
src/Main/ICSharpCode.SharpDevelop.Sda/Configuration/AssemblyInfo.cs

@ -9,9 +9,6 @@ using System.Security.Permissions; @@ -9,9 +9,6 @@ using System.Security.Permissions;
[assembly: CLSCompliant(true)]
[assembly: StringFreezing()]
// Use hard-binding:
[assembly: Dependency("log4net", LoadHint.Always)]
[assembly: AssemblyTitle("ICSharpCode.SharpDevelop.Sda")]
[assembly: AssemblyDescription("SharpDevelop for Applications")]
[assembly: AssemblyConfiguration("")]

10
src/Main/ICSharpCode.SharpDevelop.Sda/ICSharpCode.SharpDevelop.Sda.csproj

@ -88,6 +88,14 @@ @@ -88,6 +88,14 @@
<Compile Include="Src\RunWorkbenchException.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
</ProjectReference>
<ProjectReference Include="..\..\Libraries\NRefactory\ICSharpCode.NRefactory.Xml\ICSharpCode.NRefactory.Xml.csproj">
<Project>{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}</Project>
<Name>ICSharpCode.NRefactory.Xml</Name>
</ProjectReference>
<ProjectReference Include="..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
@ -116,7 +124,7 @@ @@ -116,7 +124,7 @@
<ProjectReference Include="..\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj">
<Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
<Name>ICSharpCode.Core.WinForms</Name>
<Private>False</Private>
<Private>True</Private>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />

3
src/Main/StartUp/Project/StartUp.csproj

@ -81,11 +81,13 @@ @@ -81,11 +81,13 @@
<ProjectReference Include="..\..\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\Core\Project\ICSharpCode.Core.csproj">
<Project>{35cef10f-2d4c-45f2-9dd1-161e0fec583c}</Project>
<Package>{00000000-0000-0000-0000-000000000000}</Package>
<Name>ICSharpCode.Core</Name>
<Private>False</Private>
</ProjectReference>
<Content Include="..\..\GlobalAssemblyInfo.template">
<Link>Configuration\GlobalAssemblyInfo.template</Link>
@ -99,6 +101,7 @@ @@ -99,6 +101,7 @@
<ProjectReference Include="..\..\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj">
<Project>{80318B5F-A25D-45AB-8A95-EF31D2370A4C}</Project>
<Name>ICSharpCode.SharpDevelop.Sda</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

Loading…
Cancel
Save