public JSONItemValidationResult ValidateItem(JSONParseItem item, IJSONValidationContext context) { JSONMember member = item as JSONMember; JSONMember icons = item?.Parent?.FindType <JSONMember>(); if (icons != null && icons.UnquotedNameText == "icons") { string folder = Path.GetDirectoryName(item.JSONDocument.DocumentLocation); string file = Path.Combine(folder, member.UnquotedValueText); if (!File.Exists(file)) { JsonErrorTag error = new JsonErrorTag { Flags = JSONErrorFlags.ErrorListError | JSONErrorFlags.UnderlineRed, Item = member.Value, Start = member.Value.Start, AfterEnd = member.Value.AfterEnd, Length = member.Value.Length, Text = $"The file \"{member.UnquotedValueText}\" does not exist" }; Telemetry.TrackEvent("Icon file missing"); context.AddError(error); } } return(JSONItemValidationResult.Continue); }
public JSONItemValidationResult ValidateItem(JSONParseItem item, IJSONValidationContext context) { JSONMember member = item as JSONMember; if (member != null && member.UnquotedNameText == "icon") { var icons = IconCompletionProvider.GetIcons(member); if (icons != null && !icons.ContainsKey(member.UnquotedValueText)) { JsonErrorTag error = new JsonErrorTag { Flags = JSONErrorFlags.ErrorListError | JSONErrorFlags.UnderlineRed, Item = member.Value, Start = member.Value.Start, AfterEnd = member.Value.AfterEnd, Length = member.Value.Length, Text = $"The icon \"{member.UnquotedValueText}\" has not been declared" }; Telemetry.TrackEvent("Icon no declared"); context.AddError(error); } } return(JSONItemValidationResult.Continue); }
public virtual IEnumerable <ISmartTagAction> GetSmartTagActions(JSONParseItem item, int caretPosition, ITrackingSpan itemTrackingSpan, ITextView view) { string fileName = itemTrackingSpan.TextBuffer.GetFileName(); if (string.IsNullOrEmpty(fileName) || Path.GetFileName(fileName) != SupportedFileName) { return(Enumerable.Empty <ISmartTagAction>()); } JSONMember member = (JSONMember)item; if (!member.Name.ContainsRange(caretPosition, 1)) { return(Enumerable.Empty <ISmartTagAction>()); } JSONMember parent = member.Parent.FindType <JSONMember>(); if (parent == null || !parent.UnquotedNameText.EndsWith("dependencies", StringComparison.OrdinalIgnoreCase)) { return(Enumerable.Empty <ISmartTagAction>()); } return(GetSmartTagActions(member, itemTrackingSpan.TextBuffer)); }
public override void Invoke(CancellationToken cancellationToken) { if (_disabled) { return; } try { var dependencies = Dependencies.FromConfigFile(_provider.ConfigFilePath); IProvider provider = dependencies.GetProvider(_provider.InstallationState.ProviderId); ILibraryCatalog catalog = provider?.GetCatalog(); if (catalog == null) { return; } JSONMember member = _provider.LibraryObject.Children.OfType <JSONMember>().FirstOrDefault(m => m.UnquotedNameText == "id"); if (member != null) { using (ITextEdit edit = TextBuffer.CreateEdit()) { edit.Replace(new Span(member.Value.Start, member.Value.Length), "\"" + _updatedLibraryId + "\""); edit.Apply(); } } } catch (Exception ex) { Logger.LogEvent(ex.ToString(), LogLevel.Error); } }
private async void RetriggerAsync(bool force) { _lastTyped = DateTime.Now; int delay = force ? 50 : _delay; await System.Threading.Tasks.Task.Delay(delay); // Prevents retriggering from happening while typing fast if (_lastTyped.AddMilliseconds(delay) > DateTime.Now) { return; } var doc = JSONEditorDocument.FromTextView(_textView); JSONParseItem parseItem = doc?.JSONDocument.ItemBeforePosition(_textView.Caret.Position.BufferPosition); if (parseItem == null) { return; } JSONMember member = parseItem.FindType <JSONMember>(); if (!member.UnquotedNameText.Equals("id") && !member.UnquotedNameText.Equals("path") && member.UnquotedValueText?.Length <= 1) { return; } JSONObject parent = parseItem.FindType <JSONObject>(); if (JsonHelpers.TryGetInstallationState(parent, out ILibraryInstallationState state)) { VsHelpers.DTE.ExecuteCommand("Edit.ListMembers"); } }
public override IEnumerable<ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer) { string directory = Path.GetDirectoryName(buffer.GetFileName()); if (item.Value != null && item.Value.Text.Trim('"').Length > 0) yield return new UpdatePackageAction(item.UnquotedNameText, directory); }
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 bool AppliesToContext(JSONMember contextNode) { if (contextNode == null || contextNode.Value == null) return false; return contextNode.Value.Text.Contains("schema.org"); }
private void Execute(JSONMember dependency) { string package = dependency.Name.Text.Trim('"'); ProcessStartInfo start = new ProcessStartInfo("cmd", "/c bower info " + package) { UseShellExecute = false, CreateNoWindow = true, ErrorDialog = false, RedirectStandardOutput = true, RedirectStandardError = true, StandardOutputEncoding = Encoding.UTF8, StandardErrorEncoding = Encoding.UTF8, }; using (Process p = new Process()) { p.StartInfo = start; p.EnableRaisingEvents = true; p.OutputDataReceived += OutputDataReceived; p.ErrorDataReceived += ErrorDataReceived; p.Exited += Exited; p.Start(); p.BeginOutputReadLine(); p.BeginErrorReadLine(); p.WaitForExit(); } }
public JSONItemValidationResult ValidateItem(JSONParseItem item, IJSONValidationContext context) { JSONMember member = item as JSONMember; if (member != null && member.Name != null && member.Name.Text == "\"$ref\"") { var parent = member.FindType <JSONBlockItem>(); // Only show error when $ref is not the only property in the object if (parent == null || parent.BlockItemChildren.Count() == 1) { return(JSONItemValidationResult.Continue); } JsonErrorTag error = new JsonErrorTag { Flags = JSONErrorFlags.UnderlineBlue | JSONErrorFlags.ErrorListMessage, Item = member.Name, Start = member.Name.Start, AfterEnd = member.Name.AfterEnd, Length = member.Name.Length, Text = "When $ref is present, all other attributes are ignored" }; context.AddError(error); } return(JSONItemValidationResult.Continue); }
public UninstallPackageAction(JSONMember item, string directory, ITextBuffer buffer) { _item = item; _directory = directory; _buffer = buffer; Icon = Globals.UninstallIcon; }
private void Execute(JSONMember dependency) { string package = dependency.Name.Text.Trim('"'); ProcessStartInfo start = new ProcessStartInfo("cmd", "/c bower info " + package) { UseShellExecute = false, CreateNoWindow = true, ErrorDialog = false, RedirectStandardOutput = true, RedirectStandardError = true, StandardOutputEncoding = Encoding.UTF8, StandardErrorEncoding = Encoding.UTF8, }; using (Process p = new Process()) { p.StartInfo = start; p.EnableRaisingEvents = true; p.OutputDataReceived += OutputDataReceived; p.ErrorDataReceived += ErrorDataReceived; p.Exited += Exited; p.Start(); p.BeginOutputReadLine(); p.BeginErrorReadLine(); p.WaitForExit(); } }
public UninstallPackageAction(JSONMember item, string directory, ITextBuffer buffer) { _item = item; _directory = directory; _buffer = buffer; Icon = Resources.UninstallIcon; }
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)); }
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 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; }
private void ExecuteRemoteSearch(JSONMember dependency) { if (_isProcessing) { return; } ThreadPool.QueueUserWorkItem(o => { _isProcessing = true; try { Helper.DTE.StatusBar.Text = Resources.text.CompletionRetrievingVersion; Helper.DTE.StatusBar.Animate(true, _animation); Execute(dependency); } catch { Helper.DTE.StatusBar.Clear(); } Helper.DTE.StatusBar.Animate(false, _animation); _isProcessing = false; }); }
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)); } }
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 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 override IEnumerable<ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer) { string directory = Path.GetDirectoryName(buffer.GetFileName()); string node_module = Path.Combine(directory, "node_modules", item.UnquotedNameText); if (item.Value != null && item.Value.Text.Trim('"').Length > 0 && Directory.Exists(node_module)) yield return new UpdatePackageAction(item.UnquotedNameText, directory); }
public void AugmentQuickInfoSession(IQuickInfoSession session, IList <object> qiContent, out ITrackingSpan applicableToSpan) { applicableToSpan = null; if (session == null || qiContent == null) { return; } // Map the trigger point down to our buffer. SnapshotPoint?point = session.GetTriggerPoint(_buffer.CurrentSnapshot); if (!point.HasValue) { return; } JSONEditorDocument doc = JSONEditorDocument.FromTextBuffer(_buffer); JSONParseItem item = doc.JSONDocument.ItemBeforePosition(point.Value.Position); if (item == null || !item.IsValid) { return; } JSONMember dependency = item.FindType <JSONMember>(); if (dependency == null) { return; } var parent = dependency.Parent.FindType <JSONMember>(); if (parent == null || !parent.UnquotedNameText.EndsWith("dependencies", StringComparison.OrdinalIgnoreCase)) { return; } applicableToSpan = _buffer.CurrentSnapshot.CreateTrackingSpan(item.Start, item.Length, SpanTrackingMode.EdgeNegative); if (dependency.Value == item) { string version = item.Text.Trim('"', '~', '^'); qiContent.Add(" " + version + " " + Resource.CompletionVersionLatest + Environment.NewLine + "~" + version + " " + Resource.CompletionVersionMinor + Environment.NewLine + "^" + version + " " + Resource.CompletionVersionMajor); } else { UIElement element = CreateTooltip(dependency.UnquotedNameText, item); if (element != null) { qiContent.Add(element); } } }
private async void RetriggerAsync(bool force) { _lastTyped = DateTime.Now; int delay = force ? 50 : _delay; // Don't leave "stale" completion session up while the user is typing, or else we could // get completion from a stale session. ICompletionSession completionSession = _broker.GetSessions(_textView).FirstOrDefault(); if (completionSession != null && completionSession.Properties.TryGetProperty <bool>(RetriggerCompletion, out bool retrigger) && retrigger) { completionSession.Dismiss(); } await System.Threading.Tasks.Task.Delay(delay); // Prevents retriggering from happening while typing fast if (_lastTyped.AddMilliseconds(delay) > DateTime.Now) { return; } // Completion may have gotten invoked via by Web Editor OnPostTypeChar(). Don't invoke again, or else we get flikering completion list // TODO:Review the design here post-preview 4 and make sure this completion controller doesn't clash with Web Editors JSON completion controller completionSession = _broker.GetSessions(_textView).FirstOrDefault(); if (completionSession != null && completionSession.Properties.TryGetProperty <bool>(RetriggerCompletion, out retrigger)) { return; } var doc = JSONEditorDocument.FromTextBuffer(_textView.TextDataModel.DocumentBuffer); if (doc == null) { return; } JSONParseItem parseItem = GetItemBeforePosition(_textView.Caret.Position.BufferPosition, doc.JSONDocument); if (parseItem == null) { return; } JSONMember member = parseItem.FindType <JSONMember>(); if (member == null || (!member.UnquotedNameText.Equals(ManifestConstants.Library) && !member.UnquotedNameText.Equals(ManifestConstants.Destination) && member.UnquotedValueText?.Length <= 1)) { return; } JSONObject parent = parseItem.FindType <JSONObject>(); if (JsonHelpers.TryGetInstallationState(parent, out ILibraryInstallationState state)) { VsHelpers.DTE.ExecuteCommand("Edit.ListMembers"); } }
public bool AppliesToContext(JSONMember contextNode) { if (contextNode == null || contextNode.Value == null) { return(false); } return(contextNode.Value.Text.Contains("schema.org")); }
public override IEnumerable <ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer) { string directory = Path.GetDirectoryName(buffer.GetFileName()); if (item.Value != null && item.Value.Text.Trim('"').Length > 0) { yield return(new UpdatePackageAction(item.UnquotedNameText, directory)); } }
public override IEnumerable<ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer) { // TODO: Check if the bower package is already installed and if so, don't show this SmartTag string directory = Path.GetDirectoryName(buffer.GetFileName()); if (item.Value != null && item.Value.Text.Trim('"').Length > 0) yield return new InstallPackageAction(item, directory); }
public override IEnumerable <ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer) { string directory = Path.GetDirectoryName(buffer.GetFileName()); string node_module = Path.Combine(directory, "node_modules", item.UnquotedNameText); if (item.Value != null && item.Value.Text.Trim('"').Length > 0 && Directory.Exists(node_module)) { yield return(new UpdatePackageAction(item.UnquotedNameText, directory)); } }
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 override IEnumerable <ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer) { // TODO: Check if the bower package is already installed and if so, don't show this SmartTag string directory = Path.GetDirectoryName(buffer.GetFileName()); if (item.Value != null && item.Value.Text.Trim('"').Length > 0) { yield return(new InstallPackageAction(item, directory)); } }
private static string GenerateSaveParam(JSONMember item) { JSONMember parent = item.Parent.FindType<JSONMember>(); string param = "--save"; if (parent.UnquotedNameText.Equals("devDependencies", StringComparison.OrdinalIgnoreCase)) param += "-dev"; return param; }
private static string GenerateSaveParam(JSONMember item) { JSONMember parent = item.Parent.FindType <JSONMember>(); string param = "--save"; if (parent.UnquotedNameText.Equals("devDependencies", StringComparison.OrdinalIgnoreCase)) { param += "-dev"; } return(param); }
private void ExecuteRemoteSearch(JSONMember dependency) { ThreadPool.QueueUserWorkItem(o => { string package = dependency.Name.Text.Trim('"'); string url = string.Format(Constants.PackageUrl, package); string result = Helper.DownloadText(url); _version = ParseVersion(result); if (_version != null) Helper.ExecuteCommand(_dte, "Edit.ListMembers"); }); }
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) { 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 != "\"$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)); }
private void ExecuteRemoteSearch(JSONMember dependency) { ThreadPool.QueueUserWorkItem(o => { string package = dependency.Name.Text.Trim('"'); string url = string.Format(Constants.PackageUrl, package); string result = Helper.DownloadText(url); _version = ParseVersion(result); if (_version != null) { Helper.ExecuteCommand("Edit.ListMembers"); } }); }
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)); } }
public InstallPackageAction(JSONMember item, string directory) { _item = item; _directory = directory; Icon = Resources.InstallIcon; }
public override IEnumerable<ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer) { yield return new NavigateToHomePageAction(item.UnquotedNameText); }
public override IEnumerable<ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer) { string directory = Path.GetDirectoryName(buffer.GetFileName()); yield return new UpdatePackageAction(item.UnquotedNameText, directory); }
public abstract IEnumerable<ISmartTagAction> GetSmartTagActions(JSONMember item, ITextBuffer buffer);
private void ExecuteRemoteSearch(JSONMember dependency) { if (_isProcessing) return; ThreadPool.QueueUserWorkItem(o => { _isProcessing = true; try { Helper.DTE.StatusBar.Text = Resources.text.CompletionRetrievingVersion; Helper.DTE.StatusBar.Animate(true, _animation); Execute(dependency); } catch { Helper.DTE.StatusBar.Clear(); } Helper.DTE.StatusBar.Animate(false, _animation); _isProcessing = false; }); }