void EventNexus_DecorateLanguageElement(object sender, DecorateLanguageElementEventArgs args) { //Debug.WriteLine("EventNexus_DecorateLanguageElement"); var settings = DrawLinesBetweenMethodsSettings.Current; if (!settings.Enabled) return; LanguageElement langElement = args.LanguageElement; //CodeRush.Documents.ActiveTextDocument.ge if ((langElement is Class) && settings.EnableOnClass || (langElement is Property) && settings.EnableOnProperty || (langElement is Method) && settings.EnableOnMethod || (langElement is Enumeration) && settings.EnableOnEnum) { //Debug.WriteLine("langElement: " + langElement); // Skip up over Comment, AttributeSection, XmlDocComment var commentsAndStuff = previousSiblings(langElement) .TakeWhile(sibling => sibling is Comment || sibling is XmlDocComment || sibling is AttributeSection); langElement = commentsAndStuff.LastOrDefault() ?? langElement; //Debug.WriteLine(" > AddBackgroundAdornment ..."); var adornment = new HorizontalLineDocAdornment(langElement); args.AddBackgroundAdornment(adornment); } }
private void BlockPainterPlugIn_DecorateLanguageElement(object sender, DecorateLanguageElementEventArgs args) { DelimiterCapableBlock block = args.LanguageElement as DelimiterCapableBlock; if (block != null && block.HasDelimitedBlock && !_processedLines.Contains(block.EndLine)) { IList<DelimiterCapableBlock> blocksOnLine = GetBlocksOnLine(block); DelimiterCapableBlock lastBlockOnLine = blocksOnLine[blocksOnLine.Count - 1]; SourcePoint startPointToPaint = new SourcePoint(block.EndLine, lastBlockOnLine.EndOffset + 1); for (int i = 0; i < blocksOnLine.Count; i++) { block = blocksOnLine[i]; IParameter blockTypeNameParameter = new Ninject.Parameters.Parameter(ParameterNames.BlockTypeName, block.GetType().Name, true); IBlockPaintingStrategy strategy = _kernel.Get<IBlockPaintingStrategy>(blockTypeNameParameter); if (i == 0) { startPointToPaint = strategy.PaintPrefix(block, args, startPointToPaint); } startPointToPaint = strategy.PaintBlock(block, args, startPointToPaint, blocksOnLine.Count > 1); } _processedLines.Add(block.EndLine); } }
private void BlockPainterPlugIn_DecorateLanguageElement(object sender, DecorateLanguageElementEventArgs args) { DelimiterCapableBlock block = args.LanguageElement as DelimiterCapableBlock; if (block != null && block.HasDelimitedBlock && !_processedLines.Contains(block.EndLine)) { IList <DelimiterCapableBlock> blocksOnLine = GetBlocksOnLine(block); DelimiterCapableBlock lastBlockOnLine = blocksOnLine[blocksOnLine.Count - 1]; SourcePoint startPointToPaint = new SourcePoint(block.EndLine, lastBlockOnLine.EndOffset + 1); for (int i = 0; i < blocksOnLine.Count; i++) { block = blocksOnLine[i]; IParameter blockTypeNameParameter = new Ninject.Parameters.Parameter(ParameterNames.BlockTypeName, block.GetType().Name, true); IBlockPaintingStrategy strategy = _kernel.Get <IBlockPaintingStrategy>(blockTypeNameParameter); if (i == 0) { startPointToPaint = strategy.PaintPrefix(block, args, startPointToPaint); } startPointToPaint = strategy.PaintBlock(block, args, startPointToPaint, blocksOnLine.Count > 1); } _processedLines.Add(block.EndLine); } }
void EventNexus_DecorateLanguageElement(object sender, DecorateLanguageElementEventArgs args) { //Debug.WriteLine("EventNexus_DecorateLanguageElement"); var settings = DrawLinesBetweenMethodsSettings.Current; if (!settings.Enabled) { return; } LanguageElement langElement = args.LanguageElement; //CodeRush.Documents.ActiveTextDocument.ge if ((langElement is Class) && settings.EnableOnClass || (langElement is Property) && settings.EnableOnProperty || (langElement is Method) && settings.EnableOnMethod || (langElement is Enumeration) && settings.EnableOnEnum) { //Debug.WriteLine("langElement: " + langElement); // Skip up over Comment, AttributeSection, XmlDocComment var commentsAndStuff = previousSiblings(langElement) .TakeWhile(sibling => sibling is Comment || sibling is XmlDocComment || sibling is AttributeSection); langElement = commentsAndStuff.LastOrDefault() ?? langElement; //Debug.WriteLine(" > AddBackgroundAdornment ..."); var adornment = new HorizontalLineDocAdornment(langElement); args.AddBackgroundAdornment(adornment); } }
private void PlugIn1_DecorateLanguageElement(object sender, DecorateLanguageElementEventArgs args) { LanguageElement element = args.LanguageElement; if (_DisplayTile && element.ElementType == LanguageElementType.Method && CanBeRun((Method)element)) { DocPoint start = new DocPoint(element.StartLine, element.StartOffset); args.AddAdornment(new RunMethodTileDocumentAdornment(start, start, this, (Method)element)); } }
public virtual SourcePoint PaintPrefix(DelimiterCapableBlock block, DecorateLanguageElementEventArgs args, SourcePoint startPointToPaint) { SourcePoint result = startPointToPaint; if (Settings.Enabled && MeetsLengthRquirement(block)) { args.AddForegroundAdornment( new BlockPrefixDocumentAdornment(startPointToPaint, Settings)); result = startPointToPaint.OffsetPoint(0, Settings.PrefixText.Length + 1); } return result; }
private SourceRange GetMethodBoxRange(DecorateLanguageElementEventArgs args, Method Method) { // Get all the lines of the method var Lines = args.TextDocument.GetLines(Method.StartLine, Method.EndLine - Method.StartLine); // determine the longest of these string Longest = (from line in Lines orderby line.Length descending select line).First(); // Build and return a SourceRange around the method SourcePoint EndPoint = new SourcePoint(Method.EndLine, Longest.Length); SourcePoint StartPoint = new SourcePoint(Method.StartLine, Method.StartOffset); return new SourceRange(StartPoint, EndPoint); }
private void PlugIn1_DecorateLanguageElement(object sender, DecorateLanguageElementEventArgs args) { if (args.LanguageElement == null) return; if (args.LanguageElement.Parent == null) return; LanguageElementType[] Types = { LanguageElementType.Class, LanguageElementType.Struct, LanguageElementType.Method, LanguageElementType.Property }; if (!Types.Contains(args.LanguageElement.Parent.ElementType)) return; if (LineStartsWith(args.LanguageElement.StartLine, _settings.Prefixes)) args.AddAdornment(new FadeOutAdornmentFactory(args.LanguageElement.Range)); }
private void PlugIn1_DecorateLanguageElement(object sender, DecorateLanguageElementEventArgs args) { // You must decide if it//s appropriate to decorate the LanguageElement in question. if (args.LanguageElement == null) return; // You must select a suitable TextDocumentAdornment derived class and pass it to the AddAdornment method. if (args.LanguageElement.ElementType != LanguageElementType.Method) return; var Method = (Method) args.LanguageElement; SourceRange range = GetMethodBoxRange(args, Method); args.AddAdornment(new BlueBoxAdornmentFactory(range)); }
public virtual SourcePoint PaintPrefix(DelimiterCapableBlock block, DecorateLanguageElementEventArgs args, SourcePoint startPointToPaint) { SourcePoint result = startPointToPaint; if (Settings.Enabled && MeetsLengthRquirement(block)) { args.AddForegroundAdornment(new BlockPrefixDocumentAdornment(startPointToPaint, Settings)); result = startPointToPaint.OffsetPoint(0, Settings.PrefixText.Length + 1); } return(result); }
private void CreateAttributeShadeAdornment(DecorateLanguageElementEventArgs args, DevExpress.CodeRush.StructuralParser.Attribute attribute, Method target, TestStatus status) { if (ShadeAttribute && status != TestStatus.Pending && status != TestStatus.PassedWithChanges && status != TestStatus.FailedWithChanges) { SourceRange shadedArea = new SourceRange( attribute.Parent.Range.Start, new SourcePoint(attribute.Range.End.Line, target.NameRange.End.Offset - 1)); args.AddAdornment(new TestAttributeShaderAdornmentDocumentAdornment(shadedArea, status, AttributeColors)); } }
public override SourcePoint PaintBlock(DelimiterCapableBlock block, DecorateLanguageElementEventArgs args, SourcePoint startPointToPaint, bool multipleBlocksOnLine) { SourcePoint result = startPointToPaint; if (Settings.Enabled && MeetsLengthRquirement(block)) { string customMetaString = String.Format("{0} '{1}'", Settings.BlockTypeName, (block as Struct).Name); args.AddForegroundAdornment( new BlockMetaDataDocumentAdornment(startPointToPaint, Settings, customMetaString)); result.OffsetPoint(0, customMetaString.Length); } return result; }
public override SourcePoint PaintBlock(DelimiterCapableBlock block, DecorateLanguageElementEventArgs args, SourcePoint startPointToPaint, bool multipleBlocksOnLine) { SourcePoint result = startPointToPaint; if (Settings.Enabled && MeetsLengthRquirement(block)) { string customMetaString = GetMethodMetaString(block as Method); args.AddForegroundAdornment(new BlockMetaDataDocumentAdornment(startPointToPaint, Settings, customMetaString)); result = startPointToPaint.OffsetPoint(0, customMetaString.Length); } return(result); }
public override SourcePoint PaintBlock(DelimiterCapableBlock block, DecorateLanguageElementEventArgs args, SourcePoint startPointToPaint, bool multipleBlocksOnLine) { SourcePoint result = startPointToPaint; if (Settings.Enabled && MeetsLengthRquirement(block)) { StringBuilder customMetaBuilder = new StringBuilder(); customMetaBuilder.Append(String.Format("{0} '{1}'", Settings.BlockTypeName, (block as Class).Name)); GenericBlock.AppendGenericTypes(block as AccessSpecifiedElement, customMetaBuilder); GenericBlock.AppendGenericTemplate(block as AccessSpecifiedElement, customMetaBuilder); args.AddForegroundAdornment( new BlockMetaDataDocumentAdornment(startPointToPaint, Settings, customMetaBuilder.ToString())); result = startPointToPaint.OffsetPoint(0, customMetaBuilder.Length); } return result; }
public override SourcePoint PaintBlock(DelimiterCapableBlock block, DecorateLanguageElementEventArgs args, SourcePoint startPointToPaint, bool multipleBlocksOnLine) { SourcePoint result = startPointToPaint; if (Settings.Enabled && MeetsLengthRquirement(block)) { StringBuilder customMetaBuilder = new StringBuilder(); customMetaBuilder.Append(String.Format("{0} '{1}'", Settings.BlockTypeName, (block as Class).Name)); GenericBlock.AppendGenericTypes(block as AccessSpecifiedElement, customMetaBuilder); GenericBlock.AppendGenericTemplate(block as AccessSpecifiedElement, customMetaBuilder); args.AddForegroundAdornment( new BlockMetaDataDocumentAdornment(startPointToPaint, Settings, customMetaBuilder.ToString())); result = startPointToPaint.OffsetPoint(0, customMetaBuilder.Length); } return(result); }
private void CreateErrorArrowAdornment(DecorateLanguageElementEventArgs args, DevExpress.CodeRush.StructuralParser.Attribute attribute, Method target, TestMethod test) { if (test.Status == TestStatus.Failure && DrawArrowToAssert) { ArrowDescription visibleArrow = new ArrowDescription( attribute, target, test.TestResults[0], new MessageLimiter(ShortenLongStrings, MaxContextLength, ConvertEscapeCharacters)); args.AddAdornment( new FailedTestInspectorDocumentAdornment( new DocPoint(attribute.StartLine, attribute.StartOffset), new DocPoint(visibleArrow.End.Start.Line, visibleArrow.End.Start.Offset), this, visibleArrow)); } }
public virtual SourcePoint PaintBlock(DelimiterCapableBlock block, DecorateLanguageElementEventArgs args, SourcePoint startPointToPaint, bool multipleBlocksOnLine) { SourcePoint result = startPointToPaint; if (Settings.Enabled && MeetsLengthRquirement(block)) { StringBuilder metaDataBuilder = new StringBuilder(); metaDataBuilder.Append(Settings.BlockTypeName); if(Settings.ShowDetailedBlockMetaData) { DetailedBlockMetaData.AppendDetailedBlockMetaData(block,multipleBlocksOnLine,metaDataBuilder); } args.AddForegroundAdornment( new BlockMetaDataDocumentAdornment(startPointToPaint, Settings, metaDataBuilder.ToString())); result = new SourcePoint(block.EndLine, startPointToPaint.Offset + Settings.BlockTypeName.Length); } return result; }
public virtual SourcePoint PaintBlock(DelimiterCapableBlock block, DecorateLanguageElementEventArgs args, SourcePoint startPointToPaint, bool multipleBlocksOnLine) { SourcePoint result = startPointToPaint; if (Settings.Enabled && MeetsLengthRquirement(block)) { StringBuilder metaDataBuilder = new StringBuilder(); metaDataBuilder.Append(Settings.BlockTypeName); if (Settings.ShowDetailedBlockMetaData) { DetailedBlockMetaData.AppendDetailedBlockMetaData(block, multipleBlocksOnLine, metaDataBuilder); } args.AddForegroundAdornment(new BlockMetaDataDocumentAdornment(startPointToPaint, Settings, metaDataBuilder.ToString())); result = new SourcePoint(block.EndLine, startPointToPaint.Offset + Settings.BlockTypeName.Length); } return(result); }
private void PlugIn1_DecorateLanguageElement(object sender, DecorateLanguageElementEventArgs args) { LanguageElement element = args.LanguageElement; if (element.ElementType == LanguageElementType.Attribute) { DevExpress.CodeRush.StructuralParser.Attribute attribute = (DevExpress.CodeRush.StructuralParser.Attribute)element; if (attribute.TargetNode.ElementType == LanguageElementType.Method) { Method target = (Method)attribute.TargetNode; TestMethodCollection tests = CodeRush.UnitTests.Tests; foreach (TestMethod test in tests) { if (target.Location == test.FullName) { CreateErrorArrowAdornment(args, attribute, target, test); CreateAttributeShadeAdornment(args, attribute, target, test.Status); //OverlayErrorNextToAssert(ea, test); } } } } }