public static void ColoraTesto(RichTextBoxEx rtb, List <ColorConfig> color) { if (color == null) { color = Leggifile(); } int selIndx = rtb.SelectionStart; //salvo le coordinate di un eventuale selezione int selLeght = rtb.SelectionLength; Color col = rtb.ForeColor; //salvo il colore iniziale del font string rex = @"[\w]+[.\s]($)?"; MatchCollection Collections = Regex.Matches(rtb.Text, rex); //prendo tutte le parole foreach (ColorConfig i in color) { if (i.RegexOption != -1) { MatchCollection rexres = Regex.Matches(rtb.Text, i.Value, (RegexOptions)i.RegexOption); foreach (Match n in rexres) { rtb.Select(n.Index, n.Length); // seleziono il match rtb.SelectionColor = i.color; // coloro } } else { foreach (Match m in Collections) { if (i.Value.ToLower() == m.ToString().Trim().ToLower() + " ") //guardo se la parola corrisponde { rtb.Select(m.Index, m.Length); //seleziono la parola rtb.SelectionColor = i.color; //coloro } } } } rtb.Select(selIndx, 0); //riporto la selezione allo stato iniziale rtb.SelectionStart = selIndx; rtb.SelectionLength = selLeght; rtb.SelectionColor = col; }
public static bool CompilaProgramma(RichTextBoxEx RTBText, string FileName, out string[] errors) { LogManager errori = new LogManager(); Translator traduttore = new Translator(errori); string[] pacccccccchetttttttu; string rex = "aggiungi"; MatchCollection matches = Regex.Matches(RTBText.Text, rex); int j = 0; pacccccccchetttttttu = new string[matches.Count + 1]; foreach (Match i in matches) { int index = i.Index + i.Length; string line = RTBText.Lines[RTBText.GetLineFromCharIndex(index)]; RTBText.Select(index, line.Length - i.Length); string res = RTBText.SelectedText.Trim(); if (!string.IsNullOrWhiteSpace(res)) { pacccccccchetttttttu[j] = FormFunctions.GetPathByFileName(FileName) + "/" + res + ".lmp"; } else { pacccccccchetttttttu[j] = ""; } j++; } pacccccccchetttttttu[j] = "./LEGGERMENTE.lmp"; ResultCode risultato = traduttore.Translate(CodeType.Program, RTBText.Text, pacccccccchetttttttu, FormFunctions.GetPathByFileName(FileName) + "/result.cs"); if (!errori.WithOutError) { errors = errori.LogList; return(false); } errors = null; return(true); }