private void Analyze(bool silent) { var watch = new DiagnosticTimer(); var bufferId = NotepadPPGateway.GetCurrentBufferId(); var textLength = PluginBase.CurrentScintillaGateway.GetTextLength(); var text = PluginBase.CurrentScintillaGateway.GetTextRange(0, Math.Min(100000, textLength)); watch.Checkpoint("GetText"); var csvSettings = CsvAnalyzer.Analyze(text); if (csvSettings.Separator == '\0' && csvSettings.FieldWidths == null) { if (silent) { return; } var askUserDialog = new ParseSettings(csvSettings); this.UiThread(() => askUserDialog.ShowDialog()); if (askUserDialog.DialogResult != DialogResult.OK) { return; } csvSettings = askUserDialog.Settings; } watch.Checkpoint("Analyze"); using (var sr = ScintillaStreams.StreamAllText()) { this.Parse(csvSettings, watch, sr, bufferId); } }
public void StartParse(CsvSettings settings) { this.StartSomething(() => { using (var sr = ScintillaStreams.StreamAllText()) { this.Parse(settings, new DiagnosticTimer(), sr, NotepadPPGateway.GetCurrentBufferId()); } }); }