Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [ TEST ]WebDoc Generator( +Подсветка синтаксиса ) (http://forum.oszone.net/showthread.php?t=122281)

___oj 07-11-2008 20:04 946253

[ TEST ]WebDoc Generator( +Подсветка синтаксиса )
 
Вложений: 2
Программа для генерирования HTML документа из Исходного текста на языке программирования.

Новое слово в программах данной категории! Те кто знают CSS, могут использовать всю его мощ для подсветки синтаксиса.

Получилась достаточно интересная програвмма, поэтому решил поделиться. Обнаружилось что можно не хило разкрасить документ, например как на скрине:

Обновил архив: проработал обработку директив препроцессора для Cpp.
параметры такие:
ключ -Fимя_файла задает имя файла
комманда CNT включает счетчик строк

Обновил архив: Обнаружил баги, кот-ые мешали конфигурировать программу для других языков. Создал и слегка потестировал обработку исходников .PY (Питона). Добавил Help по одному из ключей /? -? /h -h ? h

pva 08-11-2008 14:45 946923

сделай чтобы на ключ /? откликалась

Busla 08-11-2008 18:37 947140

скрин - убийственный

___oj 10-11-2008 07:36 948266

pva, Сделал, теперь откликается. )

Admiral 31-08-2010 14:16 1485630

Ещё одна вариация на тему, с поддержкой C#, VB, HTML, XML, T-SQL, MSH (Monad)
http://www.manoli.net/csharpformat/

Для переделки под форумные посты(BB-Cod), в частности для движка vBulletin, на котором работает конференция, необходимо изменить в файле CodeFormat.cs
Код:

sb.Append("<span class=\"rem\">");
        sb.Append("[color=#008000]");
sb.Append("</span>");
        sb.Append("[/color]");
return "<span class=\"str\">" + match.ToString() + "</span>";
        return "[color=#a31515]" + match.ToString() + "[/color]";
return "<span class=\"preproc\">" + match.ToString() + "</span>";
        return "[font color=#cc6633]" + match.ToString() + "[/color]";
return "<span class=\"kwrd\">" + match.ToString() + "</span>";
        return "[color=#0000ff]" + match.ToString() + "[/color]";

и SourceFormat.cs.
sb.Append("<pre class=\"csharpcode\">\n");
->sb.Append("[code]");
sb.Append("</pre>");
->sb.Append("[/code]");

-> указывает на что заменить (так как в не code табуляция не видна, а вложенное в [code] - [noparse] не даёт сработать первому), сам "->" копировать не надо.

Создать новый WinForm проект, добавить или файлы исходника (с заменёнными строками), или отдельно собранную библиотеку по изменённому коду. Создать файл Form1.cs с таким кодом
Код:

using System;
using System.Drawing;
using System.Windows.Forms;

class Form1 : Form
{
    RichTextBox RichTextBox1 = new RichTextBox();
    Button Button1 = new Button();
    public static new void Main()
    {
        Application.Run(new Form1());
    }
    public Form1()
    {
        Text = "CSharp|VBLikeFormat";
        MaximizeBox = false;
        FormBorderStyle = FormBorderStyle.FixedDialog;
        {
            RichTextBox1.Parent = this;
            RichTextBox1.Location = Point.Empty;
            RichTextBox1.Size = ClientSize - new Size(0, 25);
        }
        {
            Button1.Parent = this;
            Button1.Location = new Point(RichTextBox1.Size - new Size(ClientSize.Width, 0));
            Button1.Size = new Size(ClientSize.Width, 25);
            Button1.Text = "Apply";
        }
        Button1.Click += Button1_Click;
    }
    public void Button1_Click(object sender, System.EventArgs e)
    {
        //Manoli.Utils.CSharpFormat.VisualBasicFormat VisualBasicFormat = new Manoli.Utils.CSharpFormat.VisualBasicFormat();
        //RichTextBox1.Text = VisualBasicFormat.FormatCode(RichTextBox1.Text);
        Manoli.Utils.CSharpFormat.CSharpFormat CSharpFormat = new Manoli.Utils.CSharpFormat.CSharpFormat();
        RichTextBox1.Text = CSharpFormat.FormatCode(RichTextBox1.Text);
    }
}

В файле Form1.cs приведён пример для VB.NET(закомментирован) и C#.


Время: 09:07.

Время: 09:07.
© OSzone.net 2001-