[NEW_FEATURE] Add the smart highlight file size limit - 1.5 MB in order to improve the performance.

Make setInfo() call before getFuncsArray() call for PluginsManager.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@224 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
donho 2008-06-08 19:55:59 +00:00
parent a7d7d28f98
commit 536a07167d
2 changed files with 9 additions and 8 deletions

View File

@ -82,6 +82,8 @@ bool PluginsManager::loadPlugins(const char *dir)
if (!pi->_pMessageProc)
throw string("Missing \"messageProc\" function");
pi->_pFuncSetInfo(_nppData);
pi->_pFuncGetFuncsArray = (PFUNCGETFUNCSARRAY)GetProcAddress(pi->_hLib, "getFuncsArray");
if (!pi->_pFuncGetFuncsArray)
throw string("Missing \"getFuncsArray\" function");
@ -90,16 +92,9 @@ bool PluginsManager::loadPlugins(const char *dir)
if ((!pi->_funcItems) || (pi->_nbFuncItem <= 0))
throw string("Missing \"FuncItems\" array, or the nb of Function Item is not set correctly");
/*
for (int c = 0 ; c < pi->_nbFuncItem ; c++)
if (!pi->_funcItems[c]._pFunc)
throw string("\"FuncItems\" array is not set correctly");
*/
pi->_pluginMenu = ::CreateMenu();
pi->_pFuncSetInfo(_nppData);
GetLexerCountFn GetLexerCount = (GetLexerCountFn)::GetProcAddress(pi->_hLib, "GetLexerCount");
// it's a lexer plugin
if (GetLexerCount)

View File

@ -43,6 +43,8 @@
const char Notepad_plus::_className[32] = NOTEPAD_PP_CLASS_NAME;
const char *urlHttpRegExpr = "http://[a-z0-9_\\-\\+.:?&@=/%#]*";
const int smartHighlightFileSizeLimit = 1024 * 1024 + 512 * 1024; // 1,5 MB
int docTabIconIDs[] = {IDI_SAVED_ICON, IDI_UNSAVED_ICON, IDI_READONLY_ICON};
enum tb_stat {tb_saved, tb_unsaved, tb_ro};
@ -7692,6 +7694,10 @@ void Notepad_plus::markSelectedText()
if (!nppGUI._enableSmartHilite)
return;
//
if (_pEditView->getCurrentDocLen() > smartHighlightFileSizeLimit)
return;
//Get selection
CharacterRange range = _pEditView->getSelection();
//Dont mark if the selection has not changed.