public void ReportTimings(Mono.TextEditor.TextDocument document)
        {
            if (count == 0)
            {
                // No timings recorded.
                return;
            }

            string extension = document.FileName.Extension;

            var average  = totalTime.TotalMilliseconds / count;
            var metadata = new TypingTimingMetadata {
                Average = average,
                First   = firstTime.Value.TotalMilliseconds,
                Maximum = maxTime.TotalMilliseconds,
                Dropped = droppedEvents
            };

            if (!string.IsNullOrEmpty(extension))
            {
                metadata.Extension = extension;
            }

            metadata.AddBuckets(buckets);
            MonoDevelop.SourceEditor.Counters.Typing.Inc(metadata);
        }
Example #2
0
        internal TypingTimingMetadata GetTypingTimingMetadata(string extension)
        {
            var average  = totalTime.TotalMilliseconds / count;
            var metadata = new TypingTimingMetadata {
                Average = average,
                First   = firstTime.Value.TotalMilliseconds,
                Maximum = maxTime.TotalMilliseconds,
                Dropped = droppedEvents
            };

            if (!string.IsNullOrEmpty(extension))
            {
                metadata.Extension = extension;
            }

            metadata.AddBuckets(buckets);

            return(metadata);
        }
Example #3
0
        internal TypingTimingMetadata GetTypingTimingMetadata(string extension, ITextEditorOptions options, int lengthAtEnd, int lineCountAtEnd)
        {
            double totalMillis = totalTime.TotalMilliseconds;

            var average  = totalMillis / count;
            var metadata = new TypingTimingMetadata {
                Average                  = average,
                First                    = firstTime.Value.TotalMilliseconds,
                Maximum                  = maxTime.TotalMilliseconds,
                Dropped                  = droppedEvents,
                PercentAnimation         = totalTimeAnimationDrawing.TotalMilliseconds / totalMillis * 100,
                PercentDrawCaret         = totalTimeCaretDrawing.TotalMilliseconds / totalMillis * 100,
                PercentDrawMargin        = totalTimeMarginDrawing.TotalMilliseconds / totalMillis * 100,
                PercentExtensionKeypress = totalTimeExtensionKeyPress.TotalMilliseconds / totalMillis * 100,
                SessionKeypressCount     = count,
                SessionLength            = GetCurrentTime().TotalMilliseconds - openTime.TotalMilliseconds,
                LengthAtStart            = lengthAtStart,
                LengthDelta              = lengthAtEnd - lengthAtStart,
                LineCountAtStart         = lineCountAtStart,
                LineCountDelta           = lineCountAtEnd - lineCountAtStart,
            };

            if (options != null)
            {
                metadata.FoldMarginShown    = options.ShowFoldMargin;
                metadata.NumberMarginShown  = options.ShowLineNumberMargin;
                metadata.ShowIconMargin     = options.ShowIconMargin;
                metadata.ShowWhiteSpaces    = options.ShowWhitespaces;
                metadata.IncludeWhitespaces = options.IncludeWhitespaces;
            }

            if (!string.IsNullOrEmpty(extension))
            {
                metadata.Extension = extension;
            }

            bucketTimings.AddTo(metadata);

            return(metadata);
        }