public FoundReference(
     string filePath,
     int startLine,
     int startCol,
     ReferenceUsage usage,
     ImmutableArray <ClassifiedText> classifiedSpans,
     TextSpan highlight)
 {
     FilePath        = filePath;
     StartLine       = startLine;
     StartCol        = startCol;
     Usage           = usage;
     ClassifiedSpans = classifiedSpans;
     Highlight       = highlight;
 }
Exemple #2
0
        public async Task <ActionResult <ReferenceUsage> > Post([FromBody] ReferenceUsage value)
        {
            if (value == null)
            {
                return(BadRequest("No data posted"));
            }

            if (_referencesDbContext.ReferenceUsage.Any(
                    x => x.ReferenceId == value.ReferenceId && x.ApplicationId == value.ApplicationId &&
                    x.UserId == value.UserId))
            {
                return(value);
            }

            _referencesDbContext.ReferenceUsage.Add(value);

            await _referencesDbContext.SaveChangesAsync().ConfigureAwait(false);

            return(value);
        }
        bool IsMetadataUsed(string itemName, string metadataName, ReferenceUsage usage)
        {
            // if it's been found in an imported file or an explicit schema, it's valid
            var metaInfo = Document
                           .GetSchemas(skipThisDocumentInferredSchema: true)
                           .GetMetadata(itemName, metadataName, true);

            if (metaInfo != null)
            {
                return(true);
            }

            // if it's used in some other way in the current file, it's valid
            if (Document.InferredSchema.MetadataUsage.TryGetValue((itemName, metadataName), out var u))
            {
                if ((u & usage) != 0)
                {
                    return(true);
                }
            }
            return(false);
        }
        bool IsPropertyUsed(string propertyName, ReferenceUsage usage)
        {
            // if it's been found in an imported file or an explicit schema, it counts as used
            var metaInfo = Document
                           .GetSchemas(skipThisDocumentInferredSchema: true)
                           .GetProperty(propertyName, true);

            if (metaInfo != null)
            {
                return(true);
            }

            // if it's used in some other way in the current file, it's valid
            if (Document.InferredSchema.PropertyUsage.TryGetValue(propertyName, out var u))
            {
                if ((u & usage) != 0)
                {
                    return(true);
                }
            }
            return(false);
        }
        bool IsItemUsed(string itemName, ReferenceUsage usage)
        {
            // if it's been found in an imported file or an explicit schema, it counts as used
            var item = Document
                       .GetSchemas(skipThisDocumentInferredSchema: true)
                       .GetItem(itemName);

            if (item != null)
            {
                return(true);
            }

            // if it's used in some other way in the current file, it's valid
            if (Document.InferredSchema.ItemUsage.TryGetValue(itemName, out var u))
            {
                if ((u & usage) != 0)
                {
                    return(true);
                }
            }
            return(false);
        }