public void replacement_position_can_be_found_at_the_end_of_a_string() { var code = "System.Linq.Enumerable."; // finding this ^ var pos = SourceUtilities.ComputeReplacementStartPosition(code, code.Length); Assert.Equal(code.Length, pos); }
public void replacement_position_can_be_found_not_at_the_end_of_a_string() { var code = "System.Linq.Enumerable.Ran"; // finding this ^ var lastDotPos = code.LastIndexOf('.') + 1; var pos = SourceUtilities.ComputeReplacementStartPosition(code, lastDotPos); Assert.Equal(lastDotPos, pos); }
private static void OnCompletionRequestCompleted(CompletionRequestCompleted completionRequestCompleted, IJupyterMessageSender jupyterMessageSender) { var command = completionRequestCompleted.Command as RequestCompletion; var pos = SourceUtilities.ComputeReplacementStartPosition(command.Code, command.CursorPosition); var reply = new CompleteReply(pos, command.CursorPosition, matches: completionRequestCompleted.CompletionList.Select(e => e.InsertText ?? e.DisplayText).ToList()); jupyterMessageSender.Send(reply); }
public async Task Handle(JupyterRequestContext context) { var completeRequest = GetJupyterRequest(context); var position = SourceUtilities.GetPositionFromCursorOffset(completeRequest.Code, completeRequest.CursorPosition); var command = new RequestCompletion(completeRequest.Code, position); await SendAsync(context, command); }
public async Task Handle(JupyterRequestContext context) { var completeRequest = GetJupyterRequest(context); var targetKernelName = context.GetLanguage(); var position = SourceUtilities.GetPositionFromCursorOffset(completeRequest.Code, completeRequest.CursorPosition); var command = new RequestCompletions(completeRequest.Code, position, targetKernelName); await SendAsync(context, command); }
public void replacement_position_can_be_found_at_the_end_of_a_multiline_string() { var code = @" using System.Linq; Enumerable. // ^ finding this"; var lastDotPos = code.LastIndexOf('.') + 1; var pos = SourceUtilities.ComputeReplacementStartPosition(code, lastDotPos); Assert.Equal(lastDotPos, pos); }
public async Task HandleAsync( RequestCompletions command, KernelInvocationContext context) { var completionList = await GetCompletionList( command.Code, SourceUtilities.GetCursorOffsetFromPosition(command.Code, command.LinePosition)); context.Publish(new CompletionsProduced(completionList, command)); }
private static void AddTechnique(Class @class, Method reloadMethod, string technique, string methodName) { var field = new Field("EffectPass", $"{SourceUtilities.LowerCaseFirstLetter(technique)}Pass", "private"); @class.Fields.Add(field); reloadMethod.Body.Expressions.Add(new Assignment($"this.{field.Name}", "=", $"this.Effect.Techniques[\"{technique}\"].Passes[0]")); var method = new Method("void", methodName, "public"); @class.Methods.Add(method); method.Body.Expressions.Add(new Statement($"this.{field.Name}.Apply()")); }
private static void AddTechniques(Effect effect, Class @class, Method reloadMethod) { if (effect.Techniques.Count == 1) { AddTechnique(@class, reloadMethod, effect.Techniques[0], "Apply"); } else { foreach (var technique in effect.Techniques) { AddTechnique(@class, reloadMethod, technique, $"Apply{SourceUtilities.CapitalizeFirstLetter(technique)}"); } } }
public async Task HandleAsync( RequestCompletion requestCompletion, KernelInvocationContext context) { var completionRequestReceived = new CompletionRequestReceived(requestCompletion); context.Publish(completionRequestReceived); var completionList = await GetCompletionList( requestCompletion.Code, SourceUtilities.GetCursorOffsetFromPosition(requestCompletion.Code, requestCompletion.Position)); context.Publish(new CompletionRequestCompleted(completionList, requestCompletion)); }
private static void AddAndInitializeProperties(Effect effect, Class @class, Method reloadMethod) { foreach (var prop in effect.PublicProperties) { var fieldName = SourceUtilities.LowerCaseFirstLetter(prop.Name) + "Parameter"; @class.Fields.Add(new Field("EffectParameter", fieldName, "private")); var assignment = new Assignment($"this.{fieldName}", "=", $"this.Effect.Parameters[\"{prop.Name}\"]"); reloadMethod.Body.Expressions.Add(assignment); var property = new Property(prop.GetXNAType(), SourceUtilities.CapitalizeFirstLetter(prop.Name), false, "public"); @class.Properties.Add(property); var propertySetter = new Body(); property.SetSetter(propertySetter); propertySetter.Expressions.Add(new Statement($"this.{fieldName}.SetValue(value)")); } }
private static void OnCompletionRequestCompleted(CompletionRequestCompleted completionRequestCompleted, IJupyterMessageSender jupyterMessageSender) { var command = completionRequestCompleted.Command as RequestCompletion; int startPosition, endPosition; if (completionRequestCompleted.ReplacementStartIndex != null) { startPosition = completionRequestCompleted.ReplacementStartIndex.Value; endPosition = completionRequestCompleted.ReplacementEndIndex.Value; } else { startPosition = SourceUtilities.ComputeReplacementStartPosition(command.Code, command.CursorPosition); endPosition = command.CursorPosition; } var reply = new CompleteReply(startPosition, endPosition, matches: completionRequestCompleted.CompletionList.Select(e => e.InsertText ?? e.DisplayText).ToList()); jupyterMessageSender.Send(reply); }
private static void OnCompletionRequestCompleted(CompletionRequestCompleted completionRequestCompleted, IJupyterMessageSender jupyterMessageSender) { var command = completionRequestCompleted.Command as RequestCompletion; int startPosition, endPosition; if (completionRequestCompleted.Range != null) { startPosition = SourceUtilities.GetCursorOffsetFromPosition(command.Code, completionRequestCompleted.Range.GetValueOrDefault().Start); endPosition = SourceUtilities.GetCursorOffsetFromPosition(command.Code, completionRequestCompleted.Range.GetValueOrDefault().End); } else { var cursorOffset = SourceUtilities.GetCursorOffsetFromPosition(command.Code, command.Position); startPosition = SourceUtilities.ComputeReplacementStartPosition(command.Code, cursorOffset); endPosition = cursorOffset; } var reply = new CompleteReply(startPosition, endPosition, matches: completionRequestCompleted.CompletionList.Select(e => e.InsertText ?? e.DisplayText).ToList()); jupyterMessageSender.Send(reply); }
private static void OnCompletionRequestCompleted(CompletionsProduced completionsProduced, IJupyterMessageSender jupyterMessageSender) { var startPosition = 0; var endPosition = 0; if (completionsProduced.Command is RequestCompletions command) { if (completionsProduced.LinePositionSpan is not null) { startPosition = SourceUtilities.GetCursorOffsetFromPosition(command.Code, completionsProduced.LinePositionSpan.Start); endPosition = SourceUtilities.GetCursorOffsetFromPosition(command.Code, completionsProduced.LinePositionSpan.End); } else { var cursorOffset = SourceUtilities.GetCursorOffsetFromPosition(command.Code, command.LinePosition); startPosition = SourceUtilities.ComputeReplacementStartPosition(command.Code, cursorOffset); endPosition = cursorOffset; } } var reply = new CompleteReply(startPosition, endPosition, matches: completionsProduced.Completions.Select(e => e.InsertText ?? e.DisplayText).ToList()); jupyterMessageSender.Send(reply); }