public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { base.Initialize(razorHost, directives); _languageUtil = razorHost.CodeLanguageUtil; _isSpecialPage = IsSpecialPage(razorHost.FullPath); FixupDefaultClassNameIfTemplate(razorHost); // The CSharpRazorCodeGenerator decides to generate line pragmas based on if the file path is available. Set it to an empty string if we // do not want to generate them. string path = razorHost.EnableLinePragmas ? razorHost.FullPath : String.Empty; switch (razorHost.CodeLanguage.LanguageName) { case "csharp": razorHost.CodeGenerator = new CSharpRazorCodeGenerator(razorHost.DefaultClassName, razorHost.DefaultNamespace, path, razorHost); razorHost.CodeGenerator.GenerateLinePragmas = razorHost.EnableLinePragmas; razorHost.Parser = new MvcCSharpRazorCodeParser(); break; case "vb": razorHost.CodeGenerator = new VBRazorCodeGenerator(razorHost.DefaultClassName, razorHost.DefaultNamespace, path, razorHost); razorHost.CodeGenerator.GenerateLinePragmas = razorHost.EnableLinePragmas; razorHost.Parser = new MvcVBRazorCodeParser(); break; default: throw new ArgumentOutOfRangeException("Unknown language - " + razorHost.CodeLanguage.LanguageName); } }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { if (_override || IsDefaultBaseClass(razorHost.DefaultBaseClass)) { razorHost.DefaultBaseClass = _typeName; } }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { foreach (var transformer in CodeTransformers) { transformer.Initialize(razorHost, directives); } }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { foreach (var transformer in CodeTransformers) { transformer.Initialize(razorHost, directives); } }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { base.Initialize(razorHost, directives); razorHost.CodeGenerator = new MvcCodeGenerator(razorHost.DefaultClassName, razorHost.DefaultBaseClass, razorHost.DefaultNamespace, razorHost.FullPath, razorHost); razorHost.CodeGenerator.GenerateLinePragmas = razorHost.EnableLinePragmas; razorHost.Parser = new MvcCSharpRazorCodeParser(); }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { base.Initialize(razorHost, directives); razorHost.CodeGenerator = new MvcCodeGenerator(razorHost.DefaultClassName, razorHost.DefaultBaseClass, razorHost.DefaultNamespace, razorHost.FullPath, razorHost); razorHost.CodeGenerator.GenerateLinePragmas = razorHost.EnableLinePragmas; razorHost.Parser = new MvcCSharpRazorCodeParser(); }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { if (ReadSwitchValue(directives, GeneratePrettyNamesTransformer.DirectiveName) == true) { var trimLeadingUnderscores = ReadSwitchValue(directives, TrimLeadingUnderscoresKey) ?? false; _transformers.Add(new GeneratePrettyNamesTransformer(trimLeadingUnderscores)); } string typeVisibility; if (directives.TryGetValue(TypeVisibilityKey, out typeVisibility)) { _transformers.Add(new SetTypeVisibility(typeVisibility)); } string typeNamespace; if (directives.TryGetValue(NamespaceKey, out typeNamespace)) { _transformers.Add(new SetTypeNamespace(typeNamespace)); } if (ReadSwitchValue(directives, DisableLinePragmasKey) == true) { razorHost.EnableLinePragmas = false; } else if (ReadSwitchValue(directives, GenerateAbsolutePathLinePragmas) != true) { // Rewrite line pragamas to generate bin relative paths instead of absolute paths. _transformers.Add(new RewriteLinePragmas()); } if (ReadSwitchValue(directives, ExcludeFromCodeCoverage) == true) { _transformers.Add(new ExcludeFromCodeCoverageTransformer()); } string suffix; if (directives.TryGetValue(SuffixFileName, out suffix)) { _transformers.Add(new SuffixFileNameTransformer(suffix)); } string genericParameters; if (directives.TryGetValue(GenericParametersKey, out genericParameters)) { var parameters = from p in genericParameters.Split(',') select p.Trim(); _transformers.Add(new GenericParametersTransformer(parameters)); } string imports; if (directives.TryGetValue(ImportsKey, out imports)) { var values = from p in imports.Split(',') select p.Trim(); _transformers.Add(new SetImports(values, false)); } base.Initialize(razorHost, directives); }
private void FixupDefaultClassNameIfTemplate(RazorHost razorHost) { string filePath = Path.GetDirectoryName(razorHost.FullPath).TrimEnd(Path.DirectorySeparatorChar); if (filePath.EndsWith("EditorTemplates", StringComparison.OrdinalIgnoreCase) || filePath.EndsWith("DisplayTemplates", StringComparison.OrdinalIgnoreCase)) { // Fixes #133: For EditorTemplates \ DisplayTemplates, we'll suffix the file with an underscore to prevent name collisions razorHost.DefaultClassName = razorHost.DefaultClassName + '_'; } }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { if (ReadSwitchValue(directives, GeneratePrettyNamesTransformer.DirectiveName) == true) { var trimLeadingUnderscores = ReadSwitchValue(directives, TrimLeadingUnderscoresKey) ?? false; _transformers.Add(new GeneratePrettyNamesTransformer(trimLeadingUnderscores)); } string typeVisibility; if (directives.TryGetValue(TypeVisibilityKey, out typeVisibility)) { _transformers.Add(new SetTypeVisibility(typeVisibility)); } string typeNamespace; if (directives.TryGetValue(NamespaceKey, out typeNamespace)) { _transformers.Add(new SetTypeNamespace(typeNamespace)); } if (ReadSwitchValue(directives, DisableLinePragmasKey) == true) { razorHost.EnableLinePragmas = false; } else if (ReadSwitchValue(directives, GenerateAbsolutePathLinePragmas) != true) { // Rewrite line pragamas to generate bin relative paths instead of absolute paths. _transformers.Add(new RewriteLinePragmas()); } if (ReadSwitchValue(directives, ExcludeFromCodeCoverage) == true) { _transformers.Add(new ExcludeFromCodeCoverageTransformer()); } string suffix; if (directives.TryGetValue(SuffixFileName, out suffix)) { _transformers.Add(new SuffixFileNameTransformer(suffix)); } string genericParameters; if (directives.TryGetValue(GenericParametersKey, out genericParameters)) { var parameters = from p in genericParameters.Split(',') select p.Trim(); _transformers.Add(new GenericParametersTransformer(parameters)); } base.Initialize(razorHost, directives); }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { string projectPath = GetProjectRoot(razorHost.ProjectRelativePath, razorHost.FullPath).TrimEnd(Path.DirectorySeparatorChar); string currentPath = razorHost.FullPath; string directoryVirtualPath = null; var configFileMap = new WebConfigurationFileMap(); var virtualDirectories = configFileMap.VirtualDirectories; while (!currentPath.Equals(projectPath, StringComparison.OrdinalIgnoreCase)) { currentPath = Path.GetDirectoryName(currentPath); string relativePath = currentPath.Substring(projectPath.Length); bool isAppRoot = currentPath.Equals(projectPath, StringComparison.OrdinalIgnoreCase); string virtualPath = relativePath.Replace('\\', '/'); if (virtualPath.Length == 0) { virtualPath = "/"; } directoryVirtualPath = directoryVirtualPath ?? virtualPath; virtualDirectories.Add(virtualPath, new VirtualDirectoryMapping(currentPath, isAppRoot: isAppRoot)); } try { var config = WebConfigurationManager.OpenMappedWebConfiguration(configFileMap, directoryVirtualPath); RazorPagesSection section = config.GetSection(RazorPagesSection.SectionName) as RazorPagesSection; if (section != null) { string baseType = section.PageBaseType; if (!DefaultBaseType.Equals(baseType, StringComparison.OrdinalIgnoreCase)) { _transformers.Add(new SetBaseType(baseType)); } if (section != null) { foreach (NamespaceInfo n in section.Namespaces) { razorHost.NamespaceImports.Add(n.Namespace); } } } } catch (IndexOutOfRangeException) { // Bug in Mono framework. // Configure namespaces using the RazorGenerator directives file instead. } base.Initialize(razorHost, directives); }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { if (_replaceExisting) { razorHost.NamespaceImports.Clear(); } foreach (var import in _imports) { razorHost.NamespaceImports.Add(import); } }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { string projectPath = GetProjectRoot(razorHost.ProjectRelativePath, razorHost.FullPath).TrimEnd(Path.DirectorySeparatorChar); string currentPath = razorHost.FullPath; string directoryVirtualPath = null; var configFileMap = new WebConfigurationFileMap(); var virtualDirectories = configFileMap.VirtualDirectories; while (!currentPath.Equals(projectPath, StringComparison.OrdinalIgnoreCase)) { currentPath = Path.GetDirectoryName(currentPath); string relativePath = currentPath.Substring(projectPath.Length); bool isAppRoot = currentPath.Equals(projectPath, StringComparison.OrdinalIgnoreCase); string virtualPath = relativePath.Replace('\\', '/'); if (virtualPath.Length == 0) { virtualPath = "/"; } directoryVirtualPath = directoryVirtualPath ?? virtualPath; virtualDirectories.Add(virtualPath, new VirtualDirectoryMapping(currentPath, isAppRoot: isAppRoot)); } try { var config = WebConfigurationManager.OpenMappedWebConfiguration(configFileMap, directoryVirtualPath); RazorPagesSection section = config.GetSection(RazorPagesSection.SectionName) as RazorPagesSection; if (section != null) { string baseType = section.PageBaseType; if (!DefaultBaseType.Equals(baseType, StringComparison.OrdinalIgnoreCase)) { _transformers.Add(new SetBaseType(baseType)); } if (section != null) { foreach (NamespaceInfo n in section.Namespaces) { razorHost.NamespaceImports.Add(n.Namespace); } } } } catch (IndexOutOfRangeException) { // Bug in Mono framework. // Configure namespaces using the RazorGenerator directives file instead. } base.Initialize(razorHost, directives); }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { base.Initialize(razorHost, directives); // Remove the extension and replace path separator slashes with underscores string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(razorHost.ProjectRelativePath); // If its a PageStart page, set the base type to StartPage. if (fileNameWithoutExtension.Equals("_pagestart", StringComparison.OrdinalIgnoreCase)) { razorHost.DefaultBaseClass = typeof(System.Web.WebPages.StartPage).FullName; } }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { base.Initialize(razorHost, directives); // Remove the extension and replace path separator slashes with underscores string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(razorHost.ProjectRelativePath); // If its a PageStart page, set the base type to StartPage. if (fileNameWithoutExtension.Equals("_pagestart", StringComparison.OrdinalIgnoreCase)) { razorHost.DefaultBaseClass = typeof(System.Web.WebPages.StartPage).FullName; } }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { base.Initialize(razorHost, directives); razorHost.DefaultBaseClass = typeof(System.Web.WebPages.HelperPage).FullName; razorHost.GeneratedClassContext = new GeneratedClassContext( executeMethodName: GeneratedClassContext.DefaultExecuteMethodName, writeMethodName: GeneratedClassContext.DefaultWriteMethodName, writeLiteralMethodName: GeneratedClassContext.DefaultWriteLiteralMethodName, writeToMethodName: WriteToMethodName, writeLiteralToMethodName: WriteLiteralToMethodName, templateTypeName: typeof(System.Web.WebPages.HelperResult).FullName, defineSectionMethodName: "DefineSection" ); }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { base.Initialize(razorHost, directives); razorHost.DefaultBaseClass = String.Empty; razorHost.GeneratedClassContext = new GeneratedClassContext( executeMethodName: GeneratedClassContext.DefaultExecuteMethodName, writeMethodName: GeneratedClassContext.DefaultWriteMethodName, writeLiteralMethodName: GeneratedClassContext.DefaultWriteLiteralMethodName, writeToMethodName: WriteToMethodName, writeLiteralToMethodName: WriteLiteralToMethodName, templateTypeName: typeof(System.Web.WebPages.HelperResult).FullName, defineSectionMethodName: "DefineSection" ); }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { base.Initialize(razorHost, directives); _isSpecialPage = IsSpecialPage(razorHost.FullPath); FixupDefaultClassNameIfTemplate(razorHost); // The CSharpRazorCodeGenerator decides to generate line pragmas based on if the file path is available. Set it to an empty string if we // do not want to generate them. string path = razorHost.EnableLinePragmas ? razorHost.FullPath : String.Empty; razorHost.CodeGenerator = new CSharpRazorCodeGenerator(razorHost.DefaultClassName, razorHost.DefaultNamespace, path, razorHost); razorHost.CodeGenerator.GenerateLinePragmas = razorHost.EnableLinePragmas; razorHost.Parser = new MvcCSharpRazorCodeParser(); }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { base.Initialize(razorHost, directives); _isSpecialPage = IsSpecialPage(razorHost.FullPath); FixupDefaultClassNameIfTemplate(razorHost); // The CSharpRazorCodeGenerator decides to generate line pragmas based on if the file path is available. Set it to an empty string if we // do not want to generate them. string path = razorHost.EnableLinePragmas ? razorHost.FullPath : String.Empty; razorHost.CodeGenerator = new CSharpRazorCodeGenerator(razorHost.DefaultClassName, razorHost.DefaultNamespace, path, razorHost); razorHost.CodeGenerator.GenerateLinePragmas = razorHost.EnableLinePragmas; razorHost.Parser = new MvcCSharpRazorCodeParser(); }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { string typeVisibility; if (directives.TryGetValue(TypeVisibilityKey, out typeVisibility)) { _transformers.Add(new SetTypeVisibility(typeVisibility)); } string typeNamespace; if (directives.TryGetValue(NamespaceKey, out typeNamespace)) { _transformers.Add(new SetTypeNamespace(typeNamespace)); } if (ReadSwitchValue(directives, DisableLinePragmasKey) == true) { razorHost.EnableLinePragmas = false; } else if (ReadSwitchValue(directives, GenerateAbsolutePathLinePragmas) != true) { // Rewrite line pragamas to generate bin relative paths instead of absolute paths. _transformers.Add(new RewriteLinePragmas()); } if (ReadSwitchValue(directives, TrimLeadingUnderscoresKey) != false) { // This should in theory be a different transformer. razorHost.DefaultClassName = razorHost.DefaultClassName.TrimStart('_'); } if (ReadSwitchValue(directives, ExcludeFromCodeCoverage) == true) { _transformers.Add(new ExcludeFromCodeCoverageTransformer()); } string suffix; if (directives.TryGetValue(SuffixFileName, out suffix)) { _transformers.Add(new SuffixFileNameTransformer(suffix)); } base.Initialize(razorHost, directives); }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { var fileName = Path.GetFileNameWithoutExtension(razorHost.ProjectRelativePath); var className = ParserHelpers.SanitizeClassName(fileName); if (_trimLeadingUnderscores) { className = className.TrimStart('_'); } razorHost.DefaultClassName = className; // When generating pretty type names, if we also have ItemNamespace from VS, use it. string vsNamespace; if (directives.TryGetValue(VsNamespaceKey, out vsNamespace) && !string.IsNullOrEmpty(vsNamespace)) { razorHost.DefaultNamespace = vsNamespace; } }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { string typeVisibility; if (directives.TryGetValue(TypeVisibilityKey, out typeVisibility)) { _transformers.Add(new SetTypeVisibility(typeVisibility)); } string typeNamespace; if (directives.TryGetValue(NamespaceKey, out typeNamespace)) { _transformers.Add(new SetTypeNamespace(typeNamespace)); } if (ReadSwitchValue(directives, DisableLinePragmasKey) == true) { razorHost.EnableLinePragmas = false; } else if (ReadSwitchValue(directives, GenerateAbsolutePathLinePragmas) != true) { // Rewrite line pragamas to generate bin relative paths instead of absolute paths. _transformers.Add(new RewriteLinePragmas()); } if (ReadSwitchValue(directives, TrimLeadingUnderscoresKey) != false) { // This should in theory be a different transformer. razorHost.DefaultClassName = razorHost.DefaultClassName.TrimStart('_'); } if (ReadSwitchValue(directives, ExcludeFromCodeCoverage) == true) { _transformers.Add(new ExcludeFromCodeCoverageTransformer()); } string suffix; if (directives.TryGetValue(SuffixFileName, out suffix)) { _transformers.Add(new SuffixFileNameTransformer(suffix)); } base.Initialize(razorHost, directives); }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { var fileName = Path.GetFileNameWithoutExtension(razorHost.ProjectRelativePath); var className = ParserHelpers.SanitizeClassName(fileName); if (_trimLeadingUnderscores) { className = className.TrimStart('_'); } razorHost.DefaultClassName = className; // When generating pretty type names, if we also have ItemNamespace from VS, use it. string vsNamespace; if (directives.TryGetValue(VsNamespaceKey, out vsNamespace) && !string.IsNullOrEmpty(vsNamespace)) { razorHost.DefaultNamespace = vsNamespace; } }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { base.Initialize(razorHost, directives); switch (razorHost.CodeLanguage.LanguageName) { case "csharp": razorHost.CodeGenerator = new MvcCSharpCodeGenerator(razorHost.DefaultClassName, razorHost.DefaultBaseClass, razorHost.DefaultNamespace, razorHost.FullPath, razorHost); razorHost.CodeGenerator.GenerateLinePragmas = razorHost.EnableLinePragmas; razorHost.Parser = new MvcCSharpRazorCodeParser(); break; case "vb": razorHost.CodeGenerator = new MvcVBDotNetCodeGenerator(razorHost.DefaultClassName, razorHost.DefaultBaseClass, razorHost.DefaultNamespace, razorHost.FullPath, razorHost); razorHost.CodeGenerator.GenerateLinePragmas = razorHost.EnableLinePragmas; razorHost.Parser = new MvcVBRazorCodeParser(); break; default: throw new ArgumentOutOfRangeException("Unknown language - " + razorHost.CodeLanguage.LanguageName); } }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { _projectRelativePath = razorHost.ProjectRelativePath; directives.TryGetValue(VirtualPathDirectiveKey, out _overriddenVirtualPath); }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { _projectRelativePath = razorHost.ProjectRelativePath; directives.TryGetValue(VirtualPathDirectiveKey, out _overriddenVirtualPath); }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { razorHost.StaticHelpers = true; }
public MvcCSharpCodeGenerator(string className, string baseClass, string rootNamespaceName, string sourceFileName, RazorHost host) : base(className, rootNamespaceName, sourceFileName, host) { string baseType; if (IsSpecialPage(sourceFileName)) { baseType = typeof(ViewStartPage).FullName; } else { baseType = host.CodeLanguageUtil.BuildGenericTypeReference(baseClass, new string[] { host.CodeLanguageUtil.DefaultModelTypeName }); } SetBaseType(baseType); }
public override void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { razorHost.DefaultNamespace = _namespace; }
public override void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { razorHost.DefaultNamespace = _namespace; }
public virtual void Initialize(RazorHost razorHost, IDictionary<string, string> directives) { // do nothing }
public virtual void Initialize(RazorHost razorHost, IDictionary <string, string> directives) { _razorHost = razorHost; // do nothing }