public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (!IsBandManifest(context.ContextItem)) yield break; JSONMember member = context.ContextItem as JSONMember; if (member == null || member.UnquotedNameText != "icon") yield break; var icons = GetIcons(member); if (icons.Count == 0) yield break; string folder = Path.GetDirectoryName(member.JSONDocument.DocumentLocation); Telemetry.TrackEvent("Icon completion"); foreach (var icon in icons) { string path = Path.Combine(folder, icon.Value); if (File.Exists(path)) { var image = BitmapFrame.Create(new Uri(path, UriKind.Absolute)); yield return new SimpleCompletionEntry(icon.Key, "\"" + icon.Key + "\"", image, context.Session); } else { yield return new SimpleCompletionEntry(icon.Key, "\"" + icon.Key + "\"", "\"" + icon.Value + "\"", context.Session); } } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath).ToLowerInvariant(); if (string.IsNullOrEmpty(fileName) || !fileName.Equals(Constants.FILENAME, StringComparison.OrdinalIgnoreCase)) yield break; } else { yield break; } JSONMember member = context.ContextItem.Parent?.FindType<JSONMember>(); if (member == null || member.UnquotedNameText != Constants.ELEMENT_NAME) yield break; yield return new SimpleCompletionEntry("AfterBuild", "Fires after the MSBuild process ended.", _glyph, context.Session); yield return new SimpleCompletionEntry("BeforeBuild", "Fires before the MSBuild process ended.", _glyph, context.Session); yield return new SimpleCompletionEntry("Clean", "Fires after the MSBuild 'Clean' process ended.", _glyph, context.Session); yield return new SimpleCompletionEntry("ProjectOpen", "Fires when the project is opened in Visual Studio.", _glyph, context.Session); }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath).ToLowerInvariant(); if (string.IsNullOrEmpty(fileName) || !fileName.Equals(Constants.FILENAME, StringComparison.OrdinalIgnoreCase)) { yield break; } } else { yield break; } JSONMember member = context.ContextItem.FindType <JSONMember>(); while (member != null && member.Parent != null && member.UnquotedNameText != Constants.ELEMENT_NAME) { member = member.Parent.FindType <JSONMember>(); } if (member == null || member.UnquotedNameText != Constants.ELEMENT_NAME) { yield break; } foreach (var task in GetTasks(context.ContextItem.JSONDocument)) { yield return(new SimpleCompletionEntry(task.Item1, task.Item2, StandardGlyphGroup.GlyphGroupEvent, context.Session)); } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"$ref\"" || member.JSONDocument.Children.Count == 0) { yield break; } var visitor = new JSONItemCollector <JSONMember>(false); member.JSONDocument.Children[0].Accept(visitor); var definition = visitor.Items.FirstOrDefault(prop => prop.Name != null && prop.Name.Text == "\"definitions\""); if (definition == null || definition.Children.Count < 3) { yield break; } var block = definition.Children[2] as JSONBlockItem; var visitor2 = new JSONItemCollector <JSONMember>(false); block.Accept(visitor2); foreach (var prop in visitor2.Items) { string text = "#/definitions/" + prop.Name.Text.Trim('"'); yield return(new SimpleCompletionEntry(text, StandardGlyphGroup.GlyphReference, context.Session)); } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null) yield break; var vocabularies = VocabularyFactory.GetVocabularies(member); if (!vocabularies.Any()) yield break; JSONBlockItem block = member.FindType<JSONBlockItem>(); var visitor = new JSONItemCollector<JSONMember>(); block.Accept(visitor); JSONMember ldType = visitor.Items.FirstOrDefault(m => m.Name != null && m.Value != null && m.Name.Text == "\"@type\""); if (ldType == null) yield break; string value = ldType.Value.Text.Trim('"'); foreach (IVocabulary vocab in vocabularies.Where(v => v.Cache.ContainsKey(value))) foreach (Entry entry in vocab.Cache[value]) yield return new JSONCompletionEntry(entry.Name, "\"" + entry.Name + "\"", null, entry.Glyph, "iconAutomationText", true, context.Session as ICompletionSession); }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember req = context.ContextItem.FindType<JSONMember>(); if (req == null || req.Name == null || req.Name.Text != "\"required\"") yield break; var propVisitor = new JSONItemCollector<JSONMember>(); req.Parent.Accept(propVisitor); var props = propVisitor.Items.FirstOrDefault(i => i.Name.Text == "\"properties\""); if (props == null) yield break; var child = props.Children[2] as JSONBlockItem; if (child == null) yield break; var visitor = new JSONItemCollector<JSONMember>(); child.Accept(visitor); foreach (var item in visitor.Items) { yield return new SimpleCompletionEntry(item.Name.Text.Trim('"'), context.Session); } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath).ToLowerInvariant(); if (string.IsNullOrEmpty(fileName) || !fileName.Equals(Constants.FILENAME, StringComparison.OrdinalIgnoreCase)) yield break; } else { yield break; } JSONMember member = context.ContextItem.FindType<JSONMember>(); while (member != null && member.Parent != null && member.UnquotedNameText != Constants.ELEMENT_NAME) { member = member.Parent.FindType<JSONMember>(); } if (member == null || member.UnquotedNameText != Constants.ELEMENT_NAME) yield break; foreach (var task in GetTasks(context.ContextItem)) { yield return new SimpleCompletionEntry(task.Item1, task.Item2, StandardGlyphGroup.GlyphGroupEvent, context.Session); } }
private List <JSONCompletionEntry> GetCompletionList(JSONMember member, JSONCompletionContext context, CompletionSet completionSet, int count) { int start = member.Value.Start; ITrackingSpan trackingSpan = context.Snapshot.CreateTrackingSpan(start + 1 + completionSet.Start, completionSet.Length, SpanTrackingMode.EdgeExclusive); bool isVersionCompletion = (completionSet.CompletionType == CompletionSortOrder.Version); List <JSONCompletionEntry> results = new List <JSONCompletionEntry>(); foreach (CompletionItem item in completionSet.Completions) { string insertionText = item.InsertionText.Replace("\\\\", "\\").Replace("\\", "\\\\"); ImageMoniker moniker = item.DisplayText.EndsWith("/") || item.DisplayText.EndsWith("\\") ? _folderIcon : _libraryIcon; if (isVersionCompletion) { results.Add(new VersionCompletionEntry(item.DisplayText, insertionText, item.Description, moniker, trackingSpan, context.Session, ++count)); } else { results.Add(new SimpleCompletionEntry(item.DisplayText, insertionText, item.Description, moniker, trackingSpan, context.Session, ++count)); } } return(results); }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath).ToLowerInvariant(); if (string.IsNullOrEmpty(fileName) || !fileName.Equals(Constants.FILENAME, StringComparison.OrdinalIgnoreCase)) { yield break; } } else { yield break; } JSONMember member = context.ContextItem.Parent?.FindType <JSONMember>(); if (member == null || member.UnquotedNameText != Constants.ELEMENT_NAME) { yield break; } yield return(new SimpleCompletionEntry("AfterBuild", "Fires after the MSBuild process ended.", _glyph, context.Session)); yield return(new SimpleCompletionEntry("BeforeBuild", "Fires before the MSBuild process ended.", _glyph, context.Session)); yield return(new SimpleCompletionEntry("Clean", "Fires after the MSBuild 'Clean' process ended.", _glyph, context.Session)); yield return(new SimpleCompletionEntry("ProjectOpen", "Fires when the project is opened in Visual Studio.", _glyph, context.Session)); }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (!Helper.IsSupportedFile(SupportedFileName)) return new List<JSONCompletionEntry>(); return GetEntries(context); }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"$ref\"" || member.JSONDocument.Children.Count == 0) yield break; var visitor = new JSONItemCollector<JSONMember>(false); member.JSONDocument.Children[0].Accept(visitor); var definition = visitor.Items.FirstOrDefault(prop => prop.Name != null && prop.Name.Text == "\"definitions\""); if (definition == null || definition.Children.Count < 3) yield break; var block = definition.Children[2] as JSONBlockItem; var visitor2 = new JSONItemCollector<JSONMember>(false); block.Accept(visitor2); foreach (var prop in visitor2.Items) { string text = "#/definitions/" + prop.Name.Text.Trim('"'); yield return new SimpleCompletionEntry(text, StandardGlyphGroup.GlyphReference, context.Session); } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath).ToLowerInvariant(); if (string.IsNullOrEmpty(fileName) || !_files.Contains(fileName)) { yield break; } } else { yield break; } JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.UnquotedNameText != "license") { yield break; } foreach (string prop in _props) { yield return(new SimpleCompletionEntry(prop, context.Session)); } }
protected override IEnumerable <JSONCompletionEntry> GetEntries(JSONCompletionContext context) { var member = context.ContextItem as JSONMember; if (member == null || member.UnquotedNameText != "version") { yield break; } string name = (member.Parent?.Parent as JSONMember)?.UnquotedNameText; if (string.IsNullOrEmpty(name)) { yield break; } var versions = VSPackage.Manager.Provider.GetVersionsAsync(name).Result; if (versions != null) { int index = 0; foreach (var version in versions) { yield return(new SimpleCompletionEntry(version, KnownMonikers.Version, context.Session, ++index)); } } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (!Helper.IsSupportedFile(SupportedFileName)) { return(new List <JSONCompletionEntry>()); } return(GetEntries(context)); }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (_dte == null) _dte = serviceProvider.GetService(typeof(DTE)) as DTE2; if (!Helper.IsSupportedFile(_dte, SupportedFileName)) return new List<JSONCompletionEntry>(); return GetEntries(context); }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath).ToLowerInvariant(); if (string.IsNullOrEmpty(fileName) || (Path.GetExtension(fileName) != Constants.EXTENSION && fileName != Constants.SUGGESTIONS_FILENAME)) { yield break; } } else { yield break; } JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null) { yield break; } string property = member.UnquotedNameText.ToLowerInvariant(); if (!_supported.Contains(property)) { yield break; } foreach (var extension in ExtensionInstalledChecker.Instance.GetInstalledExtensions()) { ImageSource glyph = GetExtensionIcon(extension); if (property == "productid") { yield return(new SimpleCompletionEntry(extension.Header.Name, extension.Header.Identifier, glyph, context.Session)); } else if (property == "name") { yield return(new SimpleCompletionEntry(extension.Header.Name, Normalize(extension.Header.Name), glyph, context.Session)); } else if (property == "description") { yield return(new SimpleCompletionEntry(extension.Header.Name, Normalize(extension.Header.Description), glyph, context.Session)); } else if (property == "link") { string url = extension.Header.MoreInfoUrl?.ToString() ?? extension.Header.GettingStartedGuide?.ToString() ?? "<no link found>"; yield return(new SimpleCompletionEntry(extension.Header.Name, url, glyph, context.Session)); } } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"$schema\"") yield break; foreach (var schema in VsJSONSchemaStore.SchemaStore.SchemaCache.Entries) { yield return new SimpleCompletionEntry(schema.OriginalPath, StandardGlyphGroup.GlyphReference, context.Session); } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || !member.Name.Text.Trim('"').StartsWith("$")) yield break; foreach (string prop in _props.Keys) { yield return new SimpleCompletionEntry(prop, _props[prop], StandardGlyphGroup.GlyphReference, context.Session); } }
private FrameworkElement GetPresenter(JSONCompletionContext context) { var presenter = context?.Session?.Presenter as FrameworkElement; presenter?.SetBinding(ImageThemingUtilities.ImageBackgroundColorProperty, new Binding("Background") { Source = presenter, Converter = new BrushToColorConverter() }); return(presenter); }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"$schema\"") yield break; string value = "http://json-schema.org/draft-04/schema#"; yield return new JSONCompletionEntry(value, "\"" + value + "\"", "JSON hyper-schema draft v4", GlyphService.GetGlyph(StandardGlyphGroup.GlyphGroupVariable, StandardGlyphItem.GlyphItemPublic), "iconAutomationText", true, context.Session as ICompletionSession); }
protected JSONMember GetDependency(JSONCompletionContext context) { JSONMember dependency = context.ContextItem.FindType<JSONMember>(); JSONMember parent = dependency.Parent.FindType<JSONMember>(); if (parent == null || !parent.UnquotedNameText.EndsWith("dependencies", StringComparison.OrdinalIgnoreCase)) return null; if (dependency.UnquotedNameText.Length == 0) return null; return dependency; }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.UnquotedNameText != "format") { yield break; } foreach (string prop in _props) { yield return(new SimpleCompletionEntry(prop, "\"" + prop + "\"", context.Session)); } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || !member.Name.Text.Trim('"').StartsWith("$")) { yield break; } foreach (string prop in _props.Keys) { yield return(new SimpleCompletionEntry(prop, _props[prop], StandardGlyphGroup.GlyphReference, context.Session)); } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (_dte == null) { _dte = serviceProvider.GetService(typeof(DTE)) as DTE2; } if (!Helper.IsSupportedFile(_dte, SupportedFileName)) { return(new List <JSONCompletionEntry>()); } return(GetEntries(context)); }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"$schema\"") { yield break; } foreach (var schema in VsJSONSchemaStore.SchemaStore.SchemaCache.Entries) { yield return(new SimpleCompletionEntry(schema.OriginalPath, StandardGlyphGroup.GlyphReference, context.Session)); } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (DocumentService.TryGetTextDocument(context.Snapshot.TextBuffer, out ITextDocument document)) { ConfigFilePath = document.FilePath; string fileName = Path.GetFileName(document.FilePath); if (fileName.Equals(Constants.ConfigFileName, StringComparison.OrdinalIgnoreCase)) { return(GetEntries(context)); } } return(_empty); }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"$schema\"") { yield break; } string value = "http://json-schema.org/draft-04/schema#"; yield return(new JSONCompletionEntry(value, "\"" + value + "\"", "JSON hyper-schema draft v4", GlyphService.GetGlyph(StandardGlyphGroup.GlyphGroupVariable, StandardGlyphItem.GlyphItemPublic), "iconAutomationText", true, context.Session as ICompletionSession)); }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath).ToLowerInvariant(); if (string.IsNullOrEmpty(fileName) || (Path.GetExtension(fileName) != Constants.EXTENSION && fileName != Constants.SUGGESTIONS_FILENAME)) yield break; } else { yield break; } JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null) yield break; string property = member.UnquotedNameText.ToLowerInvariant(); if (!_supported.Contains(property)) yield break; foreach (var extension in ExtensionInstalledChecker.Instance.GetInstalledExtensions()) { ImageSource glyph = GetExtensionIcon(extension); if (property == "productid") { yield return new SimpleCompletionEntry(extension.Header.Name, extension.Header.Identifier, glyph, context.Session); } else if (property == "name") { yield return new SimpleCompletionEntry(extension.Header.Name, Normalize(extension.Header.Name), glyph, context.Session); } else if (property == "description") { yield return new SimpleCompletionEntry(extension.Header.Name, Normalize(extension.Header.Description), glyph, context.Session); } else if (property == "link") { string url = extension.Header.MoreInfoUrl?.ToString() ?? extension.Header.GettingStartedGuide?.ToString() ?? "<no link found>"; yield return new SimpleCompletionEntry(extension.Header.Name, url, glyph, context.Session); } } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"@context\"") yield break; var vocabularies = VocabularyFactory.GetAllVocabularies(); foreach (IVocabulary vocabulary in vocabularies) { yield return new JSONCompletionEntry(vocabulary.DisplayName, "\"" + vocabulary.DisplayName + "\"", null, GlyphService.GetGlyph(StandardGlyphGroup.GlyphGroupVariable, StandardGlyphItem.GlyphItemPublic), "iconAutomationText", true, context.Session as ICompletionSession); } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || !member.Name.Text.Trim('"').StartsWith("$")) { yield break; } foreach (string prop in _props.Keys) { yield return(new JSONCompletionEntry(prop, "\"" + prop + "\"", _props[prop], GlyphService.GetGlyph(StandardGlyphGroup.GlyphReference, StandardGlyphItem.GlyphItemPublic), "iconAutomationText", true, context.Session as ICompletionSession)); } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"$schema\"") { yield break; } foreach (var schema in VsJSONSchemaStore.SchemaStore.SchemaCache.Entries) { yield return(new JSONCompletionEntry(schema.OriginalPath, "\"" + schema.OriginalPath + "\"", null, GlyphService.GetGlyph(StandardGlyphGroup.GlyphReference, StandardGlyphItem.GlyphItemPublic), "iconAutomationText", true, context.Session as ICompletionSession)); } }
protected JSONMember GetDependency(JSONCompletionContext context) { JSONMember dependency = context.ContextItem.FindType <JSONMember>(); JSONMember parent = dependency.Parent.FindType <JSONMember>(); if (parent == null || !parent.UnquotedNameText.EndsWith("dependencies", StringComparison.OrdinalIgnoreCase)) { return(null); } if (dependency.UnquotedNameText.Length == 0) { return(null); } return(dependency); }
private static IEnumerable <string> GetUsedFiles(JSONCompletionContext context) { JSONArray array = context.ContextItem.FindType <JSONArray>(); if (array == null) { yield break; } foreach (JSONArrayElement arrayElement in array.Elements) { if (arrayElement.Value is JSONTokenItem token && token.Text != context.ContextItem.Text) { yield return(token.CanonicalizedText); } } }
protected override IEnumerable <JSONCompletionEntry> GetEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem.FindType <JSONMember>(); if (member == null || (member.UnquotedNameText != ManifestConstants.Destination && member.UnquotedNameText != ManifestConstants.DefaultDestination)) { yield break; } JSONMember parent = member.FindType <JSONObject>()?.FindType <JSONMember>(); if (member.UnquotedNameText == ManifestConstants.Destination && (parent == null || parent.UnquotedNameText != ManifestConstants.Libraries)) { yield break; } if (member.UnquotedNameText == ManifestConstants.DefaultDestination && parent != null) { yield break; } int caretPosition = context.Session.TextView.Caret.Position.BufferPosition - member.Value.Start - 1; if (caretPosition > member.UnquotedValueText.Length) { yield break; } var dependencies = Dependencies.FromConfigFile(ConfigFilePath); string cwd = dependencies?.GetHostInteractions().WorkingDirectory; if (string.IsNullOrEmpty(cwd)) { yield break; } IEnumerable <Tuple <string, string> > completions = GetCompletions(cwd, member.UnquotedValueText, caretPosition, out Span span); int start = member.Value.Start; ITrackingSpan trackingSpan = context.Snapshot.CreateTrackingSpan(start + 1 + span.Start, span.Length, SpanTrackingMode.EdgeInclusive); foreach (Tuple <string, string> item in completions) { yield return(new SimpleCompletionEntry(item.Item1, item.Item2, KnownMonikers.FolderClosed, trackingSpan, context.Session)); } }
protected override IEnumerable<JSONCompletionEntry> GetEntries(JSONCompletionContext context) { if (_version != null) { yield return new BowerVersionCompletionEntry(_version, Resources.text.CompletionVersionLatest, context.Session); yield return new BowerVersionCompletionEntry("~" + _version, Resources.text.CompletionVersionMinor, context.Session); yield return new BowerVersionCompletionEntry("^" + _version, Resources.text.CompletionVersionMajor, context.Session); _version = null; } else { JSONMember dependency = GetDependency(context); if (dependency != null) ExecuteRemoteSearch(dependency); } }
protected override IEnumerable<JSONCompletionEntry> GetEntries(JSONCompletionContext context) { if (_version != null) { yield return new NpmVersionCompletionEntry(_version, "The currently latest version of the package", context.Session, _dte); yield return new NpmVersionCompletionEntry("~" + _version, "Matches the most recent minor version (1.2.x)", context.Session, _dte); yield return new NpmVersionCompletionEntry("^" + _version, "Matches the most recent major version (1.x.x)", context.Session, _dte); _version = null; } else { JSONMember dependency = GetDependency(context); if (dependency != null) ExecuteRemoteSearch(dependency); } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"@type\"") yield break; foreach (IVocabulary vocabulary in VocabularyFactory.GetVocabularies(member)) { foreach (string key in vocabulary.Cache.Keys) { yield return new JSONCompletionEntry(key, "\"" + key + "\"", null, GlyphService.GetGlyph(StandardGlyphGroup.GlyphGroupVariable, StandardGlyphItem.GlyphItemPublic), "iconAutomationText", true, context.Session as ICompletionSession); } } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"@context\"") { yield break; } var vocabularies = VocabularyFactory.GetAllVocabularies(); foreach (IVocabulary vocabulary in vocabularies) { yield return(new JSONCompletionEntry(vocabulary.DisplayName, "\"" + vocabulary.DisplayName + "\"", null, GlyphService.GetGlyph(StandardGlyphGroup.GlyphGroupVariable, StandardGlyphItem.GlyphItemPublic), "iconAutomationText", true, context.Session as ICompletionSession)); } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (!VSPackage.Manager.Provider.IsInitialized) return _empty; ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath); if (fileName.Equals(VSPackage.ManifestFileName, StringComparison.OrdinalIgnoreCase)) { return GetEntries(context); } } return _empty; }
protected override IEnumerable <JSONCompletionEntry> GetEntries(JSONCompletionContext context) { string parent = (context.ContextItem.Parent?.Parent as JSONMember)?.UnquotedNameText; if (parent != "packages") { yield break; } var names = VSPackage.Manager.Provider.GetPackageNamesAsync().Result; if (names != null) { foreach (var name in names) { yield return(new SimpleCompletionEntry(name, KnownMonikers.Package, context.Session)); } } }
protected override IEnumerable<JSONCompletionEntry> GetEntries(JSONCompletionContext context) { if (BowerNameCompletionEntry._searchResults != null) { foreach (string value in BowerNameCompletionEntry._searchResults) { yield return new BowerNameCompletionEntry(value, context.Session, null); } BowerNameCompletionEntry._searchResults = null; } else { JSONMember dependency = GetDependency(context); if (dependency != null) yield return new BowerNameCompletionEntry(Resources.text.CompletionSearch, context.Session, dependency.JSONDocument); } }
protected override IEnumerable<JSONCompletionEntry> GetEntries(JSONCompletionContext context) { if (NpmNameCompletionEntry._searchResults != null) { foreach (string value in NpmNameCompletionEntry._searchResults) { yield return new NpmNameCompletionEntry(value, context.Session, _dte, null); } NpmNameCompletionEntry._searchResults = null; } else { JSONMember dependency = GetDependency(context); if (dependency != null) yield return new NpmNameCompletionEntry("Search NPM...", context.Session, _dte, dependency.JSONDocument); } }
protected override IEnumerable<JSONCompletionEntry> GetEntries(JSONCompletionContext context) { string parent = (context.ContextItem.Parent?.Parent as JSONMember)?.UnquotedNameText; if (parent != "packages") yield break; var names = VSPackage.Manager.Provider.GetPackageNamesAsync().Result; if (names != null) { Telemetry.TrackEvent("Completion for name"); foreach (var name in names) { yield return new SimpleCompletionEntry(name, KnownMonikers.Package, context.Session); } } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.Name.Text != "\"@type\"") { yield break; } foreach (IVocabulary vocabulary in VocabularyFactory.GetVocabularies(member)) { foreach (string key in vocabulary.Cache.Keys) { yield return(new JSONCompletionEntry(key, "\"" + key + "\"", null, GlyphService.GetGlyph(StandardGlyphGroup.GlyphGroupVariable, StandardGlyphItem.GlyphItemPublic), "iconAutomationText", true, context.Session as ICompletionSession)); } } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (!VSPackage.Manager.Provider.IsInitialized || !context.ContextItem.JSONDocument.HasSchema(_reportCache)) { return(_empty); } ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath); if (fileName.Equals(VSPackage.ManifestFileName, StringComparison.OrdinalIgnoreCase)) { return(GetEntries(context)); } } return(_empty); }
protected override IEnumerable <JSONCompletionEntry> GetEntries(JSONCompletionContext context) { if (BowerNameCompletionEntry._searchResults != null) { foreach (string value in BowerNameCompletionEntry._searchResults) { yield return(new BowerNameCompletionEntry(value, context.Session, null)); } BowerNameCompletionEntry._searchResults = null; } else { JSONMember dependency = GetDependency(context); if (dependency != null) { yield return(new BowerNameCompletionEntry(Resources.text.CompletionSearch, context.Session, dependency.JSONDocument)); } } }
protected override IEnumerable <JSONCompletionEntry> GetEntries(JSONCompletionContext context) { if (NpmNameCompletionEntry._searchResults != null) { foreach (string value in NpmNameCompletionEntry._searchResults) { yield return(new NpmNameCompletionEntry(value, context.Session, _dte, null)); } NpmNameCompletionEntry._searchResults = null; } else { JSONMember dependency = GetDependency(context); if (dependency != null) { yield return(new NpmNameCompletionEntry("Search NPM...", context.Session, _dte, dependency.JSONDocument)); } } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null) { yield break; } var vocabularies = VocabularyFactory.GetVocabularies(member); if (!vocabularies.Any()) { yield break; } JSONBlockItem block = member.FindType <JSONBlockItem>(); var visitor = new JSONItemCollector <JSONMember>(); block.Accept(visitor); JSONMember ldType = visitor.Items.FirstOrDefault(m => m.Name != null && m.Value != null && m.Name.Text == "\"@type\""); if (ldType == null) { yield break; } string value = ldType.Value.Text.Trim('"'); foreach (IVocabulary vocab in vocabularies.Where(v => v.Cache.ContainsKey(value))) { foreach (Entry entry in vocab.Cache[value]) { yield return(new JSONCompletionEntry(entry.Name, "\"" + entry.Name + "\"", null, entry.Glyph, "iconAutomationText", true, context.Session as ICompletionSession)); } } }
public IEnumerable <JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { if (!IsBandManifest(context.ContextItem)) { yield break; } JSONMember member = context.ContextItem as JSONMember; if (member == null || member.UnquotedNameText != "icon") { yield break; } var icons = GetIcons(member); if (icons.Count == 0) { yield break; } string folder = Path.GetDirectoryName(member.JSONDocument.DocumentLocation); Telemetry.TrackEvent("Icon completion"); foreach (var icon in icons) { string path = Path.Combine(folder, icon.Value); if (File.Exists(path)) { var image = BitmapFrame.Create(new Uri(path, UriKind.Absolute)); yield return(new SimpleCompletionEntry(icon.Key, "\"" + icon.Key + "\"", image, context.Session)); } else { yield return(new SimpleCompletionEntry(icon.Key, "\"" + icon.Key + "\"", "\"" + icon.Value + "\"", context.Session)); } } }
protected override IEnumerable <JSONCompletionEntry> GetEntries(JSONCompletionContext context) { if (_version != null) { yield return(new NpmVersionCompletionEntry(_version, Resources.text.CompletionVersionLatest, context.Session)); yield return(new NpmVersionCompletionEntry("~" + _version, Resources.text.CompletionVersionMinor, context.Session)); yield return(new NpmVersionCompletionEntry("^" + _version, Resources.text.CompletionVersionMajor, context.Session)); _version = null; } else { JSONMember dependency = GetDependency(context); if (dependency != null) { ExecuteRemoteSearch(dependency); } } }
protected void UpdateListEntriesSync(JSONCompletionContext context, IEnumerable <JSONCompletionEntry> allEntries) { if (context.Session.IsDismissed) { return; } foreach (CompletionSet curCompletionSet in (context.Session as ICompletionSession)?.CompletionSets) { if (curCompletionSet is WebCompletionSet webCompletionSet) { WebEditor.DispatchOnUIThread(() => { // only delete our completion entries webCompletionSet.UpdateCompletions(s => s is SimpleCompletionEntry, allEntries); }); // The UpdateCompletions call above may modify the collection we're enumerating. That's ok, as we're done anyways. break; } } }
protected override IEnumerable<JSONCompletionEntry> GetEntries(JSONCompletionContext context) { var member = context.ContextItem as JSONMember; if (member == null || member.UnquotedNameText != "version") yield break; string name = (member.Parent?.Parent as JSONMember)?.UnquotedNameText; if (string.IsNullOrEmpty(name)) yield break; var versions = VSPackage.Manager.Provider.GetVersionsAsync(name).Result; if (versions != null) { Telemetry.TrackEvent("Completion for version"); foreach (var version in versions.Reverse()) { yield return new SimpleCompletionEntry(version, KnownMonikers.Version, context.Session); } } }
public IEnumerable<JSONCompletionEntry> GetListEntries(JSONCompletionContext context) { ITextDocument document; if (TextDocumentFactoryService.TryGetTextDocument(context.Snapshot.TextBuffer, out document)) { string fileName = Path.GetFileName(document.FilePath).ToLowerInvariant(); if (string.IsNullOrEmpty(fileName) || !_files.Contains(fileName)) yield break; } else { yield break; } JSONMember member = context.ContextItem as JSONMember; if (member == null || member.Name == null || member.UnquotedNameText != "license") yield break; foreach (string prop in _props) { yield return new SimpleCompletionEntry(prop, context.Session); } }
protected override IEnumerable<JSONCompletionEntry> GetEntries(JSONCompletionContext context) { var member = context.ContextItem.FindType<JSONMember>(); var list = new List<JSONCompletionEntry>(); if (member == null || member.UnquotedNameText != "files") return list; var parent = member.Parent as JSONObject; var name = parent?.FindType<JSONMember>()?.UnquotedNameText; if (string.IsNullOrEmpty(name)) return list; var children = parent.BlockItemChildren?.OfType<JSONMember>(); var version = children?.SingleOrDefault(c => c.UnquotedNameText == "version"); if (version == null) return list; var package = VSPackage.Manager.Provider.GetInstallablePackageAsync(name, version.UnquotedValueText).Result; if (package == null) return list; Telemetry.TrackEvent("Completion for files"); JSONArray array = context.ContextItem.FindType<JSONArray>(); if (array == null) return list; HashSet<string> usedFiles = new HashSet<string>(StringComparer.OrdinalIgnoreCase); foreach (JSONArrayElement arrayElement in array.Elements) { JSONTokenItem token = arrayElement.Value as JSONTokenItem; if (token != null) { usedFiles.Add(token.CanonicalizedText); } } FrameworkElement o = context.Session.Presenter as FrameworkElement; if (o != null) { o.SetBinding(ImageThemingUtilities.ImageBackgroundColorProperty, new Binding("Background") { Source = o, Converter = new BrushToColorConverter() }); } foreach (var file in package.AllFiles) { if (!usedFiles.Contains(file)) { bool isThemeIcon; ImageSource glyph = WpfUtil.GetIconForFile(o, file, out isThemeIcon); list.Add(new SimpleCompletionEntry(file, glyph, context.Session)); } } if (o != null) { BindingOperations.ClearBinding(o, ImageThemingUtilities.ImageBackgroundColorProperty); } return list; }
protected abstract IEnumerable<JSONCompletionEntry> GetEntries(JSONCompletionContext context);