Osobně používám balíček PHP Companion, který je udržován, ale jednu drobnost autor odmítá zapracovat. Při importu namespace jsou záznamy seřazeny, ale trochu jinak, než bych chtěl a než vyžadují některé coding standardy. Rozhodl jsem se tedy balíček předělat sám. Nejedná se o žádnou náročnou operaci, protože většina Sublime Textu i balíčků je napsána v Pythonu.
Úprava packed a unpacked balíčků
Existují 2 typy balíčků, packed a unpacked. Packed balíčky se nachází ve složce Installed Packaged a jsou to soubory s příponou *.sublime-package. Unpacked balíčky jsou ve složce Packages a pro každý balíček existuje 1 složka, ve které jsou všechny soubory. Rozdíl při tvorbě balíčků ale žádný není, protože soubor s příponou sublime-package je jen ZIP obsahující všechny soubory jako unpacked balíček.
Balíček PHP Companion je nainstalován pomocí Package Control pluginu a je uložen zabalený. Stačilo tedy balíček rozbalit a vložit jej do složky Packages. Aby nedocházelo k automatické aktualizaci a přepsání, rozhodl jsem se složku přejmenovat, aby název byl unikátní. Poté již pouze stačilo najít potřebný soubor, změnit jej a v Sublime zakázat původní balíček a nově "vytvořený" povolit.
Ostatní soubory
Po rozbalení bylo ve složce více souborů, které se jmenovaly shodně jako balíček. Protože jsem kopii balíčku přejmenoval, bylo nutné přejmenovat i všechny soubory se shodným jménem.
Vlastní úprava
Původně soubor commands/import_use_command.py obsahoval tyto řádky. Je tedy seřazeno abecedně, což ale podle některých pravidel není správné.
uses.sort() if get_setting("use_sort_length"): uses.sort(key = len)
Stačilo změnit tyto řádky a napsat si vlastní funkci na seřazení. A to je vše! Při aktualizaci balíčku autorem se již bohužel vlastní balíček neaktualizuje a pravděpodobně nepřijde ani žádná notifikace. Více o úpravě balíčků lze najít přímo na webu PackageControl.io.
if get_setting("use_sort_length"): uses.sort(key = len) else: uses.sort(key = lambda s: s.replace('\\', ' ').lower())
Zkušenosti se Sublime Text a vlastními balíčky nebo úpravou existujících můžete sdílet v komentářích.
K tomuto článku již není možné přidávat další komentáře