PowerShell 3: Nowe ISE, edytor skryptów (2).

Poprzednio opisałem kilka moim zdaniem najistotniejszych zmian w ISE, dzięki którym stał się on (nieco) lepszym edytorem skryptów. Dziś kilka innych dodatków, których poprzednio nie zdołałem “upchnąć”.

Bardziej edytorowy edytor

Większość dotyczy samej funkcjonalności aplikacji. Przede wszystkim więc mamy wreszcie “normalne” okno ustawień. Nadal można kontrolować konfigurację przy pomocy wbudowanego obiektu $PSIse, dodatkowo jednak wiele ustawień zapisać możemy z poziomu menu. Dodatkowo w przypadku wszelkich ustawień dotyczących fontów i kolorystyki (kolorowanie elementów tła i składni, wielkość fonta, jego krój) możemy posługiwać się tematami, które można importować/ eksportować przy pomocy plików ps1xml. Konfigurację znajdziemy w Tools –> Options.

Kolejny element ściśle związany z funkcjonalnością “normalnych” edytorów to lista ostatnio otwieranych plików. To oczywiście nic nadzwyczajnego i raczej brak tej funkcjonalności był niemiłą niespodzianką w poprzedniej wersji. Niemniej jednak cieszy fakt, że wreszcie i ta funkcja do ISE “zawitała”.

Kolejny element, który może się czasem przydać to fakt, że skalowanie okien nie jest, jak to było w przypadku ISE w poprzedniej wersji, tożsame ze zmianą wielkości czcionki. Jest to szczególnie istotne wtedy, gdy zawartość okna (w formie sformatowanego tekstu) zechcemy skopiować np. do Worda. Tekst na ekranie może być olbrzymi, a czcionka nadal niewielka, dzięki czemu Word wyświetli tekst normalnie. I tu kolejna zmiana, które może czasem utrudnić korzystanie z ISE: kopiując z niego uzyskamy nie tylko tekst, ale również całe bogactwo formatowania, włącznie z kolorowaniem składni. Sam nieustannie z tego korzystam: taki kod umieszczony np. w mailu jest moim zdaniem łatwiejszy do przyswojenia, niż wtedy, gdy wszystko jest “czarno na białym”.

Jak Feniks…

Ponieważ ISE to nie tylko edytor, ale również interaktywne środowisko – może się zdarzyć, że się “zawiesi” w trakcie wykonywania jakichś czynności. Może się też zdarzyć, że uruchamiając jakieś polecenie “zabijemy” albo samo ISE, albo w ogóle cały system, na jakim pracujemy (z wielką mocą…). W nowej wersji ISE nie musimy się jednak na zapas martwić takimi “wpadkami”. Na ogół wystarczy tylko parę minut pracy od ostatniego zapisu tworzonego przez nas skryptu, by po ponownym uruchomieniu ISE zaproponowano nam odzyskanie ostatnio modyfikowanych plików. Nie jest oczywiście tak, że nic nie stracimy, ale to i tak lepsze rozwiązanie, niż zaczynać od początku zawsze, gdy przez nieuwagę lub drobną pomyłkę “strzelimy sobie w stopę”:

PowerShell-ISE-Pytanie-O-Ostatnie-Pliki

 

Rozumieć kod

Na koniec zostawiłem to, co moim zdaniem czyni ISE wyjątkowym edytorem. Nowe ISE potrafi bowiem analizować kod, który pojawia się wcześniej w skrypcie. Dawniej by ISE zaczęło dopełniać nazwę zmiennej/ funkcji, należało uruchomić fragment kodu, który je definiował. Obecnie nie musimy już tego robić: ISE potrafi prześledzić kod i udostępnić nam zmienną. Co więcej: ISE “widzi” kontekst i nawet jeśli zdefiniujemy jakąś zmienną, ale nie będzie ona istnieć w danym zakresie (np. jest to wewnętrzna zmienna zdefiniowana wewnątrz funkcji, a piszemy kod poza jej zakresem) to ISE nie będzie nam jej sugerować:

PowerShell-ISE-Dopelnianie-Zmiennych-Uwzgledniajace-Kontekst

Jak widać, $WewnetrznaZmienna na liście się nie pojawiła. Działa to zarówno dla zmiennych, jak i funkcji (zarówno ich nazw, jak i parametrów). I to chyba wszystkie funkcje edytora, o których chciałem napisać. Na koniec chciałbym napisać o tym, co sprawia, że ISE można (nie bez wysiłku) rozbudowywać. Czyli o tym jak samemu utworzyć dodatki podobne do panelu “commands”. Będzie więc nieco C#, ale tylko troszkę… Dość jednak pewnie, by wykazać moje braki w zakresie “prawdziwego” programowania. Pokażę też, jak można takie dodatki tworzyć przy pomocy kodu stricte PowerShellowego, czyli nieco o Ise Pack v2. Uśmiech

~ - autor: Bartek Bielawski w dniu Grudzień 18, 2012.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

 
%d blogerów lubi to: