public string RetrieveItemForEvaluation(enIntellisensePartType partType, string value) { var rawRef = DataListUtil.StripBracketsFromValue(value); var objRef = string.Empty; if (partType == enIntellisensePartType.RecordsetsOnly) { objRef = DataListUtil.ExtractRecordsetNameFromValue(rawRef); } else if (partType == enIntellisensePartType.RecordsetFields) { objRef = DataListUtil.ExtractFieldNameFromValue(rawRef); } return(objRef); }
private IList <IIntellisenseResult> GetIntellisenseResultsImpl(string input, enIntellisensePartType filterType) { IList <IIntellisenseResult> results = new List <IIntellisenseResult>(); if (!CreateDataList(input, results)) { return(results); } IntellisenseFilterOpsTO filterTO = new IntellisenseFilterOpsTO { FilterType = filterType, FilterCondition = FilterCondition }; IDev2DataLanguageParser parser = DataListFactory.CreateLanguageParser(); results = parser.ParseDataLanguageForIntellisense(input, CachedDataList, false, filterTO, true); return(results); }
protected string RetrieveItemForEvaluation(enIntellisensePartType partType, string value) { return CommonSteps.RetrieveItemForEvaluation(partType, value); }
protected string RetrieveItemForEvaluation(enIntellisensePartType partType, string value) { return(_commonSteps.RetrieveItemForEvaluation(partType, value)); }
public IEnumerable <string> GetSuggestions(string orignalText, int caretIndex, bool tokenise, enIntellisensePartType type) { if (caretIndex < 0) { return(new List <string>()); } string filter; if (tokenise) { if (caretIndex > orignalText.Length) { caretIndex = orignalText.Length; } string texttrimmedRight = orignalText.Substring(0, caretIndex); int start = texttrimmedRight.LastIndexOf(texttrimmedRight.Split(_tokenisers).Last(), StringComparison.Ordinal); filter = texttrimmedRight.Substring(start); } else { filter = orignalText; } var trie = PatriciaTrie; switch (type) { case enIntellisensePartType.RecordsetsOnly: if (orignalText.Contains("(") && orignalText.IndexOf("(", StringComparison.Ordinal) < caretIndex) { trie = PatriciaTrie; } else { trie = PatriciaTrieRecsets; } break; case enIntellisensePartType.ScalarsOnly: trie = PatriciaTrieScalars; break; case enIntellisensePartType.JsonObject: trie = PatriciaTrieJsonObjects; break; case enIntellisensePartType.RecordsetFields: if (orignalText.Contains("(") && orignalText.IndexOf("(", StringComparison.Ordinal) < caretIndex) { trie = PatriciaTrie; } else { trie = PatriciaTrieRecsetsFields; } break; } if (filter.EndsWith("[[")) { return(trie.Retrieve("[[")); } if (!filter.StartsWith("[[") && filter.Contains("[[")) { return(trie.Retrieve(filter.Substring(filter.LastIndexOf("[[", StringComparison.Ordinal)))); } if (filter == "]" || filter == "]]") { return(new string[0]); } var suggestions = trie.Retrieve(filter); return(suggestions); }
public IList <IntellisenseProviderResult> GetIntellisenseResults(IntellisenseProviderContext context) { if (context == null) { return(new List <IntellisenseProviderResult>()); } if (IsDisposed) { throw new ObjectDisposedException("DefaultIntellisenseProvider"); } if (!Equals(TextBox, context.TextBox)) { TextBox = context.TextBox as IntellisenseTextBox; } IList <IIntellisenseResult> results; var input = context.InputText ?? string.Empty; var caretPosition = context.CaretPosition; if (caretPosition > input.Length || caretPosition < 0) { return(new List <IntellisenseProviderResult>()); } enIntellisensePartType filterType = context.FilterType; enIntellisensePartType altfilterType = context.FilterType; IntellisenseDesiredResultSet desiredResultSet = context.DesiredResultSet; string searchText = context.FindTextToSearch(); string recordsetIndex = string.Empty; string recordserName = string.Empty; var region = input.RegionInPostion(caretPosition); var regionName = region.Name; if (DataListUtil.IsValueRecordset(regionName)) { recordsetIndex = DataListUtil.ExtractIndexRegionFromRecordset(regionName); recordserName = DataListUtil.ExtractRecordsetNameFromValue(regionName); if (!string.IsNullOrEmpty(recordsetIndex) && DataListUtil.IsValueRecordsetWithFields(searchText)) { altfilterType = enIntellisensePartType.RecordsetFields; } } if (input.Equals(DataListUtil.OpeningSquareBrackets)) { searchText = context.InputText; } else { searchText = searchText.StartsWith(DataListUtil.OpeningSquareBrackets) || string.IsNullOrEmpty(searchText) ? searchText : DataListUtil.OpeningSquareBrackets + searchText; } switch (desiredResultSet) { case IntellisenseDesiredResultSet.EntireSet: results = GetIntellisenseResultsImpl(DataListUtil.OpeningSquareBrackets, filterType); break; default: { results = GetIntellisenseResultsImpl(searchText, filterType); if (results == null || results.Count == 0 && HandlesResultInsertion) { results = new List <IIntellisenseResult>(); string inputText = input; var regionInPostion = inputText.RegionInPostion(caretPosition); inputText = !string.IsNullOrEmpty(regionInPostion.Name) ? regionInPostion.Name : inputText; var getErrors = GetIntellisenseResultsImpl(inputText, filterType) .Where(i => i.ErrorCode != enIntellisenseErrorCode.None) .ToList(); getErrors.ForEach(results.Add); } break; } } if (altfilterType == enIntellisensePartType.RecordsetFields) { var filteredRecordsetFields = results.Where(r => r.Option.Recordset.Equals(recordserName) || r.Option.IsScalar); if (!string.IsNullOrEmpty(recordsetIndex)) { results = filteredRecordsetFields.ToList().Where(r => !r.Option.HasRecordsetIndex || r.Option.IsScalar).ToList(); } } IList <IntellisenseProviderResult> trueResults = new List <IntellisenseProviderResult>(); string[] openParts = Regex.Split(input, @"\[\["); string[] closeParts = Regex.Split(input, @"\]\]"); if (openParts.Length != closeParts.Length) { if (results != null) { results.Add(IntellisenseFactory.CreateCalculateIntellisenseResult(2, 2, "Invalid Expression", "", StringResources.IntellisenseErrorMisMacthingBrackets)); } } if (results != null) { foreach (IIntellisenseResult currentResult in results) { if (currentResult.ErrorCode != enIntellisenseErrorCode.None) { if (currentResult.Type == enIntellisenseResultType.Error && currentResult.IsClosedRegion) { var displayValue = currentResult.Option == null ? string.Empty : currentResult.Option.DisplayValue; trueResults.Add(new IntellisenseProviderResult(this, displayValue, currentResult.Message, currentResult.Message, true)); } } if (currentResult.Type == enIntellisenseResultType.Selectable) { var displayValue = currentResult.Option == null ? string.Empty : currentResult.Option.DisplayValue; var description = currentResult.Option == null ? string.Empty : currentResult.Option.Description; trueResults.Add(new IntellisenseProviderResult(this, displayValue, description, description, false)); } } } return(trueResults); }