void ValidateText(string text) { if (!HasError) { _originalToolTip = ToolTip; } var error = IntellisenseStringProvider.parseLanguageExpressionAndValidate(text); if (FilterType != enIntellisensePartType.JsonObject) { HandleNonJsonFilterType(error); } else { if (error.Item2 != string.Empty) { ToolTip = error.Item2; HasError = true; } else { ToolTip = _originalToolTip; HasError = false; } } }
public void ThenTheResultHasTheError(string errorMessage) { var inputText = ScenarioContext.Current.Get <string>("inputText"); var error = IntellisenseStringProvider.parseLanguageExpressionAndValidate(inputText); Assert.AreEqual(errorMessage.TrimEnd(' '), error.Item2.TrimEnd(' ')); }
private void ValidateText(string text) { if (!HasError) { _originalToolTip = ToolTip; } var error = IntellisenseStringProvider.parseLanguageExpressionAndValidate(text); if (FilterType != enIntellisensePartType.JsonObject) { if (FilterType == enIntellisensePartType.RecordsetsOnly && !error.Item1.IsRecordSetNameExpression) { ToolTip = error.Item2 != string.Empty ? error.Item2 : "Invalid recordset"; HasError = true; } else if (FilterType == enIntellisensePartType.ScalarsOnly && !error.Item1.IsScalarExpression) { ToolTip = error.Item2 != string.Empty ? error.Item2 : "Invalid scalar"; HasError = true; } else if (FilterType == enIntellisensePartType.RecordsetFields && !error.Item1.IsRecordSetExpression) { ToolTip = error.Item2 != string.Empty ? error.Item2 : "Invalid recordset name"; HasError = true; } else { if (error.Item2 != string.Empty) { ToolTip = error.Item2; HasError = true; } else { ToolTip = _originalToolTip; HasError = false; } } } else { if (error.Item2 != string.Empty) { ToolTip = error.Item2; HasError = true; } else { ToolTip = _originalToolTip; HasError = false; } } }
public IIntellisenseStringResult Build(string selectedOption, int originalCaret, string originalText, string editorText) { if (originalText == String.Empty || selectedOption.StartsWith(originalText)) { return(new IntellisenseStringResult(selectedOption, selectedOption.Length)); } try { #pragma warning disable 618 var rep = IntellisenseStringProvider.doReplace(originalText, originalCaret, selectedOption); #pragma warning restore 618 return(new IntellisenseStringResult(rep.Item1, rep.Item2)); } catch (Exception) { string diff = originalCaret >= editorText.Length - 1 ? editorText : editorText.Substring(0, originalCaret + 1); int ignore = originalCaret - Math.Max(diff.LastIndexOf("[[", StringComparison.Ordinal), diff.LastIndexOf("]]", StringComparison.Ordinal) + 1); var len = originalCaret - ignore; var delimchar = ""; var lastIndexOfAny = diff.LastIndexOfAny(_tokenisers); if (len < 0) { if (lastIndexOfAny > 0 && !"[]".Contains(diff[lastIndexOfAny].ToString())) { delimchar = diff[lastIndexOfAny].ToString(); } ignore = originalCaret - lastIndexOfAny; } //var x =lastIndexOfAny < 0 && diff.LastIndexOf("[[") < 0 ? 0 : originalCaret - ignore; //var y = lastIndexOfAny < 0 && diff.LastIndexOf("]]") < 0 ? 0 : originalCaret - ignore; //len = Math.Max(x, y); //if(len<=0) len = lastIndexOfAny < 0 && diff.LastIndexOfAny("[]".ToCharArray()) < 0 ? 0 : originalCaret - ignore; var suffix = originalText.Substring(originalCaret); if (suffix.StartsWith("]]")) { suffix = suffix.Substring(2); } var text = originalText.Substring(0, len) + delimchar + selectedOption + suffix; var car = (originalText.Substring(0, len) + selectedOption).Length + delimchar.Length; return(new IntellisenseStringResult(text, car)); } }