Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 /// <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.");
            }
        }
Ejemplo n.º 4
0
 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));
        }
Ejemplo n.º 6
0
		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);
				}
			}
		}
Ejemplo n.º 7
0
 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);
     }
 }
Ejemplo n.º 8
0
        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);
                }
            }
        }
Ejemplo n.º 9
0
        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));
                }
            }
        }
Ejemplo n.º 10
0
        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.");
		}
Ejemplo n.º 12
0
		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));
		}
Ejemplo n.º 13
0
		public static IHighlightingDefinition Load(XshdSyntaxDefinition definition, IHighlightingDefinitionReferenceResolver resolver) 
		{ 
			//TODO: HighlightingLoader.Load()
			throw new NotImplementedException();
		}
			public TranslateElementVisitor(XmlHighlightingDefinition def, IHighlightingDefinitionReferenceResolver resolver)
			{
				Debug.Assert(def != null);
				Debug.Assert(resolver != null);
				this.def = def;
				this.resolver = resolver;
			}
		public XmlHighlightingDefinition(XshdSyntaxDefinition definition, IHighlightingDefinitionReferenceResolver resolver)
		{
		}
			public TranslateElementVisitor(XmlHighlightingDefinition definition, IHighlightingDefinitionReferenceResolver resolver)
			{
				
			}
 public XmlHighlightingDefinition(XshdSyntaxDefinition xshd,
                                  IHighlightingDefinitionReferenceResolver resolver)
 {
     InitializeDefinitions(xshd, resolver);
 }
Ejemplo n.º 18
0
		/// <summary>
		/// Creates a highlighting definition from the XSHD file.
		/// </summary>
		public static IHighlightingDefinition Load(XmlReader reader, IHighlightingDefinitionReferenceResolver resolver)
		{
			return Load(LoadXshd(reader), resolver);
		}
Ejemplo n.º 19
0
		/// <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);
		}
Ejemplo n.º 20
0
 /// <summary>
 /// Creates a highlighting definition from the XSHD file.
 /// </summary>
 public static IHighlightingDefinition Load(XmlReader reader, IHighlightingDefinitionReferenceResolver resolver)
 {
     return(Load(LoadXshd(reader), resolver));
 }
Ejemplo n.º 21
0
        /// <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));
        }
Ejemplo n.º 22
0
 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);
     }
 }