Ejemplo n.º 1
0
    protected override object CreateFancyDescription() {
      var ambience = new CSharpAmbience();
      ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.ShowDeclaringType;
      string header = ambience.ConvertSymbol(Entity);
      var documentation = XmlDocumentationElement.Get(Entity);

      ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList;
      var b = new CSharpDocumentationBuilder(ambience);
      b.AddCodeBlock(header, keepLargeMargin: true);
      if (documentation != null) {
        foreach (var child in documentation.Children) {
          b.AddDocumentationElement(child);
        }
      }

      var flowDocument = b.CreateFlowDocument();
      flowDocument.PagePadding = new Thickness(0); // default is NOT Thickness(0), but Thickness(Auto), which adds unnecessary space

      return new FlowDocumentScrollViewer {
        Document = flowDocument,
        VerticalScrollBarVisibility = ScrollBarVisibility.Auto
      };
    }
Ejemplo n.º 2
0
    FlowDocumentScrollViewer GenerateHeader() {
      var ambience = new CSharpAmbience();
      ambience.ConversionFlags = ConversionFlags.StandardConversionFlags;
      var stringBuilder = new StringBuilder();
      var formatter = new ParameterHighlightingOutputFormatter(stringBuilder, highlightedParameterIndex);
      ambience.ConvertSymbol(Method, formatter, FormattingOptionsFactory.CreateSharpDevelop());

      var documentation = XmlDocumentationElement.Get(Method);
      ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList;

      var b = new CSharpDocumentationBuilder(ambience);
      string parameterName = null;
      if (Method.Parameters.Count > highlightedParameterIndex)
        parameterName = Method.Parameters[highlightedParameterIndex].Name;
      b.AddSignatureBlock(stringBuilder.ToString(), formatter.parameterStartOffset, formatter.parameterLength, parameterName);

      var b2 = new CSharpDocumentationBuilder(ambience);
      b2.ParameterName = parameterName;
      b2.ShowAllParameters = false;

      if (documentation != null) {
        foreach (var child in documentation.Children) {
          b2.AddDocumentationElement(child);
        }
      }

      content = new FlowDocumentScrollViewer {
        Document = b2.CreateFlowDocument(),
        VerticalScrollBarVisibility = ScrollBarVisibility.Auto
      };

      var flowDocument = b.CreateFlowDocument();
      flowDocument.PagePadding = new Thickness(0); // default is NOT Thickness(0), but Thickness(Auto), which adds unnecessary space

      return new FlowDocumentScrollViewer {
        Document = flowDocument,
        VerticalScrollBarVisibility = ScrollBarVisibility.Auto
      };
    }