public string GetSubstitutedContent(Editor edit) { string content = Content.Replace("$selection", edit.Tb.SelectedText) .Replace("$current_line", edit.Tb[edit.Tb.Selection.Start.iLine].Text) .Replace("$file_name_extension", edit.Text) .Replace("$file_name", Path.GetFileNameWithoutExtension(edit.Text)) .Replace("$eol", "\r\n").Replace("$clipboard", Clipboard.GetText()); if (Content.Contains("$choose_file")) { using (var dlg = new OpenFileDialog()) { var result = dlg.ShowDialog(); if (result == DialogResult.OK) Content = Content.Replace("$choose_file", dlg.FileName); } } return content; }
public static IEnumerable<AutocompleteItem> GetPlaces(Editor edit) { if (dic == null) { string json = File.ReadAllText(Path.Combine(GlobalSettings.SettingsDir, "Symbols.json")); dic = JsonConvert.DeserializeObject<Dictionary<string, Regex>>(json); } var lst = new List<AutocompleteItem>(); Regex re; dic.TryGetValue(edit.Tb.Language, out re); if (re == null) return null; var matches = re.Matches(edit.Tb.Text); foreach (Match match in matches) { var symbol = match.Value; symbol = symbol.Substring(symbol.LastIndexOf(' ')).Trim(); lst.Add(new FuzzyAutoCompleteItem(symbol) {Tag = match.Groups[1].Index}); } return lst; }