Deprecated: Joomla\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/vendor/joomla/input/src/Input.php on line 41

Deprecated: Return type of Joomla\Input\Input::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/adatpcom/public_html/libraries/vendor/joomla/input/src/Input.php on line 170

Deprecated: Joomla\CMS\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/src/Input/Input.php on line 31

Deprecated: Joomla\CMS\Input\Cookie implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/src/Input/Cookie.php on line 0

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /home/adatpcom/public_html/libraries/src/Uri/Uri.php on line 141
Szöveges dokumentumok összehasonlítása

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /home/adatpcom/public_html/templates/shaper_helix3/html/modules.php on line 21
Szöveges dokumentumok összehasonlítása

Szöveges dokumentumok összehasonlítása

A változások követése egyre több területen válik fontossá és ennek megfelelően egyre több szoftver képes segítséget adni ehhez. Például a Microsoft Word lehetővé teszi két tetszőleges dokumentum összehasonlítását, párhuzamos görgetését, sőt, a két dokumentum egyesítését is. Formázatlan, egyszerű szövegek (plain text) esetén, mint amilyen például egy HTML, CSS vagy JS fájl vagy VisualBasic, Python scriptek szintén rendelkezésre állnak hasonló eszközök.

Leggyakrabban az ilyen egyszerű szövegek kódok szerkesztéséhez a Notepad++ alkalmazást használom, amelynek számos előnyei között szerepel az is, hogy plugin-ek segítségével bővíthető. A Plugins menü, Plugin Manager menüpontjában a Show Plugin Manager-re kattintva megjelenik az elérhető kiegészítések listája.

Notepad++ Plugin Manager

Sajnos a Plugin Manager nem kínál kereső funkciót, ezért ha nem tudjuk, mit is keresünk pontosan, kicsit bogarásznunk kell. Ez esetben azonban pontosan tudjuk, hogy a Compare névre hallgató plugint kell telepíteni, ami a plugin kijelölése után az Install gombra kattintva gyorsan meg is történik.

A sikeres telepítés után a Plugins menün belül elérhetővé válik a Compare menüpont és azon belül a plugin funkciói. Használatukhoz két fájlra lesz szükség, amelyek nagyon hasonlók, de mégsem egyeznek meg teljesen. Legjobb, ha egy fájl két különböző verzióját nyitjuk meg a példámban az egyik webes térképes alkalmazás JS fájljai közül nyitok meg egyet. Az egyik a 0.5 a másik a 0.7 verzióhoz tartozik. Az összehasonlításhoz már az is nagyon sokat segít, ha egymás mellett láthatjuk a két fájlt, ezért az egyiket (én többnyire az újabbat) átmozgatjuk a "másik nézetbe". Ezt legegyszerűbben úgy tudjuk megtenni, ha a mozgatni kívánt állomány fülére jobb egérgombbal kattintunk és kiválasztjuk a Move to Other View menüpontot.

Notepad++ kezelőfelületének megosztása

Ha még nincs "másik nézet", akkor a program ketté osztja a képernyőt és a jobb oldali részre teszi a kiválasztott fájlt. Ez az elrendezés már önmagában is hasznos lehet, de az összehasonlítás még nem történt meg. A Plugins menü, Compare menüpontján belül a Compare parancsot választva (gyorsbillentyű: Ctrl+Alt+C) fogja a program összehasonlítani a két nézet éppen aktív fülein található szövegeket. Nagyon rövid számítás után mindkét szöveget megváltoztatva, erősen kiszínezve kapjuk vissza.

Dokumentumok összehasonlítása a plugin segítségével

Az eredmény értelmezéséhez tudnunk kell, hogy a plugin a bal oldali nézetben található szöveget tekinti réginek, a jobb oldali nézetben találhatót tekinti újnak. Pirossal fogja kiemelni azokat a sorokat, amelyek már nem szerepelnek az új változatban, de a régiben igen. Zölddel azokat, amelyek a régi változatban még nem voltak benne, de az újban már benne vannak. Sárga színnel azokat a sorokat emeli ki, amelyek mindkét verzióban megtalálhatók, de valami változott bennük. Végül, de nem utolsó sorban fehér háttérrel érintetlenül hagyja azokat a sorokat, amelyek mindkettő verzióban egyformán megtalálhatók. Jobb oldalon egy navigációs ablak segít eligazodni, hogy hol, milyen típusú eltérések találhatók a két változatban és hogy éppen melyik részét látjuk a dokumentumnak.

Dokumentumok összehasonlításának eredménye

Ha már nincs szükségünk az összehasonlításra, érdemes kikapcsolni, hogy visszakapjuk a megszokott képét a kódunknak. Ehhez ismét a Plugins menü, Compare menüpontjában kell egy parancsot elindítanunk. Tetszés szerint választhatunk a Clear Active Compare és a Clear All Compares parancsok közül. Az összehasonlítás megszűnésével visszakapjuk a két szöveges dokumentumot úgy, ahogy a Compare parancs kiadása előtt voltak és tetszés szerint tovább tudjuk szerkeszteni őket.

Az összehasonlítás eredményének törlése

Megvan tehát az eszköz, használni is tudjuk, de milyen esetekben lehet hasznos? Általánosságban: az eldugott, apró, szinte észrevehetetlen különbségeket sikerül gyorsan megtalálni a plugin segítségével

Az egyik tipikus eset, amikor egy kód továbbfejlesztése, továbbírása volt a feladatom. Hozzáírtam pár sort, módosítottam pár dolgot, látszólag jó volt, ám valamiért mégsem működött. A régi, működő és az új, nem (vagy nem jól) működő kód összehasonlítása nagyban megkönnyítette a hiba feltárását és aztán javítását.

A másik tipikus eset, amikor két működő változatot kell összehasonlítanom és láthatóan (pl. a webes alkalmazás megtekintésekor) van különbség a kettő működésében, de egyszerűen nem bukkanok rá a kódban, hogy hol tér el egymástól a kettő. Az összehasonlítás feltárja a két változat közötti különbségeket és így már sokkal könnyebb azonosítani azt a kódrészletet is, ami az eltérő működést okozza.

Címkék:

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /home/adatpcom/public_html/templates/shaper_helix3/html/modules.php on line 21