mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-28 16:24:27 +02:00
Minor performance enhancement to autocomplete
This commit is contained in:
parent
24c11375cf
commit
ce0c298c3e
@ -86,13 +86,18 @@ bool AutoCompletion::showApiAndWordComplete()
|
|||||||
|
|
||||||
getWordArray(wordArray, beginChars);
|
getWordArray(wordArray, beginChars);
|
||||||
|
|
||||||
|
bool canStop = false;
|
||||||
for (size_t i = 0, len = _keyWordArray.size(); i < len; ++i)
|
for (size_t i = 0, kwlen = _keyWordArray.size(); i < kwlen; ++i)
|
||||||
{
|
{
|
||||||
if (_keyWordArray[i].find(beginChars) == 0)
|
if (_keyWordArray[i].compare(0, len, beginChars) == 0)
|
||||||
{
|
{
|
||||||
if (!isInList(_keyWordArray[i], wordArray))
|
if (!isInList(_keyWordArray[i], wordArray))
|
||||||
wordArray.push_back(_keyWordArray[i]);
|
wordArray.push_back(_keyWordArray[i]);
|
||||||
|
canStop = true;
|
||||||
|
}
|
||||||
|
else if (canStop) {
|
||||||
|
// Early out since no more strings will match
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,7 +109,7 @@ bool AutoCompletion::showApiAndWordComplete()
|
|||||||
for (size_t i = 0, len = wordArray.size(); i < len; ++i)
|
for (size_t i = 0, len = wordArray.size(); i < len; ++i)
|
||||||
{
|
{
|
||||||
words += wordArray[i];
|
words += wordArray[i];
|
||||||
if (i != wordArray.size()-1)
|
if (i != len - 1)
|
||||||
words += TEXT(" ");
|
words += TEXT(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,7 +126,7 @@ void AutoCompletion::getWordArray(vector<generic_string> & wordArray, TCHAR *beg
|
|||||||
|
|
||||||
generic_string expr(TEXT("\\<"));
|
generic_string expr(TEXT("\\<"));
|
||||||
expr += beginChars;
|
expr += beginChars;
|
||||||
expr += TEXT("[^ \\t\\n\\r.,;:\"()=<>'+!\\[\\]]*");
|
expr += TEXT("[^ \\t\\n\\r.,;:\"()=<>'+!\\[\\]]+");
|
||||||
|
|
||||||
int docLength = int(_pEditView->execute(SCI_GETLENGTH));
|
int docLength = int(_pEditView->execute(SCI_GETLENGTH));
|
||||||
|
|
||||||
@ -141,9 +146,8 @@ void AutoCompletion::getWordArray(vector<generic_string> & wordArray, TCHAR *beg
|
|||||||
TCHAR w[bufSize];
|
TCHAR w[bufSize];
|
||||||
_pEditView->getGenericText(w, bufSize, wordStart, wordEnd);
|
_pEditView->getGenericText(w, bufSize, wordStart, wordEnd);
|
||||||
|
|
||||||
if (lstrcmp(w, beginChars) != 0)
|
if (!isInList(w, wordArray))
|
||||||
if (!isInList(w, wordArray))
|
wordArray.push_back(w);
|
||||||
wordArray.push_back(w);
|
|
||||||
}
|
}
|
||||||
posFind = _pEditView->searchInTarget(expr.c_str(), expr.length(), wordEnd, docLength);
|
posFind = _pEditView->searchInTarget(expr.c_str(), expr.length(), wordEnd, docLength);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user