Kate's syntaksfremhævning-system

dette afsnit vil diskutere Kate's syntaksfremhævning-mekanismen i større detalje. Det er beregnet på dig, hvis du gerne vil kende til det, eller hvis du ønsker at ændre eller lave syntaksdefinitioner.

Hvordan virker det

Når du åbner en fil er en af de første ting som Kate-editoren gør at detektere hvilke syntaksdefinitioner der skal bruges for filen. Mens filens tekst læses, og mens du skriver i den, vil syntaksfremhævningssystemet analysere teksten ved brug af de regler der er defineret af syntaksdefinitioner og markere i filen hvor forskellige sammenhænge og stiler begynder og slutter.

Når du skriver i dokumentet, bliver den nye tekst analyseret og markeret langs af sted, så hvis du sletter et tegn der er markeret som begyndelsen eller slutningen af en sammenhæng, vil stilen for den omgivende tekst ændret tilsvarende.

De syntaksdefinitioner der bruges af Kate's syntaksfremhævningssystem er XML-filer der indeholder

  • Regler til at detektere tekstens rolle, organiseret i sammenhængsblokke

  • Nøgleordslister

  • Stilpunkt-definitioner

Når teksten analyseres, bliver detektionsreglerne evalueret i den rækkefølge i hvilken de er defineret, og hvis begyndelsen af den aktuelle streng matcher en regel, bruges den relaterede sammenhæng. Startpunktet i teksten flyttes til slutpunktet for hvilket denne regel matcher og en ny løkke af regler begynder, startende i den sammenhæng der er sat af den matchede regel.

Regler

Detektionsreglerne er hjertet af fremhævnings-detektionssystemet. En regel er en streng, et tegn eller et regulært udtryk mod hvilken den tekst der bliver analyseret skal matches. Den indeholder information om hvilken stile der skal bruges for den matchende del af teksten. Den vil muligvis skifte arbejdssammenhæng for systemet enten til en eksplicit nævnt sammenhæng eller til den tidligere sammenhæng brugt af teksten.

Regler er organiserede i sammenhængsgrupper. En sammenhængsgruppe bruges til hovedtekstbegreber indenfor formatet, for eksempel citerede tekststrenge eller kommentar-blokke i programmers kildekode. Dette sikrer at fremhævningen ikke behøver at gå i løkke gennem alle regler når det ikke er nødvendigt, og at visse tegnsekvenser i teksten kan behandles anderledes afhængig af den aktuelle sammenhæng.

Sammenhænge kan skabes dynamisk for eksempel for at tillade brug af instansspecifikke data i regler.

Sammenhængsstil og nøgleord

I visse programmeringssprog, bliver heltal behandlet anderledes end decimaltal af compileren (det program der konverterer kildekode til en binær kørbar), og der kan være tegn der har en speciel betydning indenfor en citeret streng. I sådanne tilfælde, giver det mening at vise dem anderledes end omgivelserne, så de er nemme at identificere mens man læser teksten. Så selvom de ikke repræsenterer specielle sammenhænge, kan de ses som sådan af syntaksfremhævningssystemet, så de kan markeres til en anderledes fremvisning.

En syntaksdefinition kan indeholde så mange stile som krævet for at dække begreberne for det format den bruges til.

I mange formater, er der lister af ord der repræsenterer et bestemt begreb. For eksempel i programmeringssprog, er kontroludsagn et begreb, datatypenavne et andet, og indbyggede funktioner i sproget et tredje. Kate's syntaksfremhævningssystem kan bruge sådanne lister til at detektere og markere ord i teksten for at understrege begreber fra tekstformaterne.

Standardstil

Hvis du åbner en C++ kildefil, en Java™ kildefil og et HTML-dokument i Kate, vil du se at selvom formaterne er forskellige, og forskellige ord således vælges til speciel behandling, er de brugte farver de samme. Det er fordi Kate har en prædefineret liste af standardstile, som anvendes af de individuelle syntaksdefinitioner.

Dette gør det nemt at genkende lignende begreber i forskellige tekstformater. For eksempel er kommentarer til stede i næsten programmerings-, script- eller opmarkeringssprog, og når de vises ved brug af den samme stil i alle sprog, skal du ikke stoppe op og tænke dig om for at identificere dem indenfor teksten.

Vink

Alle stile i en syntaksdefinition bruger en af stadardstilene. Nogle få syntaksdefinitioner bruger flere stile end der er som standard, så hvis du bruger et format ofte, er det måske besværet værd at starte indstillingsdialogen for at se om nogle begreber bruger den samme stil. For eksempel er der kun en standardstil for strenge, men da perl programmeringssproget opererer med to typer strenge, kan du udvide fremhævningen ved at indstille disse til at være en smule forskellige. Alle tilgængelige standardstiler vil blive forklaret senere.