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);
        }
示例#2
0
        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);
        }
示例#3
0
        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();
            }
        }