public XmlHighlightingDefinition(XshdSyntaxDefinition xshd, IHighlightingDefinitionReferenceResolver resolver) { this.Name = xshd.Name; // Create HighlightingRuleSet instances var rnev = new RegisterNamedElementsVisitor(this); xshd.AcceptElements(rnev); // Assign MainRuleSet so that references can be resolved foreach (XshdElement element in xshd.Elements) { XshdRuleSet xrs = element as XshdRuleSet; if (xrs != null && xrs.Name == null) { if (MainRuleSet != null) { throw Error(element, "Duplicate main RuleSet. There must be only one nameless RuleSet!"); } else { MainRuleSet = rnev.ruleSets[xrs]; } } } if (MainRuleSet == null) { throw new HighlightingDefinitionInvalidException("Could not find main RuleSet."); } // Translate elements within the rulesets (resolving references and processing imports) xshd.AcceptElements(new TranslateElementVisitor(this, rnev.ruleSets, resolver)); foreach (var p in xshd.Elements.OfType <XshdProperty>()) { propDict.Add(p.Name, p.Value); } }
/// <summary> /// Class constructor from highlighting theme definition resolver /// and highlighting definition (and resolver) /// </summary> /// <param name="xshd"></param> /// <param name="resolver"></param> /// <param name="themedHighlights"></param> public XmlHighlightingDefinition(SyntaxDefinition themedHighlights, XshdSyntaxDefinition xshd, IHighlightingDefinitionReferenceResolver resolver) { _themedHighlights = themedHighlights; InitializeDefinitions(xshd, resolver); }
public XmlHighlightingDefinition(XshdSyntaxDefinition xshd, IHighlightingDefinitionReferenceResolver resolver) { this.Name = xshd.Name; xshd.AcceptElements(new RegisterNamedElementsVisitor(this)); TranslateElementVisitor translateVisitor = new TranslateElementVisitor(this, resolver); foreach (XshdElement element in xshd.Elements) { HighlightingRuleSet rs = element.AcceptVisitor(translateVisitor) as HighlightingRuleSet; XshdRuleSet xrs = element as XshdRuleSet; if (rs != null && xrs != null && xrs.Name == null) { if (MainRuleSet != null) { throw Error(element, "Duplicate main RuleSet. There must be only one nameless RuleSet!"); } else { MainRuleSet = rs; } } } if (MainRuleSet == null) { throw new HighlightingDefinitionInvalidException("Could not find main RuleSet."); } }
public TranslateElementVisitor(XmlHighlightingDefinition def, IHighlightingDefinitionReferenceResolver resolver) { Debug.Assert(def != null); Debug.Assert(resolver != null); this.def = def; this.resolver = resolver; }
/// <summary> /// Creates a highlighting definition from the XSHD file. /// </summary> public static IHighlightingDefinition Load(XshdSyntaxDefinition syntaxDefinition, IHighlightingDefinitionReferenceResolver resolver) { if (syntaxDefinition == null) { throw new ArgumentNullException("syntaxDefinition"); } return(new XmlHighlightingDefinition(syntaxDefinition, resolver)); }
public IHighlightingDefinition LoadHighlighting(string name, IHighlightingDefinitionReferenceResolver resolver) { if (resolver == null) { throw new ArgumentNullException("resolver"); } using (Stream stream = OpenStream(name)) { using (XmlTextReader reader = new XmlTextReader(stream)) { return HighlightingLoader.Load(reader, resolver); } } }
public TranslateElementVisitor(XmlHighlightingDefinition def, Dictionary<XshdRuleSet, HighlightingRuleSet> ruleSetDict, IHighlightingDefinitionReferenceResolver resolver) { Debug.Assert(def != null); Debug.Assert(ruleSetDict != null); this.def = def; this.ruleSetDict = ruleSetDict; this.resolver = resolver; reverseRuleSetDict = new Dictionary<HighlightingRuleSet, XshdRuleSet>(); foreach (var pair in ruleSetDict) { reverseRuleSetDict.Add(pair.Value, pair.Key); } }
private static IHighlightingDefinition LoadHighlightingDefinition(IHighlightingDefinitionReferenceResolver referenceResolver) { var assembly = Assembly.GetExecutingAssembly(); using (var stream = assembly.GetManifestResourceStream("ScriptCsPad.Resources.ScriptCs.xshd")) { if (stream == null) throw new InvalidOperationException("Could not find highlighting definition."); using (var reader = XmlReader.Create(stream)) { return HighlightingLoader.Load(reader, referenceResolver); } } }
public IHighlightingDefinition LoadHighlighting(string name, IHighlightingDefinitionReferenceResolver resolver) { if (resolver == null) { throw new ArgumentNullException("resolver"); } using (Stream stream = OpenStream(name)) { using (XmlTextReader reader = new XmlTextReader(stream)) { return(HighlightingLoader.Load(reader, resolver)); } } }
private static IHighlightingDefinition LoadHighlightingDefinition(IHighlightingDefinitionReferenceResolver referenceResolver) { var assembly = Assembly.GetExecutingAssembly(); using (var stream = assembly.GetManifestResourceStream("ScriptCsPad.Resources.ScriptCs.xshd")) { if (stream == null) { throw new InvalidOperationException("Could not find highlighting definition."); } using (var reader = XmlReader.Create(stream)) { return(HighlightingLoader.Load(reader, referenceResolver)); } } }
public XmlHighlightingDefinition(XshdSyntaxDefinition xshd, IHighlightingDefinitionReferenceResolver resolver) { this.Name = xshd.Name; xshd.AcceptElements(new RegisterNamedElementsVisitor(this)); TranslateElementVisitor translateVisitor = new TranslateElementVisitor(this, resolver); foreach (XshdElement element in xshd.Elements) { HighlightingRuleSet rs = element.AcceptVisitor(translateVisitor) as HighlightingRuleSet; XshdRuleSet xrs = element as XshdRuleSet; if (rs != null && xrs != null && xrs.Name == null) { if (MainRuleSet != null) throw Error(element, "Duplicate main RuleSet. There must be only one nameless RuleSet!"); else MainRuleSet = rs; } } if (MainRuleSet == null) throw new HighlightingDefinitionInvalidException("Could not find main RuleSet."); }
public XmlHighlightingDefinition(XshdSyntaxDefinition xshd, IHighlightingDefinitionReferenceResolver resolver) { this.Name = xshd.Name; // Create HighlightingRuleSet instances var rnev = new RegisterNamedElementsVisitor(this); xshd.AcceptElements(rnev); // Assign MainRuleSet so that references can be resolved foreach (XshdElement element in xshd.Elements) { XshdRuleSet xrs = element as XshdRuleSet; if (xrs != null && xrs.Name == null) { if (MainRuleSet != null) throw Error(element, "Duplicate main RuleSet. There must be only one nameless RuleSet!"); else MainRuleSet = rnev.ruleSets[xrs]; } } if (MainRuleSet == null) throw new HighlightingDefinitionInvalidException("Could not find main RuleSet."); // Translate elements within the rulesets (resolving references and processing imports) xshd.AcceptElements(new TranslateElementVisitor(this, rnev.ruleSets, resolver)); }
public static IHighlightingDefinition Load(XshdSyntaxDefinition definition, IHighlightingDefinitionReferenceResolver resolver) { //TODO: HighlightingLoader.Load() throw new NotImplementedException(); }
public XmlHighlightingDefinition(XshdSyntaxDefinition definition, IHighlightingDefinitionReferenceResolver resolver) { }
public TranslateElementVisitor(XmlHighlightingDefinition definition, IHighlightingDefinitionReferenceResolver resolver) { }
public XmlHighlightingDefinition(XshdSyntaxDefinition xshd, IHighlightingDefinitionReferenceResolver resolver) { InitializeDefinitions(xshd, resolver); }
/// <summary> /// Creates a highlighting definition from the XSHD file. /// </summary> public static IHighlightingDefinition Load(XmlReader reader, IHighlightingDefinitionReferenceResolver resolver) { return Load(LoadXshd(reader), resolver); }
/// <summary> /// Creates a highlighting definition from the XSHD file. /// </summary> public static IHighlightingDefinition Load(XshdSyntaxDefinition syntaxDefinition, IHighlightingDefinitionReferenceResolver resolver) { if (syntaxDefinition == null) throw new ArgumentNullException("syntaxDefinition"); return new XmlHighlightingDefinition(syntaxDefinition, resolver); }
/// <summary> /// Creates a highlighting definition from the XSHD file. /// </summary> public static IHighlightingDefinition Load(XmlReader reader, IHighlightingDefinitionReferenceResolver resolver) { return(Load(LoadXshd(reader), resolver)); }
/// <summary> /// Creates a highlighting definition from the XSHD file. /// </summary> public static Tuple <IHighlightingDefinition, XshdSyntaxDefinition> Load(XmlReader reader, IHighlightingDefinitionReferenceResolver resolver) { XshdSyntaxDefinition def = LoadXshd(reader); IHighlightingDefinition highlightDef = Load(def, resolver); return(new Tuple <IHighlightingDefinition, XshdSyntaxDefinition>(highlightDef, def)); }