protected override bool ShouldEvaluateForCompletion(string source) { var scriptSrc = _localEngine.CreateScriptSource(new StringTextContentProvider(source), "", SourceCodeKind.Expression); var context = new CompilerContext(HostingHelpers.GetSourceUnit(scriptSrc), HostingHelpers.GetLanguageContext(_localEngine).GetCompilerOptions(), ErrorSink.Null); var parser = Parser.CreateParser(context, new PythonOptions()); var stmt = parser.ParseSingleStatement(); var exprWalker = new ExprWalker(); stmt.Walk(exprWalker); return(exprWalker.ShouldExecute); }
internal bool ShouldEvaluateForCompletion(string source) { if (PythonToolsPackage.Instance != null) { switch (PythonToolsPackage.Instance.InteractiveOptionsPage.GetOptions(_interpreterFactory).ReplIntellisenseMode) { case ReplIntellisenseMode.AlwaysEvaluate: return(true); case ReplIntellisenseMode.NeverEvaluate: return(false); case ReplIntellisenseMode.DontEvaluateCalls: var parser = Parser.CreateParser(new StringReader(source), ErrorSink.Null, _interpreterFactory.GetLanguageVersion()); var stmt = parser.ParseSingleStatement(); var exprWalker = new ExprWalker(); stmt.Walk(exprWalker); return(exprWalker.ShouldExecute); default: throw new InvalidOperationException(); } } return(false); }
internal bool ShouldEvaluateForCompletion(string source) { switch (_pyService.GetInteractiveOptions(_interpreterFactory).ReplIntellisenseMode) { case ReplIntellisenseMode.AlwaysEvaluate: return true; case ReplIntellisenseMode.NeverEvaluate: return false; case ReplIntellisenseMode.DontEvaluateCalls: var parser = Parser.CreateParser(new StringReader(source), _interpreterFactory.GetLanguageVersion()); var stmt = parser.ParseSingleStatement(); var exprWalker = new ExprWalker(); stmt.Walk(exprWalker); return exprWalker.ShouldExecute; default: throw new InvalidOperationException(); } }