diff --git a/Nodejs/Product/Nodejs/Project/Attributes.cs b/Nodejs/Product/Nodejs/Project/Attributes.cs index 0afe08354..a360bbc99 100644 --- a/Nodejs/Product/Nodejs/Project/Attributes.cs +++ b/Nodejs/Product/Nodejs/Project/Attributes.cs @@ -33,6 +33,21 @@ public override string DisplayName { } } + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field, Inherited = false, AllowMultiple = false)] + internal sealed class ResourcesDisplayNameAttribute : DisplayNameAttribute { + string _name; + + public ResourcesDisplayNameAttribute(string name) { + _name = name; + } + + public override string DisplayName { + get { + return Resources.ResourceManager.GetString(_name); + } + } + } + [AttributeUsage(AttributeTargets.All)] internal sealed class SRDescriptionAttribute : DescriptionAttribute { private bool _replaced; @@ -52,6 +67,25 @@ public override string Description { } } + [AttributeUsage(AttributeTargets.All)] + internal sealed class ResourcesDescriptionAttribute : DescriptionAttribute { + private bool _replaced; + + public ResourcesDescriptionAttribute(string description) + : base(description) { + } + + public override string Description { + get { + if (!_replaced) { + _replaced = true; + DescriptionValue = Resources.ResourceManager.GetString(base.Description); + } + return base.Description; + } + } + } + [AttributeUsage(AttributeTargets.All)] internal sealed class SRCategoryAttribute : CategoryAttribute { public SRCategoryAttribute(string category) @@ -62,4 +96,15 @@ protected override string GetLocalizedString(string value) { return SR.GetString(value); } } + + [AttributeUsage(AttributeTargets.All)] + internal sealed class ResourcesCategoryAttribute : CategoryAttribute { + public ResourcesCategoryAttribute(string category) + : base(category) { + } + + protected override string GetLocalizedString(string value) { + return Resources.ResourceManager.GetString(value); + } + } } diff --git a/Nodejs/Product/Nodejs/Project/DependencyNodeProperties.cs b/Nodejs/Product/Nodejs/Project/DependencyNodeProperties.cs index 0f6373d7d..52ffe2b40 100644 --- a/Nodejs/Product/Nodejs/Project/DependencyNodeProperties.cs +++ b/Nodejs/Product/Nodejs/Project/DependencyNodeProperties.cs @@ -37,27 +37,27 @@ public override string GetClassName() { : Resources.PropertiesClassLocalPackage; } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmPackageName)] - [SRDescriptionAttribute(SR.NpmPackageNameDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmPackageName))] + [ResourcesDescription(nameof(Resources.NpmPackageNameDescription))] public string PackageName { get { return null == Package ? null : Package.Name; } } - [SRCategoryAttribute(SR.CategoryVersion)] - [SRDisplayName(SR.NpmPackageVersion)] - [SRDescriptionAttribute(SR.NpmPackageVersionDescription)] + [ResourcesCategory(nameof(Resources.CategoryVersion))] + [ResourcesDisplayName(nameof(Resources.NpmPackageVersion))] + [ResourcesDescription(nameof(Resources.NpmPackageVersionDescription))] public string PackageVersion { get { return null == Package ? null : Package.Version.ToString(); } } - [SRCategoryAttribute(SR.CategoryVersion)] - [SRDisplayName(SR.NpmPackageRequestedVersionRange)] - [SRDescriptionAttribute(SR.NpmPackageRequestedVersionRangeDescription)] + [ResourcesCategory(nameof(Resources.CategoryVersion))] + [ResourcesDisplayName(nameof(Resources.NpmPackageRequestedVersionRange))] + [ResourcesDescription(nameof(Resources.NpmPackageRequestedVersionRangeDescription))] public string RequestedVersionRange { get { var range = null == Package ? null : Package.RequestedVersionRange; @@ -66,9 +66,9 @@ public string RequestedVersionRange { } // TODO Retrieving the package information is currently too slow to include in properties pane. - //[SRCategoryAttribute(SR.CategoryVersion)] - //[SRDisplayName(SR.NpmPackageNewVersionAvailable)] - //[SRDescriptionAttribute(SR.NpmPackageNewVersionAvailableDescription)] + //[ResourcesCategory(nameof(Resources.CategoryVersion))] + //[ResourcesDisplayName(nameof(Resources.NpmPackageNewVersionAvailable))] + //[ResourcesDescription(nameof(Resources.NpmPackageNewVersionAvailableDescription))] //public string NewVersionAvailable { // get { // if (IsSubPackage) { @@ -92,18 +92,18 @@ public string RequestedVersionRange { // } //} - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmPackageDescription)] - [SRDescriptionAttribute(SR.NpmPackageDescriptionDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmPackageDescription))] + [ResourcesDescription(nameof(Resources.NpmPackageDescriptionDescription))] public string Description { get { return null == Package ? null : Package.Description; } } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmPackageKeywords)] - [SRDescriptionAttribute(SR.NpmPackageKeywordsDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmPackageKeywords))] + [ResourcesDescription(nameof(Resources.NpmPackageKeywordsDescription))] public string Keywords { get { if (null == Package) { @@ -121,9 +121,9 @@ public string Keywords { } } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmPackageAuthor)] - [SRDescriptionAttribute(SR.NpmPackageAuthorDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmPackageAuthor))] + [ResourcesDescription(nameof(Resources.NpmPackageAuthorDescription))] public string Author { get { var author = null == Package ? null : Package.Author; @@ -131,9 +131,9 @@ public string Author { } } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmPackagePath)] - [SRDescriptionAttribute(SR.NpmPackagePathDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmPackagePath))] + [ResourcesDescription(nameof(Resources.NpmPackagePathDescription))] public string Path { get { return null == Package ? null : Package.Path; @@ -150,9 +150,9 @@ internal bool IsSubPackage { } } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmPackageType)] - [SRDescriptionAttribute(SR.NpmPackageTypeDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmPackageType))] + [ResourcesDescription(nameof(Resources.NpmPackageTypeDescription))] public string PackageType { get { return IsSubPackage @@ -162,9 +162,9 @@ public string PackageType { } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmPackageLinkStatus)] - [SRDescriptionAttribute(SR.NpmPackageLinkStatusDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmPackageLinkStatus))] + [ResourcesDescription(nameof(Resources.NpmPackageLinkStatusDescription))] public string LinkStatus { get { if (IsSubPackage) { @@ -174,45 +174,45 @@ public string LinkStatus { } } - [SRCategoryAttribute(SR.CategoryStatus)] - [SRDisplayName(SR.NpmPackageIsListedInParentPackageJson)] - [SRDescriptionAttribute(SR.NpmPackageIsListedInParentPackageJsonDescription)] + [ResourcesCategory(nameof(Resources.CategoryStatus))] + [ResourcesDisplayName(nameof(Resources.NpmPackageIsListedInParentPackageJson))] + [ResourcesDescription(nameof(Resources.NpmPackageIsListedInParentPackageJsonDescription))] public bool IsListedInParentPackageJson { get { return null != Package && Package.IsListedInParentPackageJson; } } - [SRCategoryAttribute(SR.CategoryStatus)] - [SRDisplayName(SR.NpmPackageIsMissing)] - [SRDescriptionAttribute(SR.NpmPackageIsMissingDescription)] + [ResourcesCategory(nameof(Resources.CategoryStatus))] + [ResourcesDisplayName(nameof(Resources.NpmPackageIsMissing))] + [ResourcesDescription(nameof(Resources.NpmPackageIsMissingDescription))] public bool IsMissing { get { return null != Package && Package.IsMissing; } } - [SRCategoryAttribute(SR.CategoryStatus)] - [SRDisplayName(SR.NpmPackageIsDevDependency)] - [SRDescriptionAttribute(SR.NpmPackageIsDevDependencyDescription)] + [ResourcesCategory(nameof(Resources.CategoryStatus))] + [ResourcesDisplayName(nameof(Resources.NpmPackageIsDevDependency))] + [ResourcesDescription(nameof(Resources.NpmPackageIsDevDependencyDescription))] public bool IsDevDependency { get { return null != Package && Package.IsDevDependency; } } - [SRCategoryAttribute(SR.CategoryStatus)] - [SRDisplayName(SR.NpmPackageIsOptionalDependency)] - [SRDescriptionAttribute(SR.NpmPackageIsOptionalDependencyDescription)] + [ResourcesCategory(nameof(Resources.CategoryStatus))] + [ResourcesDisplayName(nameof(Resources.NpmPackageIsOptionalDependency))] + [ResourcesDescription(nameof(Resources.NpmPackageIsOptionalDependencyDescription))] public bool IsOptionalDependency { get { return null != Package && Package.IsOptionalDependency; } } - [SRCategoryAttribute(SR.CategoryStatus)] - [SRDisplayName(SR.NpmPackageIsBundledDependency)] - [SRDescriptionAttribute(SR.NpmPackageIsBundledDependencyDescription)] + [ResourcesCategory(nameof(Resources.CategoryStatus))] + [ResourcesDisplayName(nameof(Resources.NpmPackageIsBundledDependency))] + [ResourcesDescription(nameof(Resources.NpmPackageIsBundledDependencyDescription))] public bool IsBundledDependency { get { return null != Package && Package.IsBundledDependency; diff --git a/Nodejs/Product/Nodejs/Project/NodejsFileNodeProperties.cs b/Nodejs/Product/Nodejs/Project/NodejsFileNodeProperties.cs index 03234740d..9b0beff36 100644 --- a/Nodejs/Product/Nodejs/Project/NodejsFileNodeProperties.cs +++ b/Nodejs/Product/Nodejs/Project/NodejsFileNodeProperties.cs @@ -31,9 +31,9 @@ internal NodejsIncludedFileNodeProperties(HierarchyNode node) : base(node) { } - [SRCategoryAttribute(SR.Advanced)] + [SRCategory(SR.Advanced)] [LocDisplayName(SR.TestFramework)] - [SRDescriptionAttribute(SR.TestFrameworkDescription)] + [ResourcesDescription(nameof(Resources.TestFrameworkDescription))] [TypeConverter(typeof(TestFrameworkStringConverter))] public string TestFramework { get { @@ -51,9 +51,9 @@ internal NodejsLinkFileNodeProperties(HierarchyNode node) : base(node) { } - [SRCategoryAttribute(SR.Advanced)] + [SRCategory(SR.Advanced)] [LocDisplayName(SR.TestFramework)] - [SRDescriptionAttribute(SR.TestFrameworkDescription)] + [ResourcesDescription(nameof(Resources.TestFrameworkDescription))] [TypeConverter(typeof(TestFrameworkStringConverter))] public string TestFramework { get { diff --git a/Nodejs/Product/Nodejs/Project/NodejsProjectNodeProperties.cs b/Nodejs/Product/Nodejs/Project/NodejsProjectNodeProperties.cs index 989be16e5..a23e98e73 100644 --- a/Nodejs/Product/Nodejs/Project/NodejsProjectNodeProperties.cs +++ b/Nodejs/Product/Nodejs/Project/NodejsProjectNodeProperties.cs @@ -54,9 +54,9 @@ public uint TargetFramework { } } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NodeExePath)] - [SRDescriptionAttribute(SR.NodeExePathDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NodeExePath))] + [ResourcesDescription(nameof(Resources.NodeExePathDescription))] public string NodeExePath { get { return HierarchyNode.ProjectMgr.Site.GetUIThread().Invoke(() => { @@ -72,9 +72,9 @@ public string NodeExePath { } } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NodeExeArguments)] - [SRDescriptionAttribute(SR.NodeExeArgumentsDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NodeExeArguments))] + [ResourcesDescription(nameof(Resources.NodeExeArgumentsDescription))] public string NodeExeArguments { get { return HierarchyNode.ProjectMgr.Site.GetUIThread().Invoke(() => { @@ -88,9 +88,9 @@ public string NodeExeArguments { } } - [SRCategoryAttribute(SR.General)] + [SRCategory(SR.General)] [SRDisplayName(SR.ScriptArguments)] - [SRDescriptionAttribute(SR.ScriptArgumentsDescription)] + [SRDescription(SR.ScriptArgumentsDescription)] public string ScriptArguments { get { return HierarchyNode.ProjectMgr.Site.GetUIThread().Invoke(() => { @@ -104,9 +104,9 @@ public string ScriptArguments { } } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NodejsPort)] - [SRDescriptionAttribute(SR.NodejsPortDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NodejsPort))] + [ResourcesDescription(nameof(Resources.NodejsPortDescription))] public int? NodejsPort { get { return HierarchyNode.ProjectMgr.Site.GetUIThread().Invoke((Func)(() => { @@ -124,9 +124,9 @@ public int? NodejsPort { } } - [SRCategoryAttribute(SR.General)] + [SRCategory(SR.General)] [SRDisplayName(SR.LaunchUrl)] - [SRDescriptionAttribute(SR.LaunchUrlDescription)] + [SRDescription(SR.LaunchUrlDescription)] public string LaunchUrl { get { return HierarchyNode.ProjectMgr.Site.GetUIThread().Invoke(() => { @@ -140,9 +140,9 @@ public string LaunchUrl { } } - [SRCategoryAttribute(SR.General)] + [SRCategory(SR.General)] [SRDisplayName(SR.StartWebBrowser)] - [SRDescriptionAttribute(SR.StartWebBrowserDescription)] + [SRDescription(SR.StartWebBrowserDescription)] public bool StartWebBrowser { get { return HierarchyNode.ProjectMgr.Site.GetUIThread().Invoke(() => { diff --git a/Nodejs/Product/Nodejs/Project/NodejsTypeScriptFileNodeProperties.cs b/Nodejs/Product/Nodejs/Project/NodejsTypeScriptFileNodeProperties.cs index f3290907c..2c3a4444f 100644 --- a/Nodejs/Product/Nodejs/Project/NodejsTypeScriptFileNodeProperties.cs +++ b/Nodejs/Product/Nodejs/Project/NodejsTypeScriptFileNodeProperties.cs @@ -27,9 +27,9 @@ internal NodejsTypeScriptFileNodeProperties(HierarchyNode node) : base(node) { } - [SRCategoryAttribute(SR.Advanced)] + [SRCategory(SR.Advanced)] [LocDisplayName(SR.TestFramework)] - [SRDescriptionAttribute(SR.TestFrameworkDescription)] + [ResourcesDescription(nameof(Resources.TestFrameworkDescription))] public string TestFramework { get { var framework = this.HierarchyNode.ItemNode.GetMetadata(SR.TestFramework); @@ -50,9 +50,9 @@ internal NodejsTypeScriptLinkFileNodeProperties(HierarchyNode node) : base(node) { } - [SRCategoryAttribute(SR.Advanced)] + [SRCategory(SR.Advanced)] [LocDisplayName(SR.TestFramework)] - [SRDescriptionAttribute(SR.TestFrameworkDescription)] + [ResourcesDescription(nameof(Resources.TestFrameworkDescription))] public string TestFramework { get { var framework = this.HierarchyNode.ItemNode.GetMetadata(SR.TestFramework); diff --git a/Nodejs/Product/Nodejs/Project/NpmNodeProperties.cs b/Nodejs/Product/Nodejs/Project/NpmNodeProperties.cs index 53a6fd55e..314db5312 100644 --- a/Nodejs/Product/Nodejs/Project/NpmNodeProperties.cs +++ b/Nodejs/Product/Nodejs/Project/NpmNodeProperties.cs @@ -33,18 +33,18 @@ public override string GetClassName() { return Resources.PropertiesClassNpm; } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmNodePackageInstallation)] - [SRDescriptionAttribute(SR.NpmNodePackageInstallationDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmNodePackageInstallation))] + [ResourcesDescription(nameof(Resources.NpmNodePackageInstallationDescription))] public string PackageInstallation { get { return Resources.PackageInstallationLocal; } } - [SRCategoryAttribute(SR.General)] - [SRDisplayName(SR.NpmNodePath)] - [SRDescriptionAttribute(SR.NpmNodePathDescription)] + [SRCategory(SR.General)] + [ResourcesDisplayName(nameof(Resources.NpmNodePath))] + [ResourcesDescription(nameof(Resources.NpmNodePathDescription))] public string Path { get { var node = NpmNode; diff --git a/Nodejs/Product/Nodejs/Project/ProjectResources.cs b/Nodejs/Product/Nodejs/Project/ProjectResources.cs index d3eccb1a5..717a364fe 100644 --- a/Nodejs/Product/Nodejs/Project/ProjectResources.cs +++ b/Nodejs/Product/Nodejs/Project/ProjectResources.cs @@ -23,91 +23,18 @@ namespace Microsoft.NodejsTools.Project { internal class SR : CommonSR { internal const string NodejsToolsForVisualStudio = "NodejsToolsForVisualStudio"; - internal const string AzureRemoteDebugCouldNotAttachToWebsiteErrorMessage = "AzureRemoveDebugCouldNotAttachToWebsiteErrorMessage"; - internal const string AzureRemoteDebugWaitCaption = "AzureRemoteDebugWaitCaption"; - internal const string AzureRemoteDebugWaitMessage = "AzureRemoteDebugWaitMessage"; - internal const string AzureRemoveDebugCouldNotAttachToWebsiteExceptionErrorMessage = "AzureRemoveDebugCouldNotAttachToWebsiteExceptionErrorMessage"; internal const string AzureToolsInstallInstructions = "AzureToolsInstallInstructions"; internal const string AzureToolsRequired = "AzureToolsRequired"; internal const string AzureToolsUpgradeInstructions = "AzureToolsUpgradeInstructions"; internal const string AzureToolsUpgradeRecommended = "AzureToolsUpgradeRecommended"; - internal const string CacheDirectoryClearFailedCaption = "CacheDirectoryClearFailedCaption"; - internal const string CacheDirectoryClearFailedTitle = "CacheDirectoryClearFailedTitle"; - internal const string CatalogLoadingDefault = "CatalogLoadingDefault"; - internal const string CategoryStatus = "CategoryStatus"; - internal const string CategoryVersion = "CategoryVersion"; internal const string ContinueWithoutAzureToolsUpgrade = "ContinueWithoutAzureToolsUpgrade"; - internal const string DebugCouldNotResolveStartupFileErrorMessage = "DebugCouldNotResolveStartupFileErrorMessage"; - internal const string DebugWorkingDirectoryDoesNotExistErrorMessage = "DebugWorkingDirectoryDoesNotExistErrorMessage"; - internal const string DebugInterpreterDoesNotExistErrorMessage = "DebugInterpreterDoesNotExistErrorMessage"; - internal const string DebugTypeScriptCombineNotSupportedWarningMessage = "DebugTypeScriptCombineNotSupportedWarningMessage"; - internal const string DebuggerConnectionClosed = "DebuggerConnectionClosed"; - internal const string DebuggerModuleUpdateFailed = "DebuggerModuleUpdateFailed"; - internal const string DebuggerPort = "DebuggerPort"; internal const string DontShowAgain = "DontShowAgain"; internal const string DownloadAndInstall = "DownloadAndInstall"; - internal const string EnvironmentVariables = "EnvironmentVariables"; internal const string ErrorNoDte = "ErrorNoDte"; - internal const string ImportingProjectAccessErrorStatusText = "ImportingProjectAccessErrorStatusText"; - internal const string ImportingProjectErrorStatusText = "ImportingProjectErrorStatusText"; - internal const string ImportingProjectStatusText = "ImportingProjectStatusText"; - internal const string ImportingProjectUnexpectedErrorMessage = "ImportingProjectUnexpectedErrorMessage"; internal const string ImportWizzardCouldNotStartNotAutomationObjectErrorMessage = "ImportWizzardCouldNotStartNotAutomationObjectErrorMessage"; - internal const string IncludeNodeModulesCancelTitle = "IncludeNodeModulesCancelTitle"; - internal const string IncludeNodeModulesContent = "IncludeNodeModulesContent"; - internal const string IncludeNodeModulesIncludeDescription = "IncludeNodeModulesIncludeDescription"; - internal const string IncludeNodeModulesIncludeTitle = "IncludeNodeModulesIncludeTitle"; - internal const string IncludeNodeModulesInformation = "IncludeNodeModulesInformation"; - internal const string InteractiveWindowFailedToStartProcessErrorMessage = "InteractiveWindowFailedToStartProcessErrorMessage"; - internal const string InteractiveWindowNoProcessErrorMessage = "InteractiveWindowNoProcessErrorMessage"; - internal const string InteractiveWindowProcessExitedMessage = "InteractiveWindowProcessExitedMessage"; - internal const string InteractiveWindowTitle = "InteractiveWindowTitle"; - internal const string NoKeywordsInPackage = "NoKeywordsInPackage"; - internal const string NodeExeArguments = "NodeExeArguments"; - internal const string NodeExeArgumentsDescription = "NodeExeArgumentsDescription"; - internal const string NodeExeArgumentsToolTip = "NodeExeArgumentsToolTip"; internal const string NodeExeDoesntExist = "NodeExeDoesntExist"; - internal const string NodeExePath = "NodeExePath"; - internal const string NodeExePathDescription = "NodeExePathDescription"; - internal const string NodeExePathNotFound = "NodeExePathNotFound"; internal const string NodejsNotInstalled = "NodejsNotInstalled"; - internal const string NodejsPort = "NodejsPort"; - internal const string NodejsPortDescription = "NodejsPortDescription"; - internal const string NpmNodePackageInstallation = "NpmNodePackageInstallation"; - internal const string NpmNodePackageInstallationDescription = "NpmNodePackageInstallationDescription"; - internal const string NpmNodePath = "NpmNodePath"; - internal const string NpmNodePathDescription = "NpmNodePathDescription"; - internal const string NpmPackageAuthor = "NpmPackageAuthor"; - internal const string NpmPackageAuthorDescription = "NpmPackageAuthorDescription"; - internal const string NpmPackageDescription = "NpmPackageDescription"; - internal const string NpmPackageDescriptionDescription = "NpmPackageDescriptionDescription"; - internal const string NpmPackageInstallHelpMessage = "NpmPackageInstallHelpMessage"; - internal const string NpmPackageIsBundledDependency = "NpmPackageIsBundledDependency"; - internal const string NpmPackageIsBundledDependencyDescription = "NpmPackageIsBundledDependencyDescription"; - internal const string NpmPackageIsDevDependency = "NpmPackageIsDevDependency"; - internal const string NpmPackageIsDevDependencyDescription = "NpmPackageIsDevDependencyDescription"; - internal const string NpmPackageIsListedInParentPackageJson = "NpmPackageIsListedInParentPackageJson"; - internal const string NpmPackageIsListedInParentPackageJsonDescription = "NpmPackageIsListedInParentPackageJsonDescription"; - internal const string NpmPackageIsMissing = "NpmPackageIsMissing"; - internal const string NpmPackageIsMissingDescription = "NpmPackageIsMissingDescription"; - internal const string NpmPackageIsOptionalDependency = "NpmPackageIsOptionalDependency"; - internal const string NpmPackageIsOptionalDependencyDescription = "NpmPackageIsOptionalDependencyDescription"; - internal const string NpmPackageKeywords = "NpmPackageKeywords"; - internal const string NpmPackageKeywordsDescription = "NpmPackageKeywordsDescription"; - internal const string NpmPackageLinkStatus = "NpmPackageLinkStatus"; - internal const string NpmPackageLinkStatusDescription = "NpmPackageLinkStatusDescription"; - internal const string NpmPackageName = "NpmPackageName"; - internal const string NpmPackageNameDescription = "NpmPackageNameDescription"; - internal const string NpmPackagePath = "NpmPackagePath"; - internal const string NpmPackagePathDescription = "NpmPackagePathDescription"; - internal const string NpmPackageRequestedVersionRange = "NpmPackageRequestedVersionRange"; - internal const string NpmPackageRequestedVersionRangeDescription = "NpmPackageRequestedVersionRangeDescription"; - internal const string NpmPackageType = "NpmPackageType"; - internal const string NpmPackageTypeDescription = "NpmPackageTypeDescription"; - internal const string NpmPackageVersion = "NpmPackageVersion"; - internal const string NpmPackageVersionDescription = "NpmPackageVersionDescription"; internal const string TestFramework = "TestFramework"; - internal const string TestFrameworkDescription = "TestFrameworkDescription"; private static readonly Lazy _manager = new Lazy( () => new System.Resources.ResourceManager("Microsoft.NodejsTools.Resources", typeof(SR).Assembly),