public void Start(
string path,
ICacheBuilder cache,
ICrawlResult crawlReader,
PluginLocator pluginLocator,
EventEndpoint eventDispatcher)
{
_cache = cache;
_crawlReader = crawlReader;
_eventDispatcher = eventDispatcher;
_tracker = new FileChangeTracker((x) => {
_eventDispatcher.Send(
"codemodel raw-filesystem-change-" +
x.Type.ToString().ToLower() +
" \"" + x.Path + "\"");
});
pluginLocator.Locate().ToList()
.ForEach(x =>
{
var plugin = new PluginPattern(x);
_plugins.Add(plugin);
_cache.Plugins.Add(
new CachedPlugin(x.GetLanguage(), plugin.Patterns));
});
_tracker.Start(path, getFilter(), handleChanges);
}