private void Button_RunCoala_Click(object sender, RoutedEventArgs e) { LintRequest request = new LintRequest(); request.bears = ((BearMetadata)Combobox_SelectedBears.SelectedItem).Name; request.file_data = CodeEditor.Text; List <Result> results = wincoalaCore.lintOnline(request); ListView_Results.ItemsSource = results; ListView_Results.Visibility = Visibility.Visible; }
private void injectResultWithSnippet(LintRequest request, ref List <Result> results) { string[] lines = request.file_data.Split(new String[] { "\r\n", "\n" }, StringSplitOptions.None); foreach (Result result in results) { result.snippets = new List <String>(); foreach (SourceRange sourceRange in result.affected_code) { // The code itself String snippet = lines[sourceRange.start.line - 1]; // Pointer on the wronged column, only if the bear support it if (sourceRange.start.column != -1) { snippet += "\r\n" + new String(' ', sourceRange.start.column - 1) + "^"; } result.snippets.Add(snippet); } } }
public List <Result> lintOnline(LintRequest request) { // API call Trace.WriteLine("editor API call"); HttpContent content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); String test = JsonConvert.SerializeObject(request); Trace.WriteLine(test); HttpResponseMessage response = this.apiClient.PostAsync("editor/", content).Result; response.EnsureSuccessStatusCode(); string resultAsString = response.Content.ReadAsStringAsync().Result; Trace.WriteLine("Result: " + resultAsString); // Convert JSON to List<Result> LintResponse bearsData = JsonConvert.DeserializeObject <LintResponse>(resultAsString); // "default" is the default section name used in coala result List <Result> results = bearsData.results["default"]; injectResultWithSnippet(request, ref results); return(results); }