Example #1
0
        public CSharpSyntaxMode()
        {
            var provider = new ResourceXmlProvider(typeof(IXmlProvider).Assembly, typeof(IXmlProvider).Assembly.GetManifestResourceNames().First(s => s.Contains("CSharpSyntaxMode")));

            using (XmlReader reader = provider.Open()) {
                SyntaxMode baseMode = SyntaxMode.Read(reader);
                rules                  = new List <Rule> (baseMode.Rules);
                keywords               = new List <Keywords> (baseMode.Keywords);
                spans                  = new List <Span> (baseMode.Spans.Where(span => span.Begin.Pattern != "#")).ToArray();
                matches                = baseMode.Matches;
                prevMarker             = baseMode.PrevMarker;
                SemanticRules          = new List <SemanticRule> (baseMode.SemanticRules);
                keywordTable           = baseMode.keywordTable;
                keywordTableIgnoreCase = baseMode.keywordTableIgnoreCase;
                properties             = baseMode.Properties;
            }

            foreach (var word in ContextualHighlightKeywordList)
            {
                contextualHighlightKeywords[word] = keywordTable[word].Color;
                keywordTable.Remove(word);
            }

            AddSemanticRule("Comment", new HighlightUrlSemanticRule("comment"));
            AddSemanticRule("XmlDocumentation", new HighlightUrlSemanticRule("comment"));
            AddSemanticRule("String", new HighlightUrlSemanticRule("string"));
        }
Example #2
0
        public AspNetSyntaxMode()
        {
            ResourceXmlProvider provider = new ResourceXmlProvider(typeof(IXmlProvider).Assembly, "AspNetSyntaxMode.xml");

            using (XmlReader reader = provider.Open()) {
                SyntaxMode baseMode = SyntaxMode.Read(reader);
                this.rules         = new List <Rule> (baseMode.Rules);
                this.keywords      = new List <Keywords> (baseMode.Keywords);
                this.spans         = baseMode.Spans;
                this.matches       = baseMode.Matches;
                this.prevMarker    = baseMode.PrevMarker;
                this.SemanticRules = new List <SemanticRule> (baseMode.SemanticRules);
                this.table         = baseMode.Table;
            }
        }
Example #3
0
        public CSharpSyntaxMode()
        {
            ResourceXmlProvider provider = new ResourceXmlProvider(typeof(IXmlProvider).Assembly, typeof(IXmlProvider).Assembly.GetManifestResourceNames().First(s => s.Contains("CSharpSyntaxMode")));

            using (XmlReader reader = provider.Open()) {
                SyntaxMode baseMode = SyntaxMode.Read(reader);
                this.rules         = new List <Rule> (baseMode.Rules);
                this.keywords      = new List <Keywords> (baseMode.Keywords);
                this.spans         = new List <Span> (baseMode.Spans.Where(span => span.Begin.Pattern != "#")).ToArray();
                this.matches       = baseMode.Matches;
                this.prevMarker    = baseMode.PrevMarker;
                this.SemanticRules = new List <SemanticRule> (baseMode.SemanticRules);
                this.table         = baseMode.Table;
                this.properties    = baseMode.Properties;
            }

            AddSemanticRule("Comment", new HighlightUrlSemanticRule("comment"));
            AddSemanticRule("XmlDocumentation", new HighlightUrlSemanticRule("comment"));
            AddSemanticRule("String", new HighlightUrlSemanticRule("string"));
            AddSemanticRule(new HighlightCSharpSemanticRule());
        }
Example #4
0
        public DSyntaxMode()
        {
            var matches = new List <Mono.TextEditor.Highlighting.Match>();

            var provider = new ResourceXmlProvider(
                typeof(DSyntaxMode).Assembly,
                typeof(DSyntaxMode).Assembly.GetManifestResourceNames().First(s => s.Contains("DSyntaxHighlightingMode")));

            using (XmlReader reader = provider.Open())
            {
                SyntaxMode baseMode = SyntaxMode.Read(reader);
                this.rules    = new List <Rule>(baseMode.Rules);
                this.keywords = new List <Keywords>(baseMode.Keywords);
                this.spans    = new List <Span>(baseMode.Spans.Where(span => span.Begin.Pattern != "#")).ToArray();
                matches.AddRange(baseMode.Matches);
                this.prevMarker             = baseMode.PrevMarker;
                this.SemanticRules          = new List <SemanticRule>(baseMode.SemanticRules);
                this.keywordTable           = baseMode.keywordTable;
                this.keywordTableIgnoreCase = baseMode.keywordTableIgnoreCase;
                this.properties             = baseMode.Properties;
            }

            // D Number literals
            matches.Add(workaroundMatchCtor("constant.digit", @"(?<!\w)(0((x|X)[0-9a-fA-F_]+|(b|B)[0-1_]+)|([0-9]+[_0-9]*)[L|U|u|f|i]*)"));

            // extern linkages attributes
            //matches.Add(workaroundMatchCtor("constant.digit", "(?<=extern[\\s]*\\()[\\s]*(C(\\+\\+)?|D|Windows|System|Pascal|Java)[\\s]*(?=\\))"));

            // version checks
            //matches.Add(workaroundMatchCtor("constant.digit", @"(?<=version[\s]*\()[\s]*(DigitalMars|GNU|LDC|Windows|OSX|linux|FreeBSD|OpenBSD|BSD|Solaris|Posix|D_Version2)[\s]*(?=\))"));

            // type declaration names
            //matches.Add(workaroundMatchCtor("keyword.semantic.type", @"(?<=(class|struct|union|interface|template)[\s]+)[\w]+"));



            this.matches = matches.ToArray();
        }