
Çend meh berê min çap kir li ser Habr. Dibe ku hin ji we bala xwe bidin ku koda di gotarê de bi rengek neasayî rengîn e, û ya herî girîng, ew bi rengek rast hatî rengîn kirin, tevî vê yekê ku edîtorê nivîsê ya çêkirî ya li ser malperê piştgirî nade nîşankirina koda orîjînal û pir caran hêmanên xwe bi xeletî ronî dike. Di heman demê de, kod bi wêneyek nayê xistin, wekî ku hin nivîskarên bi tevahî bêhêvî dikin.
Di doza min de, tomarkirina nîşankirinê bi taybetî girîng bû ji ber ku gotar şirovekirina xebata li ser kodê bû. Ji bo çareserkirina pirsgirêka ku min çêkir , ku dihêle hûn ronîkirina kodê di nexşeyek hilbijartî de ji IDEA veguhezînin gotarek li ser Habré. Ez ê li ser pêvajoya afirandina amûr û taybetmendiyên karanîna wê biaxivim.
Ev hemû ji bo çi ye
Di nihêrîna pêşîn de, dibe ku xuya bibe ku ev ji xeletiyê tê kirin, tenê ji ber ku ronahiya standard a ku bi navgîniya tagê ve hatî bicîh kirin ne têrker e. <source>.
Di wateyekê de, ev, bê guman, rast e, lê ne bi tevahî.
Pêşîn, ronahiya hundur <source> nikare bi perçeyên kodê re bixebite, ji ber ku dê ji bo rengînkirinê agahdarî têr nebe. Hemî hêmanên ku li derveyî çarçoweya perçeyê hatine ragihandin dê bi rengek rasthatî werin boyax kirin. Ev pirsgirêk çareser nabe, ji ber ku, bi qasî ku ez dizanim, yek ji karûbarên rengînkirina serhêl destûr nade ku hûn yek ji jêrîn bikin:
- Koda projeyê ya tevahî têxin nav gotarê bêyî ku wê bi tevahî were xuyang kirin, an jî girêdanek ji bo peywirek li ser GitHub têxin. Li cîhên taybetî yên gotarê, xêzên rêzê ji koda tevahî bikar bînin (nîşana rêzê). Di vê rewşê de, ronîkirin divê li ser bingeha koda bêkêmasî were destnîşankirin, bê guman.
- Bi eşkere agahdariya meta ji bo hêmanên nediyar peyda bikin. Ji bo bikarhêner rêyek pir dijwar, lê ez ê vê yekê bipejirînim.
Ya duyemîn, ronahiya hundur <source> dê tu carî hejmara celebên hêmanên cihêreng bi IDE-ya birêkûpêk re hevber neke. Û ji ber pirsgirêka ku li jor hatî behs kirin, ti wateya kirina rengînkirina pêşkeftî tune: kes koda projeyê ya tevahî têxe gotarê, ji ber vê yekê ev fonksiyon dê nikaribe bixebite.
Di heman demê de, rastî ev e ku pêdivî ye ku meriv perçeyên kodê têxe nav gotaran, û ew çi qas piçûktir bin, ew çêtir e.
Hûn dikarin kodê bêyî ronahiya paşîn bixwînin, lê çima?
Taybetmendiyên nîşankirina "Habr".
IntelliJ IDEA ji bo hinardekirina kodê ji HTML-ê re piştgirî çêkiriye. Kopîkirina normal ya kodê koda rengîn li ser klîpboardê cîh dike, ku dikare wekî HTML-ê were xwendin.
Mixabin, Habr destûrê nade ku rasterast di gotaran de nîşankirina HTML-ê bikar bîne. Sedemên vê yekê sirek e, di tariyê de hatiye pêçandin, lê dibe ku ev yek ji ber yekbûna cureyên gotaran be. Bi destûrdayîna HTML-ê ku di gotaran de were bikar anîn, dê mimkun be ku hûn pirsgirêkên dîtinê yên ku çêbibin çareser bikin.
Ez bi gelemperî ramana qedexekirina HTML-ê di gotaran de piştgirî dikim, lê nuwazeyek heye. Çavkaniyek ji bo pisporên IT-ê ku kod bi gelemperî tê nîqaş kirin û rêyek tune ku meriv wê bi rengek rast têxe nav gotarek bi rengek ecêb e.
Ji ber vê yekê, di destê me de tag hene <b>, <i>, <font>. Wekî din, ev hemî di hundurê tagê de dixebite <code>, ku ji bo formatkirinê hewce ye. Baş Me jî ew xilas kir, ku ji bo rêzikên dirêj ên kod û xêzkirinê bikêr e.
Ne hewce ye ku were gotin, hemî awayên standard ên wergirtina koda HTML-ê ji IDEA-yê bi tevahî HTML-ya cûda hilberînin, ji ber vê yekê gelek xebata veguheztinê li pêş e.
Nêzîkbûnek
Beriya her tiştî, hêja ye ku ji nivîskar re gotinek spasdar be. ji bo wî li ser vê mijarê. Min amûra ku di gotarê de hatî pêşniyar kirin rasterast bikar neanî, û ne mimkûn e ku ew bixebite, lê bi saya vê materyalê min bi tevahî kûrahiya pirsgirêkê fêm kir û di heman demê de bayê hêviyê hîs kir.
Tenê negatîfiya vê weşanê hejmareke mezin a kodê ye ku bi ravekirinek pir hindik a ku ew çi dike û çima pêk tîne.
Ez ê hewl bidim ku rewşê rast bikim û diyar bikim ka hûn ê bi koda nîşankirina HTML-a xwe re çi bikin ger hûn bixwazin wê bînin formek amade ye ku têxin nav Habrê.
- Berî hinardekirinê, ji bo nimûne hûn hewce ne ku nexşeya rengê xwestinê li IDEA-yê saz bikin . Dê kod bi pilana hilbijartî were derxistin. Çêtir e ku hûn nexşeyek bi paşxanek spî hilbijêrin (ji ber ku paşnav li ser Habr nayê danîn) û bê binî. Min fêhm nekir ku ez çawa bi hêsanî wan bikişînim, ji ber ku min bi rastî nexwest.
- Em tenê bi hundurên tagê re dixebitin
<pre>. Tewra ku hûn ne ji IDEA-yê, lê hindek din hinardekirinê bikar bînin, belkî dê ev etîket di nîşana HTML-ê de hebe, ji ber ku bêyî wê dijwar e ku hûn kodê rast format bikin. Em bi xwe tagê jê dikin, li şûna wê dikin<code>. - Nivîs bi îhtîmaleke mezin dê wekî lîsteyek were pêşkêş kirin
<span>bi şêwazên cuda. Divê em wan hemûyan ji holê rakin. Gelek karûbarên rengînkirinê şêwazan di pelika şêwazê de hilweşînin, ku mentiqî ye, û referansên navên şêwazê bikar tînin. IDEA hîna bi taybetî vê yekê nake, ku peywirê hinekî hêsantir dike (mîhengên şêwazê rast in<span>). - Rengê tîpan bi karanîna tagek saz bikin
<font>. Mixabin, ne gengaz e ku rengê paşnavê were danîn. - Mal
font-style:italicwê bizivirînin çend etîketan<i></i>ûfont-weight:bold- di<b></b>. - Hemî cîh bi cîh bikin
. - Wergerên string di formê de
<br>bi şûnan. - Nîşana HTML-ê di IDEA de rêzikên vala bi şêwaz û rêzikên cîhên bi şêwaz çêdike. Çêtir e ku meriv şêwazên weha bavêje: ev ê dirêjahiyê pir kêm bike û têgihîştina kodê zêde bike.
- Em piştrast dikin ku şikestinên xetê ne xwedî şêwazek in. Wekî din dê pirsgirêkên xetên vala derkevin.
Ez ê xala dawî bi mînakekê diyar bikim:
<code>
1<font color="000000">
</font>2
</code>
Ev kod dê ji hêla Habr ve were veguheztin 12. Heman tişt ji bo tags <b> и <i>, û her weha her tevliheviyên wan. Divê şikestinên rêzê ne xwedî şêwazek bin, û wê hingê dê her tişt baş be.
Реализация
Di destpêkê de, karê nivîsandina veguherînerek ji bo koda HTML-a keyfî ji min re pir dijwar xuya bû. Lêbelê, heke hûn ji bo guhertoyek taybetî ya HTML-ê çareseriyek çêbikin, wê hingê her tişt ne ew qas xirab dibe. Min karî her tiştî bi karanîna RegExp-a paqij, ango, bêyî parskirina HTML-ê jî bikim. Pirsgirêka sereke derket holê ku nasnameya taybetmendiyên nîşana Habrê ye.
Ji bo ku rê li ber şikestinên rêzê negirin ku şêwazan nebin, me neçar ma ku hin veguheztinên pir bikêrhatî çêkin, ku belkî yên herî nefêm in (li fonksiyona popupBr binêre). Fikir ew e ku tags <br> piştî her veguheztinê ew ji kûrahiya etîketên formatkirinê ber bi derve ve "derketin". Bi vî rengî, piştî hemî veguheztina tag <br> ji formatkirinê xuya dike.
Digel vê yekê, derket holê ku IDEA ne tenê Nivîsara Dewlemend li ser clipboard-ê, lê di heman demê de tiştên bikêr ên mîna application/x-java-jvm-local-objectref. Pirsgirêk ev e ku hebûna tiştên weha li ser clipboard-ê di derheqê avakirina DataFlavor-ê de di konsolê min de dibe sedema xeletiyên domdar. Mixabin, tiştek ku hûn li ser wê bikin tune: JDK bi klîpboardê re çawa dixebite. Ew ji bo min vedîtinek bû . Xuya ye, xortên jîr ên ku ev nivîsandine difikirin ku ew ê baş bike. Bi gelemperî, ji xeletiyên ku dema ku bi amûrê re dixebitin çêdibin netirsin.
Proje li Kotlinê hatiye nivîsandin û dijî.
Pêşniyarên ji bo çêtirkirinan pir bi xêr hatin! Mînakî, dê xweş be ku meriv vê amûrê wekî pêvekek ji bo IDEA-yê dîzayn bike. Min hîn rêyek hêsan nedîtiye ku ez vê yekê bikim: çavkaniyên pêveka Kopî wekî HTML, mixabin, girtî ne, û fêrbûna meriv çawa pêvekek wusa ji nû ve binivîsîne pir dirêj digire.
Tenê bikarhênerên qeydkirî dikarin beşdarî anketê bibin. ji kerema xwe.
Ma rengê rastkirina kodê di gotarên li ser Habrê de ji we re girîng e?
Na, ez bi gelemperî kodê naxwînim
Na, rengê standard bes e
Erê, ez rengînkirina kodê mîna di IDE-yên populer de dixwazim
Erê, ez dixwazim dema ku gotarek dixwînim bi xwe nexşeyên rengan xweş bikim
154 bikarhêneran deng dan. 16 bikarhêner jî betal bûn.
Source: www.habr.com
