static string PerformResultInsertionForScalars(string input, IntellisenseProviderContext context, string replace) { int replaceStringIndex = 0; var inputText = context.InputText ?? string.Empty; var caretPosition = context.CaretPosition; IList <int> stringIndexes = inputText.AllIndexesOf(replace).ToList(); if (stringIndexes.Count > 0) { replaceStringIndex = stringIndexes.Where(i => i < caretPosition).Max(); } var region = inputText.RegionInPostion(caretPosition); var regionName = region.Name ?? string.Empty; if (DataListUtil.EndsWithClosingTags(regionName)) { var indexOfClosingBracket = DataListUtil.IndexOfClosingTags(input); indexOfClosingBracket = indexOfClosingBracket > 0 ? indexOfClosingBracket : 0; input = input.Substring(0, indexOfClosingBracket); caretPosition += 2; } string updatedInputText = inputText.Remove(replaceStringIndex, replace.Length) .Insert(replaceStringIndex, input); context.CaretPosition = caretPosition + (updatedInputText.Length - inputText.Length); return(updatedInputText); }
public void DataListUtil_IndexOfClosingTags_VariableHasClosingTags_Index() { //------------Execute Test--------------------------- var index = DataListUtil.IndexOfClosingTags("[[var]]"); //------------Assert Results------------------------- Assert.AreEqual(5, index); }
public void DataListUtil_IndexOfClosingTags_VariableIsEmpty_NegativeOne() { //------------Execute Test--------------------------- var index = DataListUtil.IndexOfClosingTags(""); //------------Assert Results------------------------- Assert.AreEqual(-1, index); }