public static IJSONSchemaPropertyNameCompletionInfo GetInfo(IJSONSchema schema, JSONMember member) { var adapter = (IJSONProperty)JSONParseItemAdapter.Create(member, schema); var owner = (JSONObjectAdapter)adapter.Parent; var info = owner.GetPropertyNamesCompletionInfo().FirstOrDefault(x => x.DisplayText == adapter.Name.Trim('"')); return info; }
public IJSONSchemaPropertyNameCompletionInfo Foo(IJSONSchema schema, JSONMember member) { var adapter = (IJSONProperty)JSONParseItemAdapter.Create(member, schema); var owner = (JSONObjectAdapter)adapter.Parent; var info = owner.GetPropertyNamesCompletionInfo().FirstOrDefault(x => x.DisplayText == adapter.Name.Trim('"')); return(info); }
public void AugmentQuickInfoSession(IQuickInfoSession session, IList <object> qiContent, out ITrackingSpan applicableToSpan) { applicableToSpan = null; if (session == null || qiContent == null || qiContent.Count > 0) { return; } // Map the trigger point down to our buffer. SnapshotPoint?point = session.GetTriggerPoint(_buffer.CurrentSnapshot); if (!point.HasValue) { return; } var doc = JSONEditorDocument.FromTextBuffer(_buffer); JSONParseItem item = doc.JSONDocument.ItemBeforePosition(point.Value.Position); if (item == null || !item.IsValid) { return; } JSONMember member = item.FindType <JSONMember>(); if (member == null || member.Name == null) { return; } IJSONSchema schema = _schemaResolver.DetermineSchemaForTextBuffer(_buffer); if (schema != null) { IJSONSchemaPropertyNameCompletionInfo info = Foo(schema, member); if (info != null && !string.IsNullOrEmpty(info.PropertyDocumentation)) { applicableToSpan = _buffer.CurrentSnapshot.CreateTrackingSpan(item.Start, item.Length, SpanTrackingMode.EdgeNegative); qiContent.Add(info.DisplayText + Environment.NewLine + info.PropertyDocumentation); } } }