static bool ProjectNameIsLanguageKeyword(string language, string projectName) { if (String.IsNullOrEmpty(language)) { return(false); } LanguageBinding binding = LanguageBindingService.GetBindingPerLanguageName(language); if (binding != null) { var codeDomProvider = binding.GetCodeDomProvider(); if (codeDomProvider != null) { projectName = SanitisePotentialNamespace(projectName); if (projectName.Contains('.')) { return(NameIsLanguageKeyword(codeDomProvider, projectName.Split('.'))); } return(!codeDomProvider.IsValidIdentifier(projectName)); } } return(false); }
protected ILanguageBinding GetLanguageBinding(string language) { var binding = LanguageBindingService.GetBindingPerLanguageName(language); if (binding == null) { throw new InvalidOperationException("Language '" + language + "' not found"); } return(binding); }
internal static LanguageBinding GetLanguageBinding(string language) { var binding = LanguageBindingService.GetBindingPerLanguageName(language); if (binding == null) { throw new InvalidOperationException(GettextCatalog.GetString("Language '{0}' not found", language)); } return(binding); }
public void AddReference() { foreach (ListViewItem item in SelectedItems) { IProject project = (IProject)item.Tag; ILanguageBinding binding = LanguageBindingService.GetBindingPerLanguageName(project.Language); selectDialog.AddReference( project.Name, "Project", project.OutputAssemblyFullPath, new ProjectReferenceProjectItem(selectDialog.ConfigureProject, project) ); } }
public static Ambience GetAmbienceForLanguage(string languageName) { ILanguageBinding binding = LanguageBindingService.GetBindingPerLanguageName(languageName); if (binding != null) { return(GetAmbienceForFile(binding.GetFileName("a"))); } else { return(defaultAmbience); } }
public StringCollection GenerateFiles(string guiFolder) { StringCollection files = new StringCollection(); if (hasError) { return(files); } IDotNetLanguageBinding binding = LanguageBindingService.GetBindingPerLanguageName(project.LanguageName) as IDotNetLanguageBinding; CodeDomProvider provider = binding.GetCodeDomProvider(); if (provider == null) { throw new UserException("Code generation not supported for language: " + project.LanguageName); } // string path = Path.Combine (guiFolder, binding.GetFileName ("generated")); // if (!System.IO.File.Exists (path)) { // GuiBuilderService.SteticApp.GenerateProjectCode (path, "Stetic", provider, null); // } // files.Add (path); // // if (Windows != null) { // foreach (GuiBuilderWindow win in Windows) // files.Add (GuiBuilderService.GenerateSteticCodeStructure (project, win.RootWidget, true, false)); // } // // foreach (Stetic.ActionGroupInfo ag in SteticProject.ActionGroups) // files.Add (GuiBuilderService.GenerateSteticCodeStructure (project, ag, true, false)); GtkDesignInfo info = GtkDesignInfo.FromProject(project); string extension = string.Format("{0}.{1}", info.BuildFileExtension, provider.FileExtension); foreach (string file in Directory.GetFiles(guiFolder)) { if (file.Contains(extension)) { files.Add(file); } } return(files); }
public StringCollection GenerateFiles(string guiFolder) { StringCollection files = new StringCollection(); if (hasError) { return(files); } IDotNetLanguageBinding binding = LanguageBindingService.GetBindingPerLanguageName(project.LanguageName) as IDotNetLanguageBinding; string path = Path.Combine(guiFolder, binding.GetFileName("generated")); if (!System.IO.File.Exists(path)) { // Generate an empty build class CodeDomProvider provider = binding.GetCodeDomProvider(); if (provider == null) { throw new UserException("Code generation not supported for language: " + project.LanguageName); } GuiBuilderService.SteticApp.GenerateProjectCode(path, "Stetic", provider, null); } files.Add(path); if (Windows != null) { foreach (GuiBuilderWindow win in Windows) { files.Add(GuiBuilderService.GenerateSteticCodeStructure(project, win.RootWidget, true, false)); } } foreach (Stetic.ActionGroupInfo ag in SteticProject.ActionGroups) { files.Add(GuiBuilderService.GenerateSteticCodeStructure(project, ag, true, false)); } return(files); }
public override void ModifyTags(SolutionItem policyParent, Project project, string language, string identifier, string fileName, ref Dictionary <string, string> tags) { tags ["Doctype"] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"; //get a language binding IDotNetLanguageBinding langbinding = null; if (project == null) { langbinding = (IDotNetLanguageBinding)LanguageBindingService.GetBindingPerLanguageName(language); } else { DotNetProject dnp = (DotNetProject)project; langbinding = dnp.LanguageBinding; } // work out the ASP.NET language code. Although it's originally a hack around MD's VBNet language name // not corresponding to any of the valid ASP.NET codes, we also provide an interface that // non-core language bindings can implement to advertise that they support ASP.NET string languageCode = language; if (langbinding is IAspNetLanguageBinding) { languageCode = ((IAspNetLanguageBinding)langbinding).AspNetLanguageCode; } else if (language == "VBNet") { languageCode = "VB"; } else if (language != "C#") { LoggingService.LogWarning("The language binding '{0}' does not have explicit support for ASP.NET", language); } tags ["AspNetLanguage"] = languageCode; base.ModifyTags(policyParent, project, language, identifier, fileName, ref tags); //nothing after this point is relevant to tag substitution for filenames, //and some will even crash, so drop out now if (fileName == null) { return; } // Build tags for ${CodeRegion:#} substitutions foreach (string regionName in codeAreas.Keys) { var templ = (CodeTranslationFileDescriptionTemplate)codeAreas [regionName]; //makes CodeTranslationFile's internal name substitition easier var name = (string)tags ["Name"]; templ.GetFileName(policyParent, project, language, project == null? null :project.BaseDirectory, name); Stream stream = templ.CreateFileContent(policyParent, project, language, fileName, identifier); StreamReader reader = new StreamReader(stream); tags ["CodeRegion:" + regionName] = reader.ReadToEnd(); reader.Close(); stream.Close(); } }