Подсветка синтаксиса в "текстовых" редакторах
От: hrom  
Дата: 11.05.05 17:02
Оценка:
Как осуществить быструю подсветку синтаксиса больших текстов ?



Я делаю это в C# с компонентом System.Windows.Forms.RichTextBox так:


richTextBox1.LoadFile("text.txt",RichTextBoxStreamType.PlainText); // загружаю файл в обычном текстовом формате

char []masRtf; // обьявляю массив для текста (в формате RTF)

modRtfText=richTextBox1.Rtf.ToCharArray(); // копирую RTF текст в массив

... // в этом месте я перебираю массив []masRtf и вставляю в нужные мне места теги,
... // определяющие шрифт и цвет текста.


StringBuilder tmp=new StringBuilder(); // это для быстрого
tmp.Append(masRtf); // перевода из (char[]) в (string)

richTextBox1.Rtf=tmp.ToString(); // копирую мною перебраный текст в формате RTF в richTextBox1.Rtf,
// эта операция занимает очень много времени



Как это делают нормальные люди ?
Re: Подсветка синтаксиса в "текстовых" редакторах
От: BkmzBIN Беларусь  
Дата: 11.05.05 19:55
Оценка:
Здравствуйте, hrom, Вы писали:


H> Как осуществить быструю подсветку синтаксиса больших текстов ?

<...>
H> Как это делают нормальные люди ?

Может стоит посмотреть в сторону http://sourceforge.net/projects/scintilla/

Scintilla is a free source code editing component. As well as common editor features, Scintilla includes features useful for editing and debugging source code. These include support for syntax styling, error indicators, code completion and call tips.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Подсветка синтаксиса в "текстовых" редакторах
От: Carc Россия http://www.amlpages.com/home.php
Дата: 12.05.05 16:54
Оценка:
Здравствуйте, hrom, Вы писали:


H> Как осуществить быструю подсветку синтаксиса больших текстов ?




H> Я делаю это в C# с компонентом System.Windows.Forms.RichTextBox так:



H> richTextBox1.LoadFile("text.txt",RichTextBoxStreamType.PlainText); // загружаю файл в обычном текстовом формате


H> char []masRtf; // обьявляю массив для текста (в формате RTF)


H> modRtfText=richTextBox1.Rtf.ToCharArray(); // копирую RTF текст в массив


H> ... // в этом месте я перебираю массив []masRtf и вставляю в нужные мне места теги,

H> ... // определяющие шрифт и цвет текста.


H> StringBuilder tmp=new StringBuilder(); // это для быстрого

H> tmp.Append(masRtf); // перевода из (char[]) в (string)

H> richTextBox1.Rtf=tmp.ToString(); // копирую мною перебраный текст в формате RTF в richTextBox1.Rtf,

H> // эта операция занимает очень много времени
1) слишком много копирования...
2) может искать текст непосредственно в RichEdit?
3) подсвечивать только видимый текст , можно перехватывать Scroll события и соответственно разирисовывать только выделенный цвет.
в принципе я делал именно так — на связке WinAPI+TOM, в принципе результат более менее приемлемый. Но код ессесна на VC


H> Как это делают нормальные люди ?
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.