private async Task SetOrUpdateListOfResxFilesAsync(string slnDirectory) { await OutputPane.Instance?.WriteAsync("Reloading list of resx files."); var sw = new System.Diagnostics.Stopwatch(); sw.Start(); var allResxFiles = Directory.EnumerateFiles(slnDirectory, "*.resx", SearchOption.AllDirectories); sw.Stop(); if (sw.Elapsed > TimeSpan.FromSeconds(1)) { await OutputPane.Instance.WriteAsync($"Enumerating files took longer than expected: {sw.ElapsedMilliseconds} milliseconds"); } var resxFilesOfInterest = new List <string>(); await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(CancellationToken.None); var preferredCulture = this.Options.PreferredCulture; foreach (var resxFile in allResxFiles) { if (!Path.GetFileNameWithoutExtension(resxFile).Contains(".")) { // Neutral language resources, not locale specific ones resxFilesOfInterest.Add(resxFile); } else if (!string.IsNullOrWhiteSpace(preferredCulture)) { // Locale specific resource if specified if (Path.GetFileNameWithoutExtension(resxFile).EndsWith($".{preferredCulture}", StringComparison.InvariantCultureIgnoreCase)) { resxFilesOfInterest.Add(resxFile); } } } await ResourceAdornmentManager.LoadResourcesAsync(resxFilesOfInterest, slnDirectory, preferredCulture, this.Options); }
ILineTransformSource ILineTransformSourceProvider.Create(IWpfTextView view) { ResourceAdornmentManager manager = view.Properties.GetOrCreateSingletonProperty <ResourceAdornmentManager>(() => new ResourceAdornmentManager(view)); return(new MyLineTransformSource(manager)); }
public MyLineTransformSource(ResourceAdornmentManager manager) { this.manager = manager; }