El manual de la KatePart

# El manual de la KatePart

McGinnis, Thad `<ctmcginnis@compuserve.com>`

Mahfouf, Anne-Marie `<annma@kde.org>`

Lund, Anders `<anders@alweb.dk>`

Hollingsworth, T.C. `<tchollingsworth@gmail.com>`

developer: Cullmann, Christoph
reviewer: Watts, Lauri
Traductor: Antoni Bella
revisió Frameworks
5.94 (2 de maig de 2022)

Dret de reproducció © 2000, 2001 McGinnis, Thad

Dret de reproducció © 2005 Mahfouf, Anne-Marie `<annma@kde.org>`, Lund, Anders `<anders@alweb.dk>`

Dret de reproducció © 2011, 2012, 2013, 2014 Hollingsworth, T.C. `<tchollingsworth@gmail.com>`

Avís legal

La KatePart és un component d'edició amb totes les funcions per al KDE.

Llistat d'exemples

5.1. Exemples de char
5.2. Substitució de text en la línia actual
5.3. Substitució de text en tot el fitxer
5.4. Un exemple més avançat
5.5. sort vs. natsort
5.6. Unir les línies seleccionades
5.7. Elimina les línies buides
5.8. Elimina les línies buides

Capítol 1. Introducció
Introducció

# Capítol 1. Introducció

La KatePart és un component per a l'edició de text amb totes les funcions utilitzades per moltes aplicacions Qt™ i KDE. La KatePart és més que un simple editor de text. Pretén ser un editor per a programadors, i ser considerada almenys parcialment com a una alternativa als editors més potents. Una de les principals característiques de la KatePart és l'acoloriment de la sintaxi, personalitzada per als diferents llenguatges de programació com són: C/C++, Java™, Python, Perl, Bash, Modula 2, HTML i Ada.

El KWrite és una simple aplicació per a l'edició de text basada en la KatePart. Compta amb una única interfície de document (SDI -Single Document Interface-) que permet editar un fitxer alhora per finestra. Atès que el KWrite és una implementació molt simple de la KatePart, no requereix la seva pròpia documentació. Si coneixeu com utilitzar el KWrite, podeu utilitzar la KatePart onsevulla!

Capítol 2. Alguns fonaments
Alguns fonaments

# Capítol 2. Alguns fonaments

El KWrite i moltes altres que empren la KatePart són molt fàcils d'usar. Qualsevol que hagi emprat un editor de text no hauria de tenir cap problema en usar-lo.

## L'acció arrossega i deixa anar

La KatePart utilitza el protocol arrossegar i deixar anar del KDE. Els fitxers es poden arrossegar i deixar anar dins de la KatePart des de l'escriptori, el gestor de fitxers Dolphin o algun servidor remot d'FTP obert en una de les finestres del Dolphin.

Dreceres
Dreceres

## Dreceres

Moltes de les dreceres es poden configurar mitjançant el menú Arranjament. De manera predeterminada, la KatePart utilitza les següents dreceres:

Insert | Canvia entre els modes inserir i sobreescriure. Quan es troba en el mode inserir, l'editor afegirà al text qualsevol caràcter teclejat desplaçant qualsevol dada a la dreta del cursor. El mode sobreescriure farà que cada caràcter teclejat elimini el caràcter situat a la dreta del cursor de text.
Fletxa esquerra | Mou el cursor un caràcter cap a l'esquerra.
Fletxa dreta | Mou el cursor un caràcter cap a la dreta.
Fletxa amunt | Mou el cursor una línia cap amunt.
Fletxa avall | Mou el cursor una línia cap avall.
Ctrl+E | Va cap a la ubicació anterior d'edició en el document.
Ctrl+Maj+E | Va cap a la ubicació següent d'edició en el document.
Alt+Maj+Fletxa amunt | Mou el cursor fins al sagnat anterior que concordi.
Alt+Maj+Fletxa avall | Mou el cursor fins al sagnat anterior que concordi.
Ctrl+6 | Mou al parèntesi que coincideixi.
Re Pàg | Mou el cursor una pàgina cap amunt.
Av Pàg | Mou el cursor una pàgina cap avall.
Inici | Mou el cursor cap al començament de la línia.
Fi | Mou el cursor cap al final de la línia.
Ctrl+Inici | Mou al començament del document.
Ctrl+Fi | Mou al final del document.
Ctrl+Fletxa amunt | Desplaça una línia amunt.
Ctrl+Fletxa avall | Desplaça una línia avall.
Ctrl+Fletxa dreta | Mou una paraula a la dreta.
Ctrl+Fletxa esquerra | Mou una paraula a l'esquerra.
Ctrl+Maj+Fletxa amunt | Desplaça les línies amunt.
Ctrl+Maj+Fletxa avall | Desplaça les línies avall.
Ctrl+. | Duplica les línies seleccionades cap avall.
Ctrl+B | Estableix un punt.
Alt+Re Pàg | Punt anterior.
Alt+Av Pàg | Punt següent.
Supr | Suprimeix el caràcter a la dreta del cursor (o qualsevol text seleccionat).
Retrocés | Suprimeix el caràcter a l'esquerra del cursor.
Ctrl+Supr | Suprimeix la paraula a la dreta.
Ctrl+Retrocés | Suprimeix la paraula a l'esquerra.
Ctrl+K | Suprimeix la línia.
Maj+Retorn | Insereix una nova línia incloent caràcters al començament de la línia actual, que no siguin lletres o números. És útil, p. ex., per a escriure comentaris en el codi: Al final de la línia «// algun text» premeu aquesta drecera i la següent línia ja començarà amb «//». De manera que no haureu d'introduir els caràcters de comentari al començament de cada nova línia.
Ctrl+Maj+Retorn | Crea una línia nova sota la línia actual.
Ctrl+Alt+Retorn | Crea una línia nova sobre la línia actual.
Maj+Fletxa esquerra | Marca el text un caràcter cap a l'esquerra.
Maj+Fletxa dreta | Marca el text un caràcter cap a la dreta.
Ctrl+F | Cerca.
F3 | Cerca la següent.
Maj+F3 | Cerca l'anterior.
Ctrl+H | Cerca la selecció.
Ctrl+Maj+H | Cerca la selecció cap enrere.
Ctrl+Maj+Fletxa dreta | Selecciona una paraula a la dreta.
Ctrl+Maj+Fletxa esquerra | Selecciona una paraula a l'esquerra.
Maj+Inici | Selecciona des del començament de la línia.
Maj+Fi | Selecciona fins al final de la línia.
Maj+Fletxa amunt | Selecciona des de la línia prèvia.
Maj+Fletxa avall | Selecciona fins a la línia següent.
Ctrl+Maj+6 | Selecciona fins al parèntesi que coincideixi.
Ctrl+Maj+Re Pàg | Selecciona des de dalt de la vista.
Ctrl+Maj+Av Pàg | Selecciona fins a baix de la vista.
Maj+Re Pàg | Selecciona una pàgina amunt.
Maj+Av Pàg | Selecciona una pàgina avall.
Ctrl+Maj+Inici | Selecciona des del començament del document.
Ctrl+Maj+Fi | Selecciona fins al final del document.
Ctrl+Inici | Selecciona-ho tot.
Ctrl+Maj+A | Desselecciona.
Ctrl+Maj+B | Mode de selecció per blocs.
Ctrl+C / Ctrl+Insert | Copia el text marcat al porta-retalls.
Ctrl+D | Comentari.
Ctrl+Maj+D | Descomenta.
Ctrl+G | Ves a la línia...
Ctrl+I | Selecciona el sagnat.
Ctrl+Maj+I | Selecciona sense sagnar.
Ctrl+J | Uneix les línies.
Ctrl+P | Imprimeix.
Ctrl+R | Substitueix.
Ctrl+S | Crida a l'ordre Desa.
Ctrl+Maj+S | Desa com a.
Ctrl+U | Majúscules.
Ctrl+Maj+U | Minúscules.
Ctrl+Alt+U | Posa la primera lletra en majúscula.
Ctrl+V / Maj+Insert | Enganxa el contingut del porta-retalls.
Ctrl+X / Maj+Insert | Suprimeix el text marcat i el copia al porta-retalls.
Ctrl+Z | Desfés.
Ctrl+Maj+Z | Refés.
Ctrl+- | Minva la lletra.
Ctrl++Ctrl+= | Augmenta la lletra.
Ctrl+Maj+- | Contrau els nodes de nivell superior.
Ctrl+Maj++ | Expandeix els nodes de nivell superior.
Ctrl+Espai | Invoca la compleció de codi.
F5 | Torna a carregar.
F6 | Mostra/Oculta la vora de la icona.
F7 | Canvia a la línia d'ordres.
F9 | Mostra/Oculta els marcadors plegables.
F10 | Ajust dinàmic de les paraules.
F11 | Mostra/Oculta els números de les línies.
Ctrl+T | Transposa els caràcters.
Ctrl+Maj+O | Comprova automàticament l'ortografia.
Ctrl+Maj+V | Canvia al mode d'entrada següent.
Ctrl+8 | Reutilitza la paraula de més amunt.
Ctrl+9 | Reutilitza la paraula de més avall.
Ctrl+Alt+# | Expandeix les abreviatures.
Ctrl+Alt+Fletxa amunt | Afegeix un cursor sobre el cursor actual.
Ctrl+Alt+Fletxa avall | Afegeix un cursor sota el cursor actual.
Maj+Alt+I | Crea un cursor al final de cada línia de la selecció.
Alt+J | Cerca l'ocurrència següent de la paraula sota el cursor i la selecciona.
Ctrl+Alt+Maj+J | Cerca totes les ocurrències de la paraula sota el cursor i les selecciona.

Capítol 3. Treballar amb l'editor KatePart
Treballar amb l'editor KatePart

# Capítol 3. Treballar amb l'editor KatePart

Lund, Anders `<anders@alweb.dk>`

Haumann, Dominik `<dhdev@gmx.de>`

Traductor: Antoni Bella

## Vista general

L'editor de la KatePart és l'àrea d'edició de la finestra de la KatePart. Aquest editor és compartit entre el Kate i el KWrite, i es pot utilitzar en el Konqueror per a mostrar fitxers de text des del vostre ordinador local o des de la xarxa.

L'editor es compon dels següents components:

L'àrea d'edició

  Aquest és el lloc a on s'ubica el text del vostre document.

Les barres de desplaçament

  Les barres de desplaçament indiquen la posició de la part visible del document de text i es poden utilitzar per a moure's a través del document. Arrossegar les barres de desplaçament no causarà el moviment del cursor d'inserció.

  Les barres de desplaçament es mostren i oculten en ser requerit.

La vora de la icona

  La vora de la icona és una petita subfinestra al costat esquerre de l'editor, que mostra una petita icona propera a les línies marcades.

  Podeu establir o eliminar un punt en una línia visible fent clic amb el botó esquerre del ratolí en la vora de la icona propera a aquesta línia.

  La vora de la icona es pot mostrar/ocultar utilitzant l'element Visualitza → Mostra la vora per a les icones del menú.

La subfinestra dels números de les línies

  La subfinestra dels números de les línies mostra els números de línia de totes les línies visibles en el document.

  La subfinestra dels números de les línies es pot mostrar/ocultar utilitzant l'element Visualitza → Mostra els números de les línies del menú.

La subfinestra de plegat

  La subfinestra de plegat us permet contraure o expandir els blocs plegables de línies. El càlcul de les regions plegables es realitza d'acord amb les regles en la definició de ressaltat de la sintaxi per al document.

També en aquest capítol:

- Navegar pel text

- Treballar amb la selecció

- Copiar i enganxar text

- Cercar i substituir text

- Usar els punts

- Ajustar el text automàticament

- Usar el sagnat automàtic

Navegar pel text
Navegar pel text

## Navegar pel text

Moure's pel text en la KatePart és similar a la resta d'editors gràfics. Podeu desplaçar el cursor utilitzant les tecles del cursor i les tecles Re Pàg, Av Pàg, Inici i Fi en combinació amb els modificadors Ctrl i Maj. La tecla Maj sempre s'utilitza per a generar una selecció, mentre que la tecla Ctrl té diferents efectes sobre tecles diferents:

- Per a les tecles Fletxa amunt i Fletxa avall vol dir desplaçament i no moviment del cursor.

- Per a les tecles Fletxa esquerra i Fletxa dreta vol dir deixar paraules en comptes de caràcters.

- Per a les tecles Re Pàg i Av Pàg vol dir moure's a la vora visible de la vora en comptes de navegar.

- Per a les tecles Inici i Fi vol dir moure's fins al començament o final del document en comptes de fins al començament i al final de la línia.

La KatePart també proveeix una manera d'anar ràpidament fins a la parella d'una clau o un parèntesi: situeu el cursor en un caràcter de parèntesi o clau, i premeu Ctrl+6 per a anar fins al parèntesi o clau amb què s'aparella.

A més podeu utilitzar els punts per a saltar ràpidament fins a posicions que heu definit.

Treballar amb la selecció
Treballar amb la selecció

## Treballar amb la selecció

Hi ha dues maneres bàsiques de seleccionar text en la KatePart: utilitzant el ratolí i utilitzant el teclat.

Per a seleccionar utilitzant el ratolí, manteniu premut el botó esquerre del ratolí mentre arrossegueu el cursor del ratolí des d'on calgui començar la selecció, fins al marcador que desitgeu. El text s'anirà seleccionant a mesura que aneu arrossegant.

Doble clic a sobre d'una paraula, seleccionarà aquesta paraula.

Triple clic sobre una línia, la seleccionarà tota.

Si es manté premuda la tecla Maj mentre es fa clic, se seleccionarà el text:

- Si no hi ha res seleccionat, des de la posició del cursor fins a la posició del cursor del ratolí.

- Si hi ha una selecció, des de i incloent aquesta selecció fins a la posició del cursor del ratolí.

### Nota

Mentre se selecciona text arrossegant el ratolí, el text seleccionat es copiarà al porta-retalls i es podrà enganxar a l'editor fent clic amb el botó mig del ratolí, o en qualsevol altra aplicació en què es vulgui enganxar el text.

Per a seleccionar utilitzant el teclat, manteniu premuda la tecla Maj mentre empreu les tecles de navegació (les tecles de fletxa, Re Pàg, Av Pàg, Inici i Fi, possiblement en combinació amb Ctrl per a estendre el moviment del cursor de text).

Consulteu també la secció Navegar pel text en aquest capítol.

Per a copiar la selecció actual, utilitzeu l'element Edita → Copia del menú o la drecera de teclat (la predeterminada Ctrl+C).

Per a desseleccionar la selecció actual, utilitzeu l'element Edita → Desselecciona del menú, la drecera de teclat (predeterminada Ctrl+Maj+A) o feu clic amb el botó esquerre del ratolí a l'editor.

### Usar la selecció en bloc

Quan la selecció en bloc estigui activada, podreu realitzar «seleccions verticals» en el text, el qual vol dir que podeu seleccionar un nombre determinat de columnes en diverses línies a la vegada. Això és útil, per exemple, si treballeu amb línies separades per tabulacions.

La selecció en bloc es pot activar/desactivar en l'element Edita → Mode de selecció per blocs del menú. La drecera de teclat predeterminada és Ctrl+Maj+B.

### Usar el mode sobreescriure

Si l'opció mode sobreescriure està activada, en escriure o enganxar text a sobre d'una selecció, aquesta serà substituïda. Si no està activada, el text nou serà afegit a la posició del cursor de text.

El mode sobreescriure està activat de manera predeterminada.

Per a canviar la configuració d'aquesta opció, utilitzeu la pàgina Cursor i selecció del diàleg de configuració.

### Usar les seleccions persistents

Si les seleccions persistents estan activades, escriure caràcters o moure el cursor no causarà que desaparegui la selecció. Això vol dir que podeu moure el cursor a fora de la selecció i escriure.

Les seleccions persistents estan desactivades de manera predeterminada.

Les seleccions persistents es poden activar a la pàgina Cursor i selecció del diàleg de configuració.

### Avís

Si està activada, tant les seleccions persistents com el mode sobreescriure, escriure o enganxar text quan el cursor es troba a dins de la selecció causarà que aquesta sigui substituïda i desseleccionada.

Copiar i enganxar text
Copiar i enganxar text

## Copiar i enganxar text

Per a copiar text, seleccioneu-lo i utilitzeu l'element Edita → Copia del menú. De manera addicional, el fet de seleccionar text amb el ratolí causarà que aquest sigui copiat a la selecció X.

Per a enganxar el text que es troba en el porta-retalls, utilitzeu l'element Edita → Enganxa del menú.

De forma addicional, el text seleccionat amb el ratolí es pot enganxar fent clic amb el botó mig del ratolí a la posició desitjada.

### Suggeriment

Si esteu utilitzant l'escriptori KDE, podeu recuperar el text que s'ha copiat des de qualsevol aplicació utilitzant la icona del Klipper, que es troba a la safata del sistema.

Cercar i substituir text
Cercar i substituir text

## Cercar i substituir text

### Les barres de cerca i substitueix

La KatePart té una barra de cerca incremental i una barra de cerca i substitució potent, la qual ofereix l'opció d'introduir una cadena de substitució amb algunes opcions extra.

Les barres ofereixen les següents opcions comunes:

Cerca

  Aquí és a on s'introdueix la cadena de cerca. La interpretació de la mateixa dependrà d'algunes de les opcions descrites tot seguit.

Fes concordar les majúscules

  Si s'activa, la cerca es limitarà a les entrades que coincideixin amb (majúscules o minúscules) cadascun dels caràcters en el patró de cerca.

Les poderoses barres de cerca i substitució ofereixen algunes opcions addicionals:

Text net

  Coincideix literalment amb qualsevol ocurrència de la cadena de cerca.

Paraules completes

  Si està marcada, la cerca tan sols coincidirà si hi ha un límit de paraula en ambdós extrems de la cadena coincident, no sent aquest límit un caràcter alfanumèric, sinó un altre caràcter visible o un fi de línia.

Seqüències d'escapada

  Si està marcada, serà activat l'element Afegeix del menú a la part inferior del menú contextual dels quadres de text i us permetrà afegir seqüències d'escapament per al patró de cerca a partir d'una llista predefinida.

Expressió regular

  Si està marcada, la cadena de cerca s'interpretarà com una expressió regular. S'activarà l'element Afegeix del menú, a la part inferior del menú contextual dels quadres de text i us permetrà afegir elements d'expressions regulars a la cadena de cerca a partir d'una llista predefinida.

  Per a obtenir més informació referent a això, vegeu expressions regulars.

Cerca només en la selecció

  Si està marcada, la cerca i substitució només es durà a terme dins del text seleccionat.

Cerca-ho tot

  En fer clic en aquest botó es ressaltaran totes les coincidències en el document i se'n mostra el nombre en una petita finestra emergent.

### Cercar text

Per a cercar text, obriu la barra de cerca incremental amb Ctrl+F o des de l'element Edita → Cerca... del menú.

Això obre la barra de cerca incremental a la part inferior de la finestra de l'editor. En el costat esquerre de la barra hi ha un botó amb una icona per a tancar la barra, seguit d'un petit quadre de text per a introduir el patró de cerca.

Quan comenceu a escriure els caràcters del patró de cerca, aquesta s'iniciarà immediatament. Si hi ha una coincidència en el text, aquest serà ressaltat i el color de fons del camp d'entrada canviarà a una llum verda. Si el patró de cerca no coincideix amb cap cadena en el text, això s'indicarà per un color de fons de llum vermella en el camp d'entrada i No s'ha trobat es mostrarà al costat dret de la barra.

Empreu el botó o per a saltar a la següent o anterior coincidència en el document.

Les coincidències en el document seran ressaltades, fins i tot quan tanqueu la barra de cerca. Per a netejar el ressaltat, premeu la tecla Esc.

Podeu decidir si la cerca ha de ser amb majúscules i minúscules. Seleccionant es limitarà la cerca d'entrades amb el cas (majúscules i minúscules) de cadascun dels caràcters en el patró de cerca.

Feu clic sobre el botó al costat dret de la barra de cerca incremental per a canviar entre la cerca i substitució.

Repeteix l'última operació de cerca, si n'hi ha cap, sense cridar la barra de cerca incremental, utilitzeu Edita → Cerca la següent (F3) o Edita → Cerca l'anterior (Maj+F3).

### Substituir text

Per a substituir text, llanceu potent la barra de cerca i substitució utilitzant l'ordre Edita → Substitueix o la drecera Ctrl+R.

A la part superior esquerra de la barra hi ha un botó amb una icona per a tancar la barra, seguit d'un petit quadre combinat per a introduir el patró de cerca. El quadre recordarà els patrons emprats recentment.

Podeu controlar el mode de cerca seleccionant les opcions Text net, Paraules completes, Seqüències d'escapada o Expressions regulars des de la llista desplegable.

Si s'ha marcat Seqüències d'escapada o Expressions regulars, l'element Afegeix del menú, a la part inferior del menú contextual dels quadres de text i us permetrà afegir elements d'expressió regular al patró de cerca o substitució a partir d'una llista predefinida.

Empreu el botó o per a saltar a la següent o anterior coincidència en el document.

Introduïu el text a substituir en el quadre de text Substitueix i feu clic al botó Substitueix per a substituir només el text seleccionat o el botó Substitueix-ho tot per a substituir el text de cerca en tot el document.

Podeu modificar el comportament de cerca i substitueix seleccionant les diferents opcions a la part inferior de la barra. Seleccionant es trobaran les entrades que coincideixin amb (majúscules o minúscules) cadascun dels caràcters en el patró de cerca., només cercarà i substituirà dins de la selecció actual. El botó Cerca-ho tot ressaltarà totes les coincidències en el document i en mostrarà el nombre en una petita finestra emergent.

Feu clic al botó a la part dreta de la barra de cerca i substitueix per a veure la barra de cerca incremental.

### Suggeriment

Si esteu utilitzant una expressió regular per a cercar el text a substituir, podreu emprar referències enrere per a tornar a utilitzar text en subpatrons entre parèntesis de l'expressió.

Per a obtenir més informació referent a això, vegeu expressions regulars.

### Suggeriment

Podeu utilitzar les ordres find, replace i ifind (cerca incremental) des de la línia d'ordres.

Ús dels punts
Ús dels punts

## Ús dels punts

La característica dels punts us permet marcar certes línies i poder tornar-hi d'una forma fàcil.

Podeu establir o eliminar un punt d'una línia de dues maneres:

- Movent el cursor cap aquesta línia i activant l'ordre Punts → Defineix un punt (Ctrl+B).

- Fent clic en la vora de les icones al costat de la línia.

Els punts estan disponibles en el menú Punts. Els punts individuals estan disponibles com a elements del menú, etiquetats amb el número de línia del punt o els primers caràcters del text en la línia. Per a moure el cursor d'inserció cap al començament d'una línia marcada, obriu el menú i seleccioneu el punt.

Per a moure-us ràpidament entre els punts o per a anar cap al següent/anterior punt, utilitzeu les ordres Punts → Següent (Alt+Av Pàg) o Punts → Anterior (Alt+Re Pàg).

Ajust automàtic del text
Ajust automàtic del text

## Ajust automàtic del text

Aquesta característica permet donar un format simple al text: el text serà tallat, de manera que cap línia excedeixi un cert nombre de caràcters, a menys que hi hagi una cadena més llarga que no contingui espais en blanc.

Per a activar/desactivar aquesta opció, marqueu/desmarqueu la casella de selecció Ajust de línia a la pàgina Edició del diàleg de configuració.

Per a establir l'amplada màxima de la línia (màxim nombre de caràcters per línia), utilitzeu l'opció Ajusta línia a en la pàgina Edició del diàleg de configuració.

Si està activada, tindrà els següents efectes:

- En escriure l'editor inserirà automàticament un salt de línia després de l'últim caràcter d'espai en una posició abans d'abastar l'amplada màxima de la línia.

- Mentre es carrega un document, l'editor en processarà el text d'una manera similar, així cap línia superarà en longitud el màxim establert, sempre que contingui un espai en blanc que ho permeti.

### Nota

En aquest moment no hi ha forma d'establir l'ajust de línia només per a alguns tipus de documents en concret o activar/desactivar aquesta característica en un punt del document. Aquest problema serà solucionat en futures versions de la KatePart.

Usar el sagnat automàtic
Usar el sagnat automàtic

## Usar el sagnat automàtic

L'editor KatePart suporta una varietat dels modes de sagnat automàtic, ha estat dissenyada per a diferents formats de text. Podeu seleccionar un dels modes disponibles usant l'element Eines → Sagnat del menú. El mòdul de sagnat automàtic també proveeix la funció Eines → Format del sagnat que tornarà a calcular el sagnat del text seleccionat o de la línia actual. D'aquesta manera podreu tornar a establir el sagnat sencer al vostre document seleccionant tot el text i activant aquesta acció.

Tots els modes de sagnat utilitzen la configuració de sagnat al document actiu.

### Suggeriment

Podeu configurar l'ordenació de totes les variables de configuració, incloses les relatives a l'ús del sagnat utilitzant les Variables de document i els Tipus de fitxer.

Modes de sagnat automàtic disponibles

Cap

  Seleccionant aquest mode es desactiva per complet el sagnat automàtic.

Normal

  Aquest sagnat simplement manté un sagnat similar al de la línia anterior amb qualsevol contingut diferent d'un espai en blanc. Podeu combinar aquest amb les accions sagna i sense sagnar segons els vostres gustos.

Estil C

  Un sagnat per als llenguatges C i similars, com C++, C#, Java™, JavaScript i més. Aquest sagnat no funcionarà amb llenguatges per a la creació de scripts com Perl o PHP.

Haskell

  Un sagnat per al funcional llenguatge de programació Haskell.

Lilypond

  Un sagnat especial per al llenguatge de notació Lilypond, per a música.

Lisp

  Un sagnat especial per al llenguatge Lisp i els seus dialectes per a la creació de scripts.

Python

  Un sagnat especial per al llenguatge Python per a la creació de scripts.

Estil XML

  Un sagnat especial per als llenguatges com XML.

Indicadors de modificació de línia
Indicadors de modificació de línia

## Indicadors de modificació de línia

Els indicadors de modificació de línia de la KatePart permeten veure amb facilitat el que heu canviat recentment en un fitxer. De manera predeterminada, els canvis desats s'indiquen mitjançant una barra verda a l'esquerra d'un document, mentre que els canvis sense desar s'indiquen amb una barra taronja.

Els indicadors de modificació de línia en acció.

Podeu canviar els colors utilitzats des del plafó de configuració Lletres i colors, o podeu desactivar completament aquesta característica a la pestanya Vores del plafó de configuració Aparença.

El mapa en miniatura a la barra de desplaçament
El mapa en miniatura a la barra de desplaçament

## El mapa en miniatura a la barra de desplaçament

El mapa en miniatura a la barra de desplaçament de la KatePart mostra una vista prèvia del document en lloc de la barra de desplaçament. La porció actualment visible del document està ressaltada.

El mapa en miniatura a la barra de desplaçament mostra una vista prèvia del codi font del Kate.

Podeu activar o desactivar temporalment el mapa en miniatura seleccionant Visualitza → Mostra un mapa en miniatura a la barra de desplaçament o permanentment a la secció Aparença de la configuració de la KatePart.

Cursors múltiples
Cursors múltiples

## Cursors múltiples

La implementació dels cursors múltiples es va introduir amb la versió 5.93 de la «katepart».

### Creació de cursors múltiples

- Per a crear-los a través del ratolí, useu Alt + botó esquerre del ratolí. El modificador és configurable, vegeu Configuració del modificador de multicursor

- Per a crear-los a través del teclat, premeu Ctrl+Alt+Fletxa amunt per a crear un cursor sobre el cursor primari i Ctrl+Alt+Fletxa avall per a crear el cursor a sota. Aquestes dreceres també són configurables.

- Per a crear cursors fora d'una selecció, primer seleccioneu un text i després premeu Maj+Alt+I. Això crearà un cursor al final de cada línia de la selecció.

- Useu Alt+J per a cercar l'ocurrència següent de la paraula sota el cursor i seleccionar/la + crear un cursor. Si voleu ometre la paraula actual sota el cursor, premeu Alt+K i es marcarà la paraula actualment seleccionada com a omesa. Quan torneu a prémer Alt+J la paraula actual es desseleccionarà i anirà a la paraula següent.

- Useu Ctrl+Alt+Maj+J per a cercar totes les ocurrències de la paraula sota el cursor i seleccionar-les amb un cursor al final de cada selecció. Podeu usar Alt+J per a circular a través de les paraules seleccionades i usar Alt+K per a desseleccionar qualsevol paraula com es menciona en el paràgraf anterior.

### Treballar amb cursors múltiples

Una vegada hàgiu creat alguns cursors, podreu realitzar la majoria de les operacions d'edició sobre ells com ho faríeu en un cursor sol. Per exemple, teclejar una lletra l'escriurà per a cada cursor. De la mateixa manera podeu realitzar transformacions de text, p. ex., posar en majúscules totes les posicions o seleccions.

A vegades voldreu eliminar cursors. Per a fer-ho, podeu fer Alt + botó esquerre del ratolí al cursor que voleu eliminar. Si només voleu eliminar els cursors en línies que estan buides, hi ha una acció preparada ho farà. Per a invocar l'acció, obriu la barra d'ordres utilitzant Ctrl+Alt+I i cerqueu Elimina els cursors de les línies buides i premeu Retorn. També podeu configurar una drecera per a aquesta acció.

Capítol 4. Les entrades del menú
Les entrades del menú

# Capítol 4. Les entrades del menú

## El menú Fitxer

Fitxer → Nou (Ctrl+N)

  Comença amb un document nou en una finestra de l'editor nova i independent.

Fitxer → Finestra nova

  Crea una altra finestra que conté el document actual. Tots els canvis al document en una finestra es reflecteixen en l'altra finestra i viceversa.

Fitxer → Obre... (Ctrl+O)

  Mostra un diàleg estàndard del KDE Obre el fitxer. Utilitzeu la vista de fitxers per a seleccionar el que voleu obrir i feu clic a Obre per a obrir-lo.

Fitxer → Obre recent

  Es tracta d'una drecera per a obrir els últims documents desats. Fent clic sobre aquest element s'obrirà una llista al costat del menú amb diversos fitxers desats recentment. Fent clic sobre un fitxer en concret fareu que s'obri en la KatePart -sempre que el fitxer encara resideixi en el mateix lloc-.

Fitxer → Desa (Ctrl+S)

  Desa el document actual. Si ja s'havia desat anteriorment aquest document sobreescriurà l'anterior sense preguntar a l'usuari. Si és la primera vegada que es desa apareixerà el diàleg (que es descriu tot seguit) desar com.

Fitxer → Desa com a... (Ctrl+Maj+S)

  Permet que un document sigui desat amb un nom nou. Això es fa a través del diàleg de fitxers descrit anteriorment a la secció Obre d'aquest fitxer d'ajuda.

Fitxer → Desa amb la codificació...

  Desa un document amb un nom de fitxer nou en una codificació diferent.

Fitxer → Desa una còpia com a...

  Desa una còpia del document amb un nom de fitxer nou i segueix editant el document original.

Fitxer → Recarrega (F5)

  Torna a carregar el fitxer actiu des del disc. Aquesta ordre és útil si un altre programa o procés ha canviat el fitxer mentre el teníeu obert a la KatePart.

Fitxer → Imprimeix... (Ctrl+P)

  Obre un simple diàleg d'impressió que permet a l'usuari especificar què, a on i com imprimir.

Fitxer → Exporta com a HTML...

  Desa el document obert com un fitxer HTML, el qual se li donarà format amb la configuració actual per al ressaltat de la sintaxi i l'esquema de color.

Fitxer → Tanca (Ctrl+W)

  Aquesta ordre tanca el fitxer actiu. Si heu realitzat canvis que no heu desat, se us demanarà desar el fitxer abans que la KatePart el tanqui.

Fitxer → Surt (Ctrl+Q)

  Tancarà la finestra de l'editor, si teniu més d'una instància de la KatePart en execució, a través dels elements Nou o Finestra nova del menú, aquestes instàncies no seran tancades.

El menú Edita
El menú Edita

## El menú Edita

Edita → Desfés (Ctrl+Z)

  Desfà l'última ordre d'edició (escriure, copiar, tallar, etc.)

  ### Nota

  Es poden desfer diverses ordres d'edició de forma simultània, com escriure caràcters.

Edita → Refés (Ctrl+Maj+Z)

  Revertirà els canvis més recents (si n'hi ha) realitzats emprant Desfés.

Edita → Retalla (Ctrl+X)

  Suprimeix la selecció actual i la col·loca al porta-retalls. El porta-retalls funciona de forma transparent i proveeix una manera de transferir les dades entre les aplicacions.

Edita → Copia (Ctrl+C)

  Copia el text seleccionat al porta-retalls de manera que es pugui enganxar on es vulgui. El porta-retalls funciona de manera transparent i proveeix una manera de transferir les dades entre les aplicacions.

Edita → Copia com a HTML

  Copia la selecció com a HTML, amb format utilitzant la configuració actual per al ressaltat de la sintaxi i l'esquema de color.

Edita → Enganxa (Ctrl+V)

  Inserirà el primer element al porta-retalls a la posició del cursor. El porta-retalls funciona de manera transparent i proveeix una manera de transferir les dades entre les aplicacions.

  ### Nota

  Si l'opció Sobreescriure la selecció està activada, el text enganxat sobreescriurà la selecció, si n'hi ha.

Edita → Enganxa la selecció (Ctrl+Maj+Insert)

  Això enganxarà el contingut de la selecció del ratolí que s'ha triat prèviament. Marqueu algun text amb el punter del ratolí per a enganxar-lo en el fitxer obert utilitzant aquest element de menú.

Edita → Intercanvia amb el contingut del porta-retalls

  Això intercanviarà el text seleccionat amb el contingut en el porta-retalls.

Edita → Enganxa l'historial del porta-retalls

  Això obrirà un diàleg per a seleccionar i enganxar una entrada des de l'historial del porta-retalls.

Edita → Modes d'entrada

  Canvia entre una visió normal i com el vi, el mode d'edició modal. El mode d'entrada com el vi suporta les ordres més utilitzades i els moviments del mode normal i visual del vim i té una barra d'estat opcional del mode vi. Aquesta barra d'estat mostra les ordres mentre s'estan introduint, la seva sortida i el mode actual. El comportament d'aquest mode es pot configurar a la pestanya Mode d'entrada del vi de la pàgina Edició del diàleg de configuració de la KatePart.

Edita → Mode sobreescriure (Insert)

  Canvia entre els modes Insereix/Sobreescriu. Quan el mode és INS, inseriu els caràcters on està el cursor. Quan el mode és SOB, els caràcters escrits substituiran als caràcters actuals, si el cursor es col·loca abans de qualsevol caràcter. La barra d'estat mostra l'estat actual del Mode sobreescriure, sigui INS o SOB.

Edita → Mode de només lectura

  Estableix el document actual al mode de només lectura. Això evita que es pugui afegir text o canvis en el format del document.

Edita → Cerca... (Ctrl+F)

  Obre la barra de cerca incremental a la part inferior de la finestra de l'editor. Al costat esquerre de la barra hi ha un botó amb una icona per a tancar la barra, seguit d'un petit quadre de text per a introduir el patró de cerca.

  Quan comenceu a escriure caràcters del patró de cerca, aquesta s'iniciarà immediatament. Si hi ha una coincidència en el text aquest serà ressaltat i el color de fons del camp d'entrada canviarà a una llum verda. Si el patró de cerca no coincideix amb cap cadena en el text, això s'indicarà amb un color de fons de llum vermella en el camp d'entrada.

  Empreu els botons o per a saltar a la següent o anterior coincidència en el document.

  Les coincidències en el document seran ressaltades, fins i tot quan tanqueu la barra de cerca. Per a netejar el ressaltat, premeu la tecla Esc.

  Podeu decidir si la cerca ha de ser amb majúscules i minúscules. Seleccionant es limitarà la cerca d'entrades amb (majúscules i minúscules) cadascun dels caràcters en el patró de cerca.

  Feu clic al botó a la part dreta de la barra de cerca incremental per a canviar entre les poderoses barres de cerca i de substitució.

Edita → Cerca les variants → Cerca la següent (F3)

  Repeteix l'última operació de cerca, si n'hi ha cap, sense cridar la barra de cerca incremental, i cercant cap endavant pel document començant des de la posició del cursor.

Edita → Cerca les variants → Cerca l'anterior (Maj+F3)

  Repeteix l'última operació de cerca, si n'hi ha cap, sense cridar la barra de cerca incremental, i cercant cap enrere pel document en comptes de cap endavant.

Edita → Cerca les variants → Cerca la selecció (Ctrl+H)

  Cerca la següent ocurrència del text seleccionat.

Edita → Cerca les variants → Cerca la selecció cap enrere (Ctrl+Maj+H)

  Cerca l'ocurrència anterior del text seleccionat.

Edita → Substitueix... (Ctrl+R)

  Obre la barra de cerca i substitueix. A la part inferior de la finestra de l'editor, en el costat esquerre de la barra hi ha un botó amb una icona per a tancar la barra, seguit d'un petit quadre de text per a introduir el patró de cerca.

  Podeu controlar el mode de cerca seleccionant les opcions Text net, Paraules completes, Seqüències d'escapada o Expressió regular des de la llista desplegable.

  Si s'ha marcat Seqüències d'escapada o Expressions regulars, l'element Afegeix del menú, a la part inferior del menú contextual dels quadres de text i us permetrà afegir elements d'expressió regular al patró de cerca o substitució a partir d'una llista predefinida.

  Empreu els botons o per a saltar a la següent o anterior coincidència en el document.

  Introduïu el text a substituir en el quadre de text Substitueix i feu clic al botó Substitueix per a substituir només el text seleccionat o el botó Substitueix-ho tot per a substituir el text de cerca en tot el document.

  Podeu modificar el comportament de cerca i substitueix seleccionant les diferents opcions a la part inferior de la barra. Seleccionant es trobaran les entrades que coincideixin amb (majúscules o minúscules) cadascun dels caràcters en el patró de cerca., només cercarà i substituirà dins de la selecció actual. El botó Cerca-ho tot ressaltarà totes les coincidències en el document i en mostrarà el nombre en una petita finestra emergent.

  Feu clic al botó a la part dreta de la barra de cerca i substitueix per a veure la barra de cerca incremental.

El menú de selecció
El menú de selecció

## El menú de selecció

Selecció → Selecciona-ho tot (Ctrl+A)

  Selecciona tot el document. Això pot resultar molt útil per a copiar tot el fitxer a una altra aplicació.

Selecció → Desselecciona (Ctrl+Maj+A)

  Desselecciona el text seleccionat a l'editor (si n'hi ha).

Selecció → Mode selecció per blocs (Ctrl+Maj+B)

  Canvia el mode de selecció. Quan el mode de selecció sigui BLOC, la barra d'estat contindrà [BLOC] i podreu fer seleccions verticals, p. ex., seleccionar des de la columna 5 a la 10 en les línies 9 a la 15.

Selecció → Comenta (Ctrl+D)

  Afegeix un espai al començament de la línia en la qual estigui el cursor de text o al començament del conjunt de qualsevol línia seleccionada.

Selecció → Descomenta (Ctrl+Maj+D)

  Elimina un espai (si n'hi ha cap) del començament de la línia en la qual estigui situat el cursor de text o des del començament del conjunt de qualsevol línia seleccionada.

Selecció → Uneix les línies (Ctrl+J)

  Uneix les línies seleccionades, o la línia actual i la línia anterior amb un espai en blanc com a separació. Eliminarà els espais en blanc inicials/finals unint les línies pels extrems afectats.

Selecció → Posa en majúscula la primera lletra (Ctrl+Alt+U)

  Posa en majúscula la primera lletra del text seleccionat o la paraula actual.

Selecció → Majúscules (Ctrl+U)

  Canvia a majúscules el text seleccionat o la lletra després del cursor.

Selecció → Minúscules (Ctrl+Maj+U)

  Canvia a minúscules el text seleccionat o la lletra després del cursor.

Selecció → Neteja el sagnat

  Neteja el sagnat per a la selecció actual o per a la línia en la qual es trobi el cursor. Netejar el sagnat assegura que tot el text seleccionat segueixi el mode de sagnat que heu escollit.

Selecció → Format del sagnat

  Causa una realineació de la línia actual o de les línies seleccionades utilitzant el mode de sagnat i la configuració del sagnat en el document.

Selecció → Alinea a...

  Aquesta ordre alinea les línies del bloc seleccionat o de tot el document a la columna indicada per una expressió regular que se us demanarà.

  Si proporcioneu un patró buit, s'alinearà al primer caràcter no blanc de manera predeterminada.

  Si el patró té una captura, se sagnarà en la coincidència capturada.

  Exemples:

  Amb «`-`» s'inseriran espais abans del primer «-» de cada línia per a alinear-les totes a la mateixa columna.

  Amb «`alignon :\\s+(.)`» s'inseriran espais abans del primer caràcter no blanc que hi hagi després de dos punts (:) per a alinear-les totes a la mateixa columna.

Selecció → Aplica l'ajust de les paraules

  Aplica l'ajust de línia estàtic en tot el document. Això vol dir que s'iniciarà automàticament una nova línia de text quan la línia excedeixi de la longitud especificada per l'opció Ajusta les paraules a: a la pestanya Edició en el menú Arranjament → Configura l'editor....

Selecció → Afegeix un cursor sobre el cursor (Ctrl+Alt+Fletxa amunt)

  Afegeix un altre cursor sobre el cursor actual. El cursor es col·loca a la línia directament superior i a la mateixa columna que el cursor actual.

Selecció → Afegeix un cursor sota el cursor (Ctrl+Alt+Fletxa avall)

  Afegeix un altre cursor sota el cursor actual. El cursor es col·loca a la línia directament superior i a la mateixa columna que el cursor actual.

Selecció → Afegeix cursors als finals de línia (Alt+Maj+I)

  Afegeix un cursor a cada línia actualment seleccionada.

Selecció → Cerca i selecciona l'ocurrència següent (Alt+J)

  Cerca l'ocurrència següent de la paraula actualment sota el cursor, la selecciona i afegeix un cursor.

Selecció → Cerca i selecciona totes les ocurrències (Ctrl+Alt+Maj+J)

  Cerca totes les ocurrències de la paraula actualment sota el cursor, les selecciona i afegeix un cursor a cada una d'elles.

El menú Visualitza
El menú Visualitza

## El menú Visualitza

Visualitza → Augmenta la lletra (Ctrl++)

  Augmenta la mida de la lletra a visualitzar.

Visualitza → Minva la lletra (Ctrl+-)

  Minva la mida de la lletra a visualitzar.

Visualitza → Ajust de les paraules → Ajust dinàmic de les paraules (F10)

  Canvia l'ajust dinàmic de les paraules a la vista actual. L'ajust dinàmic de les paraules fa que tot el text es mostri a la vista visible sense necessitat de desplaçament horitzontal, visualitzant una línia real en més línies sempre que sigui necessari.

View → Ajust de les paraules → Indicadors d'ajust dinàmic de les paraules

  Escull quan i com es mostraran els indicadors d'ajust dinàmic de paraules. Tan sols estarà disponible si l'opció Ajust dinàmic de les paraules està marcada.

Visualitza → Ajust de les paraules → Mostra els marcadors d'ajust estàtic de les paraules

  Si aquesta opció està marcada, es dibuixarà una línia vertical a l'ajust de línia tal com s'ha definit a Arranjament → Configura l'editor... en la pestanya Edició. Cal tenir present que la marca d'ajust de línia només es dibuixarà si utilitzeu una lletra amb mida fixa.

Visualitza → Vores → Mostra la vora de les icones (F6)

  Aquest element és un commutador. Si està marcat farà visible una vora d'icona al costat esquerre de l'editor actiu, i viceversa. La vora per a les icones indica les posicions de les línies marcades a l'editor.

Visualitza → Vores → Mostra els números de les línies (F11)

  Aquest element és un commutador. Si està marcat crearà una subfinestra al costat esquerre de l'editor actiu mostrant els números de línia del document visible, i viceversa.

Visualitza → Vores → Mostra les marques de la barra de desplaçament

  Si aquesta opció està marcada, la vista mostrarà els marcadors a la barra de desplaçament vertical. Les marques són l'equivalent als marcadors a la Vora de la icona.

Visualitza → Vores → Mostra un mapa en miniatura a la barra de desplaçament

  Substitueix a la barra de desplaçament amb una visualització del document actual. Per a més informació sobre el mapa en miniatura a la barra de desplaçament, vegeu «El mapa en miniatura a la barra de desplaçament».

Visualitza → Plega el codi

  Aquestes opcions pertanyen a Usar el plegat del codi:

  Visualitza → Vores → Plegat de codi → Mostra les marques de plegat

    Mostra o oculta la subfinestra de marques de plegat a la part esquerra de la vista.

  Visualitza → Plegat de codi → Contrau el node actual

    Contrau la regió que conté el cursor.

  Visualitza → Plegat de codi → Expandeix el node actual

    Expandeix la regió que conté el cursor.

  Visualitza → Plegat de codi → Contrau els nodes de nivell superior (Ctrl+Maj+-)

    Contrau totes les regions al nivell superior en el document. Feu clic al triangle situat a la dreta per a expandir totes les regions al nivell superior.

  Visualitza → Plegat de codi → Contrau els nodes de nivell superior (Ctrl+Maj++)

    Expandeix totes les regions que hi ha al document.

Mostra els espais no imprimibles

  Mostra/oculta el quadre contenidor al voltant dels espais no imprimibles.

El menú Ves
El menú Ves

## El menú Ves

Ves → Ves a la línia... (Ctrl+G)

  Obre la barra de línia «ves a» a la part inferior de la finestra que s'utilitza per a tenir el salt del cursor a una línia en particular (especificada pel número) en el document. El número de la línia es pot introduir directament en el quadre de text o gràficament fent clic sobre les fletxes amunt i avall situades al costat del quadre de text. La fletxa cap amunt incrementarà el número de la línia i la fletxa cap avall la disminuirà. Tanqueu la barra amb un clic al botó amb una icona al costat esquerre de la barra.

Ves → Ves a la línia d'edició anterior (Ctrl+E)

  Aquesta acció salta a la línia d'edició anterior en la configuració multicursor.

Ves → Ves a la línia d'edició següent (Ctrl+Maj+E)

  Aquesta acció salta a la línia d'edició següent en la configuració multicursor.

Ves → Ves a la línia modificada anterior

  Les línies que s'han canviat des que es va obrir el fitxer, s'anomenen línies modificades. Aquesta acció saltarà a la línia modificada anterior.

Ves → Ves a la línia modificada següent

  Les línies que s'han canviat des que es va obrir el fitxer, s'anomenen línies modificades. Aquesta acció saltarà a la línia modificada següent.

Ves → Ves al parèntesi concordant (Ctrl+6)

  Mou el cursor al parèntesi d'obertura o tancament associat.

Ves → Selecciona fins al parèntesi que coincideixi (Ctrl+Maj+6)

  Selecciona el text entre els parèntesis d'obertura i de tancament associats.

Ves → Punts (Ctrl+Maj+6)

  A sota de les entrades aquí descrites, hi haurà disponible una entrada per a cada punt en el document actiu. El text estarà format per les primeres paraules de la línia marcada. Escolliu un element per a moure el cursor cap al començament de la línia. L'editor es desplaçarà fins que la línia sigui visible.

Ves → Punts → Defineix un punt (Ctrl+B)

  Defineix o elimina un punt a la línia actual del document actiu (si hi és, s'elimina, si no hi és el defineix).

Ves → Punts → Neteja tots els punts

  Eliminarà tots els punts del document així com de la llista de punts situada a la part inferior d'aquest element de menú.

Ves → Punts → Anterior (Alt+Re Pàg)

  Desplaçarà el cursor al començament de la línia anterior amb un punt. El text de l'element del menú inclourà el número de la línia i la primera part del text d'aquesta. Aquest element només estarà disponible quan hi hagi un punt en una línia per sobre del cursor.

Ves → Punts → Següent (Alt+Av Pàg)

  Desplaçarà el cursor al començament de la següent línia amb un punt. El text de l'element del menú inclourà el número de la línia i la primera part del text d'aquesta. Aquest element només estarà disponible quan hi hagi un punt en una línia per sota del cursor.

El menú Eines
El menú Eines

## El menú Eines

Eines → Mode

  Escolliu l'esquema de tipus de fitxer que preferiu per al document actiu. Aquest sobreescriurà el mode de tipus de fitxer establert globalment a Arranjament → Configura l'editor a la pestanya Tipus de fitxer només per al document actual.

Eines → Ressaltat

  Escolliu l'esquema de ressaltat que preferiu per al document actiu. Això sobreescriurà el mode de ressaltat establert globalment a Arranjament → Configura l'editor... només per al document actual.

Eines → Sagnat

  Escolliu l'estil de sagnat que voleu per al document actiu. Això sobreescriurà el mode de sagnat establert globalment a Arranjament → Configura l'editor... només per al document actual.

Eines → Codificació

  Podeu sobreescriure la codificació establerta de manera predeterminada a Arranjament → Configura l'editor... a la pàgina Obre/Desa per a establir una codificació diferent per al document actual. La codificació assignada aquí només serà vàlida per al document actual.

Eines → Afegeix una marca d'ordre de byte (BOM)

  Seleccionant aquesta acció de forma explícita, podeu afegir una marca d'ordre de byte per als documents codificats amb Unicode. La marca d'ordre de byte (BOM) és un caràcter Unicode utilitzat per a indicar l'ordre dels bytes en un fitxer de text o un flux, per a obtenir més informació, vegeu La marca d'ordre de byte.

Eines → Final de línia

  Escolliu el mode de final de línia preferit per al document actiu. Això sobreescriurà el mode de final de línia configurat globalment a Arranjament → Configura l'editor... només per al document actual.

Eines → Scripts

  Aquest submenú conté una llista de totes les accions dels scripts. La llista es pot modificar per a escriure scripts propis. D'aquesta manera, la KatePart es pot estendre amb les eines definides per l'usuari.

  Eines → Scripts → Navegació
    Eines → Scripts → Navegació → Mou el cursor fins al sagnat anterior que concordi (Alt+Maj+Fletxa amunt)

      Mou el cursor fins a la primera línia per sobre de l'actual que està amb sagnat en el mateix nivell que la línia actual.

    Eines → Scripts → Navegació → Mou el cursor fins al sagnat següent que concordi (Alt+Maj+Fletxa avall)

      Mou el cursor a la primera línia per sota de l'actual que està amb sagnat en el mateix nivell que la línia actual.

  Eines → Scripts → Edició
    Eines → Scripts → Edició → Ordena el text seleccionat

      Ordena el text seleccionat o la paraula actual en ordre ascendent.

    Eines → Scripts → Edició → Desplaça les línies avall (Ctrl+Maj+Fletxa avall)

      Mou cap avall les línies seleccionades.

    Eines → Scripts → Edició → Desplaça les línies amunt (Ctrl+Maj+Fletxa amunt)

      Mou cap amunt les línies seleccionades.

    Eines → Scripts → Edició → Duplica les línies seleccionades cap avall (Ctrl+Alt+Fletxa avall)

      Duplica les línies seleccionades cap avall.

    Eines → Scripts → Edició → Duplica les línies seleccionades cap amunt (Ctrl+Alt+Fletxa amunt)

      Duplica les línies seleccionades cap amunt.

    Eines → Scripts → Edició → Codifica en un URI el text seleccionat

      Codifica el text seleccionat de manera que pugui ser utilitzat com a part d'una cadena de consulta en un URL, substituirà la selecció amb el text codificat.

    Eines → Scripts → Edició → Descodifica en un URI el text seleccionat

      Si se selecciona una part de la cadena de consulta d'un URL, es descodificarà i substituirà la selecció amb el text original en text pla.

  Eines → Scripts → Emmet
    Eines → Scripts → Emmet → Expandeix les abreviatures

      Converteix el text seleccionat a un parell d'etiquetes HTML o XML d'obertura i tancament. Per exemple, si se selecciona `div`, aquest element se substituirà amb `<div></div>`.

    Eines → Scripts → Emmet → Embolcalla amb etiquetes

      Embolcalla el text seleccionat amb l'etiqueta proporcionada a la línia d'ordres.

    Eines → Scripts → Emmet → Mou el cursor fins a l'etiqueta que concordi

      Si el cursor es troba dins d'una etiqueta d'obertura HTML/XML, aquesta opció mourà el cursor fins a l'etiqueta de tancament. Si el cursor es troba dins de l'etiqueta de tancament, en el seu lloc passarà a l'etiqueta d'obertura.

    Eines → Scripts → Emmet → Selecciona el contingut intern de l'etiqueta HTML/XML

      Quan el cursor es troba dins d'un parell d'etiquetes HTML/XML, aquesta opció canviarà la selecció per a incloure el contingut d'aquestes etiquetes, sense seleccionar les etiquetes en si.

    Eines → Scripts → Emmet → Selecciona el contingut extern de l'etiqueta HTML/XML

      Quan el cursor es troba dins d'un parell d'etiquetes HTML/XML, aquesta opció canviarà la selecció per a incloure el contingut d'aquestes etiquetes, incloent-hi les etiquetes en si.

    Eines → Scripts → Emmet → Commuta els comentaris

      Si la part seleccionada no és un comentari, aquesta opció inclourà la porció en els comentaris HTML/XML (p. ex., `<!-- text seleccionat -->`). Si la part seleccionada és un comentari, en el seu lloc s'eliminaran les etiquetes de comentari.

    Eines → Scripts → Emmet → Suprimeix l'etiqueta sota el cursor

      Si el cursor es troba actualment dins d'una etiqueta HTML/XML, aquesta opció suprimirà completament l'etiqueta.

    Eines → Scripts → Emmet → Redueix el nombre en 1

      Aquest element restarà u del text seleccionat, si es tracta d'un nombre. Per exemple, si se selecciona `5`, esdevindrà `4`.

    Eines → Scripts → Emmet → Redueix el nombre en 10

      Aquest element restarà deu del text seleccionat, si es tracta d'un nombre. Per exemple, si se selecciona `15`, esdevindrà `5`.

    Eines → Scripts → Emmet → Redueix el nombre en 0,1

      Aquest element restarà 0,1 del text seleccionat, si es tracta d'un nombre. Per exemple, si se selecciona `4,5`, esdevindrà `4,4`.

    Eines → Scripts → Emmet → Incrementa el nombre en 1

      Aquest element sumarà u al text seleccionat, si es tracta d'un nombre. Per exemple, si se selecciona `5`, esdevindrà `6`.

    Eines → Scripts → Emmet → Incrementa el nombre en 10

      Aquest element sumarà deu al text seleccionat, si es tracta d'un nombre. Per exemple, si se selecciona `5`, esdevindrà `15`.

    Eines → Scripts → Emmet → Incrementa el nombre en 0,1

      Aquest element sumarà 0,1 al text seleccionat, si es tracta d'un nombre. Per exemple, si se selecciona `4,5`, esdevindrà `4,6`.

Eines → Canvia a la línia d'ordres (F7)

  Mostra la línia d'ordres a la KatePart a la part inferior de la finestra. A la línia d'ordres, escriviu `help` per a obtenir ajuda i `help list` per a obtenir una llista de les ordres. Per a més informació sobre la línia d'ordres, vegeu El component de la línia d'ordres de l'editor.

Eines → Invoca la compleció del codi (Ctrl+Espai)

  Invoca manualment la compleció d'ordres, utilitzant normalment una drecera limitada a aquesta acció.

Eines → Compleció de paraules

  Reutilitza la paraula de més avall (Ctrl+9) i Reutilitza la paraula de més amunt (Ctrl+8) completen el text escrit actualment mitjançant la cerca de paraules similars cap enrere o cap endavant des de la posició actual del cursor. Compleció d'ordres fa aparèixer un quadre de compleció amb les entrades coincidents.

Eines → Ortografia → Verificació automàtica de l'ortografia (Ctrl+Maj+O)

  Quan està activada, el text mal escrit és subratllat en el document sobre la marxa.

Eines → Ortografia → Ortografia...

  Inicia el programa de correcció ortogràfica -un programa dissenyat per a ajudar l'usuari a corregir qualsevol error ortogràfic-. Fent clic en aquesta entrada s'iniciarà el corrector i apareixerà un diàleg a través del qual podreu controlar el procés. Hi ha quatre opcions alineades verticalment en el centre del diàleg amb les seves corresponents etiquetes a l'esquerra. Començant per dalt són:

  Paraula desconeguda:

    Aquí el corrector ortogràfic indicarà la paraula a considerar. Això succeeix quan el corrector troba una paraula que no troba en el seu diccionari -un fitxer contenint una llista de paraules correctes contra què es compara cada paraula en l'editor-.

  Substitueix per:

    Si el corrector troba alguna paraula similar en el seu diccionari aquesta serà la primera a llistar-se. L'usuari pot acceptar el consell, escriure la seva pròpia correcció, o escollir un consell diferent des del quadre de text següent.

  Idioma:

    Si heu instal·lat múltiples diccionaris, aquí podreu seleccionar quin diccionari/idioma haurà d'usar-se.

  Sobre la part dreta del diàleg es troben sis botons que permeten a l'usuari controlar el procés de correcció ortogràfica. Aquests són:

  Afegeix al diccionari

    Prémer aquest botó afegirà la Paraula desconeguda: al diccionari del corrector. Això voldrà dir que en el futur el corrector considerarà sempre aquesta paraula com a correcta.

  Suggereix

    El corrector llistarà aquí una sèrie de possibles substitucions per a la paraula que s'estigui considerant. Fer clic sobre una farà que aquesta paraula s'introdueixi en el quadre Substitueix per:.

  Substitueix

    Aquest botó substituirà la paraula que s'estigui considerant en el document per la paraula en el quadre Substitueix per:.

  Substitueix-ho tot

    Aquest botó causarà que el corrector no només substitueixi la Paraula desconeguda: actual, sinó també que se substitueixi automàticament qualsevol altra aparició de la mateixa en el document.

  Ignora

    Activar aquest botó farà que el corrector continuï sense realitzar cap canvi.

  Ignora-ho tot

    Aquest botó indica al corrector que no faci res amb la Paraula desconeguda: actual i que ignori qualsevol altra aparició de la mateixa en la resta del document.

    ### Nota

    Tan sols s'aplicarà a la correcció ortogràfica que s'estigui realitzant. Si s'executa altra vegada el corrector s'aturarà en la mateixa paraula.

  Hi ha tres botons més localitzats horitzontalment al llarg de la part inferior del diàleg de la correcció ortogràfica. Aquests són:

  Ajuda

    Invoca al sistema d'ajuda del KDE iniciant-lo a les pàgines d'ajuda per a aquest diàleg.

  Atura

    Aquest botó finalitza el procés de correcció ortogràfica, i torna al document.

  Cancel·la

    Aquest botó cancel·la el procés de correcció ortogràfica, anul·lant totes les modificacions, i tornant al vostre document.

Eines → Ortografia → Ortografia (des del cursor)...

  Això inicia el programa de correcció ortogràfica però començant en la posició actual del cursor en comptes des de l'inici del document.

Eines → Ortografia → Corregeix la selecció...

  Realitza la correcció ortogràfica en la selecció actual.

Eines → Ortografia → Canvia el diccionari

  Mostra una llista desplegable amb tots els diccionaris disponibles per a revisar l'ortografia a la part inferior de la finestra de l'editor. Això permet un canvi fàcil del diccionari de correcció ortogràfica, p. ex., per a la correcció ortogràfica automàtica de text en diferents idiomes.

Els menús Arranjament i Ajuda
Els menús Arranjament i Ajuda

## Els menús Arranjament i Ajuda

Configuració → Tema de color de l'editor

  Aquest menú llista els esquemes de color disponibles. Aquí el podeu canviar per a la vista actual. Per a canviar l'esquema predeterminat necessitareu utilitzar la pàgina Lletra i colors del diàleg de configuració.

La KatePart té la configuració comuna al KDE i els elements dels menús Arranjament i Ajuda. Per a obtenir més informació, vegeu les seccions sobre El menú Arranjament i El menú Ajuda en els Fonaments del KDE.

Capítol 5. Eines d'edició avançades
Eines d'edició avançades

# Capítol 5. Eines d'edició avançades

Lund, Anders `<anders@alweb.dk>`

Haumann, Dominik `<dhdev@gmx.de>`

Traductor: Antoni Bella

## Comenta/descomenta

Les ordres Comenta i Descomenta, disponibles des del menú Eines us permeten afegir o eliminar marques de comentari per a la selecció, o de la línia actual si no hi ha cap selecció. El format dels comentaris dependrà del format del text que esteu editant.

Les regles que determinen com hauran de ser els comentaris s'estableixen en les definicions de sintaxi, de manera que si no s'utilitza el ressaltat de la sintaxi, no serà possible fer això.

Alguns formats defineixen marques de comentaris d'una sola línia, d'altres de múltiples línies i d'altres utilitzen ambdues possibilitats. Si no hi ha disponibles les marques de comentaris de múltiples línies, no serà possible comentar una selecció en què l'última línia d'aquesta no estigui inclosa completament.

Si hi ha disponible una marca de comentari d'una sola línia, és preferible comentar les línies individualment, atès que així s'eviten problemes de comentaris imbricats.

En eliminar les marques de comentari, s'haurà de seleccionar el text sense comentar. En eliminar les marques de comentari multilínia d'una selecció, s'ignorarà qualsevol espai en blanc que quedi fora de les marques de comentari.

Per a posar marques de comentari, utilitzeu l'element Eines → Comenta del menú o la drecera de teclat corresponent, de manera predeterminada és Ctrl+D.

Per a eliminar marques de comentari, utilitzeu l'element Eines → Descomenta del menú o la drecera de teclat corresponent, de manera predeterminada és Ctrl+Maj+D.

El component de la línia d'ordres de l'editor
El component de la línia d'ordres de l'editor

## El component de la línia d'ordres de l'editor

El component editor de la KatePart té una línia d'ordres interna, permetent-vos dur a terme diverses accions des d'una IGU mínima. La línia d'ordres és una entrada de text a la part inferior de l'àrea d'edició, i per a veure-la només haureu de seleccionar Visualitza → Canvia a línia d'ordres o utilitzar la drecera (de manera predeterminada és F7). L'editor proveeix un joc d'ordres com les que es documenten a continuació, així com aquelles altres que es puguin proveir a partir dels connectors.

Per a executar una ordre, escriviu-la i després premeu la tecla Retorn. La línia d'ordres indicarà què ha succeït mostrant un possible missatge. Si entreu a la línia d'ordres i premeu F7 aquest missatge s'ocultarà automàticament després d'uns pocs segons. Per a esborrar el missatge i introduir una ordre nova, premeu F7 altra vegada.

La línia d'ordres té un sistema d'ajuda integrat, escriviu l'ordre help per a iniciar-la. Per a veure una llista de totes les ordres disponibles escriviu help list. Per a veure l'ajuda específica d'una ordre, escriviu help `ordre`.

La línia d'ordres té integrat un historial, de manera que podreu tornar a utilitzar les ordres ja teclejades. Per a navegar a través de l'historial, utilitzeu les tecles Fletxa amunt i Fletxa avall. Quan es mostrin les ordres de l'historial, restarà seleccionada la part de l'argument, permetent-vos tornar a escriure-les amb facilitat.

### Ordres estàndard de la línia d'ordres

Tipus d'arguments

BOOLEÀ

  Aquest s'utilitza amb ordres que activen o desactiven coses. Els valors acceptats són: `on` (activat), `off` (desactivat), `true` (cert), `false` (fals), `1` (activat) o `0` (desactivat).

ENTER

  Un nombre enter.

CADENA

  Una cadena, entre cometes simples (') o cometes dobles (") si conté espais.

#### Ordres per a configurar l'editor

Aquestes ordres són les proporcionades pel component editor, i permeten configurar només la vista i el document actiu. Això és especialment pràctic si voleu utilitzar una configuració diferent de la predeterminada, per exemple per al sagnat.

set-tab-width {ENTER amplada}

  Estableix l'amplada de la pestanya al número `amplada`.

set-indent-width {ENTER amplada}

  Estableix l'amplada del sagnat al número `amplada`. Només s'utilitza si esteu sagnant amb espais.

set-word-wrap-column {ENTER amplada}

  Estableix l'amplada per a l'ajust de línia al número `amplada`. Només s'utilitza si teniu l'ajust de línia automàtic.

set-icon-border {BOOLEÀ enable}

  Estableix la visibilitat de la vora de les icones.

set-folding-markers {BOOLEÀ enable}

  Estableix la visibilitat de la subfinestra de les marques de plegat.

set-line-numbers {BOOLEÀ enable}

  Estableix la visibilitat de la subfinestra dels números de línia.

set-replace-tabs {BOOLEÀ enable}

  Si està activat, se substitueixen els espais de tabulació per espais normals mentre aneu escrivint.

set-remove-trailing-space {BOOLEÀ enable}

  Si està activat, els espais en blanc finals seran eliminats en el moment en què el cursor surti d'una línia.

set-show-tabs {BOOLEÀ enable}

  Si està activat, els caràcters de tabulació i espais en blanc finals es veuran com un punt petit.

set-show-indent {BOOLEÀ enable}

  Si està activat, el sagnat es veurà com una línia puntejada vertical.

set-indent-spaces {BOOLEÀ enable}

  Si està activat, l'editor farà un sagnat amb `indent-width` espais per a cada nivell de sagnat, en comptes d'un caràcter de tabulació.

set-mixed-indent {BOOLEÀ enable}

  Si està activat, la KatePart utilitzarà una barreja de tabulacions i espais per al sagnat. Cada nivell de sagnat serà d'amplada `indent-width`, i els diferents nivells de sagnat s'optimitzaran utilitzant el màxim de caràcters de tabulació com sigui possible.

  Quan s'executa, aquesta ordre activa el sagnat amb espais, i si no s'especifica l'amplada se li assignarà un valor igual que la meitat de `tab-width` per al document en temps d'execució.

set-word-wrap {BOOLEÀ enable}

  Activa l'ajust dinàmic de la línia d'acord amb el valor `enable`.

set-replace-tabs-save {BOOLEÀ enable}

  Quan està activat, les tabulacions seran substituïdes amb espais en blanc en desar el document.

set-remove-trailing-space-save {BOOLEÀ enable}

  Quan està activat, els espais finals seran eliminats de cada línia en desar el document.

set-indent-mode {CADENA nom}

  Estableix el mode de sagnat automàtic a `nom`. Si `nom` és desconegut, el mode seleccionat serà «none». Els modes vàlids són «none», «normal», «cstyle», «haskell», «lilypond», «lisp», «python», «ruby» i «xml».

set-auto-ident {BOOLEÀ script}

  Activa o desactiva el sagnat automàtic.

set-highlight {CADENA ressaltat}

  Estableix el sistema de ressaltat de la sintaxi per al document. L'argument haurà de ser un nom de ressaltat vàlid, com aquells que es poden veure en el menú Eines → Ressaltat. Aquesta ordre proveeix una llista de compleció automàtica per als seus arguments.

reload-scripts

  Torna a carregar tots els scripts en JavaScript emprats pel Kate, inclosos els scripts de sagnat i de línia d'ordres.

set-mode {CADENA mode}

  Tria l'esquema del tipus de fitxer per al document actual.

nn[oremap] {CADENA original} {CADENA mapped}

  Mapa de la seqüència de tecles `original` a `mapped`.

#### Ordres per a l'edició

Aquestes ordres modifiquen el document actual.

indent

  Sagna les línies seleccionades o la línia actual.

unindent

  Treu el sagnat de les línies seleccionades o la línia actual.

cleanindent

  Treu el sagnat de les línies seleccionades o la línia actual d'acord amb la configuració de sagnat que teniu establerts al document.

comment

  Insereix marques de comentari fent que la selecció, les línies seleccionades o la línia actual siguin un comentari d'acord amb el format de text que s'hagi definit al ressaltat de la sintaxi per al document.

uncomment

  Elimina les marques de comentari de la selecció, de les línies seleccionades o la línia actual, d'acord amb el format del text tal com és definit per la definició de ressaltat de la sintaxi per al document.

kill-line

  Suprimeix la línia actual.

replace {CADENA patró} {CADENA substitució}

  Substitueix el text en què coincideixi el `patró` amb el valor de `substitució`. Si voleu incloure espais en blanc en el `patró`, haureu de posar entre cometes tant el `patró` com la `substitució` amb cometes simples o dobles. Si els arguments no es troben entre cometes, s'utilitzarà la primera paraula com a `patró` i la resta com a `substitució`. Si la `substitució` està buida, cada ocurrència del `patró` serà eliminada.

  Podeu establir etiquetes per a configurar la cerca afegint dos punts, seguits d'una o més lletres cadascuna de les quals representa una configuració, quedant de la forma `replace:opcions patró substitució`. Les opcions disponibles són:

  `b`

    Cerca enrere.

  `c`

    Cerca des de la posició del cursor.

  `e`

    Cerca només en el text seleccionat.

  `r`

    Cerca utilitzant una expressió regular. Si està establerta, podeu utilitzar `\N` a on N serà un número per a representar captures en la cadena de substitució.

  `s`

    Cerca distingint entre majúscules i minúscules.

  `p`

    Demana permís per a substituir la següent ocurrència.

  `w`

    Només coincidiran paraules senceres.

date {CADENA format}

  Insereix una cadena de data/hora definida d'acord amb el `format`, o si aquest no s'especifica s'utilitzarà el format «aaaa-MM-dd hh:mm:ss». La interpretació del `format` serà la següent:

  `d` | El dia com a número sense zeros a l'esquerra (1-31).
  `dd` | El dia com a número amb dos dígits (01-31).
  `ddd` | L'abreujament del nom del dia segons la localització (p. ex., «Dl»..«Dg»).
  `dddd` | El nom llarg del dia segons la localització (p. ex., «Dilluns»..«Diumenge»).
  `M` | El mes com a número sense zeros a l'esquerra (1-31).
  `MM` | El mes com a número amb dos dígits (01-31).
  `MMMM` | El nom llarg del mes segons la localització (p. ex., «Gener»..«Desembre»).
  `MMM` | El nom abreujat del mes segons la localització (p. ex., «Gen»..«Dec»).
  `yy` | L'any amb un número de dos dígits (00-99).
  `yyyy` | L'any amb un número de quatre dígits (1752-8000).
  `h` | L'hora sense zeros a l'esquerra (0..23 o 1..12 si es mostra AM/PM).
  `hh` | L'hora amb dos dígits (00..23 o 01..12 si es mostra AM/PM).
  `m` | Els minuts sense zeros a l'esquerra (0..59).
  `mm` | Els minuts amb dos dígits (00..59).
  `s` | Els segons sense zeros a l'esquerra (0..59).
  `ss` | Els segons amb dos dígits (00..59).
  `z` | Els mil·lisegons sense zeros a l'esquerra (0..999).
  `zzz` | Els mil·lisegons amb tres dígits (000..999).
  `AP` | S'usa per a mostrar AM/PM. AP serà substituït per «AM» o «PM».
  `ap` | S'usa per a mostrar am/pm. ap serà substituït per «am» o «pm».

char {CADENA identificador}

  Aquesta ordre permet inserir caràcters literals pel seu identificador numèric, en format decimal, octal o hexadecimal. Per a utilitzar-la llanceu el diàleg Ordre d'edició i escriviu `char:[número]` en el quadre d'entrada, després premeu D'acord.

  Exemple 5.1. Exemples de char

  Entrada: `char:234`

  Eixida: `ê`

  Entrada: `char:0x1234`

  Eixida: `ሴ`

s///[ig] %s///[ig]

  Aquesta ordre realitzarà una operació de cerca/substitució similar a les de «sed» sobre la línia actual o en tot el fitxer (%s///).

  Abreujat, se cerca en el text alguna cadena que coincideixi amb el patró de cerca, l'expressió regular entre la primera i la segona barra, i quan es troba una coincidència, la part coincident del text és substituïda per l'expressió continguda entre les barres segona i última. Els parèntesis en el patró de cerca creen referències enrere, és a dir, que l'ordre recorda quina part de la cadena es correspon amb els parèntesis; aquestes cadenes es poden tornar a utilitzar en el patró de substitució, referint-se a elles com a `\1` per al primer conjunt de parèntesis, `\2` per al segon i així successivament.

  Per a fer una cerca literal de `(` o `)`, haureu d'escapar el caràcter emprant un altre caràcter de barra inversa: `\(\)`

  Si poseu una `i` al final de l'expressió, les coincidències distingiran majúscules i minúscules. Si poseu una `g` al final, se substituiran totes les ocurrències del patró, en qualsevol altre cas només se substituirà la primera ocurrència.

  Exemple 5.2. Substitució de text en la línia actual

  El vostre bon amic l'ordinador s'ha aturat, dient que la classe `myClass` mencionada en la línia 3902 del fitxer font no està definida.

  «Llamps i trons!» Pensareu. Per descomptat és `MyClass`. Anireu fins a la línia 3902 i en comptes d'intentar cercar la paraula en el text, obrireu el diàleg Ordre d'edició, introduireu `s/myclass/MyClass/i`, premereu el botó D'acord, desareu el fitxer i tornareu a compilar aquesta vegada sense l'error.

  Exemple 5.3. Substitució de text en tot el fitxer

  Imagineu que teniu un fitxer, en el que mencioneu a «Miss Jensen» diverses vegades, quan resulta que algú ve i us diu que s'acaba de casar amb «Mr Jones». Per descomptat, voldreu substituir cada ocurrència de «Miss Jensen» per «Ms Jones».

  Entreu a la línia d'ordres, escriviu l'ordre `%s/Miss Jensen/Ms Jones/`, una vegada premeu Retorn ja estarà fet.

  Exemple 5.4. Un exemple més avançat

  Aquest exemple fa ús de referències enrere així com d'una classe de caràcter (si no sabeu què és això, si us plau, consulteu la documentació mencionada a sota).

  Suposeu que teniu la següent línia:

      void MyClass::DoStringOps( String      &foo, String &bar, String *p, int  &a, int &b )

  Però us adoneu que aquest codi no està bé i decidiu que voleu utilitzar la paraula clau `const` per a tots els arguments «adreça de», que es caracteritzen per tenir un operador & al davant del nom de l'argument. També voldreu simplificar l'espai en blanc, de manera que només n'hi hagi un entre cada paraula.

  Obriu el diàleg Ordre d'edició i introduïu: `s/\s+(\w+)\s+(&)/ const \1 \2/g`, i després premeu el botó D'acord. La `g` al final de l'expressió fa que l'expressió regular recompili cada coincidència per a desar les referències enrere.

  Eixida: `void MyClass::DoStringOps( const String &foo, const String &bar, String *p, const int &a, const int &b )`

  Missió completada! Ara, què ha passat? Vaja, hem cercat algun espai en blanc (`\s+`) seguit d'un o més caràcters alfabètics (`\w+`) seguits d'algun espai en blanc (`\s+`) seguit del símbol «&», i en el procés hem desat el bloc alfabètic i el caràcter «&» per a tornar a emprar-los en l'operació de substitució. Aleshores hem substituït la part coincident de la nostra línia per un espai en blanc seguit de «const» seguit d'un espai en blanc seguit del nostre bloc alfabètic (`\1`) seguit d'un espai en blanc seguit del nostre caràcter «&» emmagatzemat (`\2`)

  En alguns casos el bloc alfabètic era «String», en d'altres «int», de manera que emprant la classe de caràcter `\w` i el quantificador `+` ens ha proveït d'un recurs valuós.

sort

  Ordena el text seleccionat o tot el document.

natsort

  Ordena el text seleccionat o tot el document de forma natural.

  Exemple 5.5. sort vs. natsort

  `sort(a10, a1, a2)` resulta en `a1, a10, a2`

  `natsort(a10, a1, a2)` resulta en `a1, a2, a10`

moveLinesDown

  Mou cap avall les línies seleccionades.

moveLinesUp

  Mou cap amunt les línies seleccionades.

uniq

  Elimina les línies duplicades del text seleccionat o de tot el document.

rtrim

  Elimina els espais finals del text seleccionat o de tot el document.

ltrim

  Elimina els espais al començament del text seleccionat o de tot el document.

join [separador CADENA]

  Uneix les línies seleccionades o tot el document. De manera opcional pren un paràmetre definint un separador, per exemple: `join ', '`

rmblank

  Elimina tots els espais en blanc del text seleccionat o de tot el document.

alignon

  Aquesta ordre alinea les línies del bloc seleccionat o de tot el document a la columna indicada per una expressió regular proporcionada com a argument.

  Si proporcioneu un patró buit, s'alinearà al primer caràcter no blanc de manera predeterminada.

  Si el patró té una captura, se sagnarà en la coincidència capturada.

  Exemples:

  `alignon -` inserirà espais abans del primer «-» de cada línia per a alinear-les totes a la mateixa columna.

  `alignon :\\s+(.)` inserirà espais abans del primer caràcter no blanc que hi hagi després de dos punts (:) per a alinear-les totes a la mateixa columna.

unwrap

  Ajusta les línies del text seleccionat o de tot el document.

each {CADENA script}

  Dona una funció de JavaScript com un argument, aquesta crida a la llista de línies seleccionades i les substitueix pel valor retornat per aquesta crida.

  Exemple 5.6. Unir les línies seleccionades

  `each 'function(lines){return lines.join(", ")}'`

  O, més curt:

  `each 'lines.join(", ")'`

filter {CADENA script}

  Dona una funció de JavaScript com un argument, aquesta crida a la llista de línies seleccionades i elimina les que el valor retornat és «false».

  Exemple 5.7. Elimina les línies buides

  `filter 'function(1){return 1.length > 0;}'`

  O, més curt:

  `filter 'line.length > 0'`

map {CADENA script}

  Dona una funció de JavaScript com un argument, aquesta crida a la llista de línies seleccionades i substitueix la línia amb el valor de la crida.

  Exemple 5.8. Elimina les línies buides

  `map 'function(line){return line.replace(/^s+/,"");}'`

  O, més curt:

  `map 'line.replace(/^s+/,"")'`

duplicateLinesUp

  Duplica les línies seleccionades per sobre de la selecció actual.

duplicateLinesDown

  Duplica les línies seleccionades per sota de la selecció actual.

#### Ordres per a navegar

goto {ENTER línia}

  Aquesta ordre va a la línia especificada.

grep {CADENA patró}

  Cercar al document per al `patró` d'expressió regular. Per a més informació, vegeu Apèndix A, Expressions regulars.

find {CADENA patró}

  Aquesta ordre navega fins a la primera ocurrència del `patró` d'acord amb la configuració. Les següents ocurrències es poden trobar utilitzant Edita → Cerca la següent (la drecera predeterminada és F3).

  L'ordre «find» pot configurar-se afegint dos punts seguits per una o més opcions, el format serà `find:opcions patró`. Estan suportades les següents opcions:

  `b`

    Cerca enrere.

  `c`

    Cerca des de la posició del cursor.

  `e`

    Cerca només en el text seleccionat.

  `r`

    Cerca utilitzant una expressió regular. Si està establerta, podeu utilitzar `\N` a on N serà un número per a representar captures en la cadena de substitució.

  `s`

    Cerca distingint entre majúscules i minúscules.

  `w`

    Només coincidiran paraules senceres.

ifind {CADENA patró}

  Aquesta ordre proveeix cerca «quan-escriviu». Podeu configurar-ne el comportament o la cerca afegint dos punts seguits per a una o més opcions, de forma similar a: `ifind:patró d'opcions`. Les opcions permeses són:

  `b`

    Cerca enrere.

  `r`

    Cerca mitjançant expressions regulars.

  `s`

    Cerca distingint entre majúscules i minúscules.

  `c`

    Cerca des de la posició del cursor.

#### Ordres per a les funcions bàsiques de l'editor (aquestes depenen de l'aplicació, el component d'edició s'utilitza en)

w

  Desa el document actual.

wa

  Desa tots els documents oberts.

q

  Tanca el document actual.

qa

  Tanca tots els documents oberts.

wq

  Tanca i desa el document obert.

wqa

  Tanca i desa tots els documents oberts.

x

  Desa el document actual només si ha canviat i després el tanca.

x

  Desa tots els documents oberts només si han canviat i després els tanca.

bp

  Va al document anterior en la llista de documents.

bn

  Va al document següent en la llista de documents.

new

  Obre un document nou en una vista dividida horitzontal.

vnew

  Obre un document nou en una vista dividida vertical.

e

  Torna a carregar el document actual si ha canviat al disc.

enew

  Edita un document nou.

print

  Obre el diàleg d'impressió per a imprimir el document actual.

Usar el plegat del codi
Usar el plegat del codi

## Usar el plegat del codi

El plegat del codi permet ocultar parts d'un document en l'editor, facilitant la visió de documents grans. A la KatePart, les regions plegables es calculen utilitzant regles definides en les definicions de ressaltat de la sintaxi, i per tant només està disponible en alguns formats (típicament codi font de programes, com ara el de marques XML i similars). La majoria de les definicions de ressaltat suporten plegat del codi i també permeten definir manualment regions plegables, generalment utilitzant les paraules clau `BEGIN` i `END`.

Per a utilitzar la característica de plegat del codi, activeu els marcadors plegables utilitzant l'element Visualitza → Mostra els marcadors plegables del menú si no estan visibles. La subfinestra dels marcadors plegables a la part esquerra de la pantalla mostra una vista gràfica de les regions plegables, amb els símbols de triangle per a indicar la possible operació sobre una certa regió: Un triangle cap avall vol dir que la regió està desplegada, fent clic sobre seu es plegarà i es mostrarà un triangle apuntant cap a la dreta.

Es proveeixen tres ordres per a manipular l'estat de les regions plegables, vegeu la documentació del menú.

Les línies de plegat es recorden quan es tanca un fitxer, de manera que quan el torneu a obrir els nodes plegats encara ho estaran. Això també s'aplica a les operacions de tornar a carregar.

Si no voleu utilitzar la característica de plegat del codi, podeu desactivar l'opció Mostra els marcadors plegables (si estan disponibles) a la pàgina Aparença de la configuració de l'editor.

Capítol 6. Estendre la KatePart
Estendre la KatePart

# Capítol 6. Estendre la KatePart

Hollingsworth, T.C. `<tchollingsworth@gmail.com>`

Traductor: Antoni Bella

## Introducció

Igual que qualsevol editor de text avançat, la KatePart ofereix una varietat de maneres d'estendre la seva funcionalitat. Podeu escriure scripts senzills per a afegir funcionalitat amb JavaScript. Finalment, un cop esteneu la KatePart, us donarem la benvinguda per unir-vos amb nosaltres i compartir les vostres millores amb el món!

Treballar amb el ressaltat de la sintaxi
Treballar amb el ressaltat de la sintaxi

## Treballar amb el ressaltat de la sintaxi

### Vista general

El ressaltat de la sintaxi és el que fa que l'editor mostri automàticament text en diferents estils/colors, depenent de la funció de la cadena en relació amb la finalitat del fitxer. En el codi font d'un programa, per exemple, les sentències de control es poden presentar en negreta, mentre que els tipus de dades i els comentaris poden tenir diferents colors que la resta del text. Això millora considerablement la llegibilitat del text, i ajuda l'autor a ser més eficient i productiu.

Una funció de C++, presentada amb ressaltat de la sintaxi.

La mateixa funció de C++, sense ressaltat.

Dels dos exemples, quin resulta més fàcil de llegir?

La KatePart compta amb un sistema de ressaltat de sintaxi flexible, configurable i capaç, la distribució estàndard proveeix definicions per a una gran varietat de llenguatges de programació, creació de scripts i de marques. A més podeu proveir les vostres pròpies definicions en simples fitxers XML.

La KatePart detectarà automàticament les regles de la sintaxi correctes quan obriu un fitxer, basant-se en el tipus MIME del fitxer, determinat per la seva extensió, o, si no en té, pel seu contingut. Si l'elecció no és la correcta, podreu establir-la manualment des del menú Eines → Ressaltat.

Els estils i colors emprats per a cada definició de ressaltat de sintaxi es poden configurar utilitzant la pestanya Estils del text ressaltat del Diàleg de configuració, mentre que els tipus MIME i extensions de fitxer per als que s'hauran d'utilitzar, es poden gestionar utilitzant la pàgina Modes i tipus de fitxer.

### Nota

El ressaltat de la sintaxi té el seu ús en la millora de la llegibilitat del text, però no podeu confiar-hi per a validar que el text és correcte. Marcar el text en funció de la seva sintaxi pot ser difícil, depenent del format que s'estigui emprant, i en alguns casos els autors de les regles de la sintaxi poden estar orgullosos si es processa correctament el 98% del text, si bé caldrà un estil molt rar per a veure el 2% incorrecte.

### El sistema de ressaltat de la sintaxi de la KatePart

Aquesta secció tractarà sobre el mecanisme de ressaltat de la sintaxi de la KatePart amb més detall. Recomanem la seva lectura si voleu aprendre sobre seu, o si voleu crear o canviar les definicions de la sintaxi.

#### Com funciona

Sempre que obriu un fitxer, una de les primeres coses que fa l'editor de la KatePart és detectar quina definició de la sintaxi s'emprarà per al fitxer. Mentre va llegint el text del fitxer, i mentre hi va escrivint, el sistema de ressaltat de la sintaxi analitza el text utilitzant les regles establertes per la definició de la sintaxi i marcant a on comencen i acaben els diferents contexts i estils.

Quan escriviu en el document, el text nou és analitzat i marcat al vol, de manera que si suprimiu un caràcter que marca el començament o el final d'un context, l'estil del text adjacent canviarà en conseqüència.

Les definicions de la sintaxi utilitzades per al sistema de ressaltat de la sintaxi de la KatePart són fitxers XML, que contenen

- Regles per a detectar el paper del text, organitzades en blocs segons el context

- Llistes de paraules clau

- Definicions dels elements d'estil

Quan s'analitza el text, les regles de detecció són avaluades en l'ordre en el qual estan definides, i si el començament de la cadena actual coincideix amb la regla, s'utilitzarà el context relacionat. El punt d'inici del text es mou al punt final en el qual la regla coincideix i comença un nou cicle de regles, començant en el context establert per la regla coincident.

#### Regles

Les regles de la detecció són el nucli del sistema de detecció del ressaltat. Una regla és una cadena, un caràcter o una expressió regular contra què haurà de coincidir el text que s'està analitzant. Conté informació sobre l'estil a emprar per a la part coincident del text. Es pot canviar el context de treball del sistema, ja sigui cap a un context mencionat explícitament o cap a l'anterior context emprat pel text.

Les regles s'organitzen en grups de context. Un grup de context s'utilitza per als conceptes del text principal dins del format, per exemple, les cadenes de text entre cometes o els blocs de comentaris en el codi font d'un programa. Això garanteix que el sistema de ressaltat no necessita realitzar un cicle per a totes les regles quan no és necessari, i que algunes seqüències de caràcters del text es poden tractar de forma diferent depenent del context actual.

En les regles és possible generar contexts dinàmicament per a permetre l'ús de dades específiques d'una instància.

#### Estils i paraules clau del context

En alguns llenguatges de programació, els nombres enters són tractats pel compilador (el programa que converteix el codi font en un executable binari) d'una forma diferent dels de coma flotant, i poden haver-hi caràcters que tinguin un significat especial dins d'una cadena entre cometes. En aquests casos, té sentit processar-los de diferent manera que el text adjacent, perquè resultin fàcils d'identificar. De manera que si no representen contexts especials, poden ser vistos com a tals pel sistema de ressaltat de la sintaxi, així que són marcats per a un processat diferent.

Una definició de la sintaxi pot contenir tants estils com siguin requerits per a cobrir tots els conceptes del format per què s'utilitza.

En molts formats hi ha llistes de paraules que representen un concepte específic. Per exemple, en els llenguatges de programació, les sentències de control són un concepte, els noms de tipus de dades un altre, i les funcions integrades en el llenguatge són un tercer. El sistema de ressaltat de la sintaxi de la KatePart pot utilitzar aquestes llistes per a detectar i marcar paraules en el text per a emfatitzar conceptes dels formats del text.

#### Estils per omissió

Si obriu un fitxer de codi font en C++, un fitxer de codi font en Java™ i un document en HTML a la KatePart, podreu comprovar que tot i que els formats són diferents i, per tant, les paraules que reben un tractament especial també són diferents, els colors emprats són els mateixos. Això és perquè la KatePart té una llista predefinida d'estils predeterminats, els quals s'empren en les definicions individuals de la sintaxi.

Això facilita reconèixer conceptes similars en diferents formats de text. Per exemple, els comentaris estan presents en pràcticament qualsevol llenguatge de programació, creació de scripts o de marques, i si es presenten utilitzant el mateix estil en tots els llenguatges, no haureu de parar-vos a pensar i identificar la seva posició en el text.

### Suggeriment

Tots els estils de definició de la sintaxi utilitzen un dels estils predeterminats. Hi ha poques definicions de la sintaxi que utilitzin més estils dels que hi ha de manera predeterminada, així que, si empreu un format molt sovint, potser val la pena obrir el diàleg de configuració per a veure si alguns conceptes estan emprant el mateix estil. Per exemple, tan sols hi ha un estil predeterminat per a les cadenes, però com el llenguatge de programació Perl utilitza dos tipus de cadena, podeu millorar el ressaltat configurant ambdues de forma lleugerament diferent. Més endavant s'explicaran tots els estils predeterminats disponibles.

### El format XML per a la definició del ressaltat

#### Vista general

El KatePart utilitza l'entorn de treball per al ressaltat de la sintaxi dels Frameworks del KDE. Els fitxers en XML predeterminats del ressaltat distribuïts amb el KatePart són compilats dintre de la biblioteca de ressaltat de la sintaxi.

Aquesta secció és una introducció al format XML per a la definició del ressaltat. Descriu els components principals, el seu significat i utilització. La següent secció entra en detalls amb les regles de la detecció.

La definició formal, també coneguda com la XSD es troba al repositori del ressaltat de la sintaxi al fitxer `language.xsd`

Els fitxers `.xml` personalitzats per a la definició del ressaltat es troben a `org.kde.syntax-highlighting/syntax/` a la carpeta d'usuari que trobareu amb `qtpaths`--paths GenericDataLocation`` que normalment és ``$HOME`/.local/share/` i `/usr/share/`.

En els paquets Flatpak i Snap, la carpeta anterior no funcionarà, ja que la ubicació de les dades és diferent per a cada aplicació. En una aplicació de Flatpak, la ubicació dels fitxers XML generalment és ``$HOME`/.var/app/`nom_paquet_flatpak`/data/org.kde.syntax-highlighting/syntax/` i en una aplicació de Snap aquesta ubicació és ``$HOME`/snap/`nom_paquet_snap`/current/.local/share/org.kde.syntax-highlighting/syntax/`.

Al Windows® aquests fitxers es troben a `%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\syntax`. `%USERPROFILE%` que generalment s'expandeix a `C:\Users\`usuari``.

En resum, per a la majoria de les configuracions, la carpeta dels fitxers XML personalitzats és la següent:

Per a l'usuari local | ``$HOME`/.local/share/org.kde.syntax-highlighting/syntax/`
Per a tots els usuaris | `/usr/share/org.kde.syntax-highlighting/syntax/`
Per als paquets Flatpak | ``$HOME`/.var/app/`nom_paquet_flatpak`/data/org.kde.syntax-highlighting/syntax/`
Per als paquets Snap | ``$HOME`/snap/`nom_paquet_snap`/current/.local/share/org.kde.syntax-highlighting/syntax/`
Al Windows® | `%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\syntax`
Al macOS® | ``$HOME`/Library/Application Support/org.kde.syntax-highlighting/syntax/`

Si hi ha múltiples fitxers per al mateix llenguatge, es carregarà el fitxer amb l'atribut `version` més alt en l'element `language`.

Principals seccions dels fitxers de definició del ressaltat de la KatePart

Tots els fitxers de ressaltat contenen una capçalera que estableix la versió XML:

      <?xml version="1.0" encoding="UTF-8"?>

La part principal del fitxer de la definició és l'element `language`. Els atributs disponibles són:

  Atributs requerits:

  `name` estableix el nom del llenguatge. Després apareixerà als menús i als diàlegs.

  `section` especifica la categoria.

  `extensions` defineix les extensions dels fitxers, com "*.cpp;*.h"

  `version` especifica la versió actual del fitxer de definició en termes d'un nombre enter. Sempre que es canvia un fitxer de definició del ressaltat, assegureu-vos d'augmentar aquest número.

  `kateversion` especifica l'última versió implementada de la KatePart.

  Atributs opcionals:

  `mimetype` fitxers associats amb el tipus MIME.

  `casesensitive` defineix quan les paraules clau distingeixen o no les majúscules i minúscules.

  `priority` és necessària si una altra definició de ressaltat utilitza les mateixes extensions. S'emprarà la de major prioritat.

  `author` conté el nom de l'autor i la seva adreça de correu electrònic.

  `license` conté la llicència, normalment la llicència del MIT per a fitxers nous de ressaltat de la sintaxi.

  `style` conté el llenguatge proporcionat i és utilitzat pels sagnadors per a l'atribut `required-syntax-style`.

  `indenter` defineix quin sagnat emprar de manera predeterminada. Els atributs disponibles són: ada, normal, cstyle, cmake, haskell, latex, lilypond, lisp, lua, pascal, python, replicode, ruby i xml.

  `hidden` defineix quan hauria d'aparèixer el nom en els menús de la KatePart.

  De manera que la línia següent pot tenir un aspecte similar a:

      <language name="C++" version="1" kateversion="2.4" section="Sources" extensions="*.cpp;*.h" />

A continuació estaria l'element `highlighting`, el qual conté l'element opcional `list` i els elements requerits `contexts` i `itemDatas`.

  Els elements `list` contenen una llista de paraules clau. En aquest cas les paraules clau són class i const. Podeu afegir tantes llistes com us calguin.

  Des del Frameworks del KDE 5.53, una llista pot incloure paraules clau d'una altra llista o llenguatge/fitxer, utilitzant l'element `include`. Els caràcters `##` s'utilitzen per a separar el nom de la llista i el nom de la definició del llenguatge, de la mateixa manera que a la regla `IncludeRules`. Això és útil per a evitar la duplicació de llistes de paraules clau, si necessiteu incloure les paraules clau d'un altre llenguatge/fitxer. Per exemple, la llista altre_nom conté la paraula clau str i totes les paraules clau de la llista types, la qual pertany al llenguatge C++ de l'ISO.

  L'element `contexts` conté tots els contexts. El primer és l'emprat de manera predeterminada i amb aquest s'iniciarà el ressaltat. Hi ha dues regles en el context text_normal, el qual farà coincidir la llista de paraules clau amb el nom algun_nom i una regla que detecta una cometa i canvia el context a cadena. Per a aprendre més sobre les regles llegiu el següent capítol.

  La tercera part és l'element `itemDatas`. Conté tots els colors i estils de lletra que necessiten els contexts i les regles. En aquest exemple, s'utilitzen `itemData` text_normal, cadena i paraula_clau.

      <highlighting>
          <list name="algun_nom">
            <item>class</item>
            <item>const</item>
          </list>
          <list name="altre_nom">
            <item>str</item>
            <include>types##ISO C++</include>
          </list>
          <contexts>
            <context attribute="text_normal" lineEndContext="#pop" name="text_normal" >
              <keyword attribute="paraula_clau" context="#stay" String="algun_nom" />
              <keyword attribute="paraula_clau" context="#stay" String="altre_nom" />
              <DetectChar attribute="cadena" context="cadena" char="&quot;" />
            </context>
            <context attribute="cadena" lineEndContext="#stay" name="cadena" >
              <DetectChar attribute="cadena" context="#pop" char="&quot;" />
            </context>
          </contexts>
          <itemDatas>
            <itemData name="text_normal" defStyleNum="dsNormal" />
            <itemData name="paraula_clau" defStyleNum="dsKeyword" />
            <itemData name="cadena" defStyleNum="dsString" />
          </itemDatas>
        </highlighting>

L'última part de la definició del ressaltat és la secció opcional `general`. Pot contenir informació sobre paraules clau, plegat del codi, comentaris, sagnat, línies buides i verificació de l'ortografia.

  La secció `comment` defineix amb quina cadena s'introdueix un comentari en una línia senzilla. També podeu definir un comentari en múltiples línies utilitzant multiLine amb l'atribut addicional end. Això s'empra si l'usuari prem la drecera corresponent per a comenta/descomenta.

  La secció `keywords` defineix si les llistes de paraules clau distingeixen les majúscules i minúscules o no. Més endavant s'explicaran altres atributs.

  Les altres seccions, `folding`, `emptyLines` i `spellchecking`, normalment no són necessàries i s'expliquen més endavant.

      <general>
          <comments>
            <comment name="singleLine" start="#"/>
            <comment name="multiLine" start="###" end="###" region="CommentFolding"/>
          </comments>
          <keywords casesensitive="1"/>
          <folding indentationsensitive="0"/>
          <emptyLines>
            <emptyLine regexpr="\s+"/>
            <emptyLine regexpr="\s*#.*"/>
          </emptyLines>
          <spellchecking>
            <encoding char="á" string="\'a"/>
            <encoding char="à" string="\`a"/>
          </spellchecking>
        </general>
      </language>

#### Les seccions en detall

Aquesta part descriu tots els atributs disponibles per als contexts, llistes de dades, paraules clau, comentaris, plegat del codi i sagnat.

L'element `context` pertany al grup `contexts`. Un context defineix les regles específiques de context que s'han de seguir quan el sistema de ressaltat abasta el final d'una línia. Els atributs disponibles són:

  `name` estableix el nom del context. Les regles utilitzaran el nom per a especificar el context al qual canviar si les regles coincideixen.

  `attribute` identifica l'estil a utilitzar per a un caràcter quan no coincideix cap regla o quan una regla no especifica cap atribut. En aquest últim cas, s'utilitzarà attribute del context especificat a la regla context.

  `lineEndContext` defineix el context al qual canviarà el sistema de ressaltat si abasta el final de la línia. Pot ser un nom o un altre context, `#stay` permetrà que no es canviï el context (p. ex., no fer res) o `#pop` farà que deixi aquest context. És possible utilitzar, per exemple `#pop#pop#pop` per a sortir tres vegades, o fins i tot `#pop#pop!AltreContext` perquè aparegui dues vegades i canviar a un context anomenat `AltreContext`. També és possible canviar a un context que pertanyi a una altra definició de llenguatge, de la mateixa manera que en les regles `IncludeRules`, p. ex., `AlgunContext##JavaScript`. Els canvis de context també es descriuen a «Regles de detecció del ressaltat». De manera predeterminada: #stay.

  `lineEmptyContext` defineix el context si es troba una línia buida. La nomenclatura dels commutadors de context és la mateixa que s'ha descrit anteriorment a lineEndContext. De manera predeterminada: #stay.

  `fallthroughContext` especifica el context següent al qual canviar si no coincideix cap regla. La nomenclatura dels commutadors de context és la mateixa que s'ha descrit anteriorment a lineEndContext. De manera predeterminada: #stay.

  `fallthrough` defineix si el sistema de ressaltat canviarà al context especificat a `fallthroughContext` si no coincideix cap regla. Cal tenir en compte que, des dels Frameworks 5.62 del KDE, aquest atribut està en desús a favor de `fallthroughContext`, ja que si està present aquest atribut, s'entendrà implícitament que el valor de `fallthrough` és true (cert). De manera predeterminada: false (fals).

  `noIndentationBasedFolding` inhabilita el plegat basat en el sagnat dintre del context. Si el plegat basat en el sagnat no està activat, aquest atribut és inútil. Això es defineix en l'element folding del grup general. De manera predeterminada a: false.

L'element `itemData` es troba en el grup `itemDatas`. Defineix l'estil i els colors de les lletres. Per tant, és possible definir els vostres propis estils i colors. Encara que recomanem utilitzar els estils predeterminats, atès que així l'usuari veurà colors homogenis per als diferents llenguatges. Si bé, algunes vegades no hi ha altres possibilitats i és necessari canviar el color i els atributs de la lletra. Els atributs «name» i «defStyleNum» són necessaris, els altres són opcionals. Els atributs disponibles són:

  `name` estableix el nom del «itemData». Els contexts i les regles utilitzaran aquest nom en els seus atributs attribute per a fer referència a un «itemData».

  `defStyleNum` defineix quin estil s'emprarà de manera predeterminada. Més endavant s'explicaran els estils predeterminats disponibles.

  `color` defineix un color. Els formats vàlids són «#rrggbb» o «#rgb».

  `selColor` defineix el color de la selecció.

  `italic` si està a true, el text es mostrarà en cursiva.

  `bold` si està a true, el text es mostrarà en negreta.

  `underline` si està a true, el text es mostrarà subratllat.

  `strikeOut` si està a true, el text es mostrarà taxat.

  `spellChecking` si està a true, el text es mostrarà amb la verificació ortogràfica.

L'element `keywords` en el grup `general` defineix les propietats «keyword». Els atributs disponibles són:

  `casesensitive` pot ser true o false. Si està a true, totes les paraules clau distingiran les majúscules i minúscules.

  `weakDeliminator` és una llista de caràcters que no actuen com a delimitadors de paraules (delimitador feble). Per exemple, el punt `«.»` és un delimitador de paraula. Si tenim una paraula clau en una `list` que conté un punt, tan sols la trobareu si especifiqueu el punt com a delimitador feble.

  `additionalDeliminator` defineix delimitadors addicionals.

  `wordWrapDeliminator` defineix els caràcters al darrere dels quals pot ocórrer un ajust de la línia.

  Els delimitadors predeterminats i els d'ajust de la línia són els caràcters `.():!+,-<=>%&*/;?[]^{|}~\`, espai (`« »`) i tabulació (`«\t»`).

L'element `comment` en el grup `comments` defineix les propietats dels comentaris emprats per a Eines → Comenta, Eines → Descomenta i Eines → Commuta els comentaris. Els atributs disponibles són:

  `name` pot ser singleLine o multiLine. Si escolliu multiLine es necessiten els atributs end i region. Si escolliu singleLine podreu afegir l'atribut opcional position.

  `start` defineix la cadena que s'utilitza per a iniciar un comentari. En C++ seria "/*" en comentaris multilínia. Aquest atribut és requerit per als tipus multiLine i singleLine.

  `end` defineix la cadena utilitzada per a tancar un comentari. En C++ seria "*/". Només està disponible aquest atribut i es necessita per als comentaris del tipus multiLine.

  `region` serà el nom amb el qual es desarà el comentari multilínia. Si assumim que tenim una regió beginRegion="Comentari" ... endRegion="Comentari" en les regles, haureu d'emprar region="Comentari". D'aquesta manera es descomentarà fins i tot si no heu seleccionat tot el text en un comentari multilínia. El cursor només haurà d'estar dins del comentari multilínia. Només està disponible aquest atribut i es necessita per als comentaris del tipus multiLine.

  `position` defineix on s'insereix el comentari d'una sola línia. De manera predeterminada, el comentari d'una sola línia es col·loca al començament de la línia a la columna 0, però si utilitzeu position="afterwhitespace", el comentari s'insereix a la dreta després dels espais en blanc inicials, abans del primer caràcter que no sigui un espai en blanc. Això és útil per a posar comentaris correctament en llenguatges on la sagnia és important, com el Python o YAML. Aquest atribut és opcional i l'únic valor possible és afterwhitespace. Només està disponible per als tipus singleLine.

L'element `folding` en el grup `general` defineix les propietats de plegat del codi. Els atributs disponibles són:

  `indentationsensitive` si està a true, els marcadors de plegat del codi seran afegits al sagnat, com en el llenguatge per a la creació de scripts en Python. Normalment no caldrà establir-lo, ja que de manera predeterminada és false.

L'element `emptyLine` pertany al grup `emptyLines` defineix quines línies s'hauran de tractar com a línies buides. Això permet modificar el comportament de l'atribut lineEmptyContext en els elements `context`. Els atributs disponibles són:

  `regexpr` defineix una expressió regular que es tractarà com una línia buida. De manera predeterminada, les línies buides no contenen cap caràcter, per tant, això afegirà línies buides addicionals, per exemple, si voleu que les línies amb espais també es consideren com a línies buides. No obstant això, en la majoria de les definicions de la sintaxi no caldrà establir aquest atribut.

L'element `encoding` en el grup `spellchecking` defineix una codificació de caràcters per a la verificació ortogràfica. Els atributs disponibles són:

  `char`, és un caràcter codificat.

  `string` és una seqüència de caràcters que es codificaran com el caràcter char a la verificació ortogràfica. Per exemple, en el llenguatge LaTeX, la cadena `\"{A}` representa el caràcter `Ä`.

#### Estils predeterminats disponibles

Els estils predeterminats ja s'han explicat, a manera de resum: Els estils predeterminats són la lletra i els estils de colors predefinits.

Estils predeterminats en general:

  `dsNormal`, quan no es requereix un ressaltat especial.

  `dsKeyword`, paraules clau integrades.

  `dsFunction`, crides a funcions i definicions.

  `dsVariable`, si és aplicable: noms de les variables (p. ex., $algunaVar als llenguatges PHP/Perl).

  `dsControlFlow`, controla el flux de paraules clau com «if», «else», «switch», «break», «return», «yield»...

  `dsOperator`, operadors com + - * / :: < >

  `dsBuiltIn`, funcions, classes i objectes integrats.

  `dsExtension`, extensions comunes, com les classes de les Qt™ i les funcions/macros en els llenguatges C++ i Python.

  `dsPreprocessor`, declaracions del preprocessador o de definicions de macros.

  `dsAttribute`, anotacions com «@override» i «__declspec(...)».

Estils predeterminats relacionats amb les cadenes:

  `dsChar`, caràcters sols, com ara «x».

  `dsSpecialChar`, caràcters amb un significat especial en cadenes com escapades, substitucions o els operadors d'expressions regulars.

  `dsString`, cadenes com «hello world».

  `dsVerbatimString`, cadenes literals o sense processar com «raw \backlash» en els llenguatges Perl, CoffeeScript i intèrprets d'ordres, així com «r'\raw'» en llenguatge Python.

  `dsSpecialString`, SQL, expressions regulars, documentació HERE, mode matemàtic de LATEX...

  `dsImport`, importar, incloure o requerir mòduls.

Estils predeterminats relacionats amb números:

  `dsDataType`, tipus de dades integrats com «int», «void», «u64».

  `dsDecVal`, valors decimals.

  `dsBaseN`, valors en una base diferent de 10.

  `dsFloat`, valors de coma flotant.

  `dsConstant`, definicions integrades i definides per l'usuari com PI.

Estils predeterminats relacionats amb la documentació i els comentaris:

  `dsComment`, comentaris.

  `dsDocumentation`, «/** Comentaris de documentació */» o «"""cadenes_de_documentació"""».

  `dsAnnotation`, ordres de la documentació com «@param», «@brief».

  `dsCommentVar`, els noms de les variables utilitzades en les ordres anteriors, com «foobar» a «@param foobar».

  `dsRegionMarker`, marcadors de regió com els comentaris «//BEGIN», «//END».

Altres estils predeterminats:

  `dsInformation`, notes i consells com «@note» al doxygen.

  `dsWarning`, avisos com «@warning» al doxygen.

  `dsAlert`, paraules especials com «Per fer», «TODO», «FIXME», «XXXX».

  `dsError`, errors de ressaltat i sintaxi incorrecta.

  `dsOthers`, quan res més s'hi ajusti.

### Regles de detecció del ressaltat

Aquesta secció descriu les regles de detecció del ressaltat.

Cada regla pot coincidir en cap o amb diversos caràcters al començament de la cadena amb què es comparen. Si la regla coincideix, als caràcters coincidents se'ls assigna l'estil o attribute definit per la regla, tanmateix, una regla pot demanar que es canviï el context actual.

Una regla té aquest aspecte:

    <NomRegla attribute="(identificador)" context="(identificador)" [atributs específics de la regla] />

L'attribute identifica l'estil que utilitzaran els caràcters coincidents per nom, i el context identifica el context a utilitzar des d'aquí.

El context es pot identificar per:

- Un identifier, el qual és el nom de l'altre context.

- Una order us indica al motor que romandrà en el context actual (`#stay`), o que salti al context anterior (`#pop`). Un context buit o absent és equivalent a `#stay`.

  Per a retrocedir més passos, es pot repetir la paraula clau #pop: `#pop#pop#pop`

- Una ordre seguida per un signe d'exclamació (!) i un identificador, el qual farà que el motor segueixi primer l'ordre i després passi a l'altre context, p. ex., `#pop#pop!AltreContext`.

- Un identificador, el qual és un nom de context, seguit de dos coixinets (`##`) i un altre identificador, el qual és el nom d'una definició de llenguatge. Aquest nom és similar al que s'utilitza en les regles `IncludeRules` i permet canviar a un context que pertany a una altra definició de ressaltat de la sintaxi, p. ex., `AlgunContext##JavaScript`.

Els atributs específics de la regla varien, i es descriuen en les següents seccions.

Atributs comuns

Totes les regles tenen els següents atributs comuns i estan disponibles sempre que apareixen `(atributs comuns)`. Tots els atributs són opcionals.

- attribute: Un atribut es correspon a un itemData definit. De manera predeterminada: attribute del context especificat en l'atribut context.

- context: Especifica el context al qual canviarà el sistema de ressaltat si les regles coincideixen. De manera predeterminada: #stay.

- beginRegion: Inicia un bloc de plegat del codi. De manera predeterminada: unset.

- endRegion: Tanca un bloc de plegat del codi. De manera predeterminada: unset.

- lookAhead: Si està a true, el sistema de ressaltat no processarà les longituds coincidents. De manera predeterminada: false.

- firstNonSpace: Només coincidiran si la cadena no conté un espai en blanc al començament de la línia. De manera predeterminada: false.

- column: Només coincideix, si la columna coincideix. De manera predeterminada: unset.

Regles dinàmiques

Algunes regles permeten l'atribut opcional `dynamic` de tipus lògic que de manera predeterminada és false. Si dynamic està a true, la regla podrà utilitzar arguments que representin el text coincident amb una regla d'una expressió regular que canviï al context actual per al contingut en els atributs `string` o `char`. En un `string`, l'argument `%N` (a on N és un número) se substituirà amb el corresponent `N` capturat des de l'expressió regular cridada, començant per 1. En un `char` l'argument haurà de ser un número `N` i serà substituït amb el primer caràcter de la corresponent `N` capturada des de l'expressió regular cridada. Sempre que un regla permeti aquest atribut haurà de contenir un (dynamic).

- dinàmic: pot ser (true|false).

`Com funciona:`

A les expressions regulars de la regla `RegExpr`, tot el text entre parèntesis `(PATRÓ)` serà capturat i recordat. Aquestes captures es podran utilitzar en el context al qual es canvia, en les regles amb l'atribut `dynamic` true, per `%N` (a String) o `N` (a char).

És important esmentar que un text capturat en una regla `RegExpr` només s'emmagatzemarà per al context del canvi, especificat en el seu atribut `context`.

### Suggeriment

- Si no s'utilitzen les captures, tant per a les regles dinàmiques com en la mateixa expressió regular, s'han d'utilitzar grups sense captura: `(?:PATRÓ)`

  Els grups lookahead (anticipada) o lookbehind (cerca cap enrere) com `(?=PATRÓ)`, `(?!PATRÓ)` `(?<=PATRÓ)` no seran capturats. Per a obtenir més informació, vegeu la secció sobre expressions regulars.

- Els grups amb captura es poden utilitzar dins de la mateixa expressió regular, emprant `\N` en lloc de `%N` respectivament. Per a més informació, vegeu Captura del text coincident (referències enrere) a les Expressions regulars.

Exemple 1:

En aquest senzill exemple, el text que coincideix amb l'expressió regular `=*` serà capturat i inserit dins de `%1` a la regla dinàmica. Això permet que el comentari acabi amb la mateixa quantitat de `=` que al començament. Això coincideix amb el text com: `[[ comentari ]]`, `[=[ comentari ]=]` o `[=====[ comentari ]=====]`.

A més, les captures només estaran disponibles en el context del canvi Comentari de múltiples línies.

    <context name="Normal" attribute="Text normal" lineEndContext="#stay">
      <RegExpr context="Comentari de múltiples línies" attribute="Comentari" String="\[(=*)\[" beginRegion="RegionComment"/>
    </context>
    <context name="Comentari de múltiples línies" attribute="Comentari" lineEndContext="#stay">
      <StringDetect context="#pop" attribute="Comentari" String="]%1]" dynamic="true" endRegion="RegionComment"/>
    </context>

Exemple 2:

A la regla dinàmica, `%1` es correspon amb la captura que coincideix `#+`, i `%2` amb `&quot;+`. Això coincidirà amb el text de: `#label""""dins del context""""#`.

Aquestes captures no estaran disponibles en altres contextos, com OtherContext, FindEscapes o AlgunContext.

    <context name="AlgunContext" attribute="Normal Text" lineEndContext="#stay">
      <RegExpr context="#pop!NamedString" attribute="String" String="(#+)(?:[\w-]|[^[:ascii:]])(&quot;+)"/>
    </context>
    <context name="NamedString" attribute="String" lineEndContext="#stay">
      <RegExpr context="#pop!OtherContext" attribute="String" String="%2(?:%1)?" dynamic="true"/>
      <DetectChar context="FindEscapes" attribute="Escape" char="\"/>
    </context>

Exemple 3:

Això coincidirà amb el text com: `Class::function<T>( ... )`.

    <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
      <RegExpr context="FunctionName" lookAhead="true"
                  String="\b([a-zA-Z_][\w-]*)(::)([a-zA-Z_][\w-]*)(?:&lt;[\w\-\s]*&gt;)?(\()"/>
    </context>
    <context name="FunctionName" attribute="Normal Text" lineEndContext="#pop">
      <StringDetect context="#stay" attribute="Class" String="%1" dynamic="true"/>
      <StringDetect context="#stay" attribute="Operator" String="%2" dynamic="true"/>
      <StringDetect context="#stay" attribute="Function" String="%3" dynamic="true"/>
      <DetectChar context="#pop" attribute="Normal Text" char="4" dynamic="true"/>
    </context>

Delimitadors locals

Algunes regles permeten els atributs opcionals `weakDeliminator` i `additionalDeliminator`, els quals es combinen amb atributs del mateix nom d'etiqueta de `keywords`. Per exemple, quan `'%'` és un delimitador feble de `keywords`, només podrà esdevenir un delimitador de paraula per a una regla posant-lo en el seu atribut `additionalDeliminator`. Sempre que una regla permeti aquests atributs, contindrà un (delimitadors locals).

- weakDeliminator: llista de caràcters que no actuen com a delimitadors de paraula.

- additionalDeliminator: defineix delimitadors addicionals.

#### Les regles en detall

DetectChar

  Detecta un únic caràcter específic. Normalment s'utilitza per a trobar el final de les cadenes entre cometes.

      <DetectChar char="(caràcter)" (atributs comuns) (dinàmic) />

  L'atribut `char` defineix el caràcter a comparar.

Detect2Chars

  Detecta dos caràcters especificats en l'ordre definit.

      <Detect2Chars char="(caràcter)" char1="(caràcter)" (atributs comuns) />

  L'atribut `char` defineix el primer caràcter a comparar, `char1` el segon.

  Aquesta regla és present per raons històriques i per llegibilitat és preferible utilitzar `StringDetect`.

AnyChar

  Detecta un caràcter d'un conjunt de caràcters especificats.

      <AnyChar String="(cadena)" (atributs comuns) />

  L'atribut `String` defineix el conjunt de caràcters.

StringDetect

  Detecta una cadena exacta.

      <StringDetect String="(cadena)" [insensitive="true|false"] (atributs comuns) (dinàmic) />

  L'atribut `String` defineix la cadena a comparar. L'atribut `insensitive` predeterminat és `false` i es passa a la funció de comparació de la cadena. Si el valor és `true` la comparació no distingirà les majúscules i minúscules.

WordDetect

  Detectar una cadena exacta requereix límits de paraula com un punt `«.»` o un espai en blanc al començament i al final de la paraula. Penseu en `\b<cadena>\b` en termes d'una expressió regular, però és més ràpid que la regla `RegExpr`.

      <WordDetect String="(cadena)" [insensitive="true|false"] (atributs comuns) (delimitadors locals) />

  L'atribut `String` defineix la cadena a comparar. L'atribut `insensitive` predeterminat és `false` i es passa a la funció de comparació de la cadena. Si el valor és `true` la comparació no distingirà les majúscules i minúscules.

  Des del: Kate 3.5 (KDE 4.5)

RegExpr

  Cerca la coincidència amb una expressió regular.

      <RegExpr String="(cadena)" [insensitive="true|false"] [minimal="true|false"] (atributs comuns) (dinàmic) />

  L'atribut `String` defineix l'expressió regular.

  `insensitive` de manera predeterminada és `false` i és passada al motor d'expressions regulars.

  `minimal` de manera predeterminada és `false` i és passada al motor d'expressions regulars.

  Atès que les regles coincideixen amb el començament de la cadena actual, una expressió regular que comenci amb l'accent circumflex (`^`) indica que la regla tan sols s'haurà de comparar amb el començament d'una línia.

  Per a obtenir més informació, vegeu la secció sobre expressions regulars.

keyword

  Detecta una paraula clau des d'una llista especificada.

      <keyword String="(nom de la llista)" (atributs comuns) (delimitadors locals) />

  L'atribut `String` identifica la llista de paraules clau pel seu nom. Haurà d'existir una llista amb aquest nom.

  El sistema de ressaltat processa les regles de paraules clau d'una manera molt optimitzada. Això fa que sigui una necessitat absoluta que qualsevol paraula clau que coincideixi necessitarà estar envoltada pels delimitadors definits, ja sigui implícitament (els delimitadors predeterminats), o explícitament especificat dins la propietat additionalDeliminator de l'etiqueta keywords.

  Si una paraula clau coincideix haurà de contenir un caràcter de delimitador, aquest caràcter respectiu haurà d'afegir-se a la propietat weakDeliminator de l'etiqueta keywords. Aquest caràcter perdrà la seva propietat delimitadora en totes les regles keyword. També és possible utilitzar l'atribut weakDeliminator de la keyword perquè aquesta modificació només s'apliqui a aquesta regla.

Int

  Detecta un nombre enter (com l'expressió regular: `\b[0-9]+`).

      <Int (atributs comuns) (delimitadors locals) />

  Aquesta regla no té atributs específics.

Decimals

  Detecta un nombre decimal (com l'expressió regular: `(\b[0-9]+\.[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?`).

      <Float (atributs comuns) (delimitadors locals) />

  Aquesta regla no té atributs específics.

HlCOct

  Detecta una representació numèrica d'un nombre octal (com l'expressió regular: `\b0[0-7]+`).

      <HlCOct (atributs comuns) (delimitadors locals) />

  Aquesta regla no té atributs específics.

HlCHex

  Detecta una representació numèrica d'un nombre hexadecimal (com una expressió regular: `\b0[xX][0-9a-fA-F]+`).

      <HlCHex (atributs comuns) (delimitadors locals) />

  Aquesta regla no té atributs específics.

HlCStringChar

  Detecta un caràcter escapat.

      <HlCStringChar (atributs comuns) />

  Aquesta regla no té atributs específics.

  Localitza representacions literals de caràcters que habitualment s'utilitzen en el codi de programació, per exemple `\n` (línia nova) o `\t` (tabulació).

  Els següents caràcters coincideixen amb la regla si segueixen a una barra inversa (`\`): `abefnrtv"'?\`. A més seran vàlids els nombres hexadecimals escapats com per exemple `\xff`, i els nombres octals escapats, per exemple `\033`.

HlCChar

  Detecta un caràcter C.

      <HlCChar (atributs comuns) />

  Aquesta regla no té atributs específics.

  Localitza caràcters C tancats en una marca (Exemple: `'c'`). La marca pot ser un caràcter simple o un caràcter escapat. Vegeu «HICStringChar» per a localitzar seqüències de caràcters escapats.

RangeDetect

  Detecta una cadena amb caràcters d'inici i de final definits.

      <RangeDetect char="(caràcter)"  char1="(caràcter)" (atributs comuns) />

  `char` defineix el caràcter que inicia l'interval, `char1` el caràcter que finalitza l'interval.

  És molt útil per a detectar, per exemple, petites cadenes entre cometes i similars, però teniu en compte que el motor de ressaltat només pot treballar amb una línia a la vegada, de manera que no es detectaran les cadenes que estiguin dividides en dues línies o més.

LineContinue

  Coincideix amb un caràcter específic al final d'una línia.

      <LineContinue (atributs comuns) [char="\"] />

  L'atribut `char` defineix un caràcter opcional a comparar, de manera predeterminada és la barra inversa (`'\'`). Nou des del KDE 4.13.

  Aquesta regla és pràctica per a canviar el context al final de la línia. Això és necessari per exemple en C/C++ per a continuar macros o cadenes.

IncludeRules

  Inclou regles des d'un altre context o llenguatge/fitxer.

      <IncludeRules context="contextlink" [includeAttrib="true|false"] />

  L'atribut `context` defineix el context a incloure.

  Si és una cadena simple, inclourà totes les regles definides en el context actual, exemple:

      <IncludeRules context="anotherContext" />

  Si la cadena conté un `##` el sistema de ressaltat cercarà un context d'una altra definició del llenguatge amb el nom indicat, per exemple,

      <IncludeRules context="String##C++" />

  inclouria el context String des de la definició de ressaltat en C++.

  Si l'atribut `includeAttrib` està a true, canvia l'atribut de destinació per un altre de la font. Això és necessari, per exemple, per al treball de comentar, si el text coincideix amb el context inclòs s'utilitzarà un ressaltat diferent que amb el context amfitrió.

DetectSpaces

  Detecta els espais en blanc.

      <DetectSpaces (atributs comuns) />

  Aquesta regla no té atributs específics.

  Utilitzeu aquesta regla si sabeu que hi poden haver diversos espais en blanc al davant, per exemple, al començament de les línies sagnades. Aquesta regla ometrà tots els espais en blanc a la vegada, en comptes de comprovar múltiples regles i saltar coincidències.

DetectIdentifier

  Detecta identificadors de cadenes (com l'expressió regular: `[a-zA-Z_][a-zA-Z0-9_]*`).

      <DetectIdentifier (atributs comuns) />

  Aquesta regla no té atributs específics.

  Utilitzeu aquesta regla per a saltar d'una vegada una cadena de paraula de caràcters, en comptes de comprovar múltiples regles a la vegada i saltar coincidències.

#### Consells i trucs

Una vegada que hàgiu entès com funciona el canvi de context serà fàcil escriure definicions de ressaltat. Tot i que haureu de tenir cura de comprovar en quina situació s'hauria de seleccionar una regla. Les expressions regulars són molt potents, però són lentes en comparació amb altres regles. Per això haureu de tenir en compte els següents consells.

- Les expressions regulars són fàcils d'emprar, però a vegades hi ha formes molt més ràpides d'obtenir el mateix resultat. Imagineu que només desitgeu localitzar el caràcter `«#»` si aquest és el primer caràcter de la línia. Una solució basada en una expressió regular seria quelcom semblant a això:

      <RegExpr attribute="Macro" context="macro" String="^\s*#" />

  Podeu aconseguir el mateix molt més ràpid utilitzant:

      <DetectChar attribute="Macro" context="macro" char="#" firstNonSpace="true" />

  Si voleu que l'expressió regular localitzi `«^#»` també podeu utilitzar `DetectChar` amb l'atribut `column="0"`. L'atribut `column` compta els caràcters, per tant, el tabulador és només un caràcter.

- A les regles `RegExpr`, utilitzeu l'atribut `column="0"` si el patró `^PATRÓ` s'utilitza per a fer coincidir el text amb el començament d'una línia. Això millorarà el rendiment, ja que evitarà cercar coincidències en la resta de les columnes.

- En les expressions regulars, utilitzeu grups sense captura `(?:PATRÓ)` en lloc dels grups amb captura `(PATRÓ)`, si les captures no s'utilitzen per a la mateixa expressió regular o en regles dinàmiques. Això evita emmagatzemar innecessàriament les captures.

- Podeu canviar de context sense processar els caràcters. Suposeu que voleu canviar de context quan trobeu una cadena `*/`, però cal processar aquesta cadena en el següent context. La regla de sota coincidirà, i l'atribut `lookAhead` farà que es desi la cadena coincident per al següent context.

      <StringDetect attribute="Comment" context="#pop" String="*/" lookAhead="true" />

- Utilitzeu `DetectSpaces` si sabeu quants espais en blanc hi ha.

- Utilitzeu `DetectIdentifier` en comptes de l'expressió regular `«[a-zA-Z_]\w*»`.

- Utilitza els estils predeterminats sempre que es pugui. D'aquesta manera l'usuari es trobarà un entorn familiar.

- Mireu altres fitxers XML per a comprovar de quina forma altra gent implementa les regles delicades.

- Podeu validar tots els fitxers XML utilitzant l'ordre validatehl.sh mySyntax.xml. El fitxer `validatehl.sh` usa el `language.xsd`, els quals estan disponibles al repositori del ressaltat de la sintaxi.

- Si tot sovint repetiu expressions regulars complexes podeu utilitzar ENTITIES. Exemple:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE language
      [
              <!ENTITY la_meva_ref    "[A-Za-z_:][\w.:_-]*">
      ]>

  Ara podeu utilitzar &la_meva_ref; en comptes de l'expressió regular.

- A l'editor del Kate, podeu tornar a carregar les sintaxis utilitzant la línia d'ordres integrada (drecera predeterminada `F7`) i l'ordre reload-highlighting.

- Podeu utilitzar la utilitat de línia d'ordres anomenada `ksyntaxhighlighter6` (`kate-syntax-highlighter` en versions anteriors) per a provar una sintaxi i mostrar l'estil i les regions associades amb cada part d'un text.

  Resultat de ksyntaxhighlighter6 --output-format=ansi --syntax-trace=format test.cpp.

  Useu ksyntaxhighlighter6 -h per a més opcions.

Treballar amb temes de color
Treballar amb temes de color

## Treballar amb temes de color

### Vista general

Els temes de color defineixen els colors de l'àrea d'edició de text i del ressaltat de la sintaxi. Un tema de color abasta el següent:

- L'estil del text, utilitzat per a ressaltar la sintaxi mitjançant els atributs predeterminats d'estil. Per exemple, el color del text i el del text seleccionat.

- El fons de l'àrea d'edició de text, inclosa la selecció del text i la línia actual.

- La vora de la icona de l'àrea de text: el seu fons, la línia de separació, els números de línia, els marcadors per a l'ajust de les paraules a la línia, les marques de línia modificada i el plegat de codi.

- Els decoradors de text com els marcadors de cerca, el sagnat i les marques de línia per a tabulació/espai, la coincidència dels claudàtors i la verificació ortogràfica.

- Marcadors i retalls.

Per a evitar confusions, el següent queda fora de l'àmbit:

- El tipus i mida de la lletra.

- Els colors de l'aplicació d'edició de text, com el mapa de la barra de desplaçament, els menús, la barra de pestanyes, el color de la finestra, etc. En les aplicacions KDE, com el Kate o el KDevelop, aquests colors es defineixen mitjançant l'`esquema de color global del Plasma`, el qual s'estableix en el mòdul «Colors» a l'Arranjament del sistema o des de la mateixa aplicació en el menú Arranjament → Esquema de color.

Temes de color «Brisa clara» i «Brisa fosca» amb ressaltat de la sintaxi del «C++».

### Els temes de color «KSyntaxHighlighting»

El marc de treball KSyntaxHighlighting, el qual és el motor del ressaltat de la sintaxi, és la biblioteca que `proporciona i gestiona els temes de color`. Aquest forma part dels Frameworks del KDE i s'utilitza en els editors de text del KDE com el Kate, KWrite, Kile i KDevelop. Aquesta dependència té el següent aspecte:

Dependència de les biblioteques dels Frameworks del KDE en els editors de text.

El marc de treball KSyntaxHighlighting inclou una varietat de temes integrats que es mostren a la pàgina «Temes de color» del lloc web de l'editor Kate.

El marc de treball KTextEditor, el qual és el motor d'edició de text, proporciona una interfície d'usuari per a crear i editar els temes de color, inclosa una eina per a importar i exportar els temes. Aquesta és la forma més senzilla de crear-los i editar-los, podeu accedir-hi des del diàleg «Configura» de l'editor de text. Hi ha més detalls a «Els temes de color de la IGU».

La IGU per a gestionar els temes de color a la configuració del Kate.

És important esmentar que, en els editors de text del KDE com el Kate o el KDevelop, els temes de color de KSyntaxHighlighting s'utilitzen des dels Frameworks 5.75 del KDE, llançats el 10 d'octubre de 2020. Anteriorment, s'utilitzaven els esquemes de color del Kate (configuració d'esquema basada en el KConfig) i ara estan en desús. No obstant això, és possible convertir els antics esquemes del Kate als temes de color de KSyntaxHighlighting. El repositori KSyntaxHighlighting inclou l'script `utils/kateschema_to_theme_converter.py` i la utilitat `utils/schema-converter/` per a aquest propòsit.

### El format JSON dels temes de color

#### Vista general

Els temes de color s'emmagatzemen en fitxers de format JSON, amb l'extensió `.theme`.

En el codi font de KSyntaxHighlighting, els fitxers JSON dels temes integrats es troben a la carpeta `data/themes/`. Cal tenir en compte que en els editors de text, els temes integrats es compilen a dins de la biblioteca KSyntaxHighlighting, per tant, la forma d'accedir-hi és a través del codi font o exportant-la des de la IGU per a gestionar els temes de KTextEditor.

També és possible afegir amb facilitat temes addicionals o personalitzats, els quals es carreguen des del sistema de fitxers. Els fitxers de tema personalitzats per l'usuari es troben a la carpeta `org.kde.syntax-highlighting/themes/` en la vostra carpeta d'usuari, la qual trobareu amb l'ordre `qtpaths`--paths GenericDataLocation`` que normalment és ``$HOME`/.local/share/` i `/usr/share/`.

En els paquets Flatpak i Snap, la carpeta anterior no funcionarà, ja que la ubicació de les dades és diferent per a cada aplicació. En una aplicació de Flatpak, aquesta ubicació generalment és ``$HOME`/.var/app/`nom_paquet_flatpak`/data/org.kde.syntax-highlighting/themes/` i en una aplicació de Snap aquesta ubicació és ``$HOME`/snap/`nom_paquet_snap`/current/.local/share/org.kde.syntax-highlighting/themes/`.

Al Windows® aquests fitxers es troben a `%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes`. `%USERPROFILE%` que generalment s'expandeix a `C:\Users\`nom_usuari``.

En resum, per a la majoria de les configuracions, la carpeta de temes personalitzats és la següent:

Per a l'usuari local | ``$HOME`/.local/share/org.kde.syntax-highlighting/themes/`
Per a tots els usuaris | `/usr/share/org.kde.syntax-highlighting/themes/`
Per als paquets Flatpak | ``$HOME`/.var/app/`nom_paquet_flatpak`/data/org.kde.syntax-highlighting/themes/`
Per als paquets Snap | ``$HOME`/snap/`nom_paquet_snap`/current/.local/share/org.kde.syntax-highlighting/themes/`
Al Windows® | `%USERPROFILE%\AppData\Local\org.kde.syntax-highlighting\themes`
Al macOS® | ``$HOME`/Library/Application Support/org.kde.syntax-highlighting/themes/`

Si hi ha múltiples fitxers de tema amb el mateix nom, es carregarà el fitxer amb la `revisió` més alta.

#### L'estructura JSON

L'estructura d'un fitxer JSON s'explica al seu lloc web. Bàsicament, un fitxer de format JSON consta de:

- Col·leccions de parells clau/valor, separats per comes i agrupats en `{}`, els quals anomenarem «objectes».

- Llistes ordenades de valors, separats per comes i agrupats en `[]`, a les quals anomenarem «matriu».

En aquest article s'utilitzaran les nomenclatures «clau», «valor», «objecte» i «matriu». Si és la primera vegada que treballeu amb fitxers JSON, comprendre'ls és tan senzill com mirar els exemples que hi ha a continuació.

#### Seccions principals dels fitxers JSON de temes de color

L'objecte arrel del fitxer JSON de tema de color conté les claus d'esquema següents:

- `metadata`: És obligatòria. El valor és un objecte amb les metadades del tema, com el nom, la revisió i la llicència.

  Això es detalla a «Metadades».

- `editor-colors`: És obligatòria. El valor és un objecte amb els colors de l'àrea per a l'edició de text, com el fons, la vora d'icones i la decoració del text.

  Això es detalla a «Colors de l'editor».

- `text-styles`: És obligatòria. El valor és un objecte amb els atributs d'estil per al text predeterminat del ressaltat de la sintaxi. Cada atribut defineix el seu color del text, el seu color del text seleccionat o si està en negreta o cursiva, per exemple. Es pot fer referència als estils de text des dels atributs dels fitxers XML per a definició de la sintaxi.

  Això es detalla a «Estils de text predeterminats».

- `custom-styles`: És opcional. Defineix estils de text per als atributs de les definicions específiques del ressaltat de la sintaxi. Per exemple, en una definició del ressaltat com en `Python` o `Markdown`, podreu especificar un estil de text diferent que superposi el predeterminat definit a `text-styles`.

  Això es detalla a «Estils personalitzats per al text ressaltat».

El llenguatge JSON no admet comentaris. No obstant això, podeu fer servir la clau opcional `_comments` en l'objecte arrel per a escriure els comentaris, per exemple, si esteu adaptant un tema existent, podeu posar l'URL del repositori original. La forma més pràctica és utilitzar una matriu de cadenes.

A continuació es mostra un fitxer d'exemple per al tema «Breeze Light». Podeu observar que, per a evitar que l'exemple sigui massa gran, els objectes `editor-colors` i `text-styles` no contenen totes les claus requerides. Podeu veure tot el fitxer del tema «Breeze Light» al repositori de KSyntaxHighlighting.

    {
        "_comments": [
            "Aquest és un comentari.",
            "Si aquest tema és una adaptació d'un altre, poseu l'enllaç cap al repositori original."
        ],
        "metadata": {
            "name" : "Breeze Light",
            "revision" : 5,
            "copyright": [
                "SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org>",
                "SPDX-FileCopyrightText: 2016 Dominik Haumann <dhaumann@kde.org>"
            ],
            "license": "SPDX-License-Identifier: MIT"
        },
        "editor-colors": {
            "BackgroundColor" : "#ffffff",
            "CodeFolding" : "#94caef",
            "BracketMatching" : "#ffff00",
            "CurrentLine" : "#f8f7f6",
            "IconBorder" : "#f0f0f0",
            "IndentationLine" : "#d2d2d2",
            "LineNumbers" : "#a0a0a0",
            "CurrentLineNumber" : "#1e1e1e",
            Les altres claus per al color de l'editor...

        },
        "text-styles": {
            "Normal" : {
                "text-color" : "#1f1c1b",
                "selected-text-color" : "#ffffff",
                "bold" : false,
                "italic" : false,
                "underline" : false,
                "strike-through" : false
            },
            "Keyword" : {
                "text-color" : "#1f1c1b",
                "selected-text-color" : "#ffffff",
                "bold" : true
            },
            "Function" : {
                "text-color" : "#644a9b",
                "selected-text-color" : "#452886"
            },
            "Variable" : {
                "text-color" : "#0057ae",
                "selected-text-color" : "#00316e"
            },
            Les altres claus per a l'estil del text...

        },
        "custom-styles": {
            "ISO C++": {
                "Data Type": {
                    "bold": true,
                    "selected-text-color": "#009183",
                    "text-color": "#00b5cf"
                },
                "Keyword": {
                    "text-color": "#6431b3"
                }
            },
            "YAML": {
                "Attribute": {
                    "selected-text-color": "#00b5cf",
                    "text-color": "#00b5cf"
                }
            }
        }
    }

#### Metadades

L'objecte JSON de la clau de `metadata` conté informació rellevant sobre el tema. Aquest objecte té les següents claus:

- `name`: És una cadena que estableix el nom de l'idioma. Apareixerà posteriorment en els menús i diàlegs. És obligatòria.

- `revision`: És un nombre enter que especifica la revisió actual del fitxer de tema. Sempre que actualitzeu un fitxer per a tema de colors, assegureu-vos d'augmentar aquest número. És obligatòria.

- `license`: És una cadena que defineix la llicència del tema, utilitzant l'identificador `SPDX-License-Identifier` des del format SPDX estàndard per a la comunicació de la llicència. És opcional.

  Podeu veure la llista completa dels identificadors de llicència SPDX aquí.

- `copyright`: És una matriu de cadenes que especifica els autors del tema, utilitzant l'identificador `SPDX-FileCopyrightText` des del format SPDX estàndard per a la comunicació de la llicència. És opcional.

    "metadata": {
        "name" : "Breeze Light",
        "revision" : 5,
        "copyright": [
            "SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org>",
            "SPDX-FileCopyrightText: 2016 Dominik Haumann <dhaumann@kde.org>"
        ],
        "license": "SPDX-License-Identifier: MIT"
    }

### Els colors en detall

Aquesta secció detalla tots els atributs de color disponibles i les opcions de configuració disponibles del color.

#### Colors de l'editor

Correspon als colors de l'àrea per a l'edició de text.

En el fitxer de tema JSON, la clau respectiva `editor-colors` té com a valor un objecte on cada clau fa referència a un color d'atribut de l'editor de text. Aquí, `totes les claus disponibles són obligatòries`, els seus valors són `cadenes` amb codis de color en hexadecimal, com «#00B5CF».

A la IGU per a gestionar els temes de KTextEditor, aquests atributs es poden modificar a la pestanya `Colors`.

Les claus disponibles són les següents; les claus utilitzades en el fitxer JSON es llisten en negreta, els noms utilitzats a la IGU es mostren entre parèntesis.

Colors de fons de l'editor
  `BackgroundColor` (Àrea de text)

    Aquest és el fons predeterminat per a l'àrea d'edició, serà el color dominant a l'àrea d'edició.

  `TextSelection` (Text seleccionat)

    Aquest és el fons per al text seleccionat.

  `CurrentLine` (Línia actual)

    Estableix el color per a la línia actual. Estableix aquesta opció una mica diferent del fons del text normal per a ajudar a mantenir el focus en la línia actual.

  `SearchHighlight` (Ressaltat de la cerca)

    Ajusta el color per al text que coincideixi amb la vostra última cerca.

  `ReplaceHighlight` (Ressaltat de la substitució)

    Ajusta el color per al text que coincideixi amb la vostra última operació de substitució.

Vora de la icona
  `IconBorder` (Àrea de fons)

    Aquest color s'utilitza per a les marques, números de línia i vores de les marques de plegat del codi situats al costat esquerre de la vista d'edició quan aquests siguin mostrats.

  `LineNumbers` (Números de línia)

    Aquest color s'utilitza per a dibuixar els números de línia al costat esquerre quan siguin mostrats.

  `CurrentLineNumber` (Número de la línia actual)

    Aquest color s'utilitza per a dibuixar el número de línia de la línia actual, quan es mostra, a la banda esquerra de la vista. Establir això una mica diferent de «LineNumbers» ajudarà a mantenir l'enfocament sobre la línia actual.

  `Separator` (Separador)

    Aquest color s'utilitza per a dibuixar la línia vertical que separa la vora d'icones del fons de l'àrea de text.

  `WordWrapMarker` (Marcador d'ajust de les paraules)

    Aquest color s'utilitza per a dibuixar un patró a l'esquerra de les línies ajustades dinàmicament quan siguin alineades verticalment, i també per a les marques d'ajust estàtic de les línies.

  `CodeFolding` (Plegat de codi)

    Aquest color s'utilitza per a ressaltar la secció del codi que es plega quan feu clic a la fletxa de plegat del codi a l'esquerra d'un document. Per a obtenir més informació, vegeu la documentació per al plegat del codi.

  `ModifiedLines` (Línies modificades)

    Aquest color s'utilitza per a ressaltar a l'esquerra algunes línies del document que han estat modificades però no desades. Per a obtenir més informació, vegeu «Indicadors de modificació de línia».

  `SavedLines` (Línies desades)

    Aquest color s'utilitza per a ressaltar a l'esquerra algunes línies del document que han estat modificades i desades en aquesta sessió. Per a obtenir més informació, vegeu «Indicadors de modificació de línia».

Decoracions de text
  `SpellChecking` (Línia amb error ortogràfic)

    Aquest color s'utilitza per a indicar els errors ortogràfics.

  `TabMarker` (Marcadors de tabulació i espai)

    Aquest color s'utilitza per a dibuixar els indicadors d'espai en blanc, quan estan activats.

  `IndentationLine` (Línia amb sagnat)

    Aquest color s'utilitza per a dibuixar una línia a l'esquerra dels blocs de sagnat, si aquesta característica està activada.

  `BracketMatching` (Ressaltat dels parèntesis)

    Aquest color s'utilitza per a dibuixar el fons dels claudàtors aparellats.

Colors dels marcadors
  `MarkBookmark` (Punt)

    Aquest color s'utilitza per a indicar els punts. Cal recordar que aquest color té una opacitat del 22% (i del 33% per a la línia actual) pel que fa al fons. Per a més informació, vegeu «Ús dels punts».

  `MarkBreakpointActive` (Punt d'interrupció actiu)

    El connector GDB utilitza aquest color per a indicar un punt d'interrupció actiu. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector GDB.

  `MarkBreakpointReached` (S'ha arribat a un punt d'interrupció)

    El connector GDB utilitza aquest color per a indicar un punt d'interrupció que heu assolit durant la depuració. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector GDB.

  `MarkBreakpointDisabled` (Punt d'interrupció desactivat)

    El connector GDB utilitza aquest color per a indicar un punt d'interrupció inactiu. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector GDB.

  `MarkExecution` (Execució)

    Aquest color és utilitzat pel connector GDB en la línia que s'està executant. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector GDB.

  `MarkWarning` (Avís)

    El connector de compilació utilitza aquest color per a indicar una línia que ha provocat un avís del compilador. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector de construcció.

  `MarkError` (Error)

    El connector de construcció utilitza aquest color per a indicar una línia que ha provocat un error de compilació. Cal tenir en compte que aquest color té una opacitat del fons. Per a més informació, vegeu la documentació del connector de construcció.

Plantilles i retalls de text
  `TemplateBackground` (Fons)

    El connector Retalls del Kate utilitza aquest color per a marcar el fons d'un retall. Per a més informació, vegeu la documentació dels Retalls del Kate.

  `TemplatePlaceholder` (Text variable editable)

    El connector Retalls del Kate utilitza aquest color per a marcar un text variable en el qual podreu fer clic per a editar-lo manualment. Per a més informació, vegeu la documentació de Retalls del Kate.

  `TemplateFocusedPlaceholder` (Text variable editable amb el focus)

    El connector Retalls del Kate utilitza aquest color per a marcar el text variable que esteu editant. Per a més informació, vegeu la documentació de Retalls del Kate.

  `TemplateReadOnlyPlaceholder` (Text variable no editable)

    Aquest color és utilitzat pel connector Retalls del Kate per a marcar un text variable que no es pot editar de forma manual, com el que s'omple automàticament. Per a obtenir més informació, vegeu la documentació per al connector Retalls del Kate.

#### Estils de text predeterminats

Els estils predeterminats del text són heretats pels estils del text ressaltat, el qual permet a l'editor presentar el text d'una manera molt coherent, per exemple, el text dels comentaris utilitza el mateix estil en gairebé tots els formats de text que pot ressaltar el KSyntaxHighlighting.

### Nota

Es pot fer referència a aquests estils de text des dels `estils predeterminats` utilitzats en els fitxers XML de definició per al ressaltat de la sintaxi, per exemple, l'atribut «Normal» és equivalent a «dsNormal» en els fitxers XML i «DataType» és equivalent a «dsDataType». Vegeu «Estils predeterminats disponibles» a la documentació del ressaltat de la sintaxi.

### Suggeriment

Assegureu-vos de triar colors llegibles amb bon contrast, especialment en combinació amb els `Colors de l'editor`. Vegeu «Contrast dels colors del text».

En el fitxer JSON, la clau respectiva `text-styles` té com a valor un objecte on cada clau correspon al nom d'un estil predeterminat de text, el qual és equivalent a l'utilitzat en les definicions de ressaltat de la sintaxi. Aquí, `totes les claus d'estil de text disponibles són obligatòries`, es llisten a continuació.

    "text-styles": {
        "Normal" : {
            "text-color" : "#1f1c1b",
            "selected-text-color" : "#ffffff",
            "bold" : false,
            "italic" : false,
            "underline" : false,
            "strike-through" : false
        },
        "Keyword" : {
            "text-color" : "#1f1c1b",
            "selected-text-color" : "#ffffff",
            "bold" : true
        },
        "Function" : {
            "text-color" : "#644a9b",
            "selected-text-color" : "#452886"
        },
        Les altres claus de l'estil de text...
    }

Cada clau de l'estil predeterminat del text té un objecte JSON com a valor, on s'especifiquen valors com color, negreta, cursiva, etc. Aquestes claus són les següents:

  `text-color`: És una cadena amb el color del text en el codi de color hexadecimal. Aquesta clau/valor és obligatòria.

  `selected-text-color`: El color del text quan se selecciona generalment és el mateix valor que «text-color». Quan se selecciona el text, el fons és definit pel valor de TextSelection als Colors de l'editor, de manera que haureu d'assegurar-vos que el text tingui un bon contrast i sigui llegible amb aquest fons. El valor és una cadena amb un codi de color hexadecimal. Aquesta clau/valor és obligatòria.

  `bold`: És un valor booleà que determina si el text està en negreta. Aquesta clau és opcional, el valor predeterminat és `false`.

  `italic`: És un booleà que determina si el text està corbat. Aquesta clau és opcional, el valor predeterminat és `false`.

  `underline`: És un booleà que determina si el text està subratllat. Aquesta clau és opcional, el valor predeterminat és `false`.

  `strike-through`: És un booleà que determina si el text està taxat. Aquesta clau és opcional, el valor predeterminat és `false`.

  `background-color`: Determina el fons del text, utilitzat per exemple en alertes en els comentaris. El valor és una cadena amb un codi de color en hexadecimal. Aquesta clau és opcional, de manera predeterminada no hi ha cap fons.

  `selected-background-color`: Determina el fons del text quan se selecciona. El valor és una cadena amb un codi de color en hexadecimal. Aquesta clau és opcional, de manera predeterminada no hi ha cap fons.

A la IGU per a gestionar els temes de color de KTextEditor, aquests atributs es poden modificar a la pestanya `Estils predeterminats de text`. El nom de la llista d'estils utilitza l'estil configurat per a l'element, el qual proporciona una vista prèvia immediata en configurar un estil. Cada estil permet seleccionar atributs comuns, així com els colors de primer pla i de fons. Per a treure un color de fons, feu clic dret per a emprar el menú contextual.

Les claus d'estil de text disponibles són les següents; les claus utilitzades en el fitxer JSON es llisten en negreta, els noms utilitzats en la IGU es mostraran entre parèntesis si són diferents.

Text normal i codi font

  `Normal`: Estil predeterminat de text per al text normal i codi font sense un ressaltat especial.

  `Keyword`: Estil de text per a les paraules clau dels llenguatges integrats.

  `Function`: Estil de text per a les definicions de funcions i crides a funcions.

  `Variable`: Estil de text per a les variables, si escau. Per exemple, les variables en PHP/Perl generalment comencen amb un signe `$`, de manera que tots els identificadors que segueixen el patró `$foo` es ressaltaran com a variables.

  `ControlFlow` (Flux de control): Estil de text per a les paraules clau del flux de control, com if, then, else, return, switch, break, yield, continue, etc.

  `Operator`: Estil de text per als operadors, com `+`, `-`, `*`, `/`, `%`, etc.

  `BuiltIn` (Integrat): Estil de text per a classes de llenguatges, funcions i objectes integrats.

  `Extension`: Estil de text per a les extensions conegudes, com les classes de les Qt™, funcions/macros en C++ i Python o boost.

  `Preprocessor`: Estil de text per a les declaracions de preprocessador o definicions de macro.

  `Attribute`: Estil de text per a les anotacions o atributs de funcions o objectes, p. ex. `@override` en Java o `__declspec(...)` i `__attribute__((...))` en C++.

Nombres, tipus i constants

  `DataType` (Tipus de dades): Estil de text per a tipus de dades integrades com int, char, float, void, u64, etc.

  `DecVal` (Decimal/valor): Estil de text per als valors decimals.

  `BaseN` (Enter base-N): Estil de text per als números amb una base diferent que 10.

  `Float` (Coma flotant): Estil de text per als nombres de coma flotant.

  `Constant`: Estil de text per a les constants del llenguatge i les constants definides per l'usuari, p. ex. True, False, None en Python o nullptr en C/C++; o les constants matemàtiques com PI.

Cadenes i caràcters

  `Char` (Caràcter): Estil de text per als caràcters individuals com `'x'`.

  `SpecialChar` (Caràcter especial): Estil de text per als caràcters d'escapament en les cadenes, p. ex. «`hola\n`» i altres caràcters amb un significat especial en les cadenes, com les substitucions o operadors d'expressió regular.

  `String`: Estil de text per a les cadenes com «`hola món`».

  `VerbatimString` (Cadena literal): Estil de text per a les cadenes de text o sense processar com `'raw \backlash'` en Perl, CoffeeScript i els intèrprets d'ordres, així com `r'\raw'` en Python o com en els documents HERE.

  `SpecialString` (Cadena especial): Estil de text per a les cadenes especials, com expressions regulars en ECMAScript, el mode matemàtic LATEX, SQL, etc.

  `Import` (Importacions, mòduls i inclusions): Estil de text per a les inclusions, importacions, mòduls o paquets de LATEX.

Comentaris i documentació

  `Comment`: Estil de text per als comentaris normals.

  `Documentation`: Estil de text per als comentaris que reflecteixen la documentació de l'API, com `/** doxygen comments */` o `"""docstrings"""`.

  `Annotation`: Estil de text per a les anotacions en comentaris o documentació d'ordres, com `@param` en Doxygen o JavaDoc.

  `CommentVar` (Variable de comentari): Estil de text que es refereix als noms de les variables utilitzades en les ordres anteriors en un comentari, com `foobar` a «`@param foobar`», en Doxygen o JavaDoc.

  `RegionMarker` (Marcador de regió): Estil de text per als marcadors de regió, normalment definits per `//BEGIN` i `//END` en els comentaris.

  `Information`: Estil de text per a la informació, notes i consells, com la paraula clau `@note` en Doxygen.

  `Warning`: Estil de text per als avisos, com ara la paraula clau `@warning` en Doxygen.

  `Alert`: Estil de text per a les paraules especials en els comentaris, com `TODO`, `FIXME`, `XXXX` i `WARNING`.

Miscel·lània

  `Error`: Estil de text que indica error ressaltat i sintaxi incorrecta.

  `Others`: Estil de text per als atributs que no coincideixen amb cap dels altres estils predeterminats.

#### Estils personalitzats per al text ressaltat

Aquí podreu establir els estils de text per a una definició específica del ressaltat de la sintaxi, superposant l'`estil de text predeterminat` descrit a la secció anterior.

En el fitxer de tema JSON, això es correspon amb la clau `custom-styles`, el valor és un objecte on cada clau de subesquema es correspon amb el `nom d'una definició de ressaltat de la sintaxi`. El seu valor és un objecte on cada clau es refereix al `nom dels atributs d'estil` definit en els elements `itemData` del fitxer XML de ressaltat de la sintaxi, i el valor respectiu és un subobjecte amb les claus text-color, selected-text-color, bold, italic, underline, strike-through, background-color i selected-background-color definides a la secció anterior. Cadascun d'aquests valors és opcional, ja que si no hi són presents, es considerarà l'estil establert a `text-styles`.

Per exemple, en aquest fragment de codi, la definició de ressaltat de la sintaxi «ISO C++» té un estil de text especial per als atributs «Modificadors de tipus» i «Classes estàndard». En el fitxer XML corresponent «isocpp.xml», l'atribut definit «Classes estàndard» utilitza l'estil predeterminat `BuiltIn` (o `dsBuiltIn`). En aquest atribut, només se sobreescriurà el valor de `text-color` amb el nou color «#6431b3».

    "custom-styles": {
        "ISO C++": {
            "Standard Classes": {
                "text-color": "#6431b3"
            },
            "Type Modifiers": {
                "bold": true,
                "selected-text-color": "#009183",
                "text-color": "#00b5cf"
            }
        }
    }

### Nota

- Heu de considerar que aquests estils de text estan associats amb els noms dels atributs definits en els fitxers XML de ressaltat de la sintaxi. Si s'actualitza un fitxer XML i es canvia el nom o s'eliminen alguns atributs, l'estil personalitzat definit en el tema ja no s'aplicarà.

- Les definicions del ressaltat de la sintaxi sovint inclouen altres definicions. Per exemple, el ressaltador de «QML» inclou el ressaltador de «JavaScript», ja que comparteixen la funcionalitat en el ressaltat.

A la IGU per a gestionar els temes de KTextEditor, aquests atributs es poden modificar a la pestanya `Estils del text ressaltat`. De manera predeterminada, l'editor preselecciona el ressaltat del document actual. Notareu que molts ressaltats contenen altres ressaltats representats per grups en la llista d'estils. Per exemple, la majoria dels ressaltats importen el ressaltat «Alert», i molts formats de codi font importen el ressaltat «Doxygen».

### Els temes de color de la IGU

La forma més senzilla de crear i editar temes de color és mitjançant la IGU dins del diàleg «Configura» proporcionat per KTextEditor. Per a accedir-hi, seleccioneu Arranjament → Configura l'`Aplicació`... a la barra de menús del vostre editor de text. Això obrirà el diàleg Configura, allà seleccioneu Temes de color a la barra lateral.

Diàleg de configuració del Kate amb la gestió del tema de color.

En aquest diàleg podreu configurar tots els colors en qualsevol tema que tingueu, així com crear/copiar temes nous, suprimir-los, exportar-los a un fitxer `.theme` amb format JSON o importar-los des de fitxers `.theme` externs. Cada tema té les opcions de configuració per als colors i els estils de text.

De manera predeterminada, els temes integrats no es poden modificar. Per a fer això, els haureu de copiar i donar un nom nou.

Per a utilitzar un tema de forma permanent en el vostre editor de text, haureu de seleccionar-lo en el quadre combinat anomenat Tema predeterminat per a l'`aplicació` que hi ha a la part inferior del diàleg i prémer Aplica o D'acord. De manera predeterminada, l'opció `Selecció automàtica` està activada, la qual triarà un tema de color més apropiat d'acord amb l'esquema de color del Plasma utilitzat en l'aplicació d'edició de text; normalment es tria «Brisa clara» i «Brisa fosca» si l'esquema és clar o fosc, respectivament.

### Suggeriment

Podeu ajustar l'esquema de color global del KDE en el mòdul «Colors» a l'Arranjament del sistema. També el podreu canviar individualment en algunes aplicacions com el Kate o el KDevelop, des del menú Arranjament → Esquema de color.

#### Crea un tema nou

Per a crear un tema nou, primer cal copiar-ne un d'existent. Seleccioneu un tema existent que voleu utilitzar com a base, com el «Brisa clar» o «Brisa fosca» i feu clic a Copia. Després escriviu un nom per al tema nou.

Si voleu modificar un tema integrat o només de lectura, primer l'haureu de copiar amb un nom diferent.

#### Importar o exportar fitxers de tema en JSON

Amb el botó Exporta podreu exportar un tema seleccionat (inclosos els integrats) a un fitxer JSON amb l'extensió `.theme`. Això obrirà un diàleg per a desar el fitxer. Per a afegir un tema de color des d'un fitxer JSON extern, senzillament premeu el botó Importa i seleccioneu el fitxer `.theme` des del diàleg.

### Suggeriment

- Com s'ha esmentat anteriorment, els fitxers de tema personalitzat per l'usuari s'emmagatzemen a la carpeta `org.kde.syntax-highlighting/themes/`. Quan feu còpies o creeu un tema, apareixerà automàticament allà. A més, importar o afegir un tema és equivalent a copiar un fitxer `.theme` extern en aquesta carpeta. El KSyntaxHighlighting recollirà automàticament els fitxers de tema de color des d'aquesta carpeta.

- Si voleu publicar un tema creat per vós, és fonamental comprovar l'objecte metadata del fitxer JSON, afegint-hi la llicència respectiva i comprovant el número de la revisió.

#### Editar els temes de color

##### Colors

Aquí s'ajusten els colors de l'àrea d'edició de text. Aquests es detallen a «Colors de l'editor».

##### Estils de text predeterminats

Els estils predeterminats del text són heretats pels estils del text ressaltat, el qual permet a l'editor presentar el text d'una manera molt coherent, per exemple, el text dels comentaris utilitza el mateix estil en gairebé tots els formats de text que pot ressaltar el KSyntaxHighlighting.

El nom en la llista d'estils utilitza l'estil configurat per a l'element, proporcionant-vos una vista prèvia quan un estil està configurat.

Cada estil permet seleccionar atributs comuns com els colors de fons i de primer pla. Per a desseleccionar un color de fons, feu clic dret per a utilitzar el menú contextual.

Els atributs d'aquesta àrea es detallen a «Estils de text predeterminats».

##### Estils del text ressaltat

Aquí podeu editar els estils de text utilitzats per una definició de ressaltat específica. L'editor preselecciona el ressaltat usat per al vostre document actual. Per a treballar amb un ressaltat diferent, seleccioneu-ne un en el quadre combinat Ressaltat sobre la llista d'estil.

El nom en la llista d'estils utilitza l'estil configurat per a l'element, proporcionant-vos una vista prèvia quan un estil està configurat.

Cada estil us permet seleccionar atributs comuns com els colors de fons i de primer pla. Per a desseleccionar un color de fons, feu clic dret per a utilitzar el menú contextual. A més podreu veure si un estil és igual que l'estil predeterminat utilitzat per l'element, i assignar-lo si no l'és.

Cal tenir present que molts ressaltats contenen d'altres ressaltats representats per grups en la llista d'estil. Per exemple, la majoria dels ressaltats inclouen el ressaltat Alerta, i molts dels formats de codi font inclouen el ressaltat Doxygen. Editar colors en aquests grups només afectarà els estils quan s'usin en el format de ressaltat editat.

### Consells i trucs

#### Contrast dels colors del text

Un aspecte important en treballar amb els temes de color és triar un contrast de text que faciliti la lectura, especialment en combinació amb el fons.

L'aplicació `Kontrast` és un verificador del contrast de color. Us indicarà que les combinacions del color de text i color de fons són llegibles i accessibles, de manera que aquesta és una excel·lent eina per a ajudar-vos a crear temes de color.

Podeu descarregar el `Kontrast` des del lloc web d'aplicacions del KDE o des del paquet Flatpak a Flathub (només a GNU/Linux).

L'aplicació `Contrast` de GNOME és similar. Podeu descarregar el paquet Flatpak a Flathub (només en GNU/Linux).

Un script en Python al repositori de ressaltat de la sintaxi us permet visualitzar tots els colors d'un tema, així com el contrast amb els diversos fons configurats.

#### Consells de coherència amb el ressaltat de la sintaxi

El KSyntaxHighlighting inclou més de 300 definicions de ressaltat de la sintaxi, de manera que és ideal assegurar-vos que el nou tema es vegi bé en totes les definicions de ressaltat de la sintaxi. Els temes de color integrats tenen les següents similituds que es recomana (però no és obligatori) seguir per a aconseguir una visualització correcta de totes les definicions de ressaltat de la sintaxi:

- Utilitzeu negreta per als estils de text «Keyword» i «ControlFlow».

- No utilitzeu el color de fons en cap estil de text, excepte «Alert» i «RegionMarker».

La majoria dels ressaltadors de la sintaxi estan pensats perquè es vegi bé en els temes predeterminats «Brisa clara» i «Brisa fosca», per tant, una altra forma de mantenir la coherència és utilitzar colors similars en els estils de text, com el green per a «Preprocessor» i «Others», blue per a «DataType» i «Attribute», o purple per a «Function».

Recordeu que aquestes recomanacions no són obligatòries quan es crea i publica un tema.

Crear scripts en JavaScript
Crear scripts en JavaScript

## Crear scripts en JavaScript

El component d'edició de la KatePart és fàcilment extensible, escrivint scripts. El llenguatge per a crear scripts és ECMAScript (conegut com a JavaScript). La KatePart admet dos tipus de script: scripts de sagnat i de línia d'ordres. El connector de retalls també proporciona una funcionalitat semblant als scripts de línia d'ordres.

### Scripts de sagnat

Els scripts de sagnat: També coneguts com a «indenters», sagnen automàticament el codi font en escriure text. Com a exemple, després de prémer la tecla de retorn el nivell de sagnat sovint és incrementat.

En les següents seccions es descriuen pas a pas com crear l'esquelet d'un sagnat simple. Com a primer pas, creeu un fitxer `*.js` nou anomenat, p. ex., `javascript.js` a la carpeta d'inici local `$`XDG_DATA_HOME`/katepart5/script/indentation`. En aquest sentit, la variable d'entorn `XDG_DATA_HOME` normalment s'expandeix a `~/.local` o `~/.local/share`.

Al Windows® aquests fitxers es troben a `%USERPROFILE%\AppData\Local\katepart5\script\indentation`. `%USERPROFILE%` que generalment s'expandeix a `C:\\Users\\`usuari``.

#### La capçalera de l'script de sagnat

La capçalera del fitxer `javascript.js` està incrustada com un JSON al començament del document de la forma següent:

    var katescript = {
        "name": "JavaScript",
        "author": "Nom exemple <nom.exemple@alguna.adreça.org>",
        "license": "BSD License",
        "revision": 1,
        "kate-version": "5.1",
        "required-syntax-style": "javascript",
        "indent-languages": ["javascript"],
        "priority": 0,
    }; // kate-script-header, haurà d'estar al començament del fitxer sense comentaris

Cada entrada s'explica en detall tot seguit:

- `name` [requerit]: Aquest és el nom del sagnat que apareix al menú Eines → Sagnat i en el diàleg de configuració.

- `author` [opcional]: El nom de l'autor i la informació de contacte.

- `license` [opcional]: La forma curta de la llicència, com ara BSD o LGPLv3.

- `revision` [requerit]: La revisió de l'script. Aquest número ha de ser major cada vegada que es modifica l'script.

- `kate-version` [requerit]: La versió mínima requerida per la KatePart.

- `required-syntax-style` [opcional]: L'estil de la sintaxi requerida, el qual coincideix amb `style` especificat als fitxers de ressaltat de la sintaxi. Això és important per als sagnats que es basen en la informació de ressaltat específica en el document. Si s'especifica un estil de la sintaxi requerit, el sagnat només estarà disponible amb el ressaltat actiu apropiat. Això evita «comportament sense definir» causat per l'ús del sagnat sense l'esquema del ressaltat esperat. Per exemple, el sagnat de Ruby en fa ús en els fitxers `ruby.js` i `ruby.xml`.

- `indent-languages` [opcional]: Una matriu JSON dels estils de la sintaxi que pot sagnar correctament, p. ex.: `["c++", "java"]`.

- `priority` [opcional]: Si els diversos sagnats són adequats per a un determinat fitxer ressaltat, la prioritat decideix quin sagnat és triat com a sagnat predeterminat.

#### El codi font del sagnat

Després d'haver especificat la capçalera aquesta secció explica com funciona la creació de scripts de sagnat. L'esquelet bàsic del cos s'assembla a això:

    // es necessiten les biblioteques «js» de katepart, per exemple, «range.js»
    // si utilitzeu «Range»
    require ("range.js");

    triggerCharacters = "{}/:;";
    function indent(line, indentWidth, ch)
    {
        // crida per a cada línia nova (ch == «\n») i tots els caràcters s'especifiquen en
        // la variable global triggerCharacters. Quan es crida Eines → Format del sagnat
        // la variable ch és buidada, és a dir, ch == «».
        //
        // Vegeu també: L'API per a crear scripts
        return -2;
    }

La funció `indent()` té tres paràmetres:

- `line`: La línia que ha d'estar amb sagnat.

- `indentWidth`: L'amplada del sagnat en nombre d'espais.

- `ch`: o bé un caràcter de línia nova (`ch == '\n'`),el caràcter de tall especificat en `triggerCharacters` o buida si l'usuari invoca l'acció Eines → Alinea.

El valor retornat de la funció `indent()` especifica com se sagna la línia. Si el valor retornat és un nombre enter simple, aquest s'interpreta de la manera següent:

- El valor retornat `-2`: No fa res.

- El valor retornat `-1`: Es manté el sagnat (cerca la línia anterior que no estigui en blanc).

- El valor retornat `0`: Un número >= 0 especifica la profunditat del sagnat en nombre d'espais.

Alternativament, un conjunt de dos elements poden retornar:

- `return [ indent, align ];`

En aquest cas, el primer element és la profunditat de sagnat com anteriorment amb el mateix significat dels valors especials. No obstant això, el segon element és un valor absolut que representa una columna d'«alineació». Si aquest valor és major que el valor de sagnat, la diferència representa un nombre d'espais a afegir després del sagnat del primer paràmetre. En cas contrari, el segon nombre serà ignorat. L'ús de tabulacions i espais per al sagnat sovint és referit com «mode mixt».

Considerem el següent exemple: Suposem que s'utilitzen tabulacions per a sagnar, i l'amplada de la tabulació és 4. Aquí, <tab> representa una tabulació i «.» un espai:

    1: <tab><tab>foobar("hola",
    2: <tab><tab>......."món");

Quan se sagna la línia 2, la funció `indent()` retorna [8, 15]. Com a resultat, s'insereixen dues tabulacions per a sagnar fins a la columna 8, i s'afegeixen 7 espais per a alinear el segon paràmetre a la primera, de manera que quedi alineat si el fitxer es veu amb una amplada de tabulació diferent.

Una instal·lació predeterminada del KDE ens dona la KatePart amb diversos sagnats. El corresponent codi font de JavaScript d'origen pot trobar-se en `$`XDG_DATA_DIRS`/katepart5/script/indentation`.

Al Windows® aquests fitxers es troben a `%USERPROFILE%\AppData\Local\katepart5\script\indentation`. `%USERPROFILE%` que generalment s'expandeix a `C:\\Users\\`usuari``.

El desenvolupament d'un sagnat requereix tornar a carregar els scripts per a veure si els canvis es comporten adequadament. En comptes de reiniciar l'aplicació, simplement canvieu a la línia d'ordres i crideu l'ordre reload-scripts.

Si desenvolupeu scripts útils, considereu contribuir al projecte KatePart proporcionant una petició de fusió al nostre projecte de GitLab.

### Els scripts de la línia d'ordres

### Nota

Una funcionalitat similar als scripts de línia d'ordres també es proporciona al connector de retalls. Aquest connector pot proporcionar un punt de partida més fàcil, especialment per a scripts personalitzats petits.

Com és difícil satisfer les necessitats de tothom, la KatePart suporta unes quantes eines d'ajuda per a la manipulació ràpida de text a través de la línia d'ordres integrada. Per exemple, l'ordre sort s'implementa com un script. En aquesta secció s'explica com crear fitxers `*.js` per a estendre la KatePart amb scripts d'ajuda arbitrària.

Els scripts de línia d'ordres es troben a la mateixa carpeta que els scripts de sagnat. Així que com a primer pas, creeu un fitxer `*.js` nou anomenat `myutils.js` a la carpeta d'inici local `$`XDG_DATA_HOME`/katepart5/script/commands`. En aquest sentit, la variable d'entorn `XDG_DATA_HOME` normalment s'expandeix a `~/.local` o `~/.local/share`.

Al Windows® aquests fitxers es troben a `%USERPROFILE%\AppData\Local\katepart5\script\commands`. `%USERPROFILE%` que generalment s'expandeix a `C:\\Users\\`usuari``.

#### La capçalera de l'script de línia d'ordres

La capçalera de cada script de la línia d'ordres està incrustada en el JSON al començament de l'script de la forma següent:

    var katescript = {
        "author": "Nom exemple <nom.exemple@alguna.adreça.org>",
        "license": "LGPLv2+",
        "revision": 1,
        "kate-version": "5.1",
        "functions": ["sort", "moveLinesDown"],
        "actions": [
            {   "function": "sort",
                "name": "Sort Selected Text",
                "category": "Editing",
                "interactive": "false"
            },
            {   "function": "moveLinesDown",
                "name": "Move Lines Down",
                "category": "Editing",
                "shortcut": "Ctrl+Shift+Down",
                "interactive": "false"
            }
        ]
    }; // kate-script-header, haurà d'estar al començament del fitxer sense comentaris

Cada entrada s'explica en detall tot seguit:

- `author` [opcional]: El nom de l'autor i la informació de contacte.

- `license` [opcional]: La forma curta de la llicència, com ara BSD o LGPLv2.

- `revision` [requerit]: La revisió de l'script. Aquest número ha de ser major cada vegada que es modifica l'script.

- `kate-version` [requerit]: La versió mínima requerida per la KatePart.

- `functions` [requerit]: Matriu JSON de les ordres a l'script.

- `actions` [opcional]: La matriu JSON dels objectes JSON que defineixen les accions que apareixen al menú de l'aplicació. Es proporciona informació detallada a la secció Vincular dreceres.

Atès que el valor de `functions` és una matriu JSON, un únic script és capaç de contenir un nombre arbitrari d'ordres de la línia d'ordres. Cada funció està disponible a través de la línia d'ordres integrada a la KatePart.

#### El codi font de l'script

Totes les funcions especificades a la capçalera s'han d'implementar a l'script. Per exemple, el fitxer de script en l'exemple anterior necessita implementar les dues funcions sort i moveLinesDown. Totes les funcions tenen la següent sintaxi:

    // es necessiten les biblioteques «js» de la katepart, p. ex., «range.js»
    // si utilitzeu «Range»
    require ("range.js");

    function <nom>(arg1, arg2...)
    {
        // «...» implementació, vegeu també: L'API de creació de scripts.
    }

Els arguments en la línia d'ordres es passen a la funció com `arg1`, `arg2`, etc. Per tal de proveir documentació per a cada ordre, simplement implementeu la funció «`help`» de la manera següent:

    {
        if (cmd == "sort") {
            return i18n("Ordena el text seleccionat.");
        } else if (cmd == "...") {
            // ...
        }
    }

Executar help sort a la línia d'ordres crida a aquesta funció d'ajuda amb l'argument `cmd` establert en l'ordre donada, és a dir, `cmd == "sort"`. La KatePart presentarà el text retornat com a documentació per a l'usuari. Assegureu-vos de traduir les cadenes.

El desenvolupament d'un script de línia d'ordres requereix tornar a carregar els scripts per a veure si els canvis es comporten adequadament. En comptes de reiniciar l'aplicació, simplement canvieu a la línia d'ordres i crideu l'ordre reload-scripts.

##### Vincular les dreceres

Per tal de fer que els scripts siguin accessibles al menú de l'aplicació i assignar dreceres, l'script ha de proporcionar una capçalera de script adequada. En l'exemple anterior, ambdues funcions `sort` i `moveLinesDown` apareixen al menú per la següent part a la capçalera de l'script:

    var katescript = {
        ...
        "actions": [
            {   "function": "sort",
                "name": "Sort Selected Text",
                "icon": "",
                "category": "Editing",
                "interactive": "false"
            },
            {   "function": "moveLinesDown",
                "name": "Move Lines Down",
                "icon": "",
                "category": "Editing",
                "shortcut": "Ctrl+Shift+Down",
                "interactive": "false"
            }
        ]
    };

Els camps per a una acció són els següents:

- `function` [requerit]: La funció que ha d'aparèixer al menú Eines → Scripts.

- `name` [requerit]: El text apareix al menú de l'script.

- `icon` [opcional]: La icona apareix al costat del text en el menú. Aquí es poden utilitzar tots els noms d'icones del KDE.

- `category` [opcional]: Si s'especifica una categoria, l'script apareixerà en un submenú.

- `shortcut` [opcional]: La drecera indicada serà la drecera predeterminada. Exemple: `Ctrl+Alt+t`. Per a més detalls, vegeu la Documentació de les Qt™.

- `interactive` [opcional]: Si l'script necessita utilitzar l'entrada a la línia d'ordres, establiu-ho a `true` (cert).

Si desenvolupeu scripts útils, considereu contribuir al projecte KatePart proporcionant una petició de fusió al nostre projecte de GitLab.

### L'API de creació de scripts

L'API per a crear scripts que es presenta aquí està disponible per a tots els scripts, p. ex., els scripts de sagnat i una ordre de línia d'ordres. Les classes `Cursor` i `Range` són proporcionades pels fitxers de la biblioteca a `$`XDG_DATA_DIRS`/katepart5/libraries`. Si voleu utilitzar-los en el seu vostre script, serà necessari utilitzar algunes de les funcions `Document` o `View`, si us plau, afegiu la biblioteca necessària mitjançant:

    // es necessiten les biblioteques «js» de la katepart, p. ex., «range.js»
    // si utilitzeu «Range»
    require ("range.js");

Per a estendre la norma de l'API per a crear scripts amb les vostres pròpies funcions i prototips n'hi ha prou amb crear un fitxer nou a la carpeta de configuració local del KDE `$`XDG_DATA_HOME`/katepart5/libraries` i incloure'l a l'script utilitzant:

    require ("nom_script.js");

Al Windows® aquests fitxers es troben a `%USERPROFILE%\AppData\Local\katepart5\libraries`. `%USERPROFILE%` que generalment s'expandeix a `C:\\Users\\`usuari``.

Per a estendre els prototips com `Cursor` o `Range`, la manera més recomanable és no modificar els fitxers `*.js` globals. En el seu lloc, canvieu el prototip `Cursor` en JavaScript, després afegiu el `cursor.js` al vostre script mitjançant `require`.

#### Cursors i intervals

Com la KatePart és un editor de text, tota l'API per a la creació de scripts es basa en els cursors i els intervals sempre que sigui possible. Un Cursor és una simple `(line, column)` que representa una posició del text en el document. Un «Range» s'estén pel text des de la posició del cursor fins a una posició final del cursor. L'API s'explica amb detall en les següents seccions.

##### El prototip de «Cursor»

    Cursor();

  Constructor. Retorna un cursor a la posició `(0, 0)`.

  Exemple: `var cursor = new Cursor();`

    Cursor(int línia, int columna);

  Constructor. Retorna un cursor a la posició (línia, columna).

  Exemple: `var cursor = new Cursor(3, 42);`

    Cursor(Cursor altra);

  El constructor de còpia. Retorna una còpia del cursor `altra`.

  Exemple: `var copy = new Cursor(altra);`

    Cursor Cursor.clone();

  Retorna una còpia del cursor.

  Exemple: `var clone = cursor.clone();`

    Cursor.setPosition(int línia, int columna);

  Estableix la posició del cursor a `línia` i `columna`.

  Des del: KDE 4.11

    bool Cursor.isValid();

  Comproveu si el cursor és vàlid. El cursor no és vàlid, si la línia i/o la columna s'estableix a `-1`.

  Exemple: `var valid = cursor.isValid();`

    Cursor Cursor.invalid();

  Retorna un cursor nou no vàlid situat a `(-1, -1)`.

  Exemple: `var invalidCursor = cursor.invalid();`

    int Cursor.compareTo(Cursor altra);

  Compara aquest cursor al cursor `altra`. Retorna

  - `-1`, si el cursor està situat abans del cursor `altra`,

  - `0`, si tots dos cursors són iguals i

  - `+1`, si el cursor està situat després del cursor `altra`.

    bool Cursor.equals(Cursor altra);

  Retorna `true` (cert), si aquest cursor i el cursor `altra` són iguals, en cas contrari retornarà `false` (fals).

    String Cursor.toString();

  Retorna el cursor com una cadena de la forma «`Cursor(line, column)`».

##### El prototip «Range»

    Range();

  El constructor. Crida `new Range()` retornant un interval (0, 0) - (0, 0).

    Range(Cursor inici, Cursor final);

  El constructor. Crida `new Range(`inici`, `final`)` retorna l'interval de (`inici`, `final`).

    Range(int líniaInici, int columnaInici, int líniaFinal, int columnaFinal);

  El constructor. Crida `new Range(`líniaInici`, `columnaInici`, `líniaFinal`, `columnaFinal`)` retorna l'interval de (`líniaInici`, `columnaInici`) a (`líniaFinal`, `columnaFinal`).

    Range(Range altra);

  El constructor de còpia. Retorna una còpia de l'interval `altra`.

    Range Range.clone();

  Retorna una còpia de l'interval.

  Exemple: `var clone = range.clone();`

    bool Range.isEmpty();

  Retorna `true` (cert), si inici i final del cursor són iguals.

  Exemple: `var empty = range.isEmpty();`

  Des del: KDE 4.11

    bool Range.isValid();

  Retorna `true` (cert), si inici i final del cursor són vàlids, en cas contrari retornarà `false` (fals).

  Exemple: `var valid = range.isValid();`

    Range Range.invalid();

  Retorna l'interval de (-1, -1) a (-1, -1).

    bool Range.contains(Cursor cursor);

  Retorna `true` (cert) si aquest interval conté la posició de cursor, en cas contrari retornarà `false` (fals).

    bool Range.contains(Range altra);

  Retorna `true` (cert), si aquest interval conté l'interval `altra`, en cas contrari retornarà `false` (fals).

    bool Range.containsColumn(int columna);

  Retorna `true` (cert), si `columna` està en l'interval obert mig `[start.column, end.column)`, en cas contrari retornarà `false` (fals).

    bool Range.containsLine(int línia);

  Retorna `true` (cert), si `línia` està en l'interval obert mig `[start.line, end.line)`, en cas contrari retornarà `false` (fals).

    bool Range.overlaps(Range altre);

  Retorna `true` (cert), si aquest interval i l'interval `altre` comparteixen una regió comuna, en cas contrari retornarà `false` (fals).

    bool Range.overlapsLine(int línia);

  Retorna `true` (cert), si `línia` està en l'interval `[start.line, end.line]`, en cas contrari retornarà `false` (fals).

    bool Range.overlapsColumn(int columna);

  Retorna `true` (cert), si `columna` està en l'interval `[start.column, end.column]`, en cas contrari retornarà `false` (fals).

    bool Range.onSingleLine();

  Retorna `true` (cert), si l'interval comença i finalitza a la mateixa línia, és a dir si `Línia.comença.interval == Línia.finalitza.interval`.

  Des del: KDE 4.9

    bool Range.equals(Range altra);

  Retorna `true` (cert), si aquest interval i l'interval `altra` són iguals, en cas contrari retornarà `false` (fals).

    String Range.toString();

  Retorna l'interval com una cadena de la forma «`Rang(Cursor(line, column), Cursor(line, column))`».

#### Funcions globals

Aquesta secció llista totes les funcions globals.

##### Llegir i incloure fitxers

    String read(String fitxer);

  Cercarà el `fitxer` donat en relació amb el directori `katepart5/script/files` i retorna el seu contingut com una cadena.

    void require(String fitxer);

  Cercarà el `fitxer` donat en relació amb el directori `katepart5/script/libraries` i l'avaluarà. `require` està internament protegit contra inclusions múltiples del mateix `fitxer`.

  Des del: KDE 4.10

##### Depuració

    void debug(String text);

  Imprimeix `text` a `stdout` a la consola de llançament de l'aplicació.

##### Traducció

Per tal de donar suport a la completa localització, hi ha diverses funcions per a convertir cadenes en els scripts, anomenades `i18n`, `i18nc`, `i18np` i `i18ncp`. Aquestes funcions es comporten exactament com les funcions de traducció del KDE.

Les funcions de traducció tradueixen les cadenes embolcallades a través del sistema de traducció del KDE per a l'idioma utilitzat en l'aplicació. Les cadenes als scripts es desenvolupen a les fonts oficials de la KatePart i s'extrauen de forma automàtica i traduïble. En altres paraules, com a desenvolupador de la KatePart no haureu de preocupar-vos per l'extracció dels missatges i la traducció. Però cal assenyalar que la traducció només funciona dins de la infraestructura del KDE, és a dir, les cadenes noves als scripts de terceres parts desenvolupats fora del KDE no seran traduïbles. Per tant, considereu en contribuir els vostres scripts al Kate, de tal manera que sigui possible una traducció apropiada.

    void i18n(String text, arg1...);

  Tradueix `text` a l'idioma emprat per l'aplicació. Els arguments `arg1`..., són opcionals i s'utilitzen per a substituir els arguments `%1`, `%2`, etc.

    void i18nc(String context, String text, arg1...);

  Tradueix `text` a l'idioma emprat per l'aplicació. A més, la cadena `context` és visible a l'equip de traducció perquè puguin oferir una millor traducció. Els arguments `arg1`..., són opcionals i s'utilitzen per a substituir els arguments `%1`, `%2`, etc.

    void i18np(String singular, String plural, int número, arg1...);

  Tradueix `singular` o `plural` a l'idioma emprat per l'aplicació, en funció del `número` indicat. Els arguments `arg1`..., són opcionals i s'utilitzen per a substituir els arguments `%1`, `%2`, etc.

    void i18ncp(String context, String singular, String plural, int número, arg1...);

  Tradueix `singular` o `plural` a l'idioma emprat per l'aplicació, en funció del `número` indicat. A més, la cadena `context` és visible a l'equip de traducció perquè puguin oferir una millor traducció. Els arguments `arg1`..., són opcionals i s'utilitzen per a substituir els arguments `%1`, `%2`, etc.

#### L'API de «View»

Cada vegada que s'executa un script, si hi ha una variable global «`view`» que representa la vista actual de l'editor actiu. La següent és una llista de totes les funcions «View» disponibles.

    void view.copy()

  Copia la selecció si n'hi ha una, en cas contrari la línia actual si s'ha establert l'opció `[] Copia/retalla la línia actual si no hi ha cap selecció`.

  Des del: Frameworks del KDE 5.79

    void view.cut()

  Retalla la selecció si n'hi ha una, en cas contrari la línia actual si s'ha establert l'opció `[ ] Copia/retalla la línia actual si no hi ha cap selecció`.

  Des del: Frameworks del KDE 5.79

    void view.paste()

  Enganxa el contingut del porta-retalls.

  Des del: Frameworks del KDE 5.79

    Cursor view.cursorPosition()

  Retorna la posició actual del cursor en la vista.

    void view.setCursorPosition(int línia, int columna);
    void view.setCursorPosition(Cursor cursor);

  Estableix la posició actual del cursor a (línia, columna) o el cursor indicat.

    Cursor view.virtualCursorPosition();

  Retorna la posició del cursor virtual amb cada tabulació comptant la corresponent quantitat d'espais depenent de l'amplada de la tabulació actual.

    void view.setVirtualCursorPosition(int línia, int column);
    void view.setVirtualCursorPosition(Cursor cursor);

  Estableix la posició actual del cursor virtual (línia, columna) o el cursor indicat.

    String view.selectedText();

  Retorna el text seleccionat. Si no hi ha text seleccionat, la cadena retornada estarà buida.

    bool view.hasSelection();

  Retorna `true` (cert), si la vista conté el text seleccionat, en cas contrari retornarà `false` (fals).

    Range view.selection();

  Retorna l'interval de text seleccionat. L'interval retornat no serà vàlid si no hi ha text seleccionat.

    void view.setSelection(Range rang);

  Estableix el text seleccionat a l'interval indicat.

    void view.removeSelectedText();

  Elimina el text seleccionat. Si la vista no té cap text seleccionat, no farà res.

    void view.selectAll();

  Selecciona el text sencer en el document.

    void view.clearSelection();

  Neteja la selecció de text sense eliminar-lo.

    void view.setBlockSelection(bool on);

  Activa o desactiva el mode de selecció de blocs («on» o «off»).

    bool view.blockSelection();

  Retorna `true` (cert), si el mode de selecció de blocs està activat, en cas contrari retornarà `false` (fals).

    void view.align(Range interval);

  Torna a sagnar correctament les línies dins de l'`interval` segons els paràmetres actuals del sagnat.

    void view.alignOn(Range interval, String patró = "");

  Alinea les línies de l'`interval` a la columna indicada pel `patró` de l'expressió regular. Amb un `patró` buit s'alinearà amb el primer caràcter no blanc de manera predeterminada. Si el patró té una captura, se sagnarà a la coincidència capturada.

  Exemples:

  `view.alignOn(document.documentRange(), '-');` inserirà espais abans del primer `-` de cada línia per a alinear-les totes a la mateixa columna.

  >`view.alignOn(document.documentRange(), ':\\s+(.)');` inserirà espais abans del primer caràcter no blanc que hi hagi després de dos punts (:) per a alinear-les totes a la mateixa columna.

    object view.executeCommand(String ordre,
                               String args,
                               Range interval);

  Executa l'`ordre`des de la línia d'ordres amb els arguments `args` opcionals i l'`interval` opcional. L'`objecte` retornat tindrà una propietat booleana `object.ok`, la qual indica que l'execució de l'`ordre` ha tingut èxit. En cas d'error, la cadena `object.status` contindrà un missatge d'error.

  Des del: Frameworks del KDE 5.0

    Range view.searchText(Range interval,
                          String patró,
                          bool enrere = false);

  Cerca la primera ocurrència de `patró` a l'`interval` i retorna l'interval coincident. La cerca es porta a terme cap enrere si el paràmetre booleà opcional `enrere` s'estableix a `cert`.

  L'interval retornat no és vàlid (vegeu Range.isValid()) si el `patró` no s'ha trobat en l'`interval`.

  Des del: Frameworks del KDE 5.97

#### L'API de «Document»

Cada vegada que s'executa un script, si hi ha una variable global «`document`» que representa el document actiu actual. La següent és una llista de totes les funcions de «Document» disponibles.

    String document.fileName();

  Retorna el nom de fitxer del document o una cadena buida per a la memòria cau del text sense desar.

    String document.url();

  Retorna l'URL complet del document o una cadena buida per a la memòria cau del text sense desar.

    String document.mimeType();

  Retorna el tipus MIME del document o el tipus MIME `application/octet-stream` si no es pot trobar un tipus MIME adequat.

    String document.encoding();

  Retorna la codificació emprada actualment per a desar el fitxer.

    String document.highlightingMode();

  Retorna el mode de ressaltat global emprat per a tot el document.

    String document.highlightingModeAt(Cursor pos);

  Retorna el mode de ressaltat emprat a la posició indicada en el document.

    Array document.embeddedHighlightingModes();

  Retorna una cadena dels modes de ressaltat incrustats en aquest document.

    bool document.isModified();

  Retorna `true` (cert), si el document conté canvis sense desar (modificat), en cas contrari retornarà `false` (fals).

    String document.text();

  Retorna el contingut complet del document en una cadena de text única. Els salts de línia estan marcats amb el caràcter de nova línia «`\n`».

    String document.text(int desDeLínia, int desDeColumna, int alaLínia, int alaColumna);
    String document.text(Cursor desDe, Cursor a);
    String document.text(Range rang);

  Retorna el text en l'interval donat. Es recomana utilitzar el cursor i la versió basada en l'interval per a una millor lectura del codi font.

    String document.line(int línia);

  Retorna la línia de text donada com a cadena. La cadena estarà buida si la línia demanada està fora de l'interval.

    String document.wordAt(int línia, int columna);
    String document.wordAt(Cursor cursor);

  Retorna la paraula a la posició del cursor donada.

    Range document.wordRangeAt(int línia, int columna);
    Range document.wordRangeAt(Cursor cursor);

  Retorna l'interval de la paraula a la posició del cursor donada. L'interval retornat no serà vàlid (vegeu Range.isValid()), si la posició del text és després del final d'una línia. Si no hi ha paraula al cursor donat, es retornarà un interval buit.

  Des del: KDE 4.9

    String document.charAt(int línia, int columna);
    String document.charAt(Cursor cursor);

  Retorna el caràcter a la posició del cursor donada.

    String document.firstChar(int línia);

  Retorna el primer caràcter en la `línia` donada que no és un espai en blanc. El primer caràcter és a la columna 0. Si la línia està buida o només conté espais en blanc, la cadena retornada estarà buida.

    String document.lastChar(int línia);

  Retorna l'últim caràcter de la `línia` donada que no és un espai en blanc. Si la línia està buida o només conté espais en blanc, la cadena retornada estarà buida.

    bool document.isSpace(int línia, int columna);
    bool document.isSpace(Cursor cursor);

  Retorna `true` (cert), si el caràcter a la posició del cursor donada és un espai en blanc, en cas contrari retornarà `false` (fals).

    bool document.matchesAt(int línia, int columna, String text);
    bool document.matchesAt(Cursor cursor, String text);

  Retorna `true` (cert), si el `text` donat coincideix a la posició del cursor corresponent, en cas contrari retornarà `false` (fals).

    bool document.startsWith(int línia, String text, bool skipWhiteSpaces);

  Retorna `true` (cert), si la línia comença amb `text`, en cas contrari retornarà `false` (fals). L'argument `skipWhiteSpaces` controla si s'han d'ometre els espais en blanc al davant.

    bool document.endsWith(int línia, String text, bool skipWhiteSpaces);

  Retorna `true` (cert), si la línia acaba amb `text`, en cas contrari retornarà `false` (fals). L'argument `skipWhiteSpaces` controla si s'han d'ometre els espais en blanc finals.

    bool document.setText(String text);

  Estableix el text a tot el document.

    bool document.clear();

  Elimina tot el text en el document.

    bool document.truncate(int línia, int columna);
    bool document.truncate(Cursor cursor);

  Trunca la línia donada a la columna o la posició donada del cursor. Retorna `true` (cert) en cas d'èxit, o `false` (fals) si la línia donada no forma part de l'interval del document.

    bool document.insertText(int línia, int columna, String text);
    bool document.insertText(Cursor cursor, String text);

  Insereix el `text` a la posició donada del cursor. Retorna `true` (cert) en cas d'èxit, o `false` (fals), si el document està en el mode de només lectura.

    bool document.removeText(int desDeLínia, int desDeColumna, int alaLínia, int alaColumna);
    bool document.removeText(Cursor desDe, Cursor a);
    bool document.removeText(Range rang);

  Elimina el text dins de l'interval donat. Retorna `true` (cert) en cas d'èxit, o `false` (fals), si el document està en el mode de només lectura.

    bool document.insertLine(int línia, String text);

  Insereix text en la línia donada. Retorna `true` (cert) en cas d'èxit, o `false` (fals), si el document està en el mode de només lectura o la línia no està en l'interval del document.

    bool document.removeLine(int línia);

  Elimina la línia de text donada. Retorna `true` (cert) en cas d'èxit, o `false` (fals), si el document està en el mode de només lectura o la línia no està en l'interval del document.

    bool document.wrapLine(int línia, int columna);
    bool document.wrapLine(Cursor cursor);

  Ajusta la línia a la posició del cursor donada. Retorna `true` (cert) en cas d'èxit, o `false` (fals), p. ex. si la línia < 0.

  Des del: KDE 4.9

    void document.joinLines(int iniciLínia, int finalLínia);

  S'uneix a les línies de `iniciLínia` a `finalLínia`. Dues línies de text successives sempre estan separades per un espai.

    int document.lines();

  Retorna el nombre de línies en el document.

    bool document.isLineModified(int línia);

  Retorna `true` (cert), si la `línia` actual conté dades sense desar.

  Des del: KDE 5.0

    bool document.isLineSaved(int línia);

  Retorna `true` (cert), si la `línia` ha canviat, però el document ha estat desat. Per tant, la línia actual no conté cap dada sense desar.

  Des del: KDE 5.0

    bool document.isLineTouched(int línia);

  Retorna `true` (cert), si la `línia` actual conté dades sense desar o que s'han canviat abans.

  Des del: KDE 5.0

    bool document.findTouchedLine(int iniciLínia, bool avall);

  Cerca la següent línia tocada començant per la `línia`. La cerca es realitza amunt o avall depenent de la direcció especificada en `avall`.

  Des del: KDE 5.0

    int document.length();

  Retorna el nombre de caràcters en el document.

    int document.lineLength(int línia);

  Retorna la longitud de la `línia`.

    void document.editBegin();

  Comença un grup d'edició per a agrupar desfer/refer. Assegureu-vos de cridar sempre `editEnd()` tan aviat com crideu `editBegin()`. La crida `editBegin()` utilitza internament un comptador de referència, és a dir, aquesta crida es pot imbricar.

    void document.editEnd();

  Finalitza un grup d'edició. L'última crida de `editEnd()` (és a dir, una per a la primera crida de `editBegin()`) finalitza el pas d'edició.

    int document.firstColumn(int línia);

  Retorna la primera columna que no està en blanc en la `línia` donada. Si només hi ha espais en blanc a la línia, el valor retornat serà `-1`.

    int document.lastColumn(int línia);

  Retorna la darrera columna que no està en blanc en la `línia` donada. Si només hi ha espais en blanc a la línia, el valor retornat serà `-1`.

    int document.prevNonSpaceColumn(int línia, int columna);
    int document.prevNonSpaceColumn(Cursor cursor);

  Retorna la columna no buida que conté un caràcter no en blanc a partir de la posició donada del cursor i cercant cap enrere.

    int document.nextNonSpaceColumn(int línia, int columna);
    int document.nextNonSpaceColumn(Cursor cursor);

  Retorna la columna no buida que conté un caràcter no en blanc a partir de la posició donada del cursor i cercant cap endavant.

    int document.prevNonEmptyLine(int línia);

  Retorna la línia següent no buida que conté caràcters no en blanc a la cerca cap enrere.

    int document.nextNonEmptyLine(int línia);

  Retorna la línia següent no buida que conté caràcters no en blanc a la cerca cap endavant.

    bool document.isInWord(String caràcter, int atribut);

  Retorna `true` (cert), si el `caràcter` donat amb l'`atribut` donat pot formar part d'una paraula, en cas contrari retornarà `false` (fals).

    bool document.canBreakAt(String caràcter, int atribut);

  Retorna `true` (cert), si el `caràcter` donat amb l'`atribut` donat és adequat com a embolcall d'una línia, en cas contrari retornarà `false` (fals).

    bool document.canComment(int iniciAtribut, int finalAtribut);

  Retorna `true` (cert), si un interval inicial i final amb els atributs donats es presten a ser descomentats, en cas contrari retornarà `false` (fals).

    String document.commentMarker(int atribut);

  Retorna el marcador de comentari per als comentaris de línia única per a un `atribut` donat.

    String document.commentStart(int atribut);

  Retorna el marcador de comentari per al començament de comentaris de múltiples línies per a un `atribut` donat.

    String document.commentEnd(int atribut);

  Retorna el marcador de comentari per al final de comentaris de múltiples línies per a un `atribut` donat.

    Range document.documentRange();

  Retorna un interval que abasta tot el document.

    Cursor documentEnd();

  Retorna un cursor situat a l'última columna de l'última línia al document.

    bool isValidTextPosition(int línia, int columna);
    bool isValidTextPosition(Cursor cursor);

  Retorna `true` (cert), si la posició indicada del cursor està situada a una posició vàlida del text. Una posició de text només és vàlida si es localitza al començament, al mig o al final d'una línia vàlida. A més, una posició de text no serà vàlida si es troba en un substitut Unicode.

  Des del: KDE 5.0

    int document.attribute(int línia, int columna);
    int document.attribute(Cursor cursor);

  Retorna l'atribut a la posició del cursor donada.

    bool document.isAttribute(int línia, int columna, int atribut);
    bool document.isAttribute(Cursor cursor, int atribut);

  Retorna `true` (cert), si l'atribut a la posició del cursor és igual que l'`atribut`, en cas contrari retornarà `false` (fals).

    String document.attributeName(int línia, int columna);
    String document.attributeName(Cursor cursor);

  Retorna el nom de l'atribut com a text llegible. Això equival al nom `itemData` en els fitxers de ressaltat de la sintaxi.

    bool document.isAttributeName(int línia, int columna, String nom);
    bool document.isAttributeName(Cursor cursor, String nom);

  Retorna `true` (cert), si el nom de l'atribut en una posició determinada del cursor coincideix amb el `nom` donat, en cas contrari retornarà `false` (fals).

    String document.variable(String clau);

  Retorna el valor de la variable de document demanada `clau`. Si la variable de document no existeix, el valor retornat serà una cadena buida.

    void document.setVariable(String clau, String valor);

  Estableix el valor de la variable de document demanada `clau`.

  Vegeu també: variables de document del Kate

  Des del: KDE 4.8

    int document.firstVirtualColumn(int línia);

  Retorna la columna virtual del primer caràcter que no està en blanc a la línia donada o `-1`, si la línia està buida o només conté caràcters d'espai en blanc.

    int document.lastVirtualColumn(int línia);

  Retorna la columna virtual de l'últim caràcter que no està en blanc a la línia donada o `-1`, si la línia està buida o només conté caràcters d'espai en blanc.

    int document.toVirtualColumn(int línia, int columna);
    int document.toVirtualColumn(Cursor cursor);
    Cursor document.toVirtualCursor(Cursor cursor);

  Converteix la posició «real» donada del cursor a una posició virtual del cursor, d'altra manera retorna un «int» o un objecte «Cursor».

    int document.fromVirtualColumn(int línia, int virtualColumna);
    int document.fromVirtualColumn(Cursor virtualCursor);
    Cursor document.fromVirtualCursor(Cursor virtualCursor);

  Converteix la posició virtual donada del cursor a una posició «real» del cursor, d'altra manera retorna un «int» o un objecte «Cursor».

    Cursor document.anchor(int línia, int columna, Char caràcter);
    Cursor document.anchor(Cursor cursor, Char caràcter);

  Cerca enrere pel caràcter donat a partir del cursor donat. Com a exemple, si es passa «(» com a caràcter, aquesta funció retornarà la posició de l'obertura «(». Això compta la referència, és a dir, els altres «(...)» seran ignorats.

    Cursor document.rfind(int línia, int columna, String text, int atribut = -1);
    Cursor document.rfind(Cursor cursor, String text, int atribut = -1);

  Cerca cap enrere el text donat amb l'`atribut` adequat. L'argument `atribut` s'ignorarà si s'estableix a `-1`. El cursor retornat no serà vàlid, si el text no s'ha pogut trobar.

    int document.defStyleNum(int línia, int columna);
    int document.defStyleNum(Cursor cursor);

  Retorna l'estil predeterminat utilitzat a la posició donada del cursor.

    bool document.isCode(int línia, int columna);
    bool document.isCode(Cursor cursor);

  Retorna `true` (cert), si l'atribut a la posició donada del cursor no és igual per a tots els següents estils: `dsComment`, `dsString`, `dsRegionMarker`, `dsChar`, `dsOthers`.

    bool document.isComment(int línia, int columna);
    bool document.isComment(Cursor cursor);

  Retorna `true` (cert), si l'atribut del caràcter a la posició del cursor és `dsComment`, en cas contrari retornarà `false` (fals).

    bool document.isString(int línia, int columna);
    bool document.isString(Cursor cursor);

  Retorna `true` (cert), si l'atribut del caràcter a la posició del cursor és `dsString`, en cas contrari retornarà `false` (fals).

    bool document.isRegionMarker(int línia, int columna);
    bool document.isRegionMarker(Cursor cursor);

  Retorna `true` (cert), si l'atribut del caràcter a la posició del cursor és `dsRegionMarker`, en cas contrari retornarà `false` (fals).

    bool document.isChar(int línia, int columna);
    bool document.isChar(Cursor cursor);

  Retorna `true` (cert), si l'atribut del caràcter a la posició del cursor és `dsChar`, en cas contrari retornarà `false` (fals).

    bool document.isOthers(int línia, int columna);
    bool document.isOthers(Cursor cursor);

  Retorna `true` (cert), si l'atribut del caràcter a la posició del cursor és `dsOthers`, en cas contrari retornarà `false` (fals).

    void document.indent(Range interval, int canvi);

  Sagna totes les línies de l'`interval` `canviant` les tabulacions o `canviant` `tabSize` vegades els espais depenent de les preferències dels usuaris. El paràmetre `canvi` pot ser negatiu.

#### L'API de l'editor

A més de l'API del document i la visualització, hi ha una API general de l'editor que proporciona funcions per a la funcionalitat per a crear scripts general de l'editor.

    Cadena editor.clipboardText();

  Retorna el text que es troba actualment al porta-retalls global.

  Des del: Frameworks del KDE 5.0

    Cadena editor.clipboardHistory();

  L'editor manté un historial del porta-retalls que conté fins a 10 entrades. Aquesta funció retorna totes les entrades que actualment es troben a l'historial del porta-retalls.

  Des del: Frameworks del KDE 5.0

    void editor.setClipboardText(String text);

  Estableix el contingut del porta-retalls al `text`. El `text` serà afegit a l'historial del porta-retalls.

  Des del: Frameworks del KDE 5.0

Capítol 7. Configurar la KatePart
Configurar la KatePart

# Capítol 7. Configurar la KatePart

Seleccionant Arranjament → Configura l'`aplicació`... apareixerà el diàleg Configura. Aquest diàleg es pot utilitzar per a alterar un cert nombre d'opcions diferents. Les opcions disponibles per a cada categoria poden variar d'acord amb la categoria que l'usuari escull en el llistat vertical que hi ha a la part esquerra del diàleg. Mitjançant els tres botons del quadre de baix del quadre, l'usuari podrà controlar el procés.

És possible demanar Ajuda al sistema, acceptar la configuració actual i tancar el diàleg mitjançant el botó D'acord, o Cancel·la el procés. Les categories Aparença, Lletra i colors, Edició, Obre/desa i Extensions es detallen a continuació.

## La configuració del component d'edició

Aquest grup conté totes les pàgines relacionades amb el component editor de la KatePart. La majoria de les opcions de configuració que es troben aquí són les predeterminades, i poden ser sobreescrites per les definicions del tipus de fitxer, per les variables de document o pels canvis en el mateix document durant una sessió d'edició.

### Aparença

#### General

Lletra de l'editor

  Aquí podreu escollir la lletra de l'editor de text. Podeu escollir qualsevol lletra disponible en el vostre sistema, i establir la mida predeterminada. Es mostra un text d'exemple a la part inferior del diàleg, de manera que podeu veure l'efecte de la vostra elecció.

  Per a obtenir més informació sobre com triar una lletra, vegeu la secció Triar les lletres a la documentació Fonaments del KDE.

Mostra els indicadors dels espais en blanc
  Mai

    L'editor no mostrarà punts per a indicar la presència dels espais en blanc.

  Al final de línia

    L'editor mostrarà punts per a indicar la presència d'espais en blanc extra al final de les línies.

  Sempre

    L'editor mostrarà sempre punts per a indicar la presència dels espais en blanc.

Mida de l'indicador dels espais en blanc

  Utilitzeu el control lliscant per a canviar la mida del marcador d'indicador visible.

Mostra els indicadors dels tabuladors

  Quan està marcada, l'editor mostrarà un símbol » per a indicar la presència d'un tabulador en el text.

Concordança de parèntesis

  Ressalta l'interval entre els parèntesis seleccionats

    Si està activat, es ressaltarà l'interval entre la parella de parèntesis seleccionats.

  Mostra una vista prèvia del parèntesi obert que coincideix

    Quan estigui habilitada, l'editor mostrarà un consell d'eina sobre la línia del parèntesi concordant obert.

  Flaix del parèntesi concordant quan el cursor es mou al parèntesi aparellat

    Si està activada, es mourà sobre els parèntesis que coincideixin ({, [, ], }, ( o )) farà parpellejar ràpidament el parèntesi corresponent.

Mostra les línies de sagnat

  Si està marcada, l'editor mostrarà línies verticals per a ajudar a identificar el sagnat de les línies.

Comptadors

  Mostra el comptador de paraules

    Mostra el nombre de paraules i caràcters que hi ha al document i a la selecció actual a la barra d'estat. Aquesta opció també està disponible al menú contextual de la barra d'estat.

  Mostra el comptador de línies

    Mostra a la barra d'estat el nombre total de línies del document. Aquesta opció també està disponible al menú contextual de la barra d'estat.

Plega la primera línia

  Si està activat, es plegarà la primera línia, si és possible. Això és útil, si el fitxer comença amb un comentari, com ara els drets d'autor

Ajust dinàmic de les paraules

  Si marqueu aquesta opció, les línies de text s'ajustaran a la vora de la vista en la pantalla.

  Ajusta dinàmicament al marcador d'ajust estàtic de les paraules

    Quan està marcada, l'editor envoltarà dinàmicament les línies a la posició de l'ajust estàtic de les línies.

  Ignora els límits de paraula per a l'ajust dinàmic

    Quan està marcada, l'editor no tindrà en compte els límits de paraula quan s'ajustin les línies de text.

Indicadors de l'ajust dinàmic de les paraules

  Escull quan i com es mostraran els indicadors d'ajust dinàmic de les paraules, ja sigui Inactiu, Segueix els números de línia o Sempre actiu.

Sagna les línies ajustades

  A més, permet establir l'amplada màxima de la pantalla, com a un percentatge, després del qual les línies ajustades dinàmicament no s'alinearan verticalment. Per exemple, al 50%, les línies amb nivells de sagnat més gran del 50% de l'amplada de la pantalla no se'ls aplicarà l'alineació vertical.

Multiplicador de l'alçada de les línies

  Aquest valor es multiplicarà per l'alçada predeterminada de les línies de la lletra. Un valor d'1,0 vol dir que s'emprarà l'alçada predeterminada.

#### Vores

Plegat de bloc de codi
  Mostra les fletxes per a reduir els blocs de codi

    Si aquesta opció està marcada, la vista actual mostrarà marques per al plegat del codi, si el plegat del codi està disponible.

  Mostra una vista prèvia dels blocs plegats en passar per sobre

    Si aquesta opció està activada, en passar per sobre d'una regió plegada es mostrarà una vista prèvia del text plegat en una finestra emergent.

Visibilitat de les fletxes de plegat

  Canvia les fletxes de plegat entre Mostra en passar-hi per sobre i Mostra sempre.

Costat esquerre
  Mostra les marques

    Si està marcada, veureu una vora per a les icones al costat esquerre. La vora per a les icones mostrarà els signes de punt.

  Mostra els números de les línies

    Si està marcada, veureu els números de les línies al costat esquerre.

  Ressalta les línies canviades i sense desar

    Si aquesta opció està marcada, els marcadors de modificació de línia seran visibles. Per a obtenir més informació, vegeu «Indicadors de modificació de línia».

Barres de desplaçament
  Mostra les marques

    Si aquesta opció està marcada, la vista actual mostrarà marques a la barra de desplaçament vertical. Aquestes marques per exemple, mostraran els punts.

  Mostra una vista prèvia en passar per sobre la barra de desplaçament

    Si aquesta opció està marcada, i desplaceu la barra de desplaçament amb el cursor del ratolí, es mostrarà una petita vista prèvia del text amb diverses línies del document actual al voltant de la posició del cursor. Això permet canviar ràpidament a una altra part del document.

Mapa en miniatura
  Mostra un mapa en miniatura

    Si marqueu aquesta opció, cada vista nova mostrarà un mapa en miniatura del document a la barra de desplaçament vertical.

    Per a més informació sobre el mapa en miniatura a la barra de desplaçament, vegeu «El mapa en miniatura a la barra de desplaçament».

  Amplada del mapa en miniatura

    Ajusta l'amplada del mapa en miniatura a la barra de desplaçament, definida en píxels.

  Visibilitat de les barres de desplaçament

    Commuta la barra de desplaçament o només la mostra quan sigui necessària. Feu clic amb el botó esquerre del ratolí sobre el rectangle blau per a mostrar l'interval de números de línia del document que es mostra a la pantalla. Manteniu premut el botó esquerre del ratolí fora del rectangle blau per a desplaçar-vos automàticament a través del document.

Ordena el menú dels punts
  Per data de creació

    Cada punt nou s'afegirà a baix, independentment d'on estigui situat en el document.

  Per número de línia

    Els punts s'ordenaran pel número de línia en la qual estan situats.

### Temes de color

Aquesta secció del diàleg permet configurar tots els colors en qualsevol esquema de color que tingueu, i crear temes nous, suprimir els existents o Segueix l'esquema de color del sistema. Cada esquema té opcions de configuració per als colors i ressaltat dels estils de text.

La KatePart preseleccionarà el tema actualment actiu, si voleu treballar sobre un tema diferent, seleccioneu-lo en el quadre combinat Selecció del tema. Amb els botons Copia i Suprimeix podreu crear un tema nou (copiant l'existent) o suprimir els existents.

Això es descriu en detall a «Els temes de color de la IGU».

### Edició

#### General

Ajust de les paraules

  L'ajust de línia és una característica que causarà que l'editor iniciï automàticament una nova línia de text i desplaci (ajusti) el cursor al començament de la nova línia. La KatePart iniciarà automàticament una nova línia de text quan la línia actual abasti la longitud especificada per l'opció Ajusta les paraules a:.

  Ajusta les paraules a una columna fixada

    Activa o desactiva l'ajust estàtic de les paraules.

  Dibuixa una línia vertical a la columna d'ajust de les paraules

    Si aquesta opció està marcada, es dibuixarà una línia vertical a l'ajust de la línia tal com s'ha definit a Arranjament → Configura l'editor... a la pestanya Editor. Cal tenir present que la marca d'ajust de la línia només es dibuixarà si utilitzeu una lletra de mida fixa.

  Ajusta les paraules a:

    Si l'opció Ajusta les paraules a una columna fixada està seleccionada, aquesta entrada determina la longitud (en caràcters) després de la qual l'editor iniciarà una nova línia automàticament.

Mode d'entrada predeterminat

  El mode d'entrada vi seleccionat s'activarà en obrir una vista nova. Encara podreu commutar el mode d'entrada vi actiu/inactiu per a una vista particular en el menú Edita.

Claus

  Si l'opció Tanca automàticament les claus quan es teclegi una clau d'obertura està seleccionada, quan l'usuari escrigui una clau esquerra ([, (, o {), la KatePart introduirà automàticament la clau dreta (}, ) o ]) a la dreta del cursor.

Caràcters de tancament

  És possible seleccionar els caràcters de tancament mitjançant la llista desplegable corresponent.

  Quan hi hagi text seleccionat, escrivint un d'aquests caràcters s'envoltarà el text seleccionat.

Copiar i enganxar
  Mou el text seleccionat en arrossegar

    Aquesta opció permet arrossegar i deixar anar el text seleccionat dins la finestra de l'editor.

  Copia/retalla la línia actual si s'invoca sense cap text seleccionat

    Si aquesta opció està activada i la selecció de text està buida, les accions copia i retalla es duran a terme per a la línia de text a la posició real del cursor.

  No moure el cursor de text en enganxar amb el ratolí

    Si aquesta opció està habilitada i enganxeu algun text a la finestra de l'editor amb el clic del botó mig del ratolí, el KatePart no mourà el cursor de text fins a la posició on heu fet clic.

#### Navegar pel text

Moviment del cursor en el text
  Inici i final intel·ligents

    Quan estigui seleccionada, prémer la tecla Inici causarà que el cursor salti els espais en blanc i vagi a l'inici del text d'una línia.

  Av Pàg/Re Pàg mouen el cursor

    Aquesta opció canvia el comportament del cursor quan l'usuari prem la tecla Re Pàg o Av Pàg. Si no està seleccionada el cursor mantindrà la seva posició relativa en el text visible a la KatePart com el text nou es fa visible com a resultat de l'operació. Així, si el cursor està en el centre del text visible quan l'operació ocorre romandrà allí (excepte quan s'arriba al començament o al final). Amb aquesta opció seleccionada, prémer en primer lloc la tecla causarà que el cursor es mogui a la part superior o inferior del text visible mostrant una nova pàgina de text.

  Activa el moviment del cursor en les majúscules

    Aquesta opció canvia el comportament del cursor quan l'usuari prem la drecera Ctrl+Fletxa esquerra o Ctrl+Fletxa dreta. Si no està seleccionada, el cursor de text saltarà sobre les paraules completes. Amb aquesta opció seleccionada, els salts del cursor es trencaran en les majúscules.

  Centra automàticament el cursor:

    Estableix el nombre de línies a mantenir visibles per sobre i per sota del cursor, sempre que sigui possible.

Mode de selecció del text
  Normal

    Les seleccions seran sobreescrites pel text escrit i perdudes en moure el cursor.

  Persistent

    Les seleccions romandran, fins i tot després del moviment del cursor i el tecleig.

  Permet el desplaçament més enllà del final del document

    Aquesta opció permet desplaçar-vos més enllà del final del document. Es pot utilitzar per al centre vertical a la part inferior del document, o el posa a la part superior de la vista actual.

  La tecla de retrocés elimina la base del caràcter amb els seus diacrítics

    Quan estan seleccionats, els caràcters compostos s'eliminen amb els seus diacrítics en lloc d'eliminar només el caràcter base. Això és útil per a les configuracions regionals de l'Índic.

Modificador multicursor

  Aquesta opció permet establir el modificador que s'utilitzarà per a crear cursors múltiples amb un clic del botó esquerre del ratolí. Cal prémer els modificadors i fer clic amb el botó esquerre del ratolí per a crear un cursor en la ubicació desitjada. Vegeu Creació de cursors múltiples per a descobrir altres maneres de crear cursors múltiples.

#### Sagnat

Mode de sagnat predeterminat:

  Seleccioneu el mode de sagnat automàtic que voleu utilitzar de manera predeterminada. Es recomana utilitzar `Cap` o `Normal`, i utilitzar les configuracions del tipus de fitxer per a assignar altres modes de sagnat per a formats de text com codi en C/C++ o XML.

Sagna usant
  Tabulacions

    Quan aquesta opció està activada, l'editor inserirà caràcters de tabulació quan es pressiona la tecla Tab o utilitzarà la sagnia automàtica.

  Espais

    Quan estigui activada, l'editor inserirà un nombre d'espais calculat d'acord amb la posició en el text i l'opció `tab-width` (amplada de la tabulació) quan premeu la tecla Tab o utilitzeu el sagnat automàtic.

  Tabuladors i espais

    Quan aquesta opció està activada, l'editor inserirà espais com es descriu anteriorment, quan se sagni o premi la tecla Tab al començament d'una línia, però inserirà tabulacions quan es premi la tecla Tab al mig o al final d'una línia.

  Amplada de la tabulació:

    Això configura el nombre d'espais que es mostren en lloc d'un caràcter de tabulació.

  Amplada del sagnat:

    L'amplada del sagnat és el nombre d'espais que s'utilitzen per a aplicar el sagnat a una línia. Si s'ha configurat el sagnat utilitzant tabulacions, un caràcter de tabulació serà inserit si el sagnat és divisible per l'amplada de la tabulació.

Propietats del sagnat
  Conserva els espais extres

    Si aquesta opció està desactivada, en canviar el nivell del sagnat, les línies s'alinearan a un múltiple de l'amplada especificada a Amplada del sagnat.

  Ajusta el sagnat del text enganxat des del porta-retalls

    Si aquesta opció està seleccionada, se sagnarà el text enganxat des del porta-retalls. En activar l'acció Desfés s'eliminarà el sagnat.

Accions del sagnat
  La tecla de retrocés en un espai en blanc inicial desfà el sagnat

    Si aquesta opció està seleccionada, la tecla de Retrocés disminuirà el nivell de sagnat si el cursor està posicionat a l'espai en blanc inicial d'una línia.

  Acció de la tecla de tabulació (si no existeix cap selecció)

    Si voleu utilitzar Tab per a alinear la línia actual en el bloc de codi actual com a l'Emacs, feu que la Tab sigui una drecera a l'acció Format del sagnat.

    Avança sempre fins a la posició de la tabulació següent

      Si seleccioneu aquesta opció, la tecla Tab sempre inserirà espais en blanc fins que s'abasti la posició de la següent tabulació. Si l'opció Insereix espais en comptes de tabulacions a la pestanya General a la pàgina Edició està activada, s'inseriran espais, en cas contrari, s'inserirà una sola tabulació.

    Augmenta sempre el nivell de sagnat

      Si aquesta opció està seleccionada, la tecla Tab sempre sagnarà la línia actual amb el nombre de posicions indicades a Amplada del sagnat.

    Augmenta el nivell de sagnat en un espai en blanc inicial

      Si aquesta opció està seleccionada, la tecla Tab sagnarà la línia actual o avançarà fins a la següent posició de tabulació. Si el punt d'inserció és al primer caràcter no blanc o abans de la línia, o hi ha una selecció, la línia actual se sagnarà en el nombre de posicions indicades a Amplada del sagnat. Si el punt d'inserció està després del primer caràcter no blanc de la línia i no hi ha cap selecció, s'inserirà un espai en blanc de manera que s'arribi a la posició de tabulació següent: si l'opció Insereix espais en lloc de tabuladors de la secció Edició està activada, s'inseriran espais; altrament, s'inserirà una única tabulació.

#### Compleció automàtica

General
  Activa la compleció automàtica

    Si està activada, apareixerà un quadre de compleció emergent per a completar paraules automàticament en escriure, mostrant una llista d'entrades de text per a completar el text actual sota el cursor.

  Selecciona automàticament la primera entrada de compleció

    Si està habilitada, sempre estarà preseleccionat el primer element de la compleció automàtica de manera que pugueu inserir-lo prement Retorn. Si no voleu aquest comportament, p. ex., si voleu prémer Retorn per a només inserir una línia nova, inhabiliteu aquest element.

Longitud mínima de la paraula a completar

  En escriure text, les cerques de paraules de completat de paraules en el document s'iniciarà en escriure text. Aquesta opció configura la quantitat mínima de caràcters que es necessiten per a fer que la compleció de paraules sigui activada i aparegui un quadre de compleció emergent.

Elimina el final en la compleció

  Elimina el final de la paraula anterior quan es tria l'element de compleció des d'una llista.

Compleció de paraules clau

  Si està activada, la compleció automàtica integrada utilitzarà les paraules clau definides per al ressaltat de la sintaxi.

#### Verificació ortogràfica

Aquestes opcions de configuració es descriuen a la documentació del mòdul Corrector ortogràfic a Arranjament del sistema.

#### Mode d'entrada del Vi

General
  Permet que les ordres del Vi substitueixin les dreceres del Kate

    Quan està seleccionada, les ordres del vi substitueixen les ordres integrades de la KatePart. Per exemple: Ctrl+R refarà, i substituirà l'acció estàndard (mostra el diàleg de cerca i substitució).

  Mostra el número relatiu a la línia

    Si està activada, la línia actual sempre es referirà a la línia 0. Les línies per sobre i per sota augmentaran el número de línia de forma relativa.

Mapatge de tecles

  El mapatge de tecles s'utilitza per a canviar el significat de les tecles en escriure. Això permet moure les ordres a altres tecles o crear tecles especials per a fer una sèrie d'ordres.

  Exemple:

  F2 -> `I--` Esc

  Això anteposa `I--` a una línia quan es pressiona F2.

### Obre/desa

#### General

Format del fitxer
  Codificació

    Defineix la codificació estàndard a utilitzar per a obrir/desar fitxers, si no s'ha canviat al diàleg obre/desa o utilitzant una opció de la línia d'ordres.

  Detecció de la codificació

    Seleccioneu un element de la llista desplegable, o bé desactiveu la detecció automàtica o utilitzeu Universal per a activar la detecció automàtica per a totes les codificacions. Però com això probablement només pot detectar utf-8/utf-16, seleccionant una regió s'utilitzarà l'heurística personalitzada per a obtenir millors resultats. Si no es tria cap codificació com a estàndard, ni s'especifica en el diàleg obre/desa, ni a la línia d'ordres que coincideixi amb el contingut del fitxer, aquesta detecció es durà a terme.

  Codificació de reserva

    Defineix la codificació de reserva per a intentar obrir els fitxers si no es tria cap codificació com a estàndard, ni s'especifica en el diàleg obre/desa, ni a la línia d'ordres que coincideixi amb el contingut del fitxer. Abans d'utilitzar-la, es farà una temptativa per a determinar la codificació a utilitzar cercant una marca d'ordre de bytes a l'inici del fitxer: Si es troba, se seleccionarà la codificació Unicode correcta, altrament s'executarà la detecció de la codificació, i si totes dues fallen, es triarà la codificació de reserva.

  Final de línia

    Escolliu el final de línia preferit per al vostre document actiu. Podeu escollir entre UNIX®, DOS/Windows® o Macintosh.

  Detecció automàtica del final de línia

    Marqueu-ho si voleu que l'editor detecti automàticament el tipus del final de línia. El primer final de línia trobat s'utilitzarà per a tot el fitxer.

  Activa el marcador d'ordre de bytes (BOM)

    La marca d'ordre de bytes és una seqüència especial al començament dels documents codificats amb Unicode. Ajuda els editors a obrir documents de text amb la codificació Unicode correcta. Per a obtenir més informació, vegeu Marca d'ordre de bytes.

  Límit de longitud de la línia

    Lamentablement, a causa de deficiències en les Qt™, la KatePart experimenta un rendiment deficient quan treballa amb línies extremadament llargues. Per aquesta raó, la KatePart ajustarà automàticament les línies quan són més llargues que el nombre de caràcters especificats aquí. Per a desactivar-ho, establiu aquest valor a `0`.

Neteja automàtica en desar
  Elimina els espais finals

    L'editor eliminarà automàticament els espais addicionals als finals de les línies de text en desar el fitxer. Podeu seleccionar Mai per a desactivar aquesta funcionalitat, En les línies modificades per a fer-ho únicament sobre les línies que s'han modificat des de l'última vegada que vau desar el document o En tot el document per a eliminar-los incondicionalment de tot el document.

  Afegeix una línia nova al final del fitxer en desar

    L'editor afegirà automàticament un salt de línia al final del fitxer si no hi és després de desar el fitxer.

Activa el desament automàtic (només fitxers locals)

  Marqueu-ho si voleu que l'editor desi automàticament els documents mentre hi esteu treballant.

  Desa automàticament el document quan el focus surt de l'editor

    L'editor desarà automàticament els documents quan canvieu a qualsevol altre lloc fora de l'editor, p. ex., el plafó de terminal al Kate.

  Interval del desament automàtic

    Aquí podeu indicar l'interval del desament automàtic en segons. Si l'interval és 0, el document no es desarà automàticament després de l'interval.

#### Avançat

Introduïu un fitxer a on desar les còpies de seguretat

  Els fitxers de còpia de seguretat faran que la KatePart copiï el fitxer del disc (la versió del fitxer desada anteriorment) a <prefix><nomfitxer><sufix> abans de desar els canvis nous. Un fitxer de còpia de seguretat pot ajudar a recuperar el treball si res acaba malament en desar o si més tard voleu recuperar la versió anterior del fitxer. El sufix predeterminat és ~ i el prefix restarà buit de manera predeterminada.

  Fitxers locals

    Marcar si voleu realitzar còpies de seguretat dels fitxers locals en desar.

  Fitxers remots

    Marcar si voleu realitzar còpies de seguretat dels fitxers remots en desar.

  Prefix dels fitxers de còpia de seguretat

    Introduïu el prefix que precedirà al nom dels fitxers de còpia de seguretat.

  Sufix dels fitxers de còpia de seguretat

    Introduïu el sufix a afegir al nom dels fitxers de còpia de seguretat.

  Mode del fitxer d'intercanvi

    La KatePart és capaç de recuperar (principalment) el treball sense desar en el cas d'una fallada o falta de corrent elèctric. Es crea un fitxer d'intercanvi (.<filename>.kate-swp) quan s'edita un document. Si l'usuari no desa els canvis i la KatePart falla, el fitxer d'intercanvi es manté al disc. En obrir un fitxer, la KatePart comprovarà si hi ha un fitxer d'intercanvi per al document i si el troba, demanarà a l'usuari si vol o no recuperar les dades perdudes. L'usuari també disposa de la possibilitat de veure les diferències entre el fitxer original i el recuperat. El fitxer d'intercanvi serà suprimit després de cada acció de desament i en sortir normalment.

    La KatePart sincronitza els fitxers d'intercanvi en el disc cada 15 segons, però només si han canviat des de l'última sincronització. L'usuari pot desactivar aquesta sincronització, seleccionant Desactiva, però això pot conduir a una major pèrdua de dades.

    Quan el fitxer d'intercanvi està habilitat, és possible canviar entre dos modes, Activat, emmagatzematge en el directori predeterminat i Activat, emmagatzematge en un directori personalitzat.

  Emmagatzema els fitxers d'intercanvi a

    De manera predeterminada, els fitxers d'intercanvi es desaran a la mateixa carpeta que el fitxer. Quan es tria Activat, emmagatzematge en un directori personalitzat al mode de fitxer d'intercanvi, aquests es crearan a la carpeta especificada. Això és útil per a sistemes de fitxers en xarxa per a evitar el trànsit de xarxa innecessari.

  Desa els fitxers d'intercanvi cada

    La KatePart sincronitza els fitxers d'intercanvi en el disc cada 15 segons, però només si han canviat des de l'última sincronització. Podeu canviar a l'interval de sincronització que vulgueu.

#### Modes i tipus de fitxer

Aquesta pàgina us permetrà substituir la configuració predeterminada per als documents dels tipus MIME especificats. Quan l'editor carrega un document, intenta trobar la màscara o el tipus MIME per a un dels tipus de fitxers definits, i de ser així s'apliquen les variables definides. Si coincideixen diversos tipus de fitxer, s'utilitzarà el de major prioritat.

Tipus de fitxer:

  El tipus de fitxer amb la prioritat més alta és el que es mostra a la llista desplegable. Si hi ha més d'un tipus de fitxer, també es llistaran.

  Nou

    S'utilitza per a crear un nou tipus de fitxer. Després que feu clic en aquest botó, els camps inferiors es buidaran i podreu omplir les propietats que vulgueu per al nou tipus de fitxer.

  Suprimeix

    Per a eliminar un tipus de fitxer existent, seleccioneu-lo des de la llista desplegable i premeu el botó Suprimeix.

Propietats del `tipus de fitxer actual`

  El tipus de fitxer amb la prioritat més alta és el que es mostra a la llista desplegable. Si hi ha més d'un tipus de fitxer, també es llistaran.

  Nom:

    El nom del tipus de fitxer que es mostrarà a l'element de menú corresponent. Aquest nom es mostrarà en el menú Eines → Tipus de fitxer.

  Secció:

    El nom de la secció utilitzada per a organitzar els tipus de fitxer en menús. També és utilitzat en el menú Eines → Tipus de fitxer.

  Variables:

    Aquesta cadena permet configurar les opcions de configuració de la KatePart per als fitxers seleccionats per a aquest tipus MIME utilitzant variables de la KatePart. Podeu establir gairebé qualsevol opció de configuració, com ara el ressaltat, el mode de sagnat, etc.

    Premeu Edita per a veure una llista de totes les variables disponibles i les seves descripcions. Seleccioneu la casella de selecció de l'esquerra per a activar una variable en particular i després establiu el valor de la variable a la dreta. Algunes variables proporcionen una llista desplegable per a seleccionar els possibles valors requerits per altres quan introduïu un valor vàlid manualment.

    Per a obtenir informació completa sobre aquestes variables, vegeu Configuració amb variables de document.

  Ressaltat:

    Si creeu un nou tipus de fitxer, aquesta llista desplegable permet seleccionar un tipus de fitxer a ressaltar.

  Mode de sagnat:

    La llista desplegable especifica el mode de sagnat per als documents nous.

  Extensions de fitxer:

    Els comodins permeten seleccionar els fitxers segons el seu nom. Una màscara que se sol emprar és un asterisc i l'extensió del fitxer, per exemple `*.txt; *.text`. La cadena és una llista de màscares separades per punt i coma.

  Tipus MIME:

    Mostra un assistent que ajudarà a seleccionar els tipus MIME amb facilitat.

  Prioritat:

    Estableix una prioritat per a aquest tipus de fitxer. Si un document coincideix amb diversos tipus de fitxer, s'escollirà el que disposi d'una prioritat més alta.

Configuració amb variables de document
Configuració amb variables de document

## Configuració amb variables de document

Les variables de la KatePart són implementacions de la KatePart de les variables de document, similar als modes de línia d'Emacs i vi. A la katepart, les línies tenen el format `kate: NOMVARIABLE VALOR; [ NOMVARIABLE VALOR; ... ]` les línies poden ser un comentari, si el fitxer és en un format amb comentaris. Els noms de les variables són paraules soles (sense espais en blanc), i quelcom que el segueixi fins als dos punts serà el valor. Els dos punts són requerits.

Tot seguit hi ha un exemple de línia de variable, aquesta força la configuració del sagnat per a un fitxer en C++, Java™ o JavaScript:

    // kate: replace-tabs on; indent-width 4; indent-mode cstyle;

### Nota

Només se cercaran línies de variable en les primeres i últimes 10 línies.

A més, les variables de document es poden posar en un fitxer anomenat `.kateconfig` en qualsevol directori, i les opcions configurades s'aplicaran com si els modes de línia es van introduir en cadascun dels fitxers en el directori i els seus subdirectoris. Les variables de document en el `.kateconfig` utilitzen la mateixa sintaxi que en els modes de línia, però amb les opcions esteses.

Hi ha variables que suporten la gran majoria de configuracions a la KatePart, i addicionalment els connectors poden utilitzar variables, en el qual cas haurien de ser documentades en la documentació del connector.

El KatePart té suport per a llegir configuracions des de fitxers `.editorconfig` quan hi ha instal·lada la biblioteca editorconfig. El KatePart cerca automàticament un fitxer `.editorconfig` cada cop que s'obre un fitxer. Tanmateix, dona prioritat als fitxers `.kateconfig`.

### Com utilitza les variables la KatePart

Quan llegeix la configuració, la katepart cercarà en els següents llocs (en aquest ordre):

- La configuració global.

- Dades opcionals de la sessió.

- La configuració del «tipus de fitxer».

- Variables de document en `.kateconfig`.

- Variables de document en el document mateix.

- Opcions canviades durant l'edició des del menú o des de la línia d'ordres.

Com podeu imaginar, les variables de document només seran substituïdes pels canvis realitzats en temps d'execució. Quan es desa un document, es tornaran a llegir les variables de document, i se sobreescriuran els canvis realitzats utilitzant els elements del menú o de la línia d'ordres.

Qualsevol variable no llistada a continuació serà emmagatzemada en el document i podrà ser consultada per altres objectes com connectors, els quals les podran utilitzar per a les seves pròpies finalitats. Per exemple, la variable «indent mode» utilitza variables de document per a la seva configuració.

Les variables aquí llistades són documents de la KatePart versió 5.38. En el futur s'hi poden afegir més variables. Hi ha 3 tipus de valors possibles per a les variables, amb les següents expressions vàlides:

- BOOL - on|off|true|false|1|0

- INTEGER - qualsevol nombre enter

- STRING - tota la resta

### Variables disponibles

auto-brackets [BOOLEÀ]

  Activa la inserció automàtica de parèntesis.

auto-center-lines [ENTER]

  Defineix el nombre de línies d'autocentrat.

background-color [CADENA]

  Estableix el color de fons del document. El valor haurà de ser quelcom a un color vàlid, per exemple «`#ff0000`».

backspace-indents [BOOLEÀ]

  Activa o desactiva treure el sagnat quan es prem la tecla Retrocés.

block-selection [BOOLEÀ]

  Activa o desactiva la selecció per blocs.

bom | byte-order-mark | byte-order-marker [BOOLEÀ]

  Activa/desactiva el marcador d'ordre de bytes (BOM) en desar fitxers en el format Unicode (utf8, utf16, utf32).

  Des del: Kate 3.4 (KDE 4.4)

bracket-highlight-color [CADENA]

  Estableix el color del ressaltat per al claudàtor. El valor haurà de ser quelcom a un color vàlid, per exemple «`#ff0000`».

current-line-color [CADENA]

  Estableix el color del ressaltat per a la línia actual. El valor haurà de ser quelcom a un color vàlid, per exemple «`#ff0000`».

default-dictionary [CADENA]

  Defineix el diccionari predeterminat utilitzat per a la correcció ortogràfica.

  Des del: Kate 3.4 (KDE 4.4)

dynamic-word-wrap [BOOLEÀ]

  Activa o desactiva l'ajust dinàmic de les línies.

eol | end-of-line [CADENA]

  Estableix el mode del final de les línies. Les opcions vàlides són «`unix`», «`mac`» i «`dos`».

folding-markers [BOOLEÀ]

  Estableix l'ús de la visualització de les marques de plegat («on» o «off»).

folding-preview [BOOLEÀ]

  Activa la vista prèvia del text plegat a la vora de l'editor.

font-size [ENTER]

  Defineix la mida del punt de la lletra del document.

font [CADENA]

  Estableix la lletra del document. El valor haurà de ser un nom vàlid de font, per exemple «`courier`».

hl | syntax [CADENA]

  Ajusta el ressaltat de la sintaxi. Les cadenes vàlides són tots els noms disponibles en els menús. Per exemple, per a C + + escriviu `C++`.

icon-bar-color [CADENA]

  Estableix el color de la barra de les icones. El valor haurà de ser quelcom a un color vàlid, per exemple `#ff0000`.

icon-border [BOOLEÀ]

  Estableix l'ús de la visualització de la vora de la icona («on» o «off»).

indent-mode [CADENA]

  Estableix el mode del sagnat automàtic. Les opcions «`cap`», «`normal`», «`cstyle`», «`haskell`», «`lilypond`», «`lisp`», «`python`», «`ruby`» i «`xml`» són reconegudes. Vegeu la secció «Usar el sagnat automàtic» per als detalls.

indent-pasted-text [BOOLEÀ]

  Activa/desactiva l'ajust del sagnat del text enganxat des del porta-retalls.

  Des del: Kate 3.11 (KDE 4.11)

indent-width [ENTER]

  Estableix l'amplada del sagnat.

keep-extra-spaces [BOOLEÀ]

  Estableix l'ús d'espais extra per a calcular l'amplada del sagnat.

line-numbers [BOOLEÀ]

  Estableix l'ús de la visualització dels números de línia («on» o «off»).

newline-at-eof [BOOLEÀ]

  Afegeix una línia en blanc al final del fitxer (EOF) en desar el document.

  Des del: Kate 3.9 (KDE 4.9)

overwrite-mode [BOOLEÀ]

  Estableix l'ús del mode de sobreescriptura («on» o «off»).

persistent-selection [BOOLEÀ]

  Estableix l'ús de les seleccions persistents («on» o «off»).

replace-tabs-save [BOOLEÀ]

  Estableix l'ús de la conversió de les tabulacions a espais durant el desament («on» o «off»).

replace-tabs [BOOLEÀ]

  Estableix l'ús de la conversió dinàmica de les tabulacions a espais («on» o «off»).

remove-trailing-spaces [CADENA]

  Elimina els espais finals en desar el document. Les opcions vàlides són:

  - `none`, `-` o `0`: mai elimina els espais finals.

  - `modified`, `mod`, `+` o `1`: elimina els espais finals només en les línies modificades. Les línies modificades són marcades pel sistema de modificació de la línia.

  - `all`, `*` o `2`: elimina els espais finals a tot el document.

scrollbar-minimap [BOOLEÀ]

  Mostra un mapa en miniatura a la barra de desplaçament.

scrollbar-preview [BOOLEÀ]

  Mostra una vista prèvia a la barra de desplaçament.

scheme [CADENA]

  Estableix l'esquema de color. La cadena haurà de ser un nom d'esquema de color que ja existeixi a la vostra configuració per a aconseguir qualsevol efecte.

selection-color [CADENA]

  Estableix la selecció del color. El valor haurà de ser quelcom que pugui ser avaluat com un color vàlid, per exemple «`#ff0000`».

show-tabs [BOOLEÀ]

  Estableix l'ús de la visualització del caràcter de tabulació («on» o «off»).

smart-home [BOOLEÀ]

  Estableix l'ús de la navegació intel·ligent («on» o «off»).

tab-indents [BOOLEÀ]

  Estableix l'ús del sagnat amb la tecla Tab («on» o «off»).

tab-width [ENTER]

  Estableix l'amplada del caràcter de tabulació.

undo-steps [ENTER]

  Estableix el nombre de passos a desfer que es poden recordar.

  Nota: Obsolet des del Kate 3 al KDE 4. Aquesta variable serà ignorada. El compte màxim de passos a desfer serà il·limitat.

word-wrap-column [ENTER]

  Estableix l'amplada de l'ajust estàtic de les línies.

word-wrap-marker-color [CADENA]

  Estableix el color de la marca del salt de línia. El valor haurà de ser quelcom a un color vàlid, per exemple «`#ff0000`».

word-wrap [BOOLEÀ]

  Estableix l'ús de l'ajust estàtic de les línies («on» o «off»).

### Opcions esteses als fitxers `.kateconfig`

La KatePart sempre cerca per un fitxer `.kateconfig` en fitxers locals (no remots). A més, és possible configurar les opcions basades en comodins (extensions de fitxer) de la manera següent:

    kate: tab-width 4; indent-width 4; replace-tabs on;
    kate-wildcard(*.xml): indent-width 2;
    kate-wildcard(Makefile): replace-tabs off;

En aquest exemple, tots els fitxers utilitzen una amplada de la pestanya de 4 espais, una amplada del sagnat de 4 espais, i les tabulacions se substitueixen expandides a espais. Tanmateix, per a tots els fitxers `*.xml`, l'amplada del sagnat s'estableix a 2 espais. I als Makefiles es fan servir tabulacions, és a dir, que les tabulacions no se substitueixen per espais.

Els comodins estan separats per un punt i coma, és a dir, també podeu especificar múltiples extensions de fitxer de la manera següent:

    kate-wildcard(*.json;*.xml): indent-width 2;

A més, també podeu utilitzar els tipus MIME per a fer-les coincidir amb certs fitxers, p. ex., per a sagnar tots els fitxers font de C++ amb 4 espais, podeu escriure:

    kate-mimetype(text/x-c++src): indent-width 4;

### Nota

Al costat del suport en els fitxers `.kateconfig`, els comodins i els tipus MIME que depenen de variables de document també són admesos en els mateixos fitxers com a comentaris.

Capítol 8. Crèdits i llicència
Crèdits i llicència

# Capítol 8. Crèdits i llicència

Copyright de la KatePart i el KWrite, 2001-2022 per l'equip del Kate.

Basat en el KWrite original, Copyright 2000 per en Jochen Wilhelmy `(digisnap AT cs.tu-berlin.de)`

Contribucions:

- Cullmann, Christoph `(cullmann AT kde.org)`

- Michael Bartl `(michael.bartl1 AT chello.at)`

- Phlip `(phlip_cpp AT my-deja.com)`

- Lund, Anders `(anders AT alweb.dk)`

- Matt Newell `(newellm AT proaxis.com)`

- Wenninger, Joseph `(kde AT jowenn.at)`

- Jochen Wilhelmy `(digisnap AT cs.tu-berlin.de)`

- Koch, Michael `(koch AT kde.org)`

- Gebauer, Christian `(gebauer AT kde.org)`

- Hausmann, Simon `(hausmann AT kde.org)`

- Glen Parker `(glenebob AT nwlink.com)`

- Scott Manson `(sdmanson AT altel.net)`

- Firebaugh, John `(jfirebaugh AT kde.org)`

- Nibaldo González `(nibgonz AT gmail.com)`

La documentació de la KatePart es basa en la documentació original del KWrite, modificada perquè sigui aplicable a tots els consumidors de la KatePart.

La documentació original del KWrite va ser escrita per en McGinnis, Thad `(ctmcginnis AT compuserve.com)`, amb grans modificacions d'en Tibirna, Christian `(tibirna AT kde.org)`. Convertida a docbook/correcció de proves per en Watts, Lauri `(lauri AT kde.org)` i actualitzada per na Mahfouf, Anne-Marie `(annma AT kde.org)` i en Lund, Anders `(anders AT alweb.dk)`

La documentació actual de la KatePart és mantinguda per Hollingsworth, T.C. `(tchollingsworth AT gmail.com)`. Per a sol·licitar canvis, obriu un informe d'error al sistema de seguiment d'errors de KDE o proporcioneu un pedaç al nostre projecte de GitLab.

Traductor/Revisor de la documentació: Antoni Bella `(antonibella5 AT yahoo.com)`

Aquesta documentació està llicenciada d'acord amb les clàusules de la Llicència de Documentació Lliure de GNU.

Aquest programa està llicenciat d'acord amb les clàusules de la Llicència Pública General de GNU.

Capítol 9. El mode d'entrada del Vi
El mode d'entrada del Vi

# Capítol 9. El mode d'entrada del Vi

Hamberg, Erlend `<ehamberg@gmail.com>`

Traductor: Antoni Bella

## Mode d'entrada del Vi

L'objectiu del mode VI no és substituir-lo completament per Vim, sí que dona suport a totes les característiques de Vim. El seu objectiu és fer que la «forma Vim» d'editar el text -i els hàbits apresos a Vim- estiguin disponibles per als programes utilitzant l'editor de text KatePart com al seu editor intern.

El mode VI té com a finalitat integrar-se molt bé amb el programa i desviar-se del comportament de Vim, on prengui sentit. Per exemple, `:w` obrirà un diàleg desa en el mode VI de KatePart.

Per a habilitar el mode d'entrada VI per a totes les vistes, aneu a Arranjament → Configura KatePart...+Edició → Mode d'entrada del VI. En aquesta pestanya podeu configurar les opcions per al mode d'entrada VI i definir i modificar l'assignació de tecles en aquest mode. El mode d'entrada VI també es pot alternar amb la configuració del Mode d'entrada del VI al menú Edició. (La drecera de teclat predeterminada és Meta+Ctrl+V -a on Meta usualment serà la tecla Windows-).

### Nota

En el Mode Vi moltes ordres de teclat distingeixen les majúscules i minúscules, a diferència de la majoria de les dreceres de teclat del KDE. Això vol dir que `i` i `I` són ordres diferents. Per a introduir l'ordre `y` (copia), assegureu-vos que Bloq Maj està inhabilitat i premeu Y. Per a introduir l'ordre `Y` (copiarà al final de la línia), Maj+Y.

Això no s'aplica a les ordres que utilitzen la tecla Ctrl, ja que es poden introduir independentment del mode Bloq Maj i sense necessitat de prémer Maj. No obstant això, algunes ordres requereixen l'ús de la tecla Ctrl seguida d'una altra tecla que distingeix entre majúscules i minúscules. Per exemple, per a introduir «Ctrl+W, `h`» (canviar a la vista dividida de la dreta) assegureu-vos que Bloq Maj està inhabilitada, premeu Ctrl+W, deixeu anar, i després premeu H.

### Incompatibilitats amb Vim

Hi ha només unes poques característiques del mode VI de KatePart que són incompatibles amb Vim (no comptant les coses que falten). S'enumeren a continuació juntament amb les raons respectives.

- KatePart: `U` i Ctrl+R són de refer.

  Vim: Ctrl+R és refer normal, U s'utilitza per a desfer tots els canvis més recents en una línia.

  La raó de tenir U actua com refer en el mode VI de KatePart la drecera Ctrl+R de manera predeterminada pren la funció de substituir de KatePart (cerca i substitueix). De manera predeterminada, el mode VI no substitueix les dreceres de KatePart (això es pot configurar en Arranjament → Configura KatePart...+Edició → Mode d'entrada del Vi), per tant, una acció de refer necessita estar disponible com a tecla «normal». A més, el comportament de l'ordre `U` en Vim no es correlaciona bé amb el sistema intern de desfer de KatePart, de manera que no seria trivial donar-ne suport.

- KatePart: `print` mostra el diàleg Impressió.

  Vim: `print` mostra les línies de l'interval donat igual que el seu predecessor, ed.

  Ordres com `:print` estan disponibles no només en el mode de VI, però també per als usuaris que utilitzen «regularment» KatePart -per tant, l'ordre `:print` obre el diàleg d'impressió- seguint el principi de la menor sorpresa en lloc d'imitar el comportament de Vim.

- KatePart: `Y` copia al final de la línia.

  Vim: `Y` copia tota la línia, igual que `y` `y`.

  El comportament del VI per a l'ordre `Y` és en la pràctica un error. Per a ambdues ordres canvia i suprimeix, `c` `c`/`d` `d` farà la seva acció en la línia actual i `C`/`D` treballarà a partir de la columna del cursor fins al final de la línia. No obstant això, tant `y` `y` com `Y` copien la línia actual. En mode VI de KatePart `Y` copiarà al final de la línia. Això es descriu «més lògicament» en la documentació de Vim.

- KatePart: `O` i `o` obre [`compte`] noves línies i posa en el mode d'inserció.

  Vim: `O` i `O` obre una línia nova i insereix text [`compte`] vegades deixant el mode d'inserció.

  Això es fa principalment a conseqüència de trobar que molta gent es confon per aquest comportament en un canal d'IRC sobre vim (#vim a Libera Chat).

### Alternar entre els modes

- Mode normal us permet introduir ordres per a navegar o editar un document, i és el mode predeterminat. Podeu tornar-hi des de qualsevol altra mode prement Esc.

- Mode visual us permet ressaltar text en un document. La majoria de les ordres del mode normal també són vàlides en aquest mode. Podeu introduir-les prement `v` per a seleccionar caràcters o `V` per a seleccionar línies.

- Mode d'inserció us permet editar directament el document. Podeu introduir prement `i` o una de les diverses altres ordres enumerades a continuació.

- El mode d'ordre invoca la línia d'ordres de KatePart, la qual us permetrà executar moltes ordres disponibles en les implementacions de Vi, així com algunes específiques per a KatePart. Per a més informació sobre aquestes ordres, vegeu «El component de la línia d'ordres de l'editor». Per a utilitzar-lo, premeu :, introduïu l'ordre, i premeu Retorn.

### Integració amb les característiques del Kate

- Al mode visual si entra automàticament en seleccionar text amb el ratolí. També si entra utilitzant funcions del Kate que seleccionen text, com Selecciona-ho tot (sigui des del menú o mitjançant Ctrl+A).

- Les marques de Vi i els punts del Kate estan integrats. Quan es crea una marca en el mode de Vi, es crea un punt del Kate corresponent i apareixerà al menú Punts. Per contra, quan es crea un punt del Kate, també es crea marca de Vi corresponent a la columna 0.

### Ordres suportades en el mode normal/visual

`a` | Entra en el mode d'inserció, afegeix després del cursor
`A` | Entra en el mode d'inserció, afegeix després de la línia
`i` | Entra en el mode d'inserció, insereix abans del cursor
Insert | Entra en el mode d'inserció, insereix abans del cursor
`I` | Entra en el mode d'inserció, insereix abans del primer caràcter no en blanc a la línia
`gi` | Entra en el mode d'inserció, insereix abans de la ubicació, on el va deixar el darrer mode d'inserció
`v` | Entra en el mode visual, selecciona caràcters
`V` | Entra en el mode visual, selecciona línies
Ctrl+v | Entra en el mode visual, selecciona blocs
`gb` | Entra en el mode visual, torna a seleccionar l'última selecció
`o` | Obre una línia nova sota la línia actual
`O` | Obre una línia nova sobre la línia actual
`J` | Uneix línies
`c` | Canvi: Segueix un moviment per a suprimir i entrar en el mode d'inserció
`C` | Canvi al final de la línia: Suprimeix al final de la línia i entrar en el mode d'inserció
`cc` | Canvi de línia: Suprimeix la línia i entra en el mode d'inserció
`s` | Substitueix caràcter
`S` | Substitueix la línia
`dd` | Suprimeix la línia
`d` | Segueix un moviment per a suprimir
`D` | Suprimeix fins al final de la línia
`x` | Suprimeix el caràcter a la dreta del cursor
Supr | Suprimeix el caràcter a la dreta del cursor
`X` | Suprimeix el caràcter a l'esquerra del cursor
`gu` | Segueix amb un moviment per a fer minúscules
`guu` | Torna a minúscules la línia actual
`gU` | Segueix amb un moviment per a fer majúscules
`gUU` | Torna a majúscules la línia actual
`y` | Segueix un moviment per a «tirar» (copia)
`yy` | Tira (copia) la línia
`Y` | Tira (copia) la línia
`p` | Enganxa després del cursor
`P` | Enganxa abans del cursor
`]p` | Enganxa després del sagnat del cursor
`[p` | Enganxa abans del sagnat del cursor
`r` | Segueix amb un caràcter a substituir el caràcter després del cursor
`R` | Entra en el mode substitució
`:` | Entra en el mode d'ordres
`/` | Cerca
`u` | Desfés
Ctrl+R | Refés
`U` | Refés
`m` | Estableix la marca (després es pot utilitzar per als moviments)
`n` | Cerca la següent
`N` | Cerca l'anterior
`>>` | Línia amb sagnat
`<<` | Línia sense sagnar
`>` | Línies amb sagnat
`<` | Línies sense sagnar
Ctrl+F | Avança pàgina
Ctrl+B | Retrocedeix pàgina
`ga` | Imprimeix el valor ASCII del caràcter
`.` | Repeteix l'últim canvi
`==` | commandAlignLine
`=` | commandAlignLines
`~` | Canvia la caixa del caràcter actual
Ctrl+S | Divideix horitzontalment la vista actual
Ctrl+V | Divideix verticalment la vista actual
Ctrl+W, `w` | Canvia a la següent divisió a la finestra
Ctrl+W, `h` Ctrl+W Fletxa esquerra | Va a la divisió esquerra de la finestra
Ctrl+W, `l` Ctrl+W Fletxa dreta | Va a la divisió dreta de la finestra
Ctrl+W, `k` Ctrl+W Fletxa amunt | Va a la divisió de sobre a la finestra
Ctrl+W, `j` Ctrl+W Fletxa avall | Va a la divisió de sota a la finestra

### Moviments suportats

Aquests es poden utilitzar per a moure-us per un document en el mode normal o visual, o en combinació amb una de les ordres anteriors. Poden anar precedits d'un compte, el qual indicarà quants moviments són apropiats de fer.

`h` | Esquerra
Fletxa esquerra | Esquerra
Retrocés | Esquerra
`j` | Avall
Fletxa avall | Avall
`k` | Amunt
Fletxa amunt | Amunt
`l` | Dreta
Fletxa dreta | Dreta
Espai | Dreta
`$` | Final de línia
Fi | Final de línia
`0` | El primer caràcter de la línia (Columna 0)
Inici | El primer caràcter de la línia
`^` | Primer caràcter no en blanc de la línia
`f` | Segueix el caràcter per a anar a la dreta del cursor
`F` | Segueix el caràcter per a anar a l'esquerra del cursor
`t` | Segueix el caràcter per a anar a la dreta del cursor, situa el cursor sobre el caràcter abans que
`T` | Segueix el caràcter per a anar a l'esquerra del cursor, situa el cursor sobre el caràcter abans que
`gg` | Primera línia
`G` | Última línia
`w` | Paraula següent
`W` | Paraula següent separada per un espai en blanc
`b` | La paraula anterior
`B` | La paraula anterior separada per un espai en blanc
`e` | Final de la paraula
`E` | Final de la paraula separada per un espai en blanc
`ge` | Final de la paraula anterior
`gE` | Final de la paraula anterior separada per un espai en blanc
`|` | Segueix un número de columna per a anar a la columna
`%` | Segueix un element per a anar a aquest element
``` | Marca
`‘` | Primer caràcter d'espai no en blanc de la línia la marca està en
`[[` | Claudàtor d'obertura anterior
`]]` | Claudàtor d'obertura següent
`[]` | Claudàtor de tancament anterior
`][` | Claudàtor de tancament següent
Ctrl+I | Va cap a la ubicació següent
Ctrl+O | Va cap a la ubicació anterior
`H` | Va a la primera línia de la pantalla
`M` | Va a la línia del mig de la pantalla
`L` | Va a l'última línia de la pantalla
`%`percentatge`` | Va al percentatge especificat del document
`gk` | Va cap a dalt una línia visual (quan s'usa l'ajust de línia dinàmic).
`gj` | Va cap avall una línia visual (quan s'usa l'ajust de línia dinàmic).
Ctrl+Fletxa esquerra | Mou una paraula a l'esquerra
Ctrl+Fletxa dreta | Mou una paraula a la dreta

### Objectes de text suportats

Aquests es poden utilitzar per a seleccionar certes parts d'un document.

`iw` | Paraula interior: Paraula incloent-hi l'espai en blanc
`aw` | Una paraula: Paraula excloent l'espai en blanc
`i"` | Cometes dobles (`"`) anteriors per a les properes cometes dobles, incloses les marques de cometes
`a”` | Cometes dobles (`"`) anteriors per a les properes cometes dobles, excloses les marques de cometes
`i'` | Cometes simples (`'`) anteriors per a les properes cometes simples, incloses les marques de cometes
`a'` | Cometes simples (`'`) anteriors per a les properes cometes simples, excloses les marques de cometes
`i(` | Parèntesi d'obertura anterior [`(`] al següent parèntesi de tancament [`)`], incloent-hi els parèntesis
`a(` | Parèntesi d'obertura anterior [`(`] al següent parèntesi de tancament [`)`], excloent els parèntesis
`i[` | Claudàtor d'obertura anterior (`[`) al següent claudàtor de tancament (`]`), incloent-hi els claudàtors
`a[` | Claudàtor d'obertura anterior (`[`) al claudàtor de tancament següent (`]`), excloent els claudàtors
`i{` | Clau d'obertura anterior (`{`) a la clau de tancament següent (`}`), incloent-hi les claus
`a{` | Clau d'obertura anterior (`{`) a la clau de tancament següent (`}`), excloent les claus
`i<` | Clau angular d'obertura anterior (`<`) a la clau angular de tancament següent (`>`), incloent-hi les claus
`a<` | Clau angular d'obertura anterior (`<`) a la clau angular de tancament següent (`>`), excloent les claus
`i`` | Accent greu anterior (```) a l'accent greu següent, inclosos els accents greus
`a`` | Accent greu anterior (```) a l'accent greu següent, excloent els accents greus

### Ordres permeses del mode d'inserció

Ctrl+D | Sense sagnar
Ctrl+T | Sagnat
Ctrl+E | Insereix des de sota
Ctrl+Y | Suprimeix una paraula
Ctrl+W | Suprimeix una paraula
Ctrl+U | Suprimeix la línia
Ctrl+J | Línia nova
Ctrl+H | Suprimeix els caràcters enrere
Ctrl+Inici | Mou al primer caràcter en el document
Ctrl+R `n` | Insereix el contingut del registre `n`
Ctrl+O, `ordre` | Entra en el mode normal per a una única ordre
Ctrl+A | Actualment incrementa el nombre seleccionat
Ctrl+X | Actualment disminueix el nombre seleccionat

### L'objecte de text per comes

Aquest objecte no es troba en Vim. L'objecte de text coma fa que sigui fàcil modificar les llistes de paràmetres en llenguatges com C i d'altres llistes separades per comes. Bàsicament es tracta de la zona entre dues comes o entre una coma i un claudàtor. En la línia que es mostra a la il·lustració, es ressalten els tres rangs que aquest objecte de text pot abastar.

Els intervals de l'objecte de text per comes. Si el cursor està sobre p. ex., `arg2`, prement `ci`, («canvi de coma interior») que suprimeix `arg2 doble` i situa el cursor entre les dues comes en el mode d'inserció. Una manera molt còmoda per a canviar els paràmetres d'una funció.

### Característiques que falten

Com ja s'ha esmentat anteriorment, l'objectiu del mode VI del KatePart no és donar suport al 100% de les característiques del Vim.

Apèndix A. Expressions regulars
Expressions regulars

# Apèndix A. Expressions regulars

Lund, Anders `<anders@alweb.dk>`

Traductor: Antoni Bella

    Aquest apèndix conté una breu però probablement suficient i
    completa introducció al món de les expressions
    regulars. Les documenta tal com apareixen en
    el KatePart, donat que no són compatibles amb les expressions
    regulars de Perl, ni de grep, per exemple.

## Introducció

Les expressions regulars us proporcionen un mètode per a descriure el possible contingut d'una cadena de text de manera que pugui ser interpretada per una petita peça de programari, i d'aquesta manera es pugui esbrinar si un text es correspon amb el cercat i, en el cas d'aplicacions avançades, es posin els mitjans per a recuperar parts del text coincident.

Per exemple: Posem que voleu cercar un text que és el començament d'un paràgraf que inclou els noms «Enric» o «Pere», seguits d'alguna forma del verb «dir».

En una cerca normal, s'hauria de començar a cercar el primer nom, «Enric» potser seguit de «di», de la manera següent: `Enric di`, i mentre cerca coincidències, haureu de descartar aquelles que no estiguin al començament d'un paràgraf, així com aquelles en les que la paraula que comenci per «di» que no pertanyi al verb «dir». I després tornar a repetir tot el procés amb el següent nom...

Amb les expressions regulars, aquesta tasca s'hauria de realitzar d'una sola cerca, i amb un alt grau de precisió.

Per a aconseguir-ho, les expressions regulars estableixen regles per a expressar amb detall una generalització de la cadena a cercar. El nostre exemple, el podríem expressar literalment com: "Una línia que comença per «Enric» o per «Pere» (possiblement després de fins a 4 espais en blanc o tabulacions) seguit d'un espai en blanc seguit de «di» i després «u» o «gué»", es podria expressar amb l'expressió regular següent:

`^[ \t]{0,4}(Enric|Pere) di(u|gué)`

L'exemple anterior mostra els quatre conceptes principals de les expressions regulars modernes, a veure:

- Patrons

- Declaracions

- Quantificadors

- Referències enrere

L'accent circumflex (`^`) que es troba al començament de l'expressió és una declaració, que tan sols és certa si la resta de la cadena de cerca es troba al començament d'una línia.

Les cadenes `[ \t]` i `(Enric|Pere) di(u|gué)` són patrons. El primer és una classe de caràcters que coincideix amb un espai en blanc o amb una tabulació (horitzontal); l'altre patró conté un primer subpatró que coincideix amb `Enric` o amb `Pere`, després una part de coincidència exacta `di` i, finalment, un altre subpatró que coincideix amb `u` o amb `gué`

La cadena `{0,4}` és un quantificador que diu «en qualsevol lloc des de 0 fins a 4 caràcters anteriors».

Com el programari d'expressions regulars suporta el concepte de referències enrere desa tota la part coincident de la cadena així com els subpatrons tancats entre parèntesis, proporcionant mitjans per a accedir a aquestes referències, podem posar les nostres mans tant en la cadena coincident completa (quan se cerca al text d'un editor mitjançant una expressió regular, que normalment apareix marcada com a seleccionada) com en el nom trobat, o en l'última part del verb.

Unint-ho tot, l'expressió coincidirà a on nosaltres vulguem, i tan sols allí.

Les següents seccions descriuen amb detall com construir i usar patrons, classes de caràcters, declaracions, quantificadors i referències enrere, i l'última secció presentarà una sèrie d'útils exemples.

Patrons
Patrons

## Patrons

Els patrons consten de cadenes literals i classes de caràcter. Els patrons poden contenir subpatrons, els quals són patrons tancats entre parèntesis.

### Caràcters d'escapada

En els patrons, així com en les classes de caràcter, alguns caràcters tenen un significat especial. Per a aconseguir una coincidència literal amb algun d'aquests caràcters, és necessari marcar-los com a escapats per a permetre a l'intèrpret d'expressions regulars comprendre que aquests caràcters han de ser inclosos en el seu significat literal.

Això es fa precedint el caràcter d'una barra inversa (`\`).

El programari d'expressions regulars ignorarà l'escapat de qualsevol caràcter que no tingui cap significat especial en el context, així que escapar, per exemple, «j» (`\j`) no té per què causar problemes. Si teniu cap dubte sobre quan un caràcter pot tenir un significat especial, escapeu-lo amb seguretat.

L'escapat inclou el mateix caràcter de la barra inversa. Per a poder presentar-la de forma literal, heu d'escriure `\\`.

### Classes de caràcter i abreujaments

Una classe de caràcter és una expressió que coincideix amb un conjunt de caràcters definit. En les expressions regulars, les classes de caràcter s'estableixen col·locant els caràcters vàlids de la classe entre claudàtors `[]`, o usant una de les classes abreujades que es descriuen a continuació.

Les classes de caràcters simples tan sols contenen un o més caràcters literals, per exemple `[abc]` (que coincidirà amb les lletres «a», «b» o «c») o `[0123456789]` (que coincidirà amb qualsevol dígit).

Com les lletres i els dígits tenen un ordre lògic, ho podeu abreujar usant intervals: `[a-c]` és igual que `[abc]` i `[0-9]` és igual que `[0123456789]`. Combinant aquestes construccions, per exemple `[a-fynot1-38]` resulta completament vàlid (aquesta última hauria de coincidir amb qualsevol dels caràcters o dígits «a», «b», «c», «d», «e», «f», «y», «n», «o», «t», «1», «2», «3» o «8»).

Com les lletres majúscules són caràcters diferents que els seus equivalents en minúscula, per a crear una classe de caràcter independent de la caixa de les lletres que coincideixi amb «a» o «b», haureu d'escriure `[aAbB]`.

De manera que és possible crear una classe «negativa» perquè es faci coincidir «tot menys». Per a fer-ho incloeu un accent circumflex (`^`) al començament de la classe:

`[^abc]` coincidirà amb qualsevol caràcter excepte amb «a», «b» o «c».

A més dels caràcters literals, hi ha alguns abreujaments definits, per a facilitar una mica les coses:

`\a`

  Aquest coincideix amb el caràcter ASCII del timbre (BEL, 0x07).

`\f`

  Aquest coincideix amb el caràcter ASCII del salt de pàgina (FF, 0x0C).

`\n`

  Aquest coincideix amb el caràcter ASCII del salt de línia (LF, 0x0A, línia nova a Unix).

`\r`

  Aquest coincideix amb el caràcter ASCII de retorn de carro (CR, 0x0D).

`\t`

  Aquest coincideix amb el caràcter ASCII del tabulador horitzontal (HT, 0x09).

`\v`

  Aquest coincideix amb el caràcter ASCII del tabulador vertical (VT, 0x0B).

`\xhhhh`

  Aquest coincideix amb el caràcter Unicode corresponent al número hexadecimal hhhh (entre 0x0000 i 0xFFFF). \0ooo (és a dir, \zero ooo) coincideix amb el caràcter ASCII/Latin-1 corresponent al número octal ooo (entre 0 i 0377).

`.` (punt)

  Aquest coincideix amb qualsevol caràcter (inclòs el de nova línia).

`\d`

  Aquest coincideix amb un dígit. És igual que `[0-9]`

`\D`

  Aquest coincideix amb un no dígit. És igual que `[^0-9]` o `[^\d]`

`\s`

  Aquest coincideix amb un caràcter d'espai en blanc. Pràcticament igual que `[\t\n\r]`

`\S`

  Aquest coincideix amb un no espai en blanc. Pràcticament igual que `[^\t\r\n]`, i igual que `[^\s]`

`\w`

  Coincideix amb qualsevol «caràcter d'una paraula», en aquest cas qualsevol lletra, dígit o guió baix. És igual que `[a-zA-Z0-9_]`.

`\W`

  Coincideix amb qualsevol caràcter que no sigui una paraula, qualsevol cosa menys lletres, números o guió baix. És igual que `[^a-zA-Z0-9_]` o `[^\w]`.

També està admesa la notació POSIX de les classes, `[:<nom classe>:]`. Per exemple, `[:dígit:]` és equivalent a `\d`, i `[:espai:]` a `\s`. Vegeu la llista completa de les classes de caràcters POSIX aquí.

Les classes abreujades es poden posar a dins d'una classe pròpia, per exemple, per a fer coincidir un caràcter d'una paraula, un espai en blanc o un punt, podeu escriure `[\w \.]`

#### Caràcters amb significat especial dintre de les classes de caràcters

Els següents caràcters tenen un significat especial dintre de la construcció de classes dels caràcters «[]», i és necessari escapar-los perquè siguin inclosos literalment en una classe:

`]`

  Finalitza la classe de caràcters. Haurà d'estar escapat excepte si és el primer caràcter de la classe (pot seguir a un accent circumflex sense escapar).

`^` (accent circumflex)

  Indica que es tracta d'una classe negativa, si és el primer caràcter. Haurà d'estar escapat per a cercar una coincidència literal en el cas que sigui el primer caràcter en la classe.

`-` (guió)

  Indica un interval lògic. Haurà d'estar escapat en una classe de caràcter.

`\` (barra inversa)

  El caràcter d'escapada. Haurà d'estar sempre escapat.

### Alternatives: Coincidències amb «un de»

Si desitgeu que la coincidència sigui una d'una sèrie de patrons alternatius, els podeu separar amb `|` (caràcter de barra vertical).

Per exemple, per a trobar «Jordi» o «Albert», hauríeu d'utilitzar una expressió `Jordi|Albert`.

### Subpatrons

Els subpatrons són patrons tancats entre parèntesis, i tenen diversos usos en el món de les expressions regulars.

#### Especificació d'alternatives

Podeu usar un subpatró per a agrupar un conjunt d'alternatives dins d'un patró més gran. Les alternatives se separen amb el caràcter «|» (barra vertical).

Per exemple, per a cercar la coincidència de les paraules «int», «float» o «double», es podria usar el patró `int|float|double`. Si tan sols desitgeu trobar-ne una seguida d'algun tipus d'espai en blanc i després algunes lletres, poseu les alternatives dins d'un subpatró: `(int|float|double)\s+\w+`.

#### Captura del text coincident (referències enrere)

Si voleu utilitzar una referència enrere, utilitzeu un subpatró `(PATRÓ)` perquè es recordi la part desitjada del patró. Per a evitar que es recordi el subpatró, utilitzeu un grup sense captura `(?:PATTERN)`.

Per exemple, si desitgeu trobar dues ocurrències de la mateixa paraula separades per una coma i possiblement algun espai en blanc, podeu escriure `(\w+),\s*\1`. El subpatró `\w+` localitzarà un conjunt de caràcters d'una paraula, i tota l'expressió coincidirà si aquest conjunt va seguit d'una coma, 0 o més espais en blanc i després un conjunt de caràcters d'una paraula igual que el primer. (La cadena `\1` fa referència al primer subpatró delimitat per parèntesis).

### Nota

Per a evitar ambigüitats amb l'ús de `\1` amb alguns dígits al darrere (p. ex., `\12` pot ser el subpatró 12 o simplement el primer subpatró amb `2`) utilitzarem `\{12}` com a sintaxi per als subpatrons amb múltiples dígits.

Exemples:

- `\{12}1` és «utilitza el subpatró 12»

- `\123` és «utilitza la captura 1 després 23 com a text normal»

#### Declaracions d'anticipació

Una declaració d'anticipació és un subpatró, el qual comença per `?=` o per `?!`.

Per exemple, si voleu cercar la cadena literal «Bill», però tan sols si no va seguida de « Gates», podeu usar l'expressió: `Bill(?! Gates)`. (Això coincidirà amb «Bill Clinton» i amb «Billy el nen», però ignoraria en silenci les altres coincidències).

Els subpatrons usats en les declaracions no es capturen.

Vegeu també, Declaracions.

#### Declaracions de cerca cap enrere

Una declaració de cerca cap enrere és un subpatró, el qual comença per `?<=` o per `?<!`.

La cerca cap enrere té el mateix efecte que l'anticipada, però funciona a l'inrevés. Per exemple, per a fer coincidir la cadena literal «fruit», però només si no està precedida per «grape», podreu utilitzar aquesta expressió: `(?<!grape)fruit`.

Els subpatrons usats en les declaracions no es capturen.

Vegeu també, Declaracions.

### Caràcters amb un significat especial dins dels patrons

Els següents caràcters tenen significat dins dels patrons, i és necessari escapar-los per a una coincidència literal:

`\` (barra inversa)

  El caràcter d'escapada.

`^` (accent circumflex)

  Declara el començament de la cadena.

`$`

  Declara el final de la cadena.

`()` (parèntesis dret i esquerre)

  Denota subpatrons.

`{}` (claus dreta i esquerra)

  Denota quantificadors numèrics.

`[]` (claudàtors dret i esquerre)

  Denota classes de caràcter.

`|` (barra vertical)

  O lògic. Separa alternatives.

`+` (signe més)

  Quantificador, 1 o més.

`*` (asterisc)

  Quantificador, 0 o més.

`?` (signe d'interrogació)

  Un caràcter opcional. Es pot interpretar com quantificador, 0 o 1.

Quantificadors
Quantificadors

## Quantificadors

Els quantificadors permeten que una expressió regular coincideixi amb un número o un interval de números de qualsevol caràcter, una classe de caràcter o un subpatró.

Els quantificadors es col·loquen entre claus (`{` i `}`). Teniu la forma general `{[ocurrències-mínimes][,[ocurrències-màximes]]}`

L'ús s'explica millor en aquest exemple:

`{1}`

  Exactament 1 ocurrència

`{0,1}`

  Zero o 1 ocurrència

`{,1}`

  El mateix, però amb menys treball ;)

`{5,10}`

  Com a mínim 5 i com a màxim 10 ocurrències.

`{5,}`

  Com a mínim 5 ocurrències, sense màxim.

A més, hi ha alguns abreujaments:

`*` (asterisc)

  Similar a `{0,}`, troba qualsevol nombre d'ocurrències.

`+` (signe més)

  Similar a `{1,}`, almenys 1 ocurrència.

`?` (signe d'interrogació)

  Similar a `{0,1}`, zero o 1 ocurrència.

### Voracitat

Quan s'usen quantificadors sense màxim, les expressions regulars intenten coincidir amb la major part possible de la cadena cercada, coneixent-se aquest comportament com a voraç.

El programari modern d'expressions regulars proporciona els mitjans per a «desactivar la voracitat», tot i que en els entorns gràfics dependrà de la interfície en tenir accés a aquesta característica. Per exemple, un diàleg de cerca que permeti expressions regulars, podria tenir una casella de selecció anomenada «Coincidència mínima», a més, hi podria haver una indicació que la voracitat és el comportament predeterminat.

### Exemples en context

Aquests són alguns exemples que utilitzen quantificadors:

`^\d{4,5}\s`

  Coincideix amb els dígits en «1234 ja» i «12345 ara», però no amb els de «567 onze» ni els de «223459 enlloc».

`\s+`

  Coincideix amb un o més espais en blanc.

`(bla){1,}`

  Coincideix amb «blablabla» i amb el «bla» de «blanc» o «tabla».

`/?>`

  Coincideix amb «/>» en «<elementtancat/>» així com amb «>» en «<elementobert>».

Declaracions
Declaracions

## Declaracions

Les declaracions permeten que una expressió regular tan sols coincideixi sota una sèrie de condicions controlades.

Una declaració no necessita la coincidència d'un caràcter, sinó que investiga els voltants cercant una possible coincidència abans de donar-la per vàlida. Per exemple, la declaració límit de paraula no intenta trobar un caràcter que no sigui d'una paraula en oposició a un que sí que estigui en la seva posició, en comptes d'això mira d'assegurar que no és un caràcter d'una paraula. Això vol dir que la declaració pot ser vàlida en el cas que no hi hagi cap caràcter, és a dir, al final de la cadena cercada.

Algunes declaracions actuals no tenen un patró amb què coincidir, però la part coincident de la cadena no serà part del resultat de la coincidència de l'expressió completa.

Les expressions regulars aquí documentades suporten les següents declaracions:

`^` (accent circumflex: el començament d'una cadena)

  Coincideix amb el començament de la cadena cercada.

  L'expressió `^Pere` coincidirà amb «Pere» en la cadena «Pere, hola!» però no en «Hola Pere!»

`$` (final de la cadena)

  Coincideix amb el final de la cadena cercada.

  L'expressió `tu\?$` coincidirà amb el final de la cadena «No l'has fet tu?», però amb cap part de «Tu no l'has fet?»

`\b` (límit de paraula)

  Coincideix si hi ha un caràcter de paraula a un costat i no un caràcter de paraula a l'altre.

  Això és molt útil per a trobar el final de les paraules, o ambdós extrems per a delimitar tota la paraula. L'expressió `\bin\b` coincidirà amb el «in» separat en la cadena «He came in through the window», però no amb el «in» de «window».

`\B` (no límit de paraula)

  Coincideix amb tot el que «\b» no coincideix.

  Això vol dir que coincidirà, per exemple, dins de les paraules: L'expressió `\Bin\B` coincidirà en «window» però no en «integer» o en «I'm in love».

`(?=PATRÓ)` (anticipació positiva)

  Una declaració d'anticipació cerca la part de la cadena seguida d'una possible coincidència. L'anticipació positiva prevé la coincidència de la cadena si el text que segueix no correspon al PATRÓ de la declaració, i el text que coincideix amb aquest no serà inclòs en el resultat.

  L'expressió `handy(?=\w)` coincidirà amb «handy» en «handyman» però no en «That came in handy!»

`(?!PATRÓ)` (anticipació negativa)

  L'anticipació negativa prevé una possible coincidència si la següent part de la cadena coincideix amb el PATRÓ.

  L'expressió `const \w+\b(?!\s*&)` coincidirà amb «const char» en la cadena «const char* foo», mentre que no coincidirà amb «const QString» en «const QString& bar», atès que el «&» coincideix amb el patró de la declaració d'anticipació negativa.

`(?<=PATRÓ)` (cerca cap enrere positiva)

  La cerca cap enrere té el mateix efecte que l'anticipació, però funciona a l'inrevés. Una cerca cap enrere cerca a la part de la cadena anterior a una possible coincidència. La cerca cap enrere positiva només coincidirà amb una cadena si està precedida pel PATRÓ de la declaració, i el text que coincideix amb aquest no serà inclòs en el resultat.

  L'expressió `(?<=cup)cake` coincidirà amb «cake» si està precedit per «cup» (sí a «cupcake» però no a «cheesecake» o «cake»).

`(?<!PATRÓ)` (cerca cap enrere negativa)

  La cerca cap enrere negativa prevé una possible coincidència si la part anterior de la cadena coincideix amb el PATRÓ.

  L'expressió `(?<![\w\.])[0-9]+` coincidirà amb «123» a les cadenes «=123» i «-123» però no coincidirà amb les cadenes «.123» o «word123».

`(PATRÓ)` (amb captura del grup)

  El subpatró dins dels parèntesis serà capturat i recordat, de manera que pugui usar-se en les referències enrere. Per exemple, l'expressió `(&quot;+)[^&quot;]*\1` coincidirà amb `""""text""""` i `"text"`.

  Per a obtenir més informació vegeu Captura del text coincident (referències enrere).

`(?:PATRÓ)` (sense captura del grup)

  El subpatró entre parèntesis no es capturarà ni recordarà. És preferible utilitzar sempre grups sense captura si no s'utilitzaran les captures.