public SyntaxCheckerWorkItem(SledProjectFilesFileType file, SledSyntaxCheckerVerbosity verbosity, object userData, SledUtil.BoolWrapper shouldCancel) { m_file = file; m_verbosity = verbosity; m_userData = userData; m_shouldCancel = shouldCancel; Errors = new List <SledSyntaxCheckerEntry>(); }
private static IEnumerable<SledSyntaxCheckerEntry> CheckString(string value, SledSyntaxCheckerVerbosity verbosity, object userData) { var errors = new List<SledSyntaxCheckerEntry>(); try { using (var syntaxChecker = SledLuaSyntaxCheckerFactory.Create()) { try { var success = syntaxChecker.CheckBuffer(value); if (!success) { var errorString = syntaxChecker.Error; if (!string.IsNullOrEmpty(errorString)) { var plugin = ((SledLuaSyntaxCheckerService)userData).m_luaLanguagePlugin; // Fix up error string var colon = errorString.IndexOf(':'); if (colon != -1) { colon = errorString.IndexOf(':', colon + 1); if (colon != -1) errorString = errorString.Substring(colon + 1).Trim(); } var errorEntry = new SledSyntaxCheckerEntry(plugin, null, 1, errorString); errors.Add(errorEntry); } } } catch (Exception ex) { if (verbosity > SledSyntaxCheckerVerbosity.None) { SledOutDevice.OutLine( SledMessageType.Error, "{0}: Exception syntax checking string \"{1}\": {2}", typeof(SledLuaSyntaxCheckerService), value, ex.Message); } } } } catch (Exception ex) { SledOutDevice.OutLine( SledMessageType.Error, "{0}: Exception creating syntax checker: {1}", typeof(SledLuaSyntaxCheckerService), ex.Message); } return errors; }
private static IEnumerable<SledSyntaxCheckerEntry> CheckFiles(IEnumerable<SledProjectFilesFileType> files, SledSyntaxCheckerVerbosity verbosity, object userData, SledUtil.BoolWrapper shouldCancel) { SledHiPerfTimer timer = null; var enumeratedFiles = new List<SledProjectFilesFileType>(files); var errors = new List<SledSyntaxCheckerEntry>(); var fileCount = enumeratedFiles.Count; try { if (verbosity > SledSyntaxCheckerVerbosity.None) { timer = new SledHiPerfTimer(); timer.Start(); } var allWorkItems = new SyntaxCheckerWorkItem[fileCount]; for (var i = 0; i < fileCount; ++i) allWorkItems[i] = new SyntaxCheckerWorkItem(enumeratedFiles[i], verbosity, userData, shouldCancel); var workerCount = Math.Min(ProducerConsumerQueue.WorkerCount, fileCount); using (var pcQueue = new ProducerConsumerQueue(workerCount, shouldCancel)) { pcQueue.EnqueueWorkItems(allWorkItems); } if (shouldCancel.Value) return EmptyEnumerable<SledSyntaxCheckerEntry>.Instance; // gather all results from all work items foreach (var workItem in allWorkItems) errors.AddRange(workItem.Errors); } catch (Exception ex) { SledOutDevice.OutLine( SledMessageType.Error, "{0}: Exception syntax checking files: {1}", typeof(SledLuaSyntaxCheckerService), ex.Message); } finally { if ((timer != null) && (!shouldCancel.Value)) { SledOutDevice.OutLine( SledMessageType.Info, "[Lua] Syntax checked {0} files in {1} seconds", fileCount, timer.Elapsed); } } return errors; }
public SyntaxCheckerWorkItem(SledProjectFilesFileType file, SledSyntaxCheckerVerbosity verbosity, object userData, SledUtil.BoolWrapper shouldCancel) { m_file = file; m_verbosity = verbosity; m_userData = userData; m_shouldCancel = shouldCancel; Errors = new List<SledSyntaxCheckerEntry>(); }
private static IEnumerable <SledSyntaxCheckerEntry> CheckFiles(IEnumerable <SledProjectFilesFileType> files, SledSyntaxCheckerVerbosity verbosity, object userData, SledUtil.BoolWrapper shouldCancel) { SledHiPerfTimer timer = null; var enumeratedFiles = new List <SledProjectFilesFileType>(files); var errors = new List <SledSyntaxCheckerEntry>(); var fileCount = enumeratedFiles.Count; try { if (verbosity > SledSyntaxCheckerVerbosity.None) { timer = new SledHiPerfTimer(); timer.Start(); } var allWorkItems = new SyntaxCheckerWorkItem[fileCount]; for (var i = 0; i < fileCount; ++i) { allWorkItems[i] = new SyntaxCheckerWorkItem(enumeratedFiles[i], verbosity, userData, shouldCancel); } var workerCount = Math.Min(ProducerConsumerQueue.WorkerCount, fileCount); using (var pcQueue = new ProducerConsumerQueue(workerCount, shouldCancel)) { pcQueue.EnqueueWorkItems(allWorkItems); } if (shouldCancel.Value) { return(EmptyEnumerable <SledSyntaxCheckerEntry> .Instance); } // gather all results from all work items foreach (var workItem in allWorkItems) { errors.AddRange(workItem.Errors); } } catch (Exception ex) { SledOutDevice.OutLine( SledMessageType.Error, "{0}: Exception syntax checking files: {1}", typeof(SledLuaSyntaxCheckerService), ex.Message); } finally { if ((timer != null) && (!shouldCancel.Value)) { SledOutDevice.OutLine( SledMessageType.Info, "[Lua] Syntax checked {0} files in {1} seconds", fileCount, timer.Elapsed); } } return(errors); }
private static IEnumerable <SledSyntaxCheckerEntry> CheckString(string value, SledSyntaxCheckerVerbosity verbosity, object userData) { var errors = new List <SledSyntaxCheckerEntry>(); try { using (var syntaxChecker = SledLuaSyntaxCheckerFactory.Create()) { try { var success = syntaxChecker.CheckBuffer(value); if (!success) { var errorString = syntaxChecker.Error; if (!string.IsNullOrEmpty(errorString)) { var plugin = ((SledLuaSyntaxCheckerService)userData).m_luaLanguagePlugin; // Fix up error string var colon = errorString.IndexOf(':'); if (colon != -1) { colon = errorString.IndexOf(':', colon + 1); if (colon != -1) { errorString = errorString.Substring(colon + 1).Trim(); } } var errorEntry = new SledSyntaxCheckerEntry(plugin, null, 1, errorString); errors.Add(errorEntry); } } } catch (Exception ex) { if (verbosity > SledSyntaxCheckerVerbosity.None) { SledOutDevice.OutLine( SledMessageType.Error, "{0}: Exception syntax checking string \"{1}\": {2}", typeof(SledLuaSyntaxCheckerService), value, ex.Message); } } } } catch (Exception ex) { SledOutDevice.OutLine( SledMessageType.Error, "{0}: Exception creating syntax checker: {1}", typeof(SledLuaSyntaxCheckerService), ex.Message); } return(errors); }