Diskuze: IDE-like text editor
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zkusil bych si upravit RichTextBox, je na to spousta článků.
Třeba jeden zde: http://www.codeproject.com/…-RichTextBox
Jinak, mrkni na "FastColoredTextBox", ten pomocí regexů už kód zabarvuje přímo (ukládá si text ve formě tokenů = třída se znakem, pozicí, a barvou, co jsem tak pochytil)
Díky ti. Zrovna na tvojem webu jsem našel tvoje vlastní IDE a chtěl jsem
taky umět zbastlit něco podobného
Jinak ještě se barví zelenou třídy, struktury atd. To máš jak
pořešené? Já bych si udělal List, a do něho vytáhl ze všech
referencovaných knihoven reflexí, a potom tam přidával to, co vyrobíš v
tom konkrétním projektu samotném, ale je to dobrý nápad?
No problem, m8.
Právě ten můj SandboxSharp je založen na FastColoredTextBox, jen jsem k
němu pochytil pár regexů.
To, že to zabarvuje třídy je jenom díky tomu regexu, není za tím žádná
reflexe.
Kdybych to ale já měl zabarvovat na základě metadat vytáhlých z knihoven, udělal bych to opačným směrem, zkoumal bych regexem možné názvy, které by mohly být zabarveny, a v případě existence toho názvu bych ho zabarvil.
Protože teď si představ, jak ten tebou zmíněný List bude obrovský, když tam napráskáš názvy všeho, co existuje.
No právě List by byl obrovský, ale jak v tom případě funguje Intellisense ? Ve VS siskneš Crl + Space, a vyletí nabídka snad úplně všeho, tak odkud to tahá?
Tak... Nějaký seznam to určitě bude, ale bude určitě
optimalizovanější než seznam klasický.
Ne, jinak.
O reflexi napsaného kódu a knihoven se ve VSku stará knihovna Microsoft CTP ("Roslyn"), která si nějaká ta metadata vybuduje, ale ten seznam není přístupný přímo, je přístupný pomocí metody.
Ta kolekce těch metadat je sice velká, ale určitě je optimalizovaná.
Ale ve chvíli, když ty vytáhneš seznam všech přístupných členů, musíš ho někam uložit, tudíž alokuješ další místo v paměti.
Je tedy lepší se ptát na existenci nějakého člena, než procházet obří seznam.
Zobrazeno 6 zpráv z 6.