Sign in Join
Wiki copytemporary

SynEdit Markup/pl: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: SynEdit Markup/pl

OldNewLine
1+Aby uzyskać więcej informacji na temat SynEdit, przejdź do: [[SynEdit/pl|SynEdit]]\
2+Ta strona jest wersją roboczą....
3+
4+# Terminologia
5+
6+Coloring (Kolorowanie)
7+Stosowanie atrybutów do tekstu. Kolor tekstu i tła, pogrubienie, kursywa, podkreślenie, kolorowa ramka lub częściowa ramka (w tym linia zygzakowata). Nazywane także **podświetlaniem**, chociaż termin ten jest niejednoznaczny, ponieważ może odnosić się albo do całego kolorowania, albo tylko do kolorowania za pomocą podświetlacza.
8+
9+Highligher (Podświetlacz)
10+[[SynEdit Highlighter/pl|Podświetlacz SynEdit]]
11+
12+Markup (Znacznik)
13+TSynEditMarkup
14+
15+token (token)
16+Fragment tekstu. Zwykle część linii. Może to dotyczyć granic słów, ale także sięgać do poszczególnych liter.
17+
18+# O TSynEditMarkup
19+
20+TSynEditMarkup pozwala na zmianę kolorystyki zapewnianej przez Podświetlacz.
21+
22+Używany jest głównie do:
23+
24+- kolorowania zaznaczenia
25+- kolorowania bieżącej linii
26+- kolorowania specjalnych linii (błąd, punkt przerwania...)
27+- kolorowania pasujących nawiasów „()”
28+- kolorowania „ctrl links” =\> kiedy możesz kliknąć identyfikator, aby przejść do jego deklaracji
29+- kolorowania bieżącego słowa (słowo w karetce)
30+- dopasowania kolorystyki początku/końca bloku
31+- kolorowania „lowlight” nieaktywne ifdef (przy użyciu codetools)
32+
33+i więcej
34+
35+# Skąd pobierany jest kolor
36+
37+Metoda malowania SynEdits pobiera tekst w postaci „tokenu”.
38+
39+Głównym źródłem tych tokenów jest Podświetlacz. Np. w wierszu:
40+
41+``` pascal
42+a := 1; // komentarz
43+```
44+
45+Tokeny reprezentują
46+
47+- "a " normalny tekst
48+- ":=" symbol (pomalowany na inny kolor)
49+- " " normalny tekst
50+- "1" numer (pomalowany w innym kolorze)
51+- ";" symbol (pomalowany na inny kolor)
52+- " " normalny tekst
53+- "// komentarz" komentarz (pomalowany na inny kolor)
54+
55+Zobacz także [[SynEdit Highlighter/pl|Podświetlacz SynEdit]].
56+
57+Te tokeny są pobierane za pośrednictwem listy TLazSynDisplayView (w połączeniu z opakowaniami TSynEditStrings bufora TextBuffer). Nie ma to znaczenia przy kolorowaniu. Chociaż TLazSynDisplayView może zmienić kolor.
58+
59+Każdy token jest następnie wprowadzany na listę TSynEditMarkup. Każdy TSynEditMarkup może zdefiniować dodatkowe kolorowanie. Jeśli tak się stanie, tokeny zostaną podzielone na mniejsze części, a kolory zostaną połączone/wymieszane/wymienione w razie potrzeby.
60+
61+# TSynEditMarkup
62+
63+TODO
64+
65+Podczas malowania wywoływane są następujące metody
66+
67+*
68+
69+``` pascal
70+ Procedure PrepareMarkupForRow(aRow : Integer); virtual;
71+ Procedure FinishMarkupForRow(aRow : Integer); virtual;
72+```
73+
74+*
75+
76+``` pascal
77+ Procedure BeginMarkup; virtual;
78+ Procedure EndMarkup; virtual;
79+```
80+
81+*
82+
83+``` pascal
84+ Procedure GetNextMarkupColAfterRowCol(const aRow: Integer;
85+ const aStartCol: TLazSynDisplayTokenBound;
86+ const AnRtlInfo: TLazSynDisplayRtlInfo;
87+ out ANextPhys, ANextLog: Integer); virtual; abstract;
88+```
89+
90+Biorąc pod uwagę bieżącą pozycję (numer linii malowania ARow, X jest określony w AStartCol), to znacznik musi ustawić ANextPhys lub ANextLog na następną pozycję X, w której chce zmienić kolorowanie.
91+
92+Jeśli znacznik chce zmienić tekst na pogrubiony z X=5 na X=10 i X=15 na X=20, to
93+
94+- dla dowolnego AStartCol w zakresie od 1 do 4 =\> ANext... = 5 (przełącz na pogrubienie w punkcie 5)
95+- dla dowolnego AStartCol w zakresie od 5 do 9 =\> ANext... = 10 (przełącz na brak modyfikacji przy 10)
96+- dla dowolnego AStartCol w zakresie od 10 do 14 =\> ANext... = 15 (przełącz na pogrubienie przy 15)
97+- dla dowolnego AStartCol w zakresie od 15 do 19 =\> ANext... = 20 (przełącz na brak modyfikacji przy 20)
98+
99+*
100+
101+``` pascal
102+ Function GetMarkupAttributeAtRowCol(const aRow: Integer;
103+ const aStartCol: TLazSynDisplayTokenBound;
104+ const AnRtlInfo: TLazSynDisplayRtlInfo) : TSynSelectedColor; virtual; abstract;
105+```
106+
107+Jeśli AStartCol mieści się w jakimkolwiek zakresie, w którym znacznik chce zmienić kolor, musi zwrócić poprawną * dla dowolnego AStartCol w zakresie od 5 do 9 =\> ANext... = 10 (przełącz na brak modyfikacji przy 10)
108+
109+# Zobacz także
110+
111+- <https://forum.lazarus.freepascal.org/index.php/topic,47778.msg342734.html#msg342734>
112+
113+---
114+*From the Free Pascal wiki, page "SynEdit Markup/pl", as it stood on 2024-03-12 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
115+Category: Components
116+Category: Lazarus
117+Category: SynEdit

Back to history