diff --git a/src/autocomplete.d b/src/autocomplete.d index d0e4941..9c610d4 100644 --- a/src/autocomplete.d +++ b/src/autocomplete.d @@ -229,10 +229,13 @@ AutocompleteResponse dotCompletion(T)(T beforeTokens, // responses when the cursor is in the middle of an identifier instead // of at the end auto t = beforeTokens[$ - 1]; - partial = t.text[0 .. cursorPosition - t.index]; + if (cursorPosition - t.index >= 0 && cursorPosition - t.index < t.text.length) + { + partial = t.text[0 .. cursorPosition - t.index]; - significantTokenType = tok!"identifier"; - beforeTokens = beforeTokens[0 .. $ - 1]; + significantTokenType = tok!"identifier"; + beforeTokens = beforeTokens[0 .. $ - 1]; + } } else if (beforeTokens.length >= 2 && beforeTokens[$ - 1] == tok!".") significantTokenType = beforeTokens[$ - 2].type;