public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { switch (e.Type) { case EventType.FileOpen: if (MessageBar.Locked) { return; } var fileOpen = (TextEvent)e; if (this.settingObject.LintOnOpen) { LintingManager.Cache.RemoveDocument(fileOpen.Value); LintingManager.LintFiles(new[] { fileOpen.Value }); } break; case EventType.FileSave: if (MessageBar.Locked) { return; } var reason = (e as TextDataEvent)?.Data as string; if (reason != "HaxeComplete" && this.settingObject.LintOnSave) { var fileSave = (TextEvent)e; LintingManager.Cache.RemoveDocument(fileSave.Value); LintingManager.LintFiles(new[] { fileSave.Value }); } break; case EventType.Command: var ev = (DataEvent)e; if (ev.Action == ProjectManagerEvents.BuildComplete || ev.Action == ProjectManagerEvents.Project) { LintingManager.Cache.RemoveAll(); LintingManager.UpdateLinterPanel(); if (ev.Action == ProjectManagerEvents.Project) { foreach (var doc in PluginBase.MainForm.Documents) { if (!doc.IsUntitled && doc.SciControl != null) { LintingManager.LintDocument(doc); } } } } break; case EventType.FileModify: LintingManager.UnLintFile(((TextEvent)e).Value); break; } }
public void Process(string[] files) { LintingManager.LintFiles(files); }
public void Process(IEnumerable <string> files) { LintingManager.LintFiles(files.ToArray()); }
public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { switch (e.Type) { case EventType.FileOpen: if (MessageBar.Locked) { return; } var fileOpen = (TextEvent)e; if (this.settingObject.LintOnOpen) { LintingManager.Cache.RemoveDocument(fileOpen.Value); LintingManager.LintFiles(new[] { fileOpen.Value }); } break; case EventType.FileSave: if (MessageBar.Locked) { return; } var reason = (e as TextDataEvent)?.Data as string; if (reason != "HaxeComplete" && this.settingObject.LintOnSave) { var fileSave = (TextEvent)e; LintingManager.Cache.RemoveDocument(fileSave.Value); LintingManager.LintFiles(new[] { fileSave.Value }); } break; case EventType.Command: var ev = (DataEvent)e; if (ev.Action == ProjectManagerEvents.BuildComplete || ev.Action == ProjectManagerEvents.ProjectSetUp) { LintingManager.Cache.RemoveAll(); LintingManager.UpdateLinterPanel(); if (ev.Action == ProjectManagerEvents.ProjectSetUp) { var groupedFiles = new Dictionary <string, List <string> >(); foreach (var doc in PluginBase.MainForm.Documents) /* if (!doc.IsUntitled && doc.SciControl != null) * LintingManager.LintDocument(doc);*/ { ScintillaNet.ScintillaControl sci; if (doc.IsUntitled || (sci = doc.SciControl) == null) { continue; } var files = groupedFiles.GetOrCreate(sci.ConfigurationLanguage); files.Add(sci.FileName); } foreach (var languageFileGroup in groupedFiles) { LintingManager.LintFiles(languageFileGroup.Value, languageFileGroup.Key); } } } break; case EventType.FileModify: LintingManager.UnLintFile(((TextEvent)e).Value); break; } }