コード例 #1
0
        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();
            }
        }
コード例 #2
0
ファイル: Templates.cs プロジェクト: uQr/Visual-NHibernate
        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;
            }
        }
コード例 #3
-1
ファイル: NamingEditor.cs プロジェクト: uQr/Visual-NHibernate
        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();
        }