public static void Initialize() { //load every syntax definition in the /syntax folder foreach (FileInfo f in new DirectoryInfo("./syntax").GetFiles()) { if (f.Extension.ToLower() != ".syn") { continue; } Array.Resize(ref p_SyntaxDefinitions, p_SyntaxDefinitions.Length + 1); Array.Resize(ref p_SyntaxNames, p_SyntaxNames.Length + 1); Array.Resize(ref p_SyntaxDefinitionFilenames, p_SyntaxDefinitionFilenames.Length + 1); p_SyntaxDefinitions[p_SyntaxDefinitions.Length - 1] = SyntaxDefinition.FromSyntaxFile(f.FullName); p_SyntaxNames[p_SyntaxNames.Length - 1] = f.Name.Replace(f.Extension, "").ToLower(); p_SyntaxDefinitionFilenames[p_SyntaxDefinitionFilenames.Length - 1] = f.FullName; //apply the style set applyStyle( p_SyntaxDefinitions[p_SyntaxDefinitions.Length - 1].Styles, Color.FromArgb(255, 34, 40, 42), Color.White ); } //trigger initialization of the syntax highlighter core new SyntaxBoxControl().Dispose(); }
private SourceCodePrintDocument getPrintDocument(string name) { //get the filename for the syntax definition so we can //reload it and apply our own styleset for printing. int index = Array.IndexOf(p_SyntaxDefinitions, p_SyntaxDefinition); string filename = p_SyntaxDefinitionFilenames[index]; //load the syntax defintion SyntaxDefinition definition = SyntaxDefinition.FromSyntaxFile(filename); applyStyle(definition.Styles, Color.White, Color.Black); //clone the current document under the new syntax definitions SyntaxDocument document = new SyntaxDocument(); document.Parser.Init(definition); document.Text = Contents; //return a printable document return(new SourceCodePrintDocument() { Document = document, DocumentName = name }); }