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

W poprzedniej części starałem się pokazać, że nowe ISE może być całkiem wygodną alternatywą dla “tradycyjnej” konsoli. Dziś postaram się pokazać jak zmienił się edytor i dlaczego warto rozważyć “przesiadkę” na ISE, nawet jeśli wcześniej korzystaliście z innych edytorów (które mimo wszystkich zmian wprowadzonych w ISE mogą w wielu obszarach lepiej się od ISE sprawdzać).

 

Edytor skryptów nie musi być doskonały: w wielu przypadkach (i dla wielu autorów skryptów) musi być po prostu… wystarczająco dobry. Jeśli razem z systemem dostajemy za darmo coś, co spełnia nasze oczekiwania – często nie będziemy czuć potrzeby by poszukiwać alternatywy, nawet jeśli jest ona darmowa. Tym bardziej nie zapłacimy za produkt, który jest tylko nieznacznie lepszy od czegoś darmowego i na dodatek “gwarantowanego” na dowolnym komputerze, z którego zamierzamy korzystać. Myślę że właśnie tym należy tłumaczyć fakt, że dwa edytory (do niedawna komercyjne) są obecnie darmowe: PowerSE i PowerShell Plus. Nowe ISE sprawiło, że nie da się już praktycznie zarabiać na edytorze przeznaczonym wyłącznie do skryptów PowerShella.

Co takiego więc zmieniło się w edytorze skryptów w nowym ISE, że stał się on “wystarczająco dobry”?

A świstak siedzi i zawija…

Z mojego punktu widzenia najważniejsze to wsparcie dla “zwijania” kodu i definiowania własnych regionów. Nie da się dostrzec zalet tego rozwiązania przy krótkich skryptach, ale obszerny moduł o wiele łatwiej jest analizować, gdy część kodu można “zwinąć” i skupić się na tych elementach, które w danym momencie zamierzamy modyfikować.

PowerShell-ISE-Zwijanie-Regionow

Właściwa klamra na właściwym miejscu

Z tym elementem poniekąd powiązane są kolejne dwa. Podświetlanie par klamr, nawiasów i innych elementów grupujących składnię pozwala określać co dokładnie “domykamy” przy pomocy wybranego elementu. Gdzie zaczyna i kończy się funkcja, czy pętla. Drugi wskazuje dokładnie miejsce, w którym znajduje się jakiś błąd w składni, co często jest skutkiem niewłaściwej ilości takich “domykających” elementów (np. zagnieżdżone pętle, z których jedna nie jest prawidłowo “domknięta”).

PowerShell-Informowanie-o-Bledach-Podswietlanie-Grup

Przy dłuższych pętlach/ funkcjach takie udogodnienia zdecydowanie ułatwiają unikanie błędów przy tworzeniu kodu.

Ziarnko do ziarnka

Samo tworzenie kodu można znacznie uprościć i zautomatyzować przy pomocy kolejnego elementu, fragmentów kodu. Domyślnie znajdziemy zaraz po zainstalowaniu kilka, ale sami możemy swobodnie dodawać kolejne, dzięki czemu skrócić możemy dodawanie pewnych elementów składni. Przykładowo: często w czasie tworzenia nowych funkcji korzystam z dekoracji [Parameter()], powtarzając pewne elementy, przy których nie trudno jest o literówkę. Oszczędzamy pamięć, palce i czas na poprawianie takich błędów jednym prostym wpisem:

$Text = @"
[Parameter(
    Mandatory = ,
    ValueFromPipeline = ,
    ValueFromPipelineByPropertyName = ,
    HelpMessage = '',
    ParameterSetName = '',
)]
"@            
            
New-IseSnippet -Title Parameter -Description @"
Dodajemy [Parameter()] z wszystkimi cudenkami
"@ -Text $Text -CaretOffset ($Text.IndexOf('=') + 2)

Tak utworzony fragment kodu zostanie zapisany w folderze Snippets znajdującym się w tej samej lokalizacji co profil użytkownika i dodanego przez niego moduły. By fragment kodu dodać, czy to wbudowany, czy nasz własny – wystarczy kombinacja klawiszy CTRL+J. Kursor zostanie ustawiony na wybranej przez nas pozycji i pozostanie nam jedynie uzupełnić szablon o brakujące dane.

PowerShell-ISE-Snippets-Wywolane-z-Intellisense

Czy to wszystko? Zdecydowanie nie. Ale o tym już następnym razem…

~ - autor: Bartek Bielawski w dniu Listopad 26, 2012.

Skomentuj

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

Logo WordPress.com

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

Zdjęcie z Twittera

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

Zdjęcie na Facebooku

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

Zdjęcie na Google+

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

Connecting to %s

 
%d blogerów lubi to: