示例#1
0
        public BraceCache(ITextSnapshot snapshot, ILanguage language)
        {
            this.Snapshot = snapshot;
              this.LastParsedPosition = -1;
              this.Language = language;
              if ( this.Language != null ) {
            this.braceExtractor = this.Language.NewBraceExtractor();

            this.braceList.Clear();
            String braceChars = Language.BraceList;
            for ( int i = 0; i < braceChars.Length; i += 2 ) {
              this.braceList.Add(braceChars[i], braceChars[i + 1]);
            }
              }
        }
示例#2
0
 private IList<CharPos> Extract(IBraceExtractor extractor, string input, int start, int state)
 {
     extractor.Reset();
       ITextChars chars = new StringChars(input, start);
       return extractor.Extract(chars).ToList();
 }
        private IList<CharPos> Extract(IBraceExtractor extractor, string input, int start, int state)
        {
            extractor.Reset();

              input = input.Substring(start);

              String[] lines = input.Split('\r', '\n');
              List<CharPos> result = new List<CharPos>();
              foreach ( String line in lines ) {
            ITextChars chars = new StringChars(line);
            while ( !chars.EndOfLine ) {
              result.AddRange(extractor.Extract(chars));
            }
              }
              return result;
        }