public Task OnCommandUpdatedAsync(IReplCommandInput command, CancellationToken cancellationToken) { if (isResetting) { return(Task.CompletedTask); } Debug.Assert(execState != null); if (execState == null) { throw new InvalidOperationException(); } string code = command.Input; const string assemblyName = "myasm"; var previousScriptCompilation = execState.ScriptState.Script.GetCompilation(); if (cancellationToken.IsCancellationRequested) { return(Task.CompletedTask); } var options = previousScriptCompilation.Options; if (cancellationToken.IsCancellationRequested) { return(Task.CompletedTask); } var syntaxTree = CreateSyntaxTree(code, cancellationToken); if (cancellationToken.IsCancellationRequested) { return(Task.CompletedTask); } var sc = CreateScriptCompilation(assemblyName, syntaxTree, null, options, previousScriptCompilation, execState.ScriptState.Script.ReturnType, execState.ScriptState.Script.GlobalsType); if (cancellationToken.IsCancellationRequested) { return(Task.CompletedTask); } var sem = sc.GetSemanticModel(syntaxTree); if (cancellationToken.IsCancellationRequested) { return(Task.CompletedTask); } using (var workspace = new AdhocWorkspace(RoslynMefHostServices.DefaultServices)) { var classifier = new RoslynClassifier(sem.SyntaxTree.GetRoot(), sem, workspace, roslynClassificationTypes, defaultClassificationType, cancellationToken); foreach (var info in classifier.GetClassifications(new TextSpan(0, command.Input.Length))) { command.AddClassification(info.Span.Start, info.Span.Length, info.Type); } } return(Task.CompletedTask); }
public Task OnCommandUpdatedAsync(IReplCommandInput command, CancellationToken cancellationToken) => Task.CompletedTask;
public Task OnCommandUpdatedAsync(IReplCommandInput command, CancellationToken cancellationToken) => Task.CompletedTask;