diff --git a/.gitattributes b/.gitattributes index 613f8f6e5..1db95efd6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,2 @@ # Do not normalize line endings from CR LF to LF, regardless of core.autocrlf. * -text - -# Normalize C# source files to use CR LF line endings. -*.cs text eol=crlf diff --git a/Nodejs/Product/ProjectWizard/NodejsPackageParametersExtension.cs b/Nodejs/Product/ProjectWizard/NodejsPackageParametersExtension.cs index 406411bbf..49101ccf8 100644 --- a/Nodejs/Product/ProjectWizard/NodejsPackageParametersExtension.cs +++ b/Nodejs/Product/ProjectWizard/NodejsPackageParametersExtension.cs @@ -19,7 +19,7 @@ using System.Text.RegularExpressions; using EnvDTE; using Microsoft.VisualStudio.TemplateWizard; - + namespace Microsoft.NodejsTools.ProjectWizard { class NodejsPackageParametersExtension : IWizard { public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams) { @@ -45,25 +45,25 @@ public void BeforeOpeningFile(ProjectItem projectItem) { public void RunFinished() { return; - } - - private const int NpmPackageNameMaxLength = 214; - - /// - /// Normalize a project name to be a valid Npm package name: https://docs.npmjs.com/files/package.json#name - /// - /// Name of a VS project. - private static string NormalizeNpmPackageName(string projectName) { - // Remove all leading url-invalid, underscore, and period characters - var npmProjectNameTransform = Regex.Replace(projectName, "^[^a-zA-Z0-9-~]*", string.Empty); - - // Replace all invalid characters with a dash - npmProjectNameTransform = Regex.Replace(npmProjectNameTransform, "[^a-zA-Z0-9-_~.]", "-"); - - // Insert hyphens between camelcased sections. - npmProjectNameTransform = Regex.Replace(npmProjectNameTransform, "([a-z0-9])([A-Z])", "$1-$2").ToLowerInvariant(); - - return npmProjectNameTransform.Substring(0, Math.Min(npmProjectNameTransform.Length, NpmPackageNameMaxLength)); + } + + private const int NpmPackageNameMaxLength = 214; + + /// + /// Normalize a project name to be a valid Npm package name: https://docs.npmjs.com/files/package.json#name + /// + /// Name of a VS project. + private static string NormalizeNpmPackageName(string projectName) { + // Remove all leading url-invalid, underscore, and period characters + var npmProjectNameTransform = Regex.Replace(projectName, "^[^a-zA-Z0-9-~]*", string.Empty); + + // Replace all invalid characters with a dash + npmProjectNameTransform = Regex.Replace(npmProjectNameTransform, "[^a-zA-Z0-9-_~.]", "-"); + + // Insert hyphens between camelcased sections. + npmProjectNameTransform = Regex.Replace(npmProjectNameTransform, "([a-z0-9])([A-Z])", "$1-$2").ToLowerInvariant(); + + return npmProjectNameTransform.Substring(0, Math.Min(npmProjectNameTransform.Length, NpmPackageNameMaxLength)); } } }