/// <summary> /// Will create a index map based on the textToSearch parameter. /// </summary> /// <param name="textToSearch">The source code to create an index map against for source code comments.</param> /// <returns></returns> public static CommentedCodeIndexMap CreateMap(String textToSearch) { var indexMap = new CommentedCodeIndexMap() { TextToSearch = textToSearch, }; var currentIndex = 0; var startIndexOfComment = 0; var endIndexOfComment = 0; while (currentIndex < textToSearch.Length - 2) //will be checking next character as well. { var characters = textToSearch.Substring(currentIndex, 2); switch (characters) { default: //no comment, check the next character currentIndex++; continue; case "//": //single line comment endIndexOfComment = textToSearch.IndexOf("\n", currentIndex) - 1; break; case "/*": endIndexOfComment = textToSearch.IndexOf("*/", currentIndex) + 2; break; } startIndexOfComment = currentIndex; //if the last line of the file or strange overflow if (endIndexOfComment < 0 || endIndexOfComment < startIndexOfComment) endIndexOfComment = textToSearch.Length - 1; indexMap._listOfIndexes.Add(new Tuple<int, int>(startIndexOfComment, endIndexOfComment)); currentIndex = endIndexOfComment; } return indexMap; }
/// <summary> /// Will create a index map based on the textToSearch parameter. /// </summary> /// <param name="textToSearch">The source code to create an index map against for source code comments.</param> /// <returns></returns> public static CommentedCodeIndexMap CreateMap(String textToSearch) { var indexMap = new CommentedCodeIndexMap() { TextToSearch = textToSearch, }; var currentIndex = 0; var startIndexOfComment = 0; var endIndexOfComment = 0; while (currentIndex < textToSearch.Length - 2) { var characters = textToSearch.Substring(currentIndex, 2); switch (characters) { default: currentIndex++; continue; case "//": endIndexOfComment = textToSearch.IndexOf("\n", currentIndex) - 1; break; case "/*": endIndexOfComment = textToSearch.IndexOf("*/", currentIndex) + 2; break; } startIndexOfComment = currentIndex; if (endIndexOfComment < 0 || endIndexOfComment < startIndexOfComment) endIndexOfComment = textToSearch.Length - 1; indexMap._listOfIndexes.Add(new Tuple<Int32, Int32>(startIndexOfComment, endIndexOfComment)); currentIndex = endIndexOfComment; } return indexMap; }