Exemple #1
0
 internal void Update(TextContentChangedEventArgs e, Lazy<Tokenizer> lazyTokenizer) {
     lock (_lock) {
         // Copy on write. No need to copy if no one is using the map.
         if (_useCount > 0) {
             _map = _map.Clone();
             _useCount = 0;
         }
         _map.Update(e, lazyTokenizer);
     }
 }
Exemple #2
0
 /// <summary>
 /// Releases tokenization snapshot
 /// </summary>
 internal void Release(LineTokenizationMap map) {
     lock (_lock) {
         if (_map == map) {
             if (_useCount == 0) {
                 throw new InvalidOperationException("Line tokenization map is not in use");
             }
             _useCount--;
         }
     }
 }
Exemple #3
0
 internal LineTokenizationSnapshot(TokenCache cache, LineTokenizationMap map)
 {
     _cache = cache;
     _map   = map;
 }
Exemple #4
0
 internal void Clear()
 {
     lock (_lock) {
         _map = new LineTokenizationMap();
     }
 }