public StartReplUsingProjectVersion(
     ReplFactory replFactory,
     Func <Process> replProcessProvider)
 {
     _replProcessProvider = replProcessProvider;
     _replFactory         = replFactory;
 }
Beispiel #2
0
        private void ShowClojureProjectMenuCommands()
        {
            OleMenuCommandService        menuCommandService = (OleMenuCommandService)GetService(typeof(IMenuCommandService));
            ReplFactory                  replFactory        = new ReplFactory(this);
            StartReplUsingProjectVersion replStartFunction  = new StartReplUsingProjectVersion(replFactory,
                                                                                               () =>
            {
                DTE2 dte = (DTE2)GetService(typeof(DTE));
                IProvider <EnvDTE.Project> projectProvider = new SelectedProjectProvider(dte.Solution, dte.ToolWindows.SolutionExplorer);

                string frameworkPath = Path.Combine(EnvironmentVariables.VsClojureRuntimesDir, "ClojureCLR-1.5.0");

                try
                {
                    frameworkPath = new LaunchParametersBuilder((ProjectNode)projectProvider.Get().Object).Get().FrameworkPath;
                }
                catch { }

                SelectedProjectProvider selectedProjectProvider = new SelectedProjectProvider(dte.Solution, dte.ToolWindows.SolutionExplorer);
                return(ReplUtilities.CreateReplProcess(frameworkPath, Path.GetDirectoryName(selectedProjectProvider.Get().FullName)));
            });

            menuCommandService.AddCommand(new MenuCommand((sender, args) =>
            {
                replFactory.ReplManager    = ReplToolWindow.TabControl;
                replFactory.ReplToolWindow = ReplToolWindowFrame;
                replStartFunction.Execute();
            }, CommandIDs.StartReplUsingProjectVersion));
        }
		public StartReplUsingProjectVersion(
			ReplFactory replFactory,
			Func<Process> replProcessProvider)
		{
			_replProcessProvider = replProcessProvider;
			_replFactory = replFactory;
		}
        public StartReplUsingProjectVersion(
			ReplFactory replFactory,
			IVsWindowFrame toolWindowFrame,
			Func<string> frameworkProvider,
			IProvider<EnvDTE.Project> selectedProjectProvider)
        {
            _frameworkProvider = frameworkProvider;
            _selectedProjectProvider = selectedProjectProvider;
            _replFactory = replFactory;
            _toolWindowFrame = toolWindowFrame;
        }
Beispiel #5
0
 public StartReplUsingProjectVersion(
     ReplFactory replFactory,
     IVsWindowFrame toolWindowFrame,
     Func <string> frameworkProvider,
     IProvider <EnvDTE.Project> selectedProjectProvider)
 {
     _frameworkProvider       = frameworkProvider;
     _selectedProjectProvider = selectedProjectProvider;
     _replFactory             = replFactory;
     _toolWindowFrame         = toolWindowFrame;
 }
Beispiel #6
0
        public EvalResult ResetCS(EvalRequest request)
        {
            var response = EvalResult.Empty(request.SessionId);

            response.StringResult = $"Total Memory: {System.GC.GetTotalMemory(false)} bytes -> ";
            var engine = ReplFactory.GetCSEngine(request.SessionId, e => {
                e.Reset(typeof(ReplService).Assembly);
            });

            response.StringResult += $"{System.GC.GetTotalMemory(true)} bytes";
            return(response);
        }
Beispiel #7
0
        public EvalResult EvalCS(EvalRequest request)
        {
            var analyzer = new ReplAnalyzerCS(request.Code);

            if (!analyzer.IsCompleteSubmission())
            {
                return(EvalResult.Error(request.SessionId, "Submission is not completed!"));
            }
            var engine = ReplFactory.GetCSEngine(request.SessionId, e => {
                e.InitEngineWithAssembly(typeof(ReplService).Assembly);
            });

            return(engine.Eval(request.Code));
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            DoSomeWork();
            var sessionId = Guid.NewGuid();
            var engine    = ReplFactory.GetCSEngine(sessionId, e => {
                e.OnOutput += Engine_OnOutput;
                e.OnError  += Engine_OnError;
                e.InitEngineWithAssembly(typeof(Program).Assembly);
            });

            _console.WriteLineInfo("------------------------------------------------------------------------");
            _console.WriteLineInfo($" New code session started with Id: {sessionId}");
            _console.WriteLineInfo("------------------------------------------------------------------------");

            ProcessRepl(engine, sessionId);
        }
Beispiel #9
0
        public EvalResult ValidateCS(EvalRequest request)
        {
            var analyzer = new ReplAnalyzerCS(request.Code);

            if (!analyzer.IsCompleteSubmission())
            {
                return(EvalResult.Error(request.SessionId, "Submission is not completed!"));
            }
            var engine = ReplFactory.GetCSEngine(request.SessionId, e => {
                e.InitEngineWithAssembly(typeof(ReplService).Assembly);
            });
            var diagnostics = engine.Validate(request.Code, out var script, out var scriptState);
            var hasErrors   = diagnostics.Any(x => x.Severity == DiagnosticSeverity.Error || (x.Severity == DiagnosticSeverity.Warning && x.IsWarningAsError));
            var diagResult  = diagnostics.Select(x => new DiagnosticsResult(x.ToString(), x.Severity)).ToList();

            return(EvalResult.Instance(request.SessionId, string.Empty, diagResult, hasErrors));
        }