//private string GetFirmwareFeatureValue(FastColoredTextBox fctb, string feauture ) //{ // if (string.IsNullOrEmpty(feauture)) return ""; // string featurevalue = ""; // string row = ""; // List<int> rows = new List<int>(); // rows = fctb.FindLines(@"\s*\#define\s*\b" + feauture + @"\b", RegexOptions.Multiline); // foreach (int index in rows) // { // row = fctb.GetLineText(index).Trim(); // featurevalue = row.Substring(row.IndexOf(feauture, StringComparison.Ordinal)); // featurevalue = featurevalue.Replace(feauture, ""); // if (featurevalue.StartsWith("\"")) // { // featurevalue = featurevalue.Substring(0, featurevalue.IndexOf("\"", 1, StringComparison.Ordinal) + 1); // } // if (row.StartsWith("#define")) break; // } // if (featurevalue.Contains("//")) featurevalue = featurevalue.Substring(0, featurevalue.IndexOf("//", StringComparison.Ordinal)).Trim(); // if(string.IsNullOrEmpty(featurevalue)) // { // if (row.StartsWith(@"//")) featurevalue = "// Deactivated feature"; // else featurevalue = "// Activated feature"; // } // return featurevalue.Trim(); //} //private void BookmarkChangeNeeded(string feature) //{ // // Get the last occurance for the feature in current firmware // int currentrow = MarlinMigrateHelper.GetFirmwareFeatureRow(fctbCurrentFirmware, feature); // string currentValue = GetFirmwareFeatureValue(fctbCurrentFirmware, feature); // string currentLine = fctbCurrentFirmware.GetLineText(currentrow).Trim(); // // Get the last occurance for the feature in new firmware // int newrow = MarlinMigrateHelper.GetFirmwareFeatureRow(fctbNewFirmware, feature); // string newValue = GetFirmwareFeatureValue(fctbNewFirmware, feature); // string newLine = fctbNewFirmware.GetLineText(newrow).Trim(); // if ((newrow == 0) | currentValue != newValue ) // { // fctbCurrentFirmware.BookmarkLine(currentrow); // return; // } // //if (currentLine.StartsWith("//") && !newLine.StartsWith("//")) // //{ // // fctbCurrentFirmware.BookmarkLine(currentrow); // // return; // //} // //if (!currentLine.StartsWith("//") && newLine.StartsWith("//")) // //{ // // fctbCurrentFirmware.BookmarkLine(currentrow); // // return; // //} // fctbCurrentFirmware.UnbookmarkLine(currentrow); //} private void btnPassValue_Click(object sender, EventArgs e) { MarlinMigrateHelper.UpdateFeatureValue(cmbBxFirmwareFeatures.Text, fctbCurrentFirmware, fctbNewFirmware); ShowFirmwareFeatures(cmbBxFirmwareFeatures.Text); // Move the focus to cmbBxFirmwareFeatures => Next feature cmbBxFirmwareFeatures.Focus(); }
private void UpdateFeature(FastColoredTextBox fastColoredTextBoxNewFirmware, string feature, string value) { List <int> rows = new List <int>(); rows = fastColoredTextBoxNewFirmware.FindLines(@"^\s*\#define\s*" + feature, RegexOptions.Singleline); if (rows.Count > 0) { fastColoredTextBoxNewFirmware.Navigate(rows[0]); // #Update Feature in Firmware BugFix // Find value in rows[0] // replace value with the new value MarlinMigrateHelper.UpdateFeatureValue(feature, value, fastColoredTextBoxNewFirmware); fastColoredTextBoxNewFirmware.DoAutoIndent(rows[0]); fastColoredTextBoxNewFirmware.DoAutoIndent(rows[0] + 1); } }