Example #1
0
        private PythonTextBufferInfo ReplaceBufferInfo()
        {
            TraceWithStack("ReplaceBufferInfo");

            var newInfo = new PythonTextBufferInfo(Services, Buffer);

            foreach (var sink in _eventSinks)
            {
                newInfo._eventSinks[sink.Key] = sink.Value;
            }

            Buffer.Properties[PythonTextBufferInfoKey] = newInfo;

            Buffer.ContentTypeChanged -= Buffer_ContentTypeChanged;
            Buffer.Changed            -= Buffer_TextContentChanged;
            Buffer.ChangedLowPriority -= Buffer_TextContentChangedLowPriority;

            if (Buffer is ITextBuffer2 buffer2)
            {
                buffer2.ChangedOnBackground -= Buffer_TextContentChangedOnBackground;
            }

            Interlocked.Exchange(ref _waitingForEntry, null)?.TrySetResult(null);

            InvokeSinks(new PythonNewTextBufferInfoEventArgs(PythonTextBufferInfoEvents.NewTextBufferInfo, newInfo));

            _traceLog?.Dispose();

            return(newInfo);
        }
        protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                _disposed = true;
                _log?.Flush(synchronous: true);

                if (disposing)
                {
                    if (_log != null)
                    {
                        _log.Dispose();
                    }
                }
            }
        }
Example #3
0
        protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                _disposed = true;
                _log?.Flush(synchronous: true);

                if (disposing)
                {
                    if (_log != null)
                    {
                        _log.Dispose();
                    }
                    if (PackageManager != null)
                    {
                        PackageManager.InstalledPackagesChanged -= PackageManager_InstalledFilesChanged;
                    }
                }
            }
        }