Example #1
0
        /// <summary>
        /// Creates an <see cref="ICodeSnippetFolder"/> and initializes it with some sample code snippets from embedded resources.
        /// </summary>
        /// <returns>The <see cref="ICodeSnippetFolder"/> that was loaded.</returns>
        public static ICodeSnippetFolder LoadSampleJavascriptCodeSnippetsFromResources()
        {
            // NOTE: If you have file system access, the static CodeSnippetFolder.LoadFrom(path) method easily
            //       loads snippets within a specified file path and should be used instead

            string[] rootPaths = new string[] {
                SnippetsPath + "Javascript.JavascriptFor.snippet",
                SnippetsPath + "Javascript.JavascriptWhile.snippet",
            };
            ICodeSnippetFolder rootFolder = LoadCodeSnippetFolderFromResources("Root", rootPaths);

            return(rootFolder);
        }
Example #2
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////
        // OBJECT
        /////////////////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Initializes an instance of the <c>MainControl</c> class.
        /// </summary>
        public MainControl()
        {
            InitializeComponent();

            // Load a language from a language definition
            editor.Document.Language = SyntaxEditorHelper.LoadLanguageDefinitionFromResourceStream("JavaScript.langdef");

            // Register a code snippet provider that has several snippets available
            ICodeSnippetFolder snippetFolder = SyntaxEditorHelper.LoadSampleJavascriptCodeSnippetsFromResources();

            editor.Document.Language.RegisterService(new CodeSnippetProvider()
            {
                RootFolder = snippetFolder
            });

            // Ensure all classification types and related styles have been registered
            //   since classification types are used for code snippet field display
            new DisplayItemClassificationTypeProvider().RegisterAll();
        }
Example #3
0
        /// <summary>
        /// Creates an <see cref="ICodeSnippetFolder"/> and initializes it with some sample code snippets from embedded resources.
        /// </summary>
        /// <returns>The <see cref="ICodeSnippetFolder"/> that was loaded.</returns>
        public static ICodeSnippetFolder LoadSampleVBCodeSnippetsFromResources()
        {
            // NOTE: If you have file system access, the static CodeSnippetFolder.LoadFrom(path) method easily
            //       loads snippets within a specified file path and should be used instead

            string[] childPaths = new string[] {
                SnippetsPath + "VB.Sample_Child_Folder.VBWhile.snippet",
            };
            ICodeSnippetFolder childFolder = LoadCodeSnippetFolderFromResources("Sample Child Folder", childPaths);

            string[] rootPaths = new string[] {
                SnippetsPath + "VB.VBFor.snippet",
                SnippetsPath + "VB.VBSelect.snippet",
            };
            ICodeSnippetFolder rootFolder = LoadCodeSnippetFolderFromResources("Root", rootPaths);

            rootFolder.Folders.Add(childFolder);
            return(rootFolder);
        }
        /// <summary>
        /// Loads a language definition.
        /// </summary>
        /// <param name="languageKey">The key that identifies the language.</param>
        private void LoadLanguage(string languageKey)
        {
            // Clear errors and document outline
            errorListView.ItemsSource = null;
            astOutputEditor.Document.SetText("(Language may not have AST building features)");

            switch (languageKey)
            {
            case "Assembly":
                this.LoadLanguageDefinitionFromFile("Assembly.langdef");
                break;

            case "Batch file":
                this.LoadLanguageDefinitionFromFile("BatchFile.langdef");
                break;

            case "C":
                this.LoadLanguageDefinitionFromFile("C.langdef");
                break;

            case "C#":
                this.LoadLanguageDefinitionFromFile("CSharp.langdef");
                editor.Document.Language.RegisterLineCommenter(new LineBasedLineCommenter()
                {
                    StartDelimiter = "//"
                });
                break;

            case "C# (in .NET Languages Add-on)": {
                // .NET Languages Add-on C# language
                var language = new ActiproSoftware.Text.Languages.CSharp.Implementation.CSharpSyntaxLanguage();
                language.RegisterService <ActiproSoftware.Text.Languages.DotNet.Reflection.IProjectAssembly>(cSharpProjectAssembly);
                this.LoadLanguage(language);

                // Register a code snippet provider that has several snippets available
                ICodeSnippetFolder snippetFolder = SyntaxEditorHelper.LoadSampleCSharpCodeSnippetsFromResources();
                editor.Document.Language.RegisterService(new ActiproSoftware.Text.Languages.CSharp.Implementation.CSharpCodeSnippetProvider()
                    {
                        RootFolder = snippetFolder
                    });
                break;
            }

            case "C++":
                this.LoadLanguageDefinitionFromFile("Cpp.langdef");
                break;

            case "CSS":
                this.LoadLanguageDefinitionFromFile("Css.langdef");
                break;

            case "Custom...":
                this.LoadLanguageDefinitionFromFile(null);
                break;

            case "HTML":
                this.LoadLanguageDefinitionFromFile("Html.langdef");
                editor.Document.Language.RegisterLineCommenter(new RangeLineCommenter()
                {
                    StartDelimiter = "<!--", EndDelimiter = "-->"
                });
                break;

            case "INI file":
                this.LoadLanguageDefinitionFromFile("IniFile.langdef");
                break;

            case "Java":
                this.LoadLanguageDefinitionFromFile("Java.langdef");
                editor.Document.Language.RegisterLineCommenter(new LineBasedLineCommenter()
                {
                    StartDelimiter = "//"
                });
                break;

            case "JavaScript":
                this.LoadLanguageDefinitionFromFile("JavaScript.langdef");
                editor.Document.Language.RegisterLineCommenter(new LineBasedLineCommenter()
                {
                    StartDelimiter = "//"
                });
                break;

            case "JavaScript (in Web Languages Add-on)":
                // Web Languages Add-on JavaScript language
                this.LoadLanguage(new ActiproSoftware.Text.Languages.JavaScript.Implementation.JavaScriptSyntaxLanguage());
                break;

            case "JSON (in Web Languages Add-on)":
                // Web Languages Add-on JSON language
                this.LoadLanguage(new ActiproSoftware.Text.Languages.JavaScript.Implementation.JsonSyntaxLanguage());
                break;

            case "Lua":
                this.LoadLanguageDefinitionFromFile("Lua.langdef");
                break;

            case "Markdown":
                this.LoadLanguageDefinitionFromFile("Markdown.langdef");
                break;

            case "MSIL":
                this.LoadLanguageDefinitionFromFile("Msil.langdef");
                break;

            case "Pascal":
                this.LoadLanguageDefinitionFromFile("Pascal.langdef");
                break;

            case "Perl":
                this.LoadLanguageDefinitionFromFile("Perl.langdef");
                break;

            case "PHP":
                this.LoadLanguageDefinitionFromFile("Php.langdef");
                break;

            case "PowerShell":
                this.LoadLanguageDefinitionFromFile("PowerShell.langdef");
                break;

            case "Python":
                this.LoadLanguageDefinitionFromFile("Python.langdef");
                break;

            case "Python v2.x (in Python Language Add-on)":
                // Python Language Add-on Python language
                this.LoadLanguage(new ActiproSoftware.Text.Languages.Python.Implementation.PythonSyntaxLanguage(ActiproSoftware.Text.Languages.Python.PythonVersion.Version2));
                break;

            case "Python v3.x (in Python Language Add-on)":
                // Python Language Add-on Python language
                this.LoadLanguage(new ActiproSoftware.Text.Languages.Python.Implementation.PythonSyntaxLanguage(ActiproSoftware.Text.Languages.Python.PythonVersion.Version3));
                break;

            case "RTF":
                this.LoadLanguageDefinitionFromFile("Rtf.langdef");
                break;

            case "Ruby":
                this.LoadLanguageDefinitionFromFile("Ruby.langdef");
                break;

            case "SQL":
                this.LoadLanguageDefinitionFromFile("Sql.langdef");
                break;

            case "VB":
                this.LoadLanguageDefinitionFromFile("VB.langdef");
                editor.Document.Language.RegisterLineCommenter(new LineBasedLineCommenter()
                {
                    StartDelimiter = "'"
                });
                break;

            case "VB (in .NET Languages Add-on)": {
                // .NET Languages Add-on VB language
                var language = new ActiproSoftware.Text.Languages.VB.Implementation.VBSyntaxLanguage();
                language.RegisterService <ActiproSoftware.Text.Languages.DotNet.Reflection.IProjectAssembly>(vbProjectAssembly);
                this.LoadLanguage(language);

                // Register a code snippet provider that has several snippets available
                ICodeSnippetFolder snippetFolder = SyntaxEditorHelper.LoadSampleVBCodeSnippetsFromResources();
                editor.Document.Language.RegisterService(new ActiproSoftware.Text.Languages.VB.Implementation.VBCodeSnippetProvider()
                    {
                        RootFolder = snippetFolder
                    });
                break;
            }

            case "VBScript":
                this.LoadLanguageDefinitionFromFile("VBScript.langdef");
                break;

            case "XAML":
                this.LoadLanguageDefinitionFromFile("Xaml.langdef");
                editor.Document.Language.RegisterLineCommenter(new RangeLineCommenter()
                {
                    StartDelimiter = "<!--", EndDelimiter = "-->"
                });
                break;

            case "XML":
                this.LoadLanguageDefinitionFromFile("Xml.langdef");
                editor.Document.Language.RegisterLineCommenter(new RangeLineCommenter()
                {
                    StartDelimiter = "<!--", EndDelimiter = "-->"
                });
                break;

            case "XML (in Web Languages Add-on)":
                // Web Languages Add-on XML language
                this.LoadLanguage(new ActiproSoftware.Text.Languages.Xml.Implementation.XmlSyntaxLanguage());
                break;

            default:
                // Plain text
                this.LoadLanguage(SyntaxLanguage.PlainText);
                break;
            }
        }