Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
OutputClassifier.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System;
4 using System.Collections.Generic;
5 using System.ComponentModel.Composition;
6 using System.Windows.Media;
7 
8 using Microsoft.VisualStudio.Text;
9 using Microsoft.VisualStudio.Text.Classification;
11 
12 namespace SiliconStudio.Paradox.VisualStudio
13 {
14  public partial class OutputClassifier : IClassifier
15  {
16  private IClassificationTypeRegistryService classificationRegistry;
17 
18  private int messageTypeCharPosition;
19 
20  public OutputClassifier(IClassificationTypeRegistryService classificationRegistry)
21  {
22  this.classificationRegistry = classificationRegistry;
23  this.messageTypeCharPosition = "[BuildEngine] ".Length;
24 
25  InitializeClassifiers();
26  }
27 
28  public IList<ClassificationSpan> GetClassificationSpans(SnapshotSpan span)
29  {
30  var spans = new List<ClassificationSpan>();
31  var text = span.GetText();
32 
33  if (text.StartsWith("[BuildEngine]"))
34  {
35  var messageType = text[messageTypeCharPosition];
36  string classificationType;
37  if (classificationTypes.TryGetValue(messageType, out classificationType))
38  {
39  var type = classificationRegistry.GetClassificationType(classificationType);
40  spans.Add(new ClassificationSpan(span, type));
41  }
42  }
43 
44  return spans;
45  }
46 
47  public event EventHandler<ClassificationChangedEventArgs> ClassificationChanged
48  {
49  add { }
50  remove { }
51  }
52  }
53 }
SiliconStudio.Core.Utilities Utilities
Definition: Texture.cs:29
IList< ClassificationSpan > GetClassificationSpans(SnapshotSpan span)
OutputClassifier(IClassificationTypeRegistryService classificationRegistry)