ISESteroids per PowerShell

Cos’è ISESteroids?

E’ un’estensione di Windows PowerShell ISE che ne migliora notevolmente le funzionalità, trasformando l’editor in uno strumento essenziale per gli sviluppatori di applicazioni Powershell.

ISESteroids è distribuito con una licenza a pagamento. Viene installato come modulo di Powershell e consente un periodo di prova di 10 giorni.

Il sito ufficiale è: linkwww.powertheshell.com

Ecco un video realizzato da me per presentare alcune delle funzioni aggiuntive di ISESteroids:

Installazione

Se disponete della versione 5 di Powershell (o superiore) potete tranquillamente installare ISESteroids (http://www.powertheshell.com) da riga di commando.

Eseguite questo commando in Powershell:

Install-Module ISESteroids -Scope CurrentUser

Per le versioni precedenti alla 5 il modulo ISESteroids è scaricabile a questo indirizzo:

linkDownload ISESteroids

ISESteroids non è disponibile per la versione 2 di Powershell.

Snippets

Iniziando a digitare nello script editor di ISESteroids si noterà che alcune parti di testo vengono evidenziate. Questo significa che è stata riconosciuta una “Snippets Shortcuts” e premendo il tasto ‘TAB’ è possibile richiamare velocemente del codice precompilato.

Tutti i dettagli su come creare degli Snippets li trovate in questo articolo (in inglese):

linkISE Steroids Snippet Manager

Per conoscere tutte le parole chiave (shortcuts) necessarie per richiamare uno Snippets basta premere il tasto ‘F4’:

20160504235547

Ad esempio digitando func e premendo il tasto ‘TAB’ verrà inserito nell’editor una dichiarazione di funzione. Questo consente un notevole risparmio in termini di tempo riducendo le operazioni ripetitive.

Formattazione

ISESteroids dispone di un sistema automatizzato per allineare le parentesi ed indentare il codice. Si può usare l’icona apposita della barra strumenti 20160504155534 o premere la combinazione di tasti ‘ALT+I’. Nel caso si sia modificata volontariamente la formattazione (inserendo ad esempio degli spazi) andrà forzato l’editor a riallineare il codice tenendo premuto il tasto ‘CTRL’.

Blocco Commenti

Un’utile opzione fornita dal programma è quella di consentire il rapido commento di porzioni di codice. Questo aiuta durante la fase di testing permettendo d’escludere dall’esecuzione dello script alcune istruzioni. Utilizzando il tasto della barra strumenti 20160504160545 o la combinazione ‘CRTL+SHIFT+B’ verrà commentato il testo selezionato. Tenendo premuto ‘CTRL’ non verrà creato un blocco di commenti (<#…#>) ma bensì una serie di commenti a linea singola (#…).

Context Sensitive Help

Molto agile e intuitivo è il “context sensitive help“. Si tratta di una guida in linea che si attiva al passaggio del cursore su una parola chiave come ad esempio una cmdlet:

20160504183131

 

La finestra di destra del context sensitive help si attiva con il tasto della barra degli strumenti 20160504161454.

Console Flottante

Apprezzatissima è la possibilità di “staccare” la console dall’interfaccia del programma per poterla utilizzare, ad esempio, su un altro monitor. E’ altresì possibile, in questo modo, ingrandire a tutto schermo la console. Il tasto relativo è questo 20160504162240.

EditorSwitch

Il passaggio tra le schede di diversi script è possibile in maniera molto veloce tramite tastiera con la combinazione ‘CTRL+PageDown/PageUp’. Ancora più utile è però l’EditorSwitch che prima di cambiare la scheda in primo piano mostra un’anteprima di tutti gli editor aperti in background. Con questa funzione è possibile vagliare rapidamente tutti i file aperti anche in presenza di numerose schede. L’EditorSwitch si attiva con una mouse gesture ovvero tenendo premendo il tasto destro e muovendo la rotellina del mouse. Mentre si muove la rotellina viene mostrata l’anteprima e non appena rilasciato il tasto destro si passa alla scheda selezionata:

fds

Monitor Variabili

Altra caratteristica utile è rappresentata dal “Monitor Variabili“. Si tratta di un’ulteriore finestra laterale che permette d’osservare lo stato della variabili. La cosa interessate è la possibilità di scegliere le variabili in base allo scope. Sarà quindi possibile, ad esempio, monitorare le variabili di sistema in una schermata diversa rispetto a quelle locali. Il monitor si attiva da questa icona 20160504175803:

20160504180551

Come evidenziato nello screenshot sarà anche possibile, dal menu contestuale, inserire le variabili all’interno di una sezione personalizzata chiamata “custom” e richiamabile dalla tendina con le scelte di scope. Inoltre da questa schermata è possibile aggiungere dei breakpoints che si attivano al cambio di stato della variabile selezionata.

Aiuti per la Navigazione

Ci sono 4 funzioni specifiche di ISESteroids che consentono di migliorare l’esperienza di navigazione all’interno del documento:

  • I bookmarks
  • Lo ScriptMap 20160504191718
  • Il Function Navigator
  • La Ricerca Semplice ed Avanzata

I Bookmarks non sono altro che delle etichette che permettono di raggiungere una riga del codice alla pressione di un tasto rapido (‘F7’). Per attivarli basta essere su una riga e premere ‘CTRL+F7’.

20160504195434

E’ possibile anche definire dei bookmarks che non si perdono alla chiusura dell’ambiente di sviluppo. Premendo il tasto 20160504200504 vengono inseriti dei commenti che funzionano come i bookmarks classici ma che sono raggiungibili da un menu speciale e, come detto, sono permanenti.

20160504200530

Lo “Script Map” 20160504201432 consiste in una finestra sulla destra che permette di vedere l’intero codice come se fosse visibile su un’unica pagina. Attraverso una lente di ingrandimento si può scorrere la mappa e selezionare la riga interessata.

using-scriptmap-1024x533

 

20160504220137

Il “Function Navigator” consente tramite un menu a tendina di raggiungere le funzioni all’interno del codice. Presenta anche alcune features aggiuntive come il tasto rapido per la creazione di una nuova funzione (in alto a sinistra nello screenshot) e la possibilità di esportare la funzione all’interno di un modulo (tasto centrale in alto).

La Ricerca Semplice (in tempo reale) è un agile strumento per cercare del testo all’interno del documento corrente: accetta le espressioni regolari e permette di evidenziare solo il testo trovato e di oscurare il resto.

La Ricerca Avanzata si presenta anch’essa con la consueta finestra laterale e si attiva dal menu Modifica -> Advanced Search ('CTRL, SHIFT+F').

20160504223826

La potenza dello strumento è rappresentata dalle opzioni avanzate che esaltano la forza delle espressioni regolari e dalla possibilità d’estendere il contesto della ricerca anche ai documenti non aperti. Si possono infatti selezionare le cartelle in cui ricercare il testo.

Automatic Fix e Refactoring

20160504224418

Evidenziata dalla lampadina ci viene suggerita una correzione automatica da applicare al nostro codice. In questo caso si tratta della modifica dei doppi apici con il singolo apice. Cliccando sull’icona verranno applicati i suggerimenti.

20160504230814

Il Refactoring è invece una serie di modifiche che possono essere applicate “in batch” (in serie) per migliorare il proprio codice. Si può agire in toto (“Run All”) o sulle singole correzioni. Una volta applicate (“Apply”) vengono evidenziate le righe modificate ed è possibile tornare al codice originale.

Conclusioni

Queste sono le funzioni che ho trovato maggiormente utili perché coprono le esigenze standard di qualsiasi programmatore. Lo strumento ISESteroids è validissimo e oserei dire essenziale per gli sviluppatori di applicazioni Powershell. Ci sono altre funzioni più complesse che vanno a colmare esigenze più specifiche:

  • Analisi Automatica Comandi per un’analisi approfondita degli oggetti ritornati dall’esecuzione dei comandi.
  • Creazione di Funzioni e Moduli: permette di trasformare una porzione di codice in una funzione. Consente di scegliere le variabili che saranno i parametri della funzione e dà la possibilità d’organizzare il codice generato in moduli.
  • Firma Digitale: integrati in ISESteroids ci sono dei comandi per la creazione di certificati per la firma digitale. Il programma si occuperà di firmare volta per volta il nostro codice modificato.
  • Modifica RealTime: con la pressione del tasto ‘F2’ tutte le stringhe uguali a quella sotto il cursore saranno evidenziate permettendo di modificarle tutte cambiandone effettivamente una.
  • File Version Control per il salvataggio di versioni multiple dello script. Permette inoltre di raffrontare le diverse versioni con uno strumento integrato per la comparazione del codice.
  • Tante altre funzioni spiegate all’indirizzo: linkISESteroids Feature Overview

 

Invito a visitare il sito linkwww.powertheshell.com per approfondire ulteriormente tutte le potenzialità di ISESteroids.

Advertisements

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...