Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Michal Mores
Acad. year: 2025/2026
Supervisor: Ing. Zbyněk Křivka, Ph.D.
Reviewer: Ing. Radim Kocman, Ph.D.
This thesis focuses on the development of a plugin for Open Salamander that enables viewing text files with syntax highlighting. The work presents the main design challenges and explores possible solutions. The implementation is based on the integration of a library containing a TextMate parser, which is used for the analysis and highlighting of the text. The solution includes visualization implemented using the Win32 API. The resulting plugin is published as an open source project. It provides functionality similar to the internal viewer of Open Salamander, while additionally supporting syntax highlighting and correct rendering of Unicode characters.
syntax highlighting, plugin, Open Salamander, C++, Win32 API, TextMate, grammar, theme
Date of defence
15.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
B
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.
Topics for thesis defence
Language of thesis
Slovak
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology (BIT)
Composition of Committee
doc. RNDr. Milan Češka, Ph.D. (předseda) doc. Ing. Jan Kořenek, Ph.D. (místopředseda) Ing. Zdeněk Materna, Ph.D. (člen) Ing. Miloš Musil, Ph.D. (člen) Ing. Martin Hrubý, Ph.D. (člen)
Supervisor’s reportIng. Zbyněk Křivka, Ph.D.
Student konzultoval vždy, když to bylo potřeba a ve svých klíčových rozhodnutích vycházel z konzultací s vedoucím, ačkoli to většinou znamenalo zvýšené úsilí. Práci hodnotím známkou B.
Práce byla implementačního charakteru a rozšiřovala v praxi používaný souborový manažér s otevřeným zdrojovým kódem, ale velmi slabou dokumentací, což považuji za nejnáročnější aspekt zadání.
Student kromě doporučených zdrojů vyhledával samostatně i další zdroje, které byly vzhledem k charakteru práce spíše webové.
Aktivita během řešení byla spíše průměrná, ale oceňuji, že především zásadnější návrhová rozhodnutí (např. podpora i dřívější verze programu nebo použití populárnější zvýrazňovací technologie) byla provedena dle konzultace s vedoucím.
Student dal vedoucímu práci k dispozici v předstihu a připomínky před odevzdáním opravil. V té době již byla téměř finální i implementace, takže na zlepšování kvality textu a implementace zbyl nějaký čas.
Modul je publikován jako open source a je možné jej využít jak pro Open Salamander, tak i pro více rozšířený freeware Altap Salamander.
Grade proposed by supervisor: B
Reviewer’s reportIng. Radim Kocman, Ph.D.
Vzhledem ke kvalitnímu zpracování technické zprávy i realizačního výstupu navrhuji hodnotit práci i přes určité problémy stupněm B (80 bodů).
Evaluation level: méně obtížné zadání
Stěžejní funkcionalita stanovená zadáním se zdá být poměrně jednoduchá na realizaci. Cílem je vytvořit plugin, který primárně propojuje funkce již existujících nástrojů. Jako komplikovanější část vnímám pouze potřebu seznámit se s poměrně rozsáhlým projektem a nutnost výběru vhodných nástrojů k propojení.
Technická zpráva je dobře členěna, samotný text je psán čtivě a srozumitelně.
Typograficky je práce na dobré úrovni. Gramatickou stránku slovenštiny nejsem schopen detailně posoudit, ale žádných závažných nedostatků jsem si nevšiml.
Vytvořený plugin je funkční a splňuje požadavky ze zadání. Dle dostupných informací proběhlo i řádné testování s uživateli a zapracování jejich připomínek. Plugin se velmi jednoduše instaluje i používá a nabízí užitečné možnosti konfigurace.
Z části návrhu mohu vyzdvihnout průzkum dostupných nástrojů pro zvýrazňování syntaxe a výběr přívětivého řešení jak pro uživatele, tak i pro zasazení do zbytku programu.
Na druhou stranu nemohu jako příliš šťastnou volbu hodnotit zvolený způsob vizualizace textu. Zvláště když se student zároveň pustil i do implementace podpory Unicode. Zvolená vizualizace přes Win32 API značně komplikuje vývoj pluginu, kdy je nutné řešit vlastní implementaci pro vykreslování znaků i další navázané funkce (např. výběr textu). Většina popisu implementace pak probírá realizaci právě této funkcionality. Z popisu implementace není jasné, proč bylo potřeba zvolit vnitřní reprezentaci UTF-16 a upravovat pro ni navázané nástroje. Správná implementace práce s Unicode je komplikovaná záležitost. Dle mého testování se zdá, že student správně pokryl základní situace, ale u složitější situací začne docházet k problémům. Např. když se v textu vyskytnou znaky, které v UTF-16 vyžadují dvě kódové jednotky (např. emoji rakety U+1F680), tak přestane správně fungovat výběr textu. Výběr vhodnější technologie by mohl sám o sobě pokrýt funkce pro práci s textem i kompletní podporu Unicode.
Výsledkem práce je plugin do programu Open Salamander, který umožňuje prohlížet soubory se zvýrazněním syntaxe. Plugin je použitelný pro praktické využití a je zveřejněn jako open source. Nedostatky v práci s Unicode jsou srovnatelné se staršími editory textu, do kterých byla částečná podpora Unicode přidávána dodatečně.
Evaluation level: zadání splněno
Všechny body zadání jsou v předložené práci splněny.
Evaluation level: je v obvyklém rozmezí
Rozsah technické zprávy je odpovídající a přiměřený.
Celkem je uvedeno 13 studijních pramenů a všechny jsou relevantní k tématu bakalářské práce. Vlastní výsledky studenta jsou v práci řádně odlišeny. Většina zdrojů však odkazuje pouze na webové stránky analyzovaných nástrojů a použitých technologií. K tématu zvýrazňování syntaxe v textových editorech by mělo být možné nalézt relevantnější studijní prameny.
Grade proposed by reviewer: B
Responsibility: Mgr. et Mgr. Hana Odstrčilová