Fra og med SQLcl version 21.2 kan vi nu konfigurere SQLcl til syntaksfremhævning.
Det betyder, at den kode, du skriver i SQLcl, kan farvekodes, baseret på de syntaksfremhævningsregler, du anvender.
Standarden (syntaksfremhævning fra)
Her er en forespørgsel, som jeg skrev i min terminal uden syntaksfremhævning:
Så der er ikke fundet nogen farvekodning sted. Dette bruger de farver, som jeg konfigurerede i min terminals præferencer, som dybest set kun var hvid tekst på en sort baggrund.
Aktiver syntaksfremhævning
Du kan aktivere syntaksfremhævning med følgende linje:
set highlighting on
Dette giver et grundlæggende niveau af syntaksfremhævning.
Sådan ser den samme forespørgsel ud nu:
Grundlæggende er SQL-nøgleord fremhævet i cyan, men intet andet er det.
Tilføj mere farvekodning
Heldigvis kan vi tilføje noget mere farvekodning.
For eksempel:
set highlighting identifier foreground magenta
Dette farver alle identifikatorer med en forgrundsfarve på magenta:
Gem indstillinger til en login.sql
Fil
Du kan gemme dine syntaksfremhævningsindstillinger i en login.sql
fil.
Ved at gøre dette, vil du spare dig selv for at skulle konfigurere disse indstillinger, hver gang du opretter forbindelse ved hjælp af SQLcl. Dette er fordi du kan konfigurere det på en sådan måde, at login.sql
fil kører hver gang du opretter forbindelse ved hjælp af SQLcl.
Her er et eksempel på en login.sql
fil, der indeholder syntaksfremhævningskommandoer:
set sqlformat ansiconsole
set highlighting on
set highlighting keyword foreground blue
set highlighting identifier foreground magenta
set highlighting string foreground green
set highlighting number foreground cyan
set highlighting comment foreground yellow
Her er min første linje ikke relateret til syntaksformatering - den opsætter bare sqlformat
til ansiconsole
.
De resterende linjer aktiverer syntaksfremhævning og specificerer, hvilke farver der skal bruges.
Når du har tilføjet syntaksfremhævning til din login.sql
fil, afslut SQLcl og genopret forbindelse. Når den genopretter forbindelse, vil den køre login.sql
fil, og alle disse kommandoer træder i kraft.
Efter at have tilføjet ovenstående kommandoer til min login.sql
fil, sådan ser min forespørgsel ud nu (efter at jeg afsluttede SQLcl og oprettede forbindelse igen):
Måske skulle jeg have ladet søgeordene stå til cyan?
Andre syntaksfremhævningsindstillinger
Der er også andre muligheder, såsom muligheden for at indstille en baggrundsfarve, sætte et fed flag osv.
Den bedste måde at opdage disse på er at køre følgende kommando:
help set highlighting
Her er, hvad det returnerer for mig, når dette skrives:
set highlighting <flag> | <type> RESET | <type> FOREGROUND <color> | <type> BACKGROUND <color> | <type> BOLD <flag> | <type> ULINE <flag> | <type> INVERSE <flag> <type> = DEFAULT | COMMENT | STRING | NUMBER | PUNCTUATION | KEYWORD | IDENTIFIER <color> = RED | BLUE | BLACK | CYAN | GREEN | MAGENTA | WHITE | YELLOW <flag> = ON | OFF | RESET EXAMPLES set highlighting on
Listen over farver er ret lille (i hvert fald i skrivende stund), men den er stadig nok til at give en anstændig syntaksfremhævning.
Da syntaksfremhævning er en ny funktion, er det sandsynligt, at ovenstående hjælpemuligheder vil ændre sig og blive udvidet i fremtiden.