AvalonStudio.TextEditor.TextEditor.GetWordAtIndex C# (CSharp) Method

GetWordAtIndex() public method

public GetWordAtIndex ( int index ) : string
index int
return string
        public string GetWordAtIndex(int index)
        {
            var result = string.Empty;

            if (index >= 0 && TextDocument.TextLength > index)
            {
                var start = index;

                var currentChar = TextDocument.GetCharAt(index);
                var prevChar = '\0';

                if (index > 0)
                {
                    prevChar = TextDocument.GetCharAt(index - 1);
                }

                var charClass = TextUtilities.GetCharacterClass(currentChar);

                if (charClass != TextUtilities.CharacterClass.LineTerminator && prevChar != ' ' &&
                    TextUtilities.GetCharacterClass(prevChar) != TextUtilities.CharacterClass.LineTerminator)
                {
                    start = TextUtilities.GetNextCaretPosition(TextDocument, index, TextUtilities.LogicalDirection.Backward,
                        TextUtilities.CaretPositioningMode.WordStart);
                }

                var end = TextUtilities.GetNextCaretPosition(TextDocument, start, TextUtilities.LogicalDirection.Forward,
                    TextUtilities.CaretPositioningMode.WordBorder);

                if (start != -1 && end != -1)
                {
                    var word = TextDocument.GetText(start, end - start).Trim();

                    if (TextUtilities.IsSymbol(word))
                    {
                        result = word;
                    }
                }
            }

            return result;
        }