コード例 #1
0
        private static Dictionary <PythonLanguageVersion, Tokenizer> _tokenizers;    // tokenizer for each version, shared between all buffers

        internal PythonClassifier(PythonClassifierProvider provider, ITextBuffer buffer)
        {
            buffer.Changed            += BufferChanged;
            buffer.ContentTypeChanged += BufferContentTypeChanged;

            _tokenCache = new TokenCache();
            _provider   = provider;
            _buffer     = buffer;
        }
コード例 #2
0
ファイル: PythonClassifier.cs プロジェクト: wenh123/PTVS
        private static Dictionary<PythonLanguageVersion, Tokenizer> _tokenizers;    // tokenizer for each version, shared between all buffers

        internal PythonClassifier(PythonClassifierProvider provider, ITextBuffer buffer) {
            buffer.Changed += BufferChanged;
            buffer.ContentTypeChanged += BufferContentTypeChanged;

            _tokenCache = new TokenCache();
            _provider = provider;
            _buffer = buffer;

            var analyzer = _buffer.GetAnalyzer(provider._serviceProvider);
            Debug.Assert(analyzer != null);
            _version = analyzer.InterpreterFactory.GetLanguageVersion();
        }
コード例 #3
0
        private static Dictionary <PythonLanguageVersion, Tokenizer> _tokenizers;    // tokenizer for each version, shared between all buffers

        internal PythonClassifier(PythonClassifierProvider provider, PythonTextBufferInfo buffer)
        {
            buffer.OnChanged            += BufferChanged;
            buffer.OnContentTypeChanged += BufferContentTypeChanged;

            _tokenCache = new TokenCache();
            _provider   = provider;
            _buffer     = buffer;

            _buffer.OnNewAnalysisEntry += NewAnalysisEntry;

            _version = _buffer.LanguageVersion;
        }
コード例 #4
0
        private static Dictionary <PythonLanguageVersion, Tokenizer> _tokenizers;    // tokenizer for each version, shared between all buffers

        internal PythonClassifier(PythonClassifierProvider provider, ITextBuffer buffer)
        {
            buffer.Changed            += BufferChanged;
            buffer.ContentTypeChanged += BufferContentTypeChanged;

            _tokenCache = new TokenCache();
            _provider   = provider;
            _buffer     = buffer;

            _buffer.RegisterForNewAnalysisEntry(NewAnalysisEntry);

            _version = _buffer.GetLanguageVersion(_provider._serviceProvider);
        }
コード例 #5
0
ファイル: PythonClassifier.cs プロジェクト: wqhbuaa/PTVS
        private static Dictionary <PythonLanguageVersion, Tokenizer> _tokenizers;    // tokenizer for each version, shared between all buffers

        internal PythonClassifier(PythonClassifierProvider provider, ITextBuffer buffer)
        {
            buffer.Changed            += BufferChanged;
            buffer.ContentTypeChanged += BufferContentTypeChanged;

            _tokenCache = new TokenCache();
            _provider   = provider;
            _buffer     = buffer;

            var analyzer = _buffer.GetAnalyzer(provider._serviceProvider);

            Debug.Assert(analyzer != null);
            _version = analyzer.InterpreterFactory.GetLanguageVersion();
        }
コード例 #6
0
 internal PythonClassifier(PythonClassifierProvider provider)
 {
     _provider = provider;
 }
コード例 #7
0
        private static Dictionary <PythonLanguageVersion, Tokenizer> _tokenizers;    // tokenizer for each version, shared between all buffers

        internal PythonClassifier(PythonClassifierProvider provider)
        {
            _tokenCache = new TokenCache();
            _provider   = provider;
        }
コード例 #8
0
ファイル: ClassifierTests.cs プロジェクト: omnimark/PTVS
            public ClassifierHelper(string code, PythonLanguageVersion version) {
                _view = new PythonEditor("", version);

                var providers = _view.VS.ComponentModel.GetExtensions<IClassifierProvider>().ToArray();
                _provider1 = providers.OfType<PythonClassifierProvider>().Single();
                _provider2 = providers.OfType<PythonAnalysisClassifierProvider>().Single();

                _classificationsReady1 = new ManualResetEventSlim();
                _classificationsReady2 = new ManualResetEventSlim();

                AstClassifier.ClassificationChanged += (s, e) => SafeSetEvent(_classificationsReady1);
                AnalysisClassifier.ClassificationChanged += (s, e) => SafeSetEvent(_classificationsReady2);

                _view.Text = code;
            }
コード例 #9
0
ファイル: ClassifierTests.cs プロジェクト: jsschultz/PTVS
            public ClassifierHelper(string code, PythonLanguageVersion version) {
                _view = new PythonEditor("", version);

                var providers = _view.VS.ComponentModel.GetExtensions<IClassifierProvider>().ToArray();
                _provider1 = providers.OfType<PythonClassifierProvider>().Single();
                _provider2 = providers.OfType<PythonAnalysisClassifierProvider>().Single();

                _classificationsReady1 = new ManualResetEventSlim();
                _classificationsReady2 = new ManualResetEventSlim();

                AstClassifier.ClassificationChanged += (s, e) => SafeSetEvent(_classificationsReady1);
                var startVersion = _view.CurrentSnapshot.Version;
                AnalysisClassifier.ClassificationChanged += (s, e) => {
                    var analysis = _view.View.TextView.GetAnalysisEntry(_view.CurrentSnapshot.TextBuffer, _view.VS.ServiceProvider);
                    // make sure we have classifications from the version we analyzed after
                    // setting the text below.
                    if (analysis.GetAnalysisVersion(_view.CurrentSnapshot.TextBuffer).VersionNumber > startVersion.VersionNumber) {
                        SafeSetEvent(_classificationsReady2);
                    }
                };

                _view.Text = code;
            }