本文整理汇总了C#中ITextBuffer.GetReplEvaluator方法的典型用法代码示例。如果您正苦于以下问题:C# ITextBuffer.GetReplEvaluator方法的具体用法?C# ITextBuffer.GetReplEvaluator怎么用?C# ITextBuffer.GetReplEvaluator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITextBuffer
的用法示例。
在下文中一共展示了ITextBuffer.GetReplEvaluator方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateProjectEntry
private IProjectEntry CreateProjectEntry(ITextBuffer buffer, IAnalysisCookie analysisCookie) {
if (_pyAnalyzer == null) {
// We aren't able to analyze code, so don't create an entry.
return null;
}
var replEval = buffer.GetReplEvaluator();
if (replEval != null) {
// We have a repl window, create an untracked module.
return _pyAnalyzer.AddModule(null, null, analysisCookie);
}
string path = buffer.GetFilePath();
if (path == null) {
return null;
}
IProjectEntry entry;
if (!_projectFiles.TryGetValue(path, out entry)) {
if (buffer.ContentType.IsOfType(PythonCoreConstants.ContentType)) {
string modName;
try {
modName = ModulePath.FromFullPath(path).ModuleName;
} catch (ArgumentException) {
modName = null;
}
IPythonProjectEntry[] reanalyzeEntries = null;
if (!string.IsNullOrEmpty(modName)) {
reanalyzeEntries = Project.GetEntriesThatImportModule(modName, true).ToArray();
}
entry = _pyAnalyzer.AddModule(
modName,
buffer.GetFilePath(),
analysisCookie
);
if (reanalyzeEntries != null) {
foreach (var entryRef in reanalyzeEntries) {
_analysisQueue.Enqueue(entryRef, AnalysisPriority.Low);
}
}
} else if (buffer.ContentType.IsOfType("XAML")) {
entry = _pyAnalyzer.AddXamlFile(buffer.GetFilePath());
} else {
return null;
}
_projectFiles[path] = entry;
if (ImplicitProject && ShouldAnalyzePath(path)) { // don't analyze std lib
QueueDirectoryAnalysis(path);
}
}
return entry;
}
示例2: GetOrCreateProjectEntry
private IProjectEntry GetOrCreateProjectEntry(ITextBuffer buffer, IAnalysisCookie analysisCookie) {
var replEval = buffer.GetReplEvaluator();
if (replEval != null) {
// We have a repl window, create an untracked module.
return _jsAnalyzer.AddModule(
Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "repl" + Guid.NewGuid() + ".js"),
analysisCookie
);
}
string path = buffer.GetFilePath();
if (path == null) {
return null;
}
ProjectItem file;
ProjectEntry entry;
if (!_projectFiles.TryGetValue(path, out file)) {
if (buffer.ContentType.IsOfType(NodejsConstants.Nodejs)) {
entry = _jsAnalyzer.AddModule(
buffer.GetFilePath(),
analysisCookie
);
} else {
return null;
}
_projectFiles[path] = file = new ProjectItem(entry);
}
if (_implicitProject && _analysisLevel != AnalysisLevel.NodeLsNone) {
QueueDirectoryAnalysis(path, file);
}
return file.Entry;
}