示例#1
0
        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);
        }
示例#2
0
        ILineTransformSource ILineTransformSourceProvider.Create(IWpfTextView view)
        {
            ResourceAdornmentManager manager = view.Properties.GetOrCreateSingletonProperty <ResourceAdornmentManager>(() => new ResourceAdornmentManager(view));

            return(new MyLineTransformSource(manager));
        }
示例#3
0
 public MyLineTransformSource(ResourceAdornmentManager manager)
 {
     this.manager = manager;
 }