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; }
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(); }
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; }
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); }
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(); }
internal PythonClassifier(PythonClassifierProvider provider) { _provider = provider; }
private static Dictionary <PythonLanguageVersion, Tokenizer> _tokenizers; // tokenizer for each version, shared between all buffers internal PythonClassifier(PythonClassifierProvider provider) { _tokenCache = new TokenCache(); _provider = provider; }
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; }
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; }