Eto.Designer.BuilderInfo.GetBuilders C# (CSharp) Method

GetBuilders() static private method

static private GetBuilders ( ) : IEnumerable
return IEnumerable
		static IEnumerable<BuilderInfo> GetBuilders()
		{
			var csBuilder = new BuilderInfo
			{
				Extension = ".eto.cs",
				DesignExtension = "^.+(?<![jx]eto)[.]cs$",
				CreateBuilder = () => new CSharpInterfaceBuilder(),
				GetCodeFile = fileName => Regex.Replace(fileName, @"(.+)[.]eto([.]cs)", "$1$2"),
				GetDesignFile = fileName => Regex.Replace(fileName, @"(.+)([.]cs)", "$1.eto$2")
			};
			var vbBuilder = new BuilderInfo
			{
				Extension = ".eto.vb",
				DesignExtension = "^.+(?<![jx]eto)[.]vb$",
				CreateBuilder = () => new VbInterfaceBuilder(),
				GetCodeFile = fileName => Regex.Replace(fileName, @"(.+)[.]eto([.]vb)", "$1$2"),
				GetDesignFile = fileName => Regex.Replace(fileName, @"(.+)([.]vb)", "$1.eto$2")
			};

			if (EtoEnvironment.Platform.IsWindows)
			{
				// use Roslyn on windows only, for now
				csBuilder.CreateBuilder = () => new RoslynCSharpInterfaceBuilder();
				vbBuilder.CreateBuilder = () => new RoslynVbInterfaceBuilder();
			}
			yield return csBuilder;
			yield return vbBuilder;

			yield return new BuilderInfo
			{
				Extension = ".eto.fs",
				DesignExtension = "^.+(?<![jx]eto)[.]fs$",
				CreateBuilder = () => new FSharpInterfaceBuilder(),
				GetCodeFile = fileName => Regex.Replace(fileName, @"(.+)[.]eto([.]fs)", "$1$2"),
				GetDesignFile = fileName => Regex.Replace(fileName, @"(.+)([.]fs)", "$1.eto$2")
			};
			yield return new BuilderInfo
			{
				Extension = ".xeto",
				DesignExtension = "^.+[.]xeto[.](cs|fs|vb)$",
				CreateBuilder = () => new XamlInterfaceBuilder(),
				GetCodeFile = fileName => fileName + ".cs",
				GetDesignFile = fileName => Regex.Replace(fileName, @"(.+[.]xeto)[.]cs", "$1")
			};
			yield return new BuilderInfo
			{
				Extension = ".jeto",
				DesignExtension = "^.+[.]jeto[.](cs|fs|vb)$",
				CreateBuilder = () => new JsonInterfaceBuilder(),
				GetCodeFile = fileName => fileName + ".cs",
				GetDesignFile = fileName => Regex.Replace(fileName, @"(.+[.]jeto)[.]cs", "$1")
			};
		}
		static List<BuilderInfo> builders => GetBuilders().ToList();