Ultimo aggiornamento: 30-Lug-2020

RDi: percorsi di migrazione – 3) da SEU a LPEX

Il nuovo editor dei membri sorgente è LPEX. Ha tutte le funzionalità del SEU e molto di più… moltissimo.

In sintesi alcune caratteristiche che nel SEU non esistono:

  • possibilità di aprire più di un sorgente in modifica
  • conversione da RPG fixed-form a free-form (specifiche di calcolo)
  • outline/struttura del sorgente
  • split dello stesso sorgente in due o più finestre tutte editabili
  • guida contestuale
  • assistente all’editazione
  • tooltip
  • annullamento modifiche durante editazione (Ctrl+Z)
  • selezione di testo rettangolare
  • evidenziazione nidificazione
  • spostamento rapido da inizio a fine delle strutture di controllo (if, do….)
  • gestione frammenti di codice
  • evidenziazione messaggi di errore durante l’editazione che causerebbero un errore in compilazione
  • refactoring

Aprire un membro sorgente

Dopo aver creato un filtro nel sottosistema oggetti (cfr. 02) RDi: da PDM a RSE) facendo clic destro su un membro sorgente si può scegliere la voce Apri con > Editor LPEX per aprirlo in modifica (in alternativa si può fare doppio clic sul nome del membro) oppure Sfoglia con > Editor LPEX per aprirlo in sola visualizzazione.

E’ possibile aprire due o più sorgenti contemporaneamente. Nella vista dell’editor si vedranno diverse schede sovrapposte con i vari membri:

Le schede dei membri possono anche essere spostate per consentire di visualizzare contemporaneamente in due porzioni dello schermo i due sorgenti uno sotto l’altro.

Cliccare sul titolo della scheda col nome del membro e trascinare il mouse verso il basso finché compare una linea di divisione (evidenziata in giallo nella figura seguente):

quindi rilasciare il mouse:

Si può ottenere anche uno split della finestra dello stesso sorgente premendo Ctrl+2 oppure facendo clic destro in qualsiasi punto dell’editor del membro e scegliendo la voce Visualizza > Apri nuova vista.

Da notare che entrambe le viste del medesimo sorgente sono editabili.

Per spostare il focus tra le varie finestre dell’editor premere Ctrl+F6.

Questi metodi per visualizzare due sorgenti o lo stesso sorgente in due porzioni diverse del video sono l’equivalente (ma è evidente che LPEX è molto più potente) del tradizionale F15 del SEU.

Si può aprire direttamente un sorgente senza selezionarlo da un elenco tramite la scorciatoia da tastiera Ctrl+Maiusc+A. N.B. “Apri per cercare” significa “apri in sola visualizzazione”. A volte la localizzazione italiana di RDi presenta delle traduzioni opinabili.

E’ l’equivalente di eseguire il comando di avvio del SEU specificando i parametri SRCFILE e SRCMBR: STRSEU SRCFILE(QGPL/QRPGLESRC) SRCMBR(PROOF).

Una volta aperto il sorgente si può zoomare ingrandendo (Ctrl++) o rimpicciolendo (Ctrl+-) la dimensione del carattere. Il più o meno da utilizzare in combinazione con Ctrl sono quelli del tastierino numerico.

Premessa per i “nostalgici”

Tutti i comandi di riga del SEU (I per inserire, C per copiare…) possono essere usati anche in LPEX, ma il consiglio è di dimenticarli al più presto ed imparare quanto prima le nuove scorciatoie da tastiera di LPEX.

La comodità del nuovo “stile” di editazione nel breve-medio periodo ripaga di gran lunga la fatica iniziale di “insegnare alle dita” a premere dei tasti nuovi.

Editare un sorgente

Per inserire una nuova riga: premere Invio.

In formato fisso la nuova riga ripete il tipo di specifica della riga precedente.

Per inserire invece una riga vuota premere Ctrl+Invio.

Per splittare la riga nella posizione in cui si trova il cursore premere Alt+S.

Per unire una riga con la successiva: Alt+J.

Per cancellare una riga intera: Ctrl+Backspace.

Per cancellare il contenuto di una riga a destra della posizione del cursore: Ctrl+Canc.

Quando ci si trova su una riga a formato fisso premendo F4 si apre la vista Programma di richiesta origine:

ATTENZIONE: Ctrl+Z annulla a ritroso le modifiche apportate al sorgente (esattamente proprio come si lavora in Word per fare un esempio).

Per selezionare un’intera riga posizionarsi col cursore e premere Alt+L.Per estendere la selezione su più righe spostare il cursore e premere ancora Alt+L. Una volta selezionato questo blocco di righe ci si può spostare col cursore e premere Alt+C per copiarle oppure Alt+M per spostarle oppure Alt+Z per sovrascrivere la selezione oppure premere Alt+D per cancellare tutta la selezione.

Si può agevolmente spostare a destra (Alt+F8) o sinistra (Alt+F7) le righe selezionate.

Per annullare la selezione premere Alt+U.

Si può anche selezionare una porzione di codice e sfruttare il copia/incolla “classico” come si è abituati a fare in qualsiasi editor di testo.

Una volta selezionato una porzione di codice si può convertire il testo in maiuscolo (Alt+K) o in minuscolo (Alt+I).

Per duplicare una riga premere Ctrl+D.

E’ possibile commentare/decommentare una o più righe di sorgente automaticamente premendo Ctrl+/ e Ctrl+\.

E’ possibile selezionare una porzione rettangolare di codice: posizionare il cursore all’estremità superiore sinistra, premere Alt+R, spostare il cursore all’estremità inferiore destra e premere ancora Alt+R.

Cercare e spostarsi in un sorgente

La scorciatoia da tastiera per cercare/sostituire stringhe in un sorgente: Ctrl+F invece del tradizionale F16/F17 del SEU.

Una volta chiusa la finestra di ricerca si può ripetere l’ultima ricerca premendo Ctrl+K oppure Ctrl+Maiusc+K per cercare a ritroso.

Per posizionarsi su una riga specifica del sorgente usare Ctrl+L.

Per posizionarsi in fondo: Ctrl+Fine. Invece all’inizio: Ctrl+Home.

Per scorrere il sorgente in alto/in basso senza spostare la posizione del cursore: Ctrl+freccia su/giù.

Per spostarsi su una riga all’inizio di ogni posizione significativa per le specifiche a formato fisso: Tab o Maiusc+Tab.

Per spostarsi alla fine della riga: Fine. All’inizio della riga: Home. Per spostarsi ulteriormente nell’area dei numeri di specifica: freccia a sinistra.

Salvare un sorgente

Premere Ctrl+S oppure cliccare sul pulsante Salva nella barra strumenti.

Con più sorgenti aperti Ctrl+Maiusc+S salva tutti i sorgenti.

Per chiudere un sorgente premere Ctrl+F4 oppure cliccare sulla croce nel titolo della scheda.

Lavorare con le date di modifica delle specifiche

Per visualizzare la data di modifica di ogni riga fare clic destro in un’area dell’editor e scegliere la voce Origine > Visualizza area data.

Per visualizzare per default l’area data aprire le preferenze di RDi (dal menu Finestra > Preferenze) e aprire la scheda Sistemi remoti > Editor LPEX sistemi remoti e selezionare l’opzione Visualizza area data.

Per cercare le specifiche in base alla data modifica premere Ctrl+Maiusc+D.

Stampare un sorgente

Una volta aperto un sorgente si può scegliere dal menu File la voce Stampa oppure premere Ctrl.+ P.

Per stampare una porzione di sorgente si possono utilizzare i comandi di riga del SEU LLP.

La stampa utilizzerà il medesimo font visualizzato a video.

Creare un nuovo membro

Capita talvolta di creare un nuovo membro sorgente. Dico ironicamente “talvolta” perché di solito si crea un nuovo membro copiando un sorgente simile. Ma se si volesse creare un nuovo membro vuoto, basta fare clic destro su un file sorgente e scegliere la voce Nuovo > Membro.

Appena creato il membro viene aperto in modifica nell’editor LPEX.

Tutto ciò che nel SEU era un sogno…

Posizionando il cursore per esempio sul nome di una subroutine e premendo F3 si salta direttamente alla specifica begsr di quella subroutine. Oppure se il cursore è posizionato su una variabile la pressione di F3 sposta il focus sulla relativa specifica D di definizione.

Mentre si digita il codice è possibile premere Ctrl+Spazio per aprire il tooltip dell’assistente contestuale.

Per esempio digitando “mo” nell’operation code di una specifica C il context assistant suggerisce i possibili codici operativi che cominciano con “mo” e scorrendo con le frecce l’elenco si ottiene a lato una breve guida.

Spostando il cursore sulla colonna del fattore 1 e premendo ancora Ctrl+Spazio vengono invece visualizzate le variabili/campi/costanti che si potrebbero utilizzare e a lato viene mostrata la definizione

Utilizzando l’assistente contestuale nelle specifiche free vengono anche proposti i modelli di codice. P.es. digitanto “do” e poi Ctrl+Space viene proposto:

Per accedere alla definizione dei modelli già forniti con RDi ed eventualmente crearne di nuovi si apre dal menu Finestra la voce Preferenze e quindi Sistemi remoti > Editor LPEX sistemi remoti > Parser IBM i > ILE RPG > Modelli:

Premendo invece Ctrl+Maiusc+Spazio si ottiene invece un tooltip con la sintassi del codice operativo:

Posizionando il cursore sopra una variabile dopo 1 secondo circa viene mostrato un tooltip con la definizione

Strutture di controllo e ripetizione

Quante volte si è sudato davanti ad un sorgente non riuscendo a districarsi tra gli IF ed i corrispondenti ENDIF, oppure DO con ENDO, ecc.?

Ebbene in LPEX posizionandosi sul codice operativo IF e premendo Ctrl+Maiusc+M si sposta il cursore al corrispondente ENDIF (o viceversa). Oppure premendo Ctrl+M si seleziona tutto il blocco di specifiche da IF ad ENDIF.

Oppure premendo Ctrl+Maiusc+O si ottiene un’evidenziazione grafica che unisce IF/ENDIF, DO/ENDDO…

Rifattorizzazione

Traduzione magari non così efficiente del termine Refactoring.

Selezionare una variabile e premere Alt+Maiusc+R. Verrà mostrata un wizard per rinominare in “maniera intelligente” quella variabile all’interno del sorgente.

Digitare il nuovo nome (ovviamente più significativo del nome originale ARRAY).

Cliccando Anteprima verrà mostrato un riepilogo delle operazioni di rinomina della variabile con eventuali problemi che impediscono l’esecuzione della rifattorizzazione.

Per esempio scegliendo come nuovo nome “ListaMessaggi” si potrebbe ottenere un risultato come questo:

In quanto il nuovo nome di variabile è troppo lungo per le specifiche C a formato fisso.

Se invece il sorgente fosse scritto in formato libero, la medesima operazione di rifattorizzazione si concluderebbe con esito positivo (W IL FORMATO LIBERO!).

Conversione in formato libero

Selezionare una porzione di codice (solo specifiche C), fare clic destro per aprire il menu contestuale e scegliere la voce Converti in formato libero.

Tutti i codici operativi non supportati nel formato libero (p.es. MOVE, MOVEL) non verranno convertiti.

Vista Struttura

Una meravigliosa chicca di LPEX è la vista Struttura (in inglese Outline).

Questa vista riepiloga in sintesi tutte le dichiarazioni di file, campi, variabili, indicatori, l’elenco delle subroutine, delle procedure… Selezionando un elemento dalla vista Struttura il cursore si posiziona alla specifica di definizione all’interno del sorgente

Informazioni immediate per errori o avvertimenti

Digitando per esempio un codice operativo errato viene mostrato a inizio riga un’icona di errore. Posizionando il cursore sopra di essa viene mostrata la descrizione dell’errore.

Un riepilogo delle più importanti scorciatoie da tastiera lo si può trovare a questa pagina: RDi – key shortcuts.

Video tutorial

Per una dimostrazione pratica delle operazioni di base che si possono svolgere in LPEX guarda il video tutorial: