void QueueInference()
        {
            var doc = CU as XmlParsedDocument;

            if (defaultSchemaCompletionData != null || doc == null || doc.XDocument == null || inferenceQueued)
            {
                return;
            }
            if (inferredCompletionData == null ||
                (doc.LastWriteTimeUtc - inferredCompletionData.TimeStampUtc).TotalSeconds >= 5 &&
                doc.GetErrorsAsync().Result.Count <= inferredCompletionData.ErrorCount)
            {
                inferenceQueued = true;
                System.Threading.ThreadPool.QueueUserWorkItem(delegate {
                    try {
                        InferredXmlCompletionProvider newData = new InferredXmlCompletionProvider();
                        newData.Populate(doc.XDocument);
                        newData.TimeStampUtc        = DateTime.UtcNow;
                        newData.ErrorCount          = doc.GetErrorsAsync().Result.Count;
                        this.inferenceQueued        = false;
                        this.inferredCompletionData = newData;
                    } catch (Exception ex) {
                        LoggingService.LogInternalError("Unhandled error in XML inference", ex);
                    }
                });
            }
        }
Example #2
0
        void SetDefaultSchema(string extension)
        {
            if (extension == null)
            {
                return;
            }

            defaultSchemaCompletionData = XmlSchemaManager.GetSchemaCompletionData(extension);
            if (defaultSchemaCompletionData != null)
            {
                inferredCompletionData = null;
            }
            else
            {
                QueueInference();
            }
            defaultNamespacePrefix = XmlSchemaManager.GetNamespacePrefix(extension);
        }
        void SetDefaultSchema()
        {
            var filename = document.FileName;

            if (filename == null)
            {
                return;
            }

            defaultSchemaCompletionData = XmlSchemaManager.GetSchemaCompletionDataForFileName(filename);
            if (defaultSchemaCompletionData != null)
            {
                inferredCompletionData = null;
            }
            else
            {
                QueueInference();
            }
            defaultNamespacePrefix = XmlSchemaManager.GetNamespacePrefixForFileName(filename);
        }
        void QueueInference()
        {
            XmlParsedDocument doc = this.CU as XmlParsedDocument;

            if (defaultSchemaCompletionData != null || doc == null || doc.XDocument == null || inferenceQueued)
            {
                return;
            }
            if (inferredCompletionData == null ||
                (doc.LastWriteTimeUtc - inferredCompletionData.TimeStampUtc).TotalSeconds >= 5 &&
                doc.Errors.Count <= inferredCompletionData.ErrorCount)
            {
                inferenceQueued = true;
                System.Threading.ThreadPool.QueueUserWorkItem(delegate {
                    InferredXmlCompletionProvider newData = new InferredXmlCompletionProvider();
                    newData.Populate(doc.XDocument);
                    newData.TimeStampUtc        = DateTime.UtcNow;
                    newData.ErrorCount          = doc.Errors.Count;
                    this.inferenceQueued        = false;
                    this.inferredCompletionData = newData;
                });
            }
        }