private void displayWordExtensions()
{
Word.Range range = Globals.ThisAddIn.Application.ActiveDocument.Range(extensionRange.End, extensionRange.End);
switch (extensionType)
{
case Suggestion.PARAGRAPH: // Paragraph and sentence will do almost similar codes
for (int i = extensionWordPos + 1; i < currentExtensionPosWordList.Count; i++)
{
String word = currentExtensionPosWordList[i];
range.Text += word + extraSpace;
}
currentExtensionPosWordList = null;
extensionWordPos = -1;
isCompletingLastSentenceOfPara = true;
break;
case Suggestion.SENTENCE:
for (int i = extensionWordPos + 1; i < currentExtensionPosWordList.Count; i++)
{
String word = currentExtensionPosWordList[i];
range.Text += word + extraSpace;
}
currentExtensionPosWordList = null;
extensionWordPos = -1;
break;
case Suggestion.WORD:
if (extensionWordPos == -1 || extensionWordPos == currentExtensionPosWordList.Count - 1)
{
extensionWordPos = 0;
extensionPos++;
Sentence nextSentence = (Sentence)extensions[extensionPos];
currentExtensionPosWordList = nextSentence.content.Split(wordListSplitChar).ToList();
range.Text = currentExtensionPosWordList[extensionWordPos] + extraSpace;
}
else // if (extensionWordPos != lastWordListIndex && extensionWordPos != -1)
{
extensionWordPos++;
range.Text = currentExtensionPosWordList[extensionWordPos] + extraSpace;
}
break;
}
if (range.Text != null)
extensionRange.MoveEnd(Word.WdUnits.wdCharacter, new StringInfo(range.Text).LengthInTextElements);
// Reposition the cursor to the end of the sentence that is just pasted
int position = extensionRange.End;
Globals.ThisAddIn.Application.Selection.SetRange(position, position);
highlight(extensionRange);
scrollToRange(extensionRange);
}