private static bool ProcessInit() { try { var gateway = PluginBase.GetGatewayFactory().Invoke(); // загружаем настройки плагина _settings = SettingsParser.LoadMapping(_iniConfig); // чтобы SCN_MODIFIED вызывался только, если был добавлен или удален текст gateway.SetModEventMask((int)SciMsg.SC_MOD_INSERTTEXT | (int)SciMsg.SC_MOD_DELETETEXT); // NPPN_READY вызывается перед последним вызовом NPPN_BUFFERACTIVATED, поэтому нужно инициализировать SearchEngine SearchEngine.Reload(_settings, gateway.GetFullCurrentPath()); // инициализация обработчика кликов мышкой UserInputHandler.Reload(HandleMouseEvent, OnKeyboardDown); // инициализация поддержки кнопок navigate forward/backward NavigationHandler.Reload(gateway.GetCurrentLocation()); // инициализация поддержки подсветки ссылок _linksHighlighter?.Dispose(); _linksHighlighter = new LinksHighlighter(gateway, _settings); // при запуске NPP вызывается миллиард событий, в том числе и интересующие нас NPPN_BUFFERACTIVATED, SCN_MODIFIED, etc. Но их не нужно обрабатывать до инициализации. _isPluginInited = true; return(true); } catch (Exception e) { Logger.Error(e.Message, e, true); return(false); } }