Пример #1
0
    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();
    }
Пример #2
0
    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
        });
    }