Novità del Visual Code Editor
copia linkIntroduzione
In questo articolo sono raccolte le principali novità del nuovo Visual Code Editor (VCE). La lettura è consigliata per chi ha già utilizzato una versione precedente di Instant Developer che, in questo modo, potrà imparare velocemente ad utilizzarlo e ad apprezzarne i vantaggi.
Ulteriori novità introdotte nella versione finale
- Gestione catene di oggetti: per scrivere uno statement che agisce su una catena di oggetti è sufficiente premere il tasto backspace dopo l'introduzione del secondo oggetto, nel momento in cui lostatement viene scritto come oggetto.oggetto = espressione.
- Copia/incolla testuale all'interno di costanti: è ora possibile copiare o incollare in forma testuale all'interno dei valori delle costanti direttamente nel VCE.
- A capo nelle costanti: per indicare il ritorno a capo all'interno di una costante è possibile usare l'espressione \n.
Ulteriori novità introdotte nella versione beta
- Parentesi graffe: se un blocco contiene una sola riga di codice, è possibile cancellare le parentesi graffe che la racchiudono. Per farlo premere BKSP quando il cursore è sulla parentesi graffa aperta. Per ripristinare le parentesi, premere ENTER sulla riga d'intestazione del blocco.
- For-each-row ReadOnly: è ora possibile creare un blocco for-each-row di tipo readonly, che non modifica i dati della tabella base anche se si modificano le colonne ritornate dalla query.
- Chiusura rapida videate: premendo ESC due volte in successione si chiude qualunque videata attiva. Le videate che si chiudevano con ESC singolo continuano a comportarsi come prima.
- Copia incolla da albero oggetti: oltre a poter tirare gli oggetti dell'albero con il D&D nel code editor, ora è possibile ottenere lo stesso risultato con il copia/incolla.
- tab su riga vuota: se la riga vuota è sotto una query, il tasto tab inserisce una riga di tipo SET o WHERE a seconda del tipo di query.
- Apertura immediata videata proprietà: aggiungendo una nuovo oggetto tramite il menù contestuale verrà aperta immediatamente la videata delle proprietà in modo da poterle editarle senza ulteriori click. Per i metodi e le query verrà aperto immediatamente l’editor di codice.
- Gestione del cursore: il VCE ora gestisce il cursore come un normale editor di testo anche se il codice viene memorizzato sempre come codice relazionale e non come file di testo. Per muoversi nel codice è interessante anche l’uso del tasto tab che sposta il cursore sui prossimi token modificabili nel testo.
- Gestione della selezione: oltre alla selezione per righe, il VCE ora supporta la selezione di token come un normale editor di testo. E’ possibile svolgere diverse operazioni sulla selezione testuale, come cancellazioni, racchiudere fra partentesi, spostamenti…, ed il visual code rimarrà sempre coerente durante le modifiche. Per effettuare drag&drop all’interno del VCE è necessario prima selezionare il codice da tirare e poi effettuare il drag a partire da uno dei token selezionati.
- Editing continuo: non è più necessario premere invio o tab per confermare il token dalla lista di scelta, è possibile continuare a scrivere le formule normalmente e il VCE confermerà in automatico i token man mano che vengono formati.
- Gestione delle costanti: l’inserimento di costanti nel codice è diventato uguale a quello di un editor di codice tradizionale: le costanti carattere devono iniziare per doppia virgoletta, le costanti data per #, quelle numeriche vengono scritte normalmente e per inserire la costante null occorre scrivere null. Tutte le costanti create nel VCE verranno mostrate per valore e non più per nome, come nelle versioni precedenti; tuttavia sarà possibile referenziare per nome le costanti delle liste valori associate come dominio ai campi del database o ad altri oggetti. Infine le costanti potranno essere spostate in altre liste valori, come ad esempio quella dei messaggi, con un comando del menù contestuale del VCE oppure operando sull’albero degli oggetti nella sezione di libreria.
- Collegamento con Form e Report Editor: premendo F4 a partire da un riferimento ad un oggetto visuale, verrà aperto l’editor corrispondente e l’oggetto verrà trovato ed evidenziato in rosso, anche se si tratta di un campo di pannello visibile solo in form, nella quinta pagina del pannello che è in una tabbed view...
- Overload degli operatori: ora il VCE è in grado di adattare l’operatore scelto ai tipi di dati della formula, quindi non c’è pià differenza fra il “+” fra numeri, quello fra stringhe e così via. Anche l’operatore “IS” è diventato una variante dell’operatore “=”, solo che agisce fra puntatori e non fra valori scalari. Sono stati aggiunti inoltre alcune forme alternative degli operatori (== e =, != e <>,…) per poter scegliere la sintassi preferita.
- Operatori di incremento: è possibile usare gli operatori di incremento e decremento applicati a una variabile intera (i++, i--) , ma solo come istruzioni di assegnamento o all’interno del blocco for. L’operatore viene convertito nella forma “variabile = variabile + 1” o “variabile = variabile – 1”, l’uso del “++” o “--” è quindi solo un’abbreviazione dell’editor.
- Definizione variabili all’interno del ciclo for: è ora possibile definire una nuova variabile all’interno dello statement di inizializzazione del ciclo for; ad esempio è possibile scrivere un ciclo come il seguente: for (int i=0; i<10; i++) , con la stessa sintassi dei linguaggi tradizionali.
- Costrutto elseif: è stato aggiunto il costrutto elseif per poter scrivere condizioni di esecuzione multiple esclusive in maniera più leggibile. E’ ora quindi possibile creare costrutti if-elseif… elseif– else senza ricorrere ad indentazione successiva.
- Sostituzione if-while-fori-else-elseif: è possibile convertire un blocco in uno di forma diversa, fra quelli elencati. Per farlo è sufficiente sostituire la parola chiave con quella desiderata.
- Spostamento parti di codice: è ora possibile spostare ogni parte del codice premendo i tasti ctrl-freccia o ctrl-shift-freccia. Nelle versioni precedenti questo era vero solo per gli statement interi.
- Copia/incolla: le capacità di copia/incolla del codice sono state ampliate; fra l’altro è ora possibile copiare il lato destro che quello sinistro degli statement in maniera incrociata.
- Gestione dei commenti: il testo del commento è ora modificabile come in un normale editor di testo. Inoltre ora il commento non è più legato strettamente all’oggetto che lo segue, ma viene recuperato se quello attuale viene cancellato o spostato. Infine è possibile introdurre un commento semplicemente iniziando a scrivere // in una riga vuota dell’editor.
- Watermarking: durante la scrittura del codice le parti da completare verranno evidenziate con un placeholder, eventualmente sottolineato in rosso se la parte è obbligatoria. Ad esempio, se si introduce una chiamata ad un metodo, verranno generati i placeholder per tutti i parametri evidenziando in rosso quelli obbligatori.
- Parametri opzionali: se una chiamata a metodo ammette parametri opzionali essi vengono espansi mentre si scrive la chiamata, in modo che essi possano essere valorizzati. Se non vengono specificati, il VCE li mostrerà successivamente in forma collassata (…) in modo da rendere più semplice la lettura del codice. Sarà sufficiente premere un qualunque tasto sui puntini di collassamento per espanderli nuovamente e poterli quindi inserire.
- Andare a capo nelle espressioni: premendo invio dopo un operatore è possibile inserire un ritorno a capo all’interno di una espressione rendendola più leggibile.
- Grafico di una formula: premendo F4 quando il cursore è su un operatore o costante si aprirà un grafico della struttura di una formula, utile a volte per capire la sequenza delle operazioni che verranno eseguite.
- Variabili non usate: le variabili e colonne di cursore definite ma non usate nel codice verranno sottolineate in verde per indicarne l’attuale inutilità.
- Creazione parametri e variabili: tirando un oggetto, come ad esempio un campo del database, sul titolo della procedura verrà creato un parametro, tirando l'oggetto su una riga vuota verrà creata la variabile proprio su quella riga.
- Cancellazione parametri da procedura o funzione: cancellando un parametro da una procedura o funzione, il codice delle chiamate a tale metodo verrà aggiornato cancellando il parametro attuale corrispondente a quello formale cancellato.
- Recupero parametri attuali durante editing: durante l’editing delle espressioni, se si cancella la chiamata ad una funzione verranno recuperati tutti i parametri attuali e non solo il primo di essi.
- Editing di formule di report, dominio, check-constraint: ora l’editing di tutte le espressioni, anche quelle staccate dal visual code procedurale come ad esempio i check-constraint, avverrà tramite il VCE. Non è quindi più in funzione il vecchio editor delle espressioni.
- Editing delle query: la scrittura delle query avviene ora in modo più naturale, ad esempio per ottenere una query di update su una tabella non è necessario scrivere prima il nome della tabella, ma la parola chiave update. Per maggiori dettagli su tutte le novità in tal senso si consiglia di leggere il capitolo Query Visual Code, anche tramite la documentazione contestuale.
- SQL Where automatiche: l’opzione di aggiunta di codice SQL dinamico all’interno di una query visual code viene automaticamente attivata selezionando come espressione di filtro una variabile in memoria di tipo carattere.
- D&D di campi del database: è ora possibile tirare direttamente i campi del database nelle espressioni della query.
- Nomi delle variabili: creando una variabile all’interno del visual code, il nome della stessa verrà scelto in maniera automatica, e molte volte sarà quello giusto. E’ ovviamente possibile modificare il nome scelto dal sistema semplicemente scrivendo quello desiderato.
- Cicli foreach: nel ciclo foreach su query non è più visibile il record delle colonne selezionate, ma esse saranno riferibili direttamente tramite i nomi delle colonne della master query; in questo modo il codice risulta più leggibile. Il ciclo foreach su collection invece viene scritto in forma diversa: scegliendo una collection, l’istruzione assume la forma for each (document) (nome) in (collection), e anche in questo caso non è più necessario esplicitare il record. Il ciclo foreach su pannello, infine, viene selezionato semplicemente scrivendo spazio ed il nome del pannello dopo la parola chiave for-each-row del normale ciclo su query.
- Menù contestuale: il menù contestuale del VCE si è arricchito notevolmente, assumendo anche tutti i comandi che prima erano disponibili solo dall’albero degli oggetti.
- Segnalazione eccezioni: La parola chiave error è stata sostituita dalla parola throw; ovviamente questo avviene in maniera trasparente nei progetti esistenti. E’ stata aggiunta la possibilità di editare il messaggio di errore direttamente sulla riga in cui viene chiamata la throw.
- This: ora la parola chiave this viene gestita senza ambiguità all’interno del VCE.
- Oggetto applicazione: per referenziare le proprietà ed i metodi dell’oggetto applicazione è ora possibile utilizzare anche il nome dell’applicazione o this, se la chiamata avviene nel contesto dell’applicazione. E’ ancora possibile referenziare direttamente il metodo senza alcun prefisso.
- Medoti pubblici di form: è possibile chiamare un metodo pubblico di form scrivendo il nome della form e poi il metodo. In questo modo è possibile referenziare anche le variabili globali di form.
- Caratteri grandi: il VCE è stato ottimizzato anche per schermi a caratteri grandi (120 dpi).
- Percorso introduttivo: il nuovo VCE mantiene la compatibilità con le tecniche illustrate nel percorso introduttivo, quindi il suo comportamento è leggermente diverso durante l’esecuzione delle lezioni iniziali.
Ultima modifica: 23/05/2022 / Validità: da 9.0.3940