PowerShell ISE na sterydach (2.0), część 6
W ostatniej części cyklu o ISESteroids zamierzam skupić się na “wodotryskach”. Oczywiście, człowiek z natury swej lubi rzeczy “ładne” (inna sprawa, że piękno może być rzeczą wysoce subiektywną), więc również “wodotryski” trudno uznać za zbędne ozdobniki. Więcej: część z nich naprawdę ułatwia pracę w ISE i uwypukla istotne dla użytkownika informacje. Nie ma jednak wątpliwości, że część z tych wodotrysków znajdzie się w kategorii: “To super! Zjawiskowe! Tylko… raczej nie będę z tego korzystać, bo…”. Warto jednak wiedzieć, że takie możliwości w ISESteroids drzemią, by móc świadomie z nich nie korzystać.
Jak cię widzą, tak cię piszą
Pierwszy element, o którym zamierzam napisać, to LiteralView. PowerShell ISE od zawsze wspierał rozróżnianie składni przy pomocy wybranych kolorów. Naturalnie, takie rozróżnienie jest na ogół wystarczające. LiteralView pozwala iść krok dalej. Dla kilku wybranych elementów składni oferuje nie tylko zmianę koloru, ale również kroju czy wielkości fonta:
Pomijając walory estetyczne, funkcja ta może się przydać w sytuacji, gdy chcemy uwypuklić pewne elementy składni, bądź je “zamaskować”. Analizując “czysty” kod, możemy zechcieć “uciszyć” komentarze. Z drugiej strony, jeśli to właśnie komentarze zamierzamy analizować, może właśnie ten element składni wizualnie powiększyć/ wyróżnić. Ustawienia te mogą się okazać przydatne wtedy, gdy korzystamy z ISE w trakcie prowadzenia prezentacji. Wówczas wizualne ozdobniki są jak najbardziej na miejscu. By zmiany te nie utrudniały edytowania skryptu, możemy włączyć opcję “Disable LiteralView During Editing”. Przydaje się to bardzo gdy modyfikujemy większe skrypty. W przeciwnym razie każda zmiana wiąże się z “miganiem” kodu.
ISE tu, ISE (konsola) tam
Jeśli zdarza nam się pracować z dwoma, osobnymi ekranami, możemy zapragnąć rozdzielić ISE na dwie części: jedną z otwartym skryptem i drugą, odrębną (choć wciąż zintegrowaną “logicznie”) z konsolą/ informacjami zwrotnymi. ISESteroids oferuje rozwiązanie tego problemu. Konsolę można bowiem “odłączyć” od głównego okna ISE:
Odrębną konsolę możemy oczywiście przenieść w dowolne miejsce, włącznie z odrębnym ekranem. Możemy też włączyć funkcję, o której głośno było po prezentacji nowej wersji systemu Windows. Wiele osób zwróciło uwagę, na możliwość włączenia przezroczystości w konsoli. Cóż, Z ISESteroids możemy tą samą funkcjonalność uzyskać nawet na Windows 7:
Kwestią odrębną jest to, ile osób zechce skorzystać z tej możliwości. Dla mnie jest to jedna z tych funkcji, które poza efektem “łał” wnoszą niewiele. Choć sporadycznie przydaje się możliwość “podglądania” kodu w oknie edytora czy dokumentacji na MSDN, szczególnie jeśli na korzystanie z kilku monitorów nie możemy sobie pozwolić.
Podobnie jak “wyjąć” okno konsoli, możemy postąpić z oknem edytora. Służy do tego funkcja “CloneView”, którą uruchomić możemy klikając prawym przyciskiem myszy na aktywnym oknie edytora. Dzięki temu możemy na przykład modyfikować jednocześnie kilka skryptów, każdy na innym ekranie.
Nowe szaty cesarza
Możliwość tworzenia “tematów” w PowerShell ISE pojawiła się wraz z PowerShell v3. Kontrolować możemy dzięki nim krój i wielkość fonta, kolory poszczególnych elementów składni, tło, kolory poszczególnych strumieni wyjściowych. W ISESteroids możemy pójść zdecydowanie dalej. Praktycznie każdy element interfejsu możemy dostosować do swoich potrzeb. Domyślnie mamy dostęp do kilku zaledwie tematów, ale już one obrazują, jak wielkie możliwości przed nami otwiera ta funkcjonalność. Aby wybrać temat skorzystać musimy z przycisku, który rozwija menu tematów. Poza dostępnymi “tradycyjnie” tematami, pojawia się też nowy (Dark Modern), który obrazuje, jak wielkie zmiany można wprowadzić w ISE dzięki temu narzędziu:
Aktywując wspomniany Dark Modern uzyskamy edytor ze zmienionymi paskami narzędziami, czcionkami, odrębnym krojem czcionki w konsoli i edytorze, i wieloma innymi zmianami w “międzymordziu”:
Z pewnością może to rozbudzić nasz apetyt, przyjrzyjmy się zatem temu, jak możemy ten głód zmian zaspokoić.
Moje ISE, “mojsze”.
Rozwiązanie umożliwiające definiowanie własnego stylu ISE jest moim zdaniem szalenie wygodne. Wystarczy w opcjach włączyć “Theme Adjustment” a już w każdym miejscu, gdzie możliwe są jakiekolwiek zmiany w bieżącym temacie, uzyskamy nowe, dodatkowe pod-menu:
Możemy więc decydować o kształtach, kolorach, włączać dodatkowe informacje zwrotne, “wymusić “chowanie” całego menu i masę, innych mniejszych lub większych zmian. Wszystko “na miejsu”, bez konieczności odgadywania w obszernym “panelu sterowania” co autor miał na myśli i czy belka, która chcemy zmienić to na pewno ta, którą faktycznie zmieniamy. Tu o takie pomyłki trudno. “Kolorując” ISE mamy dodatkowe wsparcie w postaci przejrzystego, wygodnego narzędzia do definiowania kolorów:
Jedyne czego mi w tym narzędzi brakuje, to możliwość wyboru “dobrze znanych kolorów” z listy. Przy okazji warto zwrócić uwagę, że definiując kolor podajemy pełny zestaw czterech liczb, czyli możemy ustawić przezroczystość. Przydaje się na przykład w przypadku wyszukiwarki funkcji:
Bardzo przydatną funkcją jest też możliwość zmiany czcionki “referencyjnej” – w poprzedniej wersji wiele osób miało problem z jej niewielką wielkością, dzięki edytowaniu tematów “na miejscu” możemy sami dobrać krój, wielkość i kolor “odnośników”. Kolejna zmiana, która może usprawnić nasze działanie w ISE to zmiana koloru, gdy wykonywane jest jakieś polecenie. Włączenie tej opcji spowoduje, że ilekroć uruchomione będzie jakieś polecenie/ skrypt, kolor “dolnej belki” ulegnie zmianie:
Wreszcie opcja, dzięki której możemy “rozdzielić” konfigurację edytora i konsoli nie tylko w zakresie kolorystyki (która to opcja dostępna jest od zawsze), ale również kroju/ wielkości czcionki:
Osobiście wolę, gdy w konsoli czcionka nie jest za duża. Z drugiej strony, w edytorze większy font bywa wygodny. Dotychczas zmiana dotyczyć musiała całego ISE. Dzięki ISESteroids zmiany możemy wprowadzać niezależnie.
To już jest koniec…
I to wszystko w temacie ISESteroids. Nie mam wątpliwości, że sporo funkcjonalności pominąłem. Dodatkowo ostateczna wersja tego produktu nie ujrzała jeszcze światła dziennego. Nie zmienia to faktu, ze już teraz jest to całkiem ciekawy dodatek do edytora, który na ogół jest już zainstalowany (również na serwerach, jeśli nie wybraliśmy opcji “core”), a dystrybuowany jest w sposób, który nie wymaga instalacji. Cena może zniechęcać, ale jeśli decydować się na zakup to raczej teraz: z tego co wiem nadal kupując wersję pierwszą ISESteroids, uzyskujemy automagicznie prawo do aktualizacji do “pełnej” wersji ISESteroids 2:
Until ISESteroids 2.0 is released, you can order licenses for ISESteroids 1.0 only. However, all licenses for ISESteroids 1.0 will be updated to ISESteroids 2.0 Enterprise free of charge. So by ordering today, you effectively get ISESteroids 2.0 Enterprise once released, for the price of ISESteroids 2.0 Professional.
Pełną informację znajdziemy na stronie produktu.