private void SetupIntelliSense() { // Start the parser service (only call this once at the start of your application) SemanticParserService.Start(); string temp = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), Branding.ProductName + Path.DirectorySeparatorChar + "Temp"); if (!Directory.Exists(temp)) { Directory.CreateDirectory(temp); } string intellisenseCacheDir = Path.Combine(temp, @"IntellisenseCacheModelScripts"); TempAssembliesDir = Path.Combine(temp, @"TempAssemblies"); if (!Directory.Exists(intellisenseCacheDir)) { Directory.CreateDirectory(intellisenseCacheDir); } dotNetProjectResolver.CachePath = intellisenseCacheDir; //AddMainFunctionAssemblyToProjectResolver(); ActiproSoftware.SyntaxEditor.Addons.CSharp.CSharpSyntaxLanguage cSharpLanguage = new ActiproSoftware.SyntaxEditor.Addons.CSharp.CSharpSyntaxLanguage(); syntaxEditorOffscreen.Document.Language = cSharpLanguage; syntaxEditorOffscreen.Document.LanguageData = dotNetProjectResolver; syntaxEditorOffscreen.Document.Filename = System.Guid.NewGuid().ToString() + ".cs"; ArchAngel.Common.Generator gen = new ArchAngel.Common.Generator(null, Controller.Instance.CurrentProject.TemplateLoader); gen.ClearAllDebugLines(); if (!backgroundWorkerAddReferences.IsBusy) { backgroundWorkerAddReferences.RunWorkerAsync(); } }
internal void Populate() { if (BusyPopulating) return; try { if (ArchAngel.Interfaces.SharedData.CurrentProject == null) return; BusyPopulating = true; if (ArchAngel.Interfaces.SharedData.CurrentProject != null) { if (ArchAngel.Interfaces.SharedData.CurrentProject.TemplateProject == null) ArchAngel.Interfaces.SharedData.CurrentProject.TemplateProject = ArchAngel.Common.UserTemplateHelper.GetDefaultTemplate(); TemplateProject = ArchAngel.Interfaces.SharedData.CurrentProject.TemplateProject; ArchAngel.Interfaces.SharedData.CurrentProject.InitialiseScriptObjects(); } if (TemplateProject == null) { comboBoxTemplates.SelectedIndex = 0; comboBoxDelimiter.SelectedIndex = 0; } else { for (int i = 0; i < comboBoxTemplates.Items.Count; i++) { if (comboBoxTemplates.Items[i] is string) continue; ArchAngel.Interfaces.Template.TemplateProject p = (ArchAngel.Interfaces.Template.TemplateProject)comboBoxTemplates.Items[i]; if (p.Name == TemplateProject.Name && p.IsOfficial == TemplateProject.IsOfficial) { comboBoxTemplates.SelectedIndex = i; break; } } if (TemplateProject.Delimiter == Interfaces.Template.TemplateProject.DelimiterTypes.ASP) comboBoxDelimiter.SelectedIndex = 0; else comboBoxDelimiter.SelectedIndex = 1; } PopulateTree(); PopulateStaticFiles(); #region Intellisense setup // Start the parser service (only call this once at the start of your application) SemanticParserService.Start(); string temp = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), Branding.ProductName + Path.DirectorySeparatorChar + "Temp"); if (!Directory.Exists(temp)) Directory.CreateDirectory(temp); string intellisenseCacheDir = Path.Combine(temp, @"IntellisenseCache"); TempAssembliesDir = Path.Combine(temp, @"TempAssemblies"); if (!Directory.Exists(intellisenseCacheDir)) Directory.CreateDirectory(intellisenseCacheDir); dotNetProjectResolver.CachePath = intellisenseCacheDir; //AddMainFunctionAssemblyToProjectResolver(); ActiproSoftware.SyntaxEditor.Addons.CSharp.CSharpSyntaxLanguage cSharpLanguage = new ActiproSoftware.SyntaxEditor.Addons.CSharp.CSharpSyntaxLanguage(); syntaxEditorOffscreen.Document.Language = cSharpLanguage; syntaxEditorOffscreen.Document.LanguageData = dotNetProjectResolver; syntaxEditorOffscreen.Document.Filename = System.Guid.NewGuid().ToString() + ".cs"; ArchAngel.Common.Generator gen = new ArchAngel.Common.Generator(null, Controller.Instance.CurrentProject.TemplateLoader); gen.ClearAllDebugLines(); if (!backgroundWorkerAddReferences.IsBusy) backgroundWorkerAddReferences.RunWorkerAsync(); #endregion IsPopulated = true; #region Compile to find errors string exeDir = Path.GetDirectoryName(Application.ExecutablePath); List<string> referencedAssemblies = new List<string>(); //referencedAssemblies.Add(Path.Combine(exeDir, "ArchAngel.Scripting.dll")); referencedAssemblies.Add(Path.Combine(exeDir, "ArchAngel.Interfaces.dll")); referencedAssemblies.Add(Path.Combine(exeDir, "ArchAngel.Providers.EntityModel.dll")); referencedAssemblies.Add(Path.Combine(exeDir, "ArchAngel.NHibernateHelper.dll")); #if DEBUG string path = Slyce.Common.RelativePaths.GetFullPath(System.Reflection.Assembly.GetExecutingAssembly().Location, @"..\..\..\..\3rd_Party_Libs\Inflector.Net.dll"); referencedAssemblies.Add(path); #else referencedAssemblies.Add(Path.Combine(exeDir, "Inflector.Net.dll")); #endif List<System.CodeDom.Compiler.CompilerError> compileErrors; gen.CompileCombinedAssembly(ArchAngel.Interfaces.SharedData.CurrentProject.TemplateProject, referencedAssemblies, null, out compileErrors, false, null); if (compileErrors.Count > 0) Instance_OnCompileErrors(compileErrors); #endregion } finally { BusyPopulating = false; } }
private void SetupIntelliSense() { // Start the parser service (only call this once at the start of your application) SemanticParserService.Start(); string temp = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), Branding.ProductName + Path.DirectorySeparatorChar + "Temp"); if (!Directory.Exists(temp)) Directory.CreateDirectory(temp); string intellisenseCacheDir = Path.Combine(temp, @"IntellisenseCacheModelScripts"); TempAssembliesDir = Path.Combine(temp, @"TempAssemblies"); if (!Directory.Exists(intellisenseCacheDir)) Directory.CreateDirectory(intellisenseCacheDir); dotNetProjectResolver.CachePath = intellisenseCacheDir; //AddMainFunctionAssemblyToProjectResolver(); ActiproSoftware.SyntaxEditor.Addons.CSharp.CSharpSyntaxLanguage cSharpLanguage = new ActiproSoftware.SyntaxEditor.Addons.CSharp.CSharpSyntaxLanguage(); syntaxEditorOffscreen.Document.Language = cSharpLanguage; syntaxEditorOffscreen.Document.LanguageData = dotNetProjectResolver; syntaxEditorOffscreen.Document.Filename = System.Guid.NewGuid().ToString() + ".cs"; ArchAngel.Common.Generator gen = new ArchAngel.Common.Generator(null, Controller.Instance.CurrentProject.TemplateLoader); gen.ClearAllDebugLines(); if (!backgroundWorkerAddReferences.IsBusy) backgroundWorkerAddReferences.RunWorkerAsync(); }