Impostazione dell’evidenziazione della sintassi del codice con l’estensione Visual Studio Code

Tradotto automaticamente da Deepl

Recentemente abbiamo parlato della nuova estensione di Visual Studio Code che consente a VS Code di comunicare con 4D per la gestione del codice. L’evidenziazione della sintassi è stata la prima caratteristica del Language Server Protocol in 4D v19 R6. Vediamo come personalizzare il rendering del codice sorgente.

È possibile personalizzare l’evidenziazione della sintassi in base al proprio foglio di stile o al foglio di stile predefinito di 4D, come mostrato di seguito:

Vediamo ulteriori informazioni tecniche.

token semantici

In tutti i linguaggi di programmazione, il codice è composto da token semantici. Un token semantico è una parte del codice con un senso univoco, come classi, metodi, variabili, ecc. Come altri linguaggi, il codice 4D è suddiviso in token semantici e modificatori.

VS Code consente di controllare i token semantici nel suo editor di codice. Per visualizzarli, aprire la palette dei comandi di VS Code, cercare “Inspect Editor Tokens and Scopes” e selezionarlo.

blank

Una palette mostra le proprietà della parte di codice dietro il cursore, compresi il token semantico e il suo eventuale modificatore. È sufficiente selezionare un’altra parte del codice per vedere direttamente le relative proprietà.

blank

Ecco la tabella di mappatura tra il linguaggio 4D e i token semantici LSP:

Token semantico LSP Linguaggio 4D
metodo metodi
metodo.defaultLibrary comandi
metodo.plugin metodi plugin
proprietà attributi dell’oggetto
funzione funzioni membro dell’oggetto
parametro parametri del metodo, parametri delle funzioni membro dell’oggetto
variabile.interprocesso variabili interprocesso
variabile.processo variabili di processo
variabile.locale variabili locali
parola chiave parole chiave
tabella tabelle
campo campi
commento commenti
tipo tipi
costante costanti
stringa stringhe
errore errori

Come impostare i font?

Potreste dire: “Ok, VS Code riconosce automaticamente il codice 4D, ma cos’altro?”. Questo è l’ultimo passo: impostare il carattere di ogni token semantico.
Per personalizzarlo, dovete modificare il file di impostazioni utilizzato da VS Code. Per farlo, aprite la palette dei comandi di VS Code, cercate “Settings.json” e modificatelo.
A titolo informativo, il file Settings.json di VS Code si trova qui:

/Users/{NomeUtente}/Libreria/Application Support/Code/User/settings.json su macOS
C:\Users\{NomeUtente}\AppData\Roaming\Code\User\settings.json su Windows

blank

blank

Ecco le impostazioni JSON da aggiungere per visualizzare il codice 4D con i fogli di stile “light 4D” e “dark 4D” (cercare nel settings.json la riga “4D-Analyzer.server.path” e inserire l’intero blocco seguente nella riga sopra o sotto):

"editor.semanticHighlighting.enabled": true,
    "editor.semanticTokenColorCustomizations": {
        "[Default Light+]":{
            "enabled": true,
            "rules": {
                "*:4d": {"foreground": "#000000", "bold": false, "italic": false, "underline": false, "strikethrough": false},
                "method:4d": {"foreground": "#000088", "bold": true, "italic": true},
                "method.defaultLibrary:4d": {"foreground": "#068c00", "italic": false},
                "method.plugin:4d": {"foreground": "#000000"},
                "property:4d": {"foreground": "#a0806b"},
                "function:4d": {"foreground": "#5f8e5e", "italic": true},
                "parameter:4d": {"foreground": "#000b76", "bold": true},
                "variable.interprocess:4d": {"foreground": "#ff0088"},
                "variable.process:4d": {"foreground": "#0000ff"},
                "variable.local:4d": {"foreground": "#0031ff"},
                "keyword:4d": {"foreground": "#034d00", "bold": true},
                "table:4d": {"foreground": "#532300"},
                "field:4d": {"foreground": "#323232"},
                "comment:4d": {"foreground": "#535353"},
                "type:4d": {"foreground": "#068c00", "bold": true},
                "constant:4d": {"foreground": "#4d004d", "underline": true},
                "string:4d": {"foreground": "#000000"},
                "error:4d": {"foreground": "#ff0000", "bold": true, "italic": true}
            }
        },
        "[Default Dark+]":{
            "enabled": true,
            "rules": {
                "*:4d": {"foreground": "#FFFFFF", "bold": false, "italic": false, "underline": false, "strikethrough": false},
                "method:4d": {"foreground": "#1B79F3", "bold": true, "italic": true},
                "method.defaultLibrary:4d": {"foreground": "#59BB00", "italic": false},
                "method.plugin:4d": {"foreground": "#BFBFBF"},
                "property:4d": {"foreground": "#A0806B"},
                "function:4d": {"foreground": "#4EC36E", "italic": true},
                "parameter:4d": {"foreground": "#0C70FF", "bold": true},
                "variable.interprocess:4d": {"foreground": "#FF0088"},
                "variable.process:4d": {"foreground": "#53B0EB"},
                "variable.local:4d": {"foreground": "#18B3F1"},
                "keyword:4d": {"foreground": "#575757", "bold": true},
                "table:4d": {"foreground": "#CF5600"},
                "field:4d": {"foreground": "#9C6765"},
                "comment:4d": {"foreground": "#8F8F8F"},
                "type:4d": {"foreground": "#59BB00", "bold": true},
                "constant:4d": {"foreground": "#FA647F", "underline": true},
                "string:4d": {"foreground": "#FFFFFF"},
                "error:4d": {"foreground": "#ff0000", "bold": true, "italic": true}
            }
        }
    },

Si noti che il “:4d” dopo ogni tipo di token semantico non è obbligatorio, ma consente di impostare l’evidenziazione della sintassi solo per il linguaggio 4D. In questo modo, l’evidenziazione della sintassi per tutte le altre lingue rimarrà inalterata.
Quando si salvano le impostazioni, si può vedere l’effetto direttamente nell’editor di codice!

Questa personalizzazione è utile quando si utilizza VS Code con un progetto 4D contenente una parte Web. Tutti i linguaggi mantengono la propria evidenziazione della sintassi: HTML, CSS, Javascript e ora… 4D!

Avatar
- Product Owner -Damien Fuzeau è entrato a far parte del team 4D Product nel febbraio 2019. In qualità di Product Owner, si occupa di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo lavoro consiste anche nell'assicurarsi che le implementazioni delle funzionalità fornite soddisfino le esigenze dei clienti.Damien si è laureato all'Università di Nantes in ingegneria del software. Ha trascorso più di 23 anni nella sua precedente azienda, prima come sviluppatore (scoprendo 4D nel 1997), poi come responsabile dell'ingegneria e architetto software. Questa azienda è un partner OEM di 4D e ha distribuito software aziendali basati su 4D per migliaia di utenti, su centinaia di server. Damien è quindi abituato allo sviluppo e alla distribuzione di 4D in un contesto multilingue.