/// <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); }
///////////////////////////////////////////////////////////////////////////////////////////////////// // 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(); }
/// <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; } }