De editor-component van KatePart is eenvoudig uit te breiden met scripts. De scripttaal is ECMAScript (breed bekend als JavaScript). KatePart ondersteunt twee soorten scripts: inspringen en commandoregelscripts. Een functionaliteit gelijk aan opdrachtregelscripts wordt ook geleverd in de snippets plug-in.
Inspringscripts - ook genoemd indenteerders - laten de broncode inspringen bij het typen van tekst. Na het indrukken van de toets Enter zal het inspringniveau vaak toenemen.
De volgende secties beschrijven stap voor stap hoe het skelet voor een eenvoudige indenteerder te maken. Als eerste stap, maak een nieuw bestand *.js aan, bijv. met de naam javascript.js in de lokale thuismap $. Waarin de omgevingsvariabele XDG_DATA_HOME/katepart5/script/indentationXDG_DATA_HOME typisch expandeert tot ofwel ~/.local of ~/.local/share.
Op Windows® zijn deze bestanden gelokaliseerd in %USERPROFILE%\AppData\Local\katepart5\script\indentation. %USERPROFILE% wordt gewoonlijk C:\\Users\\.gebruiker
De kop van het bestand javascript.js is ingebed als JSON aan het begin van het document als volgt:
var kate-script = {
* "name": JavaScript
* "author": Voorbeeldnaam <voorbeeld.naam@een.adres.org>,
* "license": "BSD License"
* "revision": 1,
* "kate-version": "5.1",
* "required-syntax-style": javascript,
* "indent-languages": ["javascript"],
* "priority": 0,
*}; // kate-script-header, moet aan het begin van het bestand staan zonder commentaar
Elk item wordt nu in detail uitgelegd:
name[vereist]: Dit is de naam van de indenteerder die in het menu → verschijnt en in de configuratiedialoog.author[optioneel]: De naam van de auteur en contactinformatie.license[optioneel]: Korte vorm van de licentie, zoals BSD License of LGPLv3.revision[vereist]: De revisie van het script. Dit getal moet verhoogd worden wanneer het script wordt gewijzigd.kate-version[required]: Minimaal vereiste versie van KatePart.required-syntax-style[optioneel]: De vereiste stijl voor de syntaxis, die overeenkomt met de gespecificeerdestylein bestanden voor accentuering van syntaxis. Dit is belangrijk voor indenteerders die vertrouwen op specifieke informatie voor accentuering in het document. Als een vereiste syntaxisstijl is gespecificeerd, zal de indenteerder alleen beschikbaar zijn wanneer het juiste programma voor accentuering actief is. Dit voorkomt “ongedefinieerd gedrag” veroorzaakt door de indenteerder te gebruiken zonder het verwachte schema voor accentuering. De Ruby indenteerder, bijvoorbeeld, maakt hier gebruik van in de bestandenruby.jsenruby.xml.indent-languages[optioneel]: JSON array van syntaxis stijlen die de indenteerder correct kan laten inspringen, bijv.:["c++", "java"].priority[optioneel]: Als verschillende indenteerders geschikt zij voor een bepaald bestand om te accentueren, dan bepaalt de prioriteit welke indenteerder als standaard wordt gekozen.
Nadat de header is gespecificeerd, legt deze sectie uit hoe het script voor inspringen zelf werkt. Het basis sjabloon van de inhoud ziet er uit als volgt:
// vereiste js-bibliotheken van katepart, bijv. range.js als u Range gebruikt
require ("range.js");
triggerCharacters = "{}/:;";
function indent(line, indentWidth, ch)
{
// aangeroepen voor elk teken nieuwe-regel (ch == '\n') en alle tekens gespecificeerd in
// de globale variabele triggerCharacters. Bij het aanroepen van →
// is de variabele ch leeg, i.e. ch == ''.
//
// zie ook: Scripting API
return -2;
}
De functie indent() heeft drie parameters:
line: de regel die moet inspringenindentWidth: de inspringbreedte in aantal spatiesch: of een teken nieuwe-regel (ch == '\n'), het activeringsteken gespecificeerd intriggerCharactersof leeg als de gebruiker de actie → heeft gestart.
De terugkeerwaarde van de functie indent() specificeert hoe de regel zal worden ingesprongen. Als de terugkeerwaarde een eenvoudig geheel getal is, wordt deze geïnterpreteerd als volgt:
terugkeerwaarde
-2: niets doenterugkeerwaarde
-1: behoudt het inspringen (zoekt naar voorgaande niet-blanko regel)terugkeerwaarde
0: getallen >= 0 specificeer de insringdiepte in spaties
Alternatief, een reeks van twee elementen kan worden teruggegeven:
geef [ indent, align ] terug;
In dit geval is het eerste element de inspringdiepte zoals hierboven met dezelfde betekenis van de speciale waarden. Het tweede element is een absolute waarde die een kolom aangeeft voor “uitlijning”. Als deze waarde groter is dan de inspringwaarde, dan is het verschil een aantal spaties dat na het inspringen van de eerste parameter moet worden toegevoegd. Anders wordt het tweede getal genegeerd. Tabs en spaties voor inspringen gebruiken wordt vaak “gemengde modus” genoemd.
beschouw het volgende voorbeeld: Neem aan dat tabs worden gebruikt voor inspringen en tabbreedte is ingesteld op 4. <tab> vertegenwoordigt hier een tab-teken en '.' een spatie:
1: <tab><tab>foobar("hello",
2: <tab><tab>......."world");
Bij inspringen van regel 2 zal de functie indent() [8, 15] als terugkeerwaarde geven. Als resultaat worden hier twee tabs ingevoegd om in te springen tot kolom 8 en worden 7 spaties toegevoegd om de tweede parameter uit te lijnen onder de eerste, zodat het uitgelijnd blijft als het bestand wordt bekeken met een andere tabbreedte.
Een standaard KDE installatie levert bij KatePart verschillende indenteerders. De overeenkomstige JavaScript broncode kan worden gevonden in $.XDG_DATA_DIRS/katepart5/script/indentation
Op Windows® zijn deze bestanden gelokaliseerd in %USERPROFILE%\AppData\Local\katepart5\script\indentation. %USERPROFILE% wordt gewoonlijk C:\\Users\\. gebruiker
Ontwikkeling van een indenteerder vereist herladen van de scripts om te zien of de wijzigingen zich netjes gedragen. In plaats van het opnieuw opstarten van de toepassing, schakel eenvoudig om naar de commandoregel en start het commando reload-scripts.
Als u bruikbare scripts ontwikkeld overweeg dan deze aan het KatePart-project bij te dragen door een mengverzoek naar our GitLab project.
Opmerking
Een functionaliteit gelijk aan opdrachtregelscripts wordt ook geleverd in de snippets plug-in. Deze plug-in kan een gemakkelijker startpunt leveren, speciaal voor kleine eigen scripts.
Omdat het moeilijk is om aan de noden van iedereen te voldoen, ondersteunt KatePart kleine hulpmiddelen voor snelle tekstmanipulatie via de ingebouwde commandoregel. Het commando sort is bijvoorbeeld geïmplementeerd als een script. Deze sectie legt uit hoe *.js bestanden aan te maken om KatePart uit te breiden met willekeurige hulpscripts.
Commandoregelscripts staan in dezelfde map als inspringscripts. Dus als eerste stap maakt u een nieuw *.js bestand aan genaamd myutils.js in de lokale map $. De omgevingsvariabele XDG_DATA_HOME/katepart5/script/commandsXDG_DATA_HOME daarin expandeert typisch tot ofwel ~/.local of ~/.local/share.
Op Windows® zijn deze bestanden gelokaliseerd in %USERPROFILE%\AppData\Local\katepart5\script\commands. %USERPROFILE% wordt gewoonlijk C:\\Users\\. user
De header van elke commandoregelscript is ingebed in JSON aan het begin van het script als volgt:
var katescript = {
"author": "Voorbeeldnaam <voorbeeld.naam@een.adres.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, moet zich bevinden aan het begin van het bestand zonder commentaar
Elk item wordt nu in detail uitgelegd:
author[optioneel]: De naam van de auteur en contactinformatie.license[optioneel]: Korte vorm van de licentie, zoals BSD licentie of LGPLv2.revision[vereist]: De revisie van het script. Dit getal moet verhoogd worden wanneer het script wordt gewijzigd.kate-version[required]: Minimaal vereiste versie van KatePart.functions[vereist]: JSON-array met commando's in het script.actions[optioneel]: JSON Array van JSON objecten die de acties definiëren die verschijnen in het menu van de toepassing. Gedetailleerde informatie wordt in de sectie Koppelen van sneltoetsen.
Omdat de waarde van functions een JSON array is, is een enkel script in staat een willekeurig aantal commandoregels te bevatten. Elke functie is beschikbaar via ingebouwde commandoregel van KatePart.
Alle in de kop gespecificeerde functies moeten worden geïmplementeerd in het script. Het script-bestand uit het bovenstaande voorbeeld moet de twee functies sort en moveLinesDown implementeren. Alle functies hebben de volgende syntaxis:
// vereiste js-bibliotheken van katepart, bijv. range.js als u Range gebruikt
require ("range.js");
function <naam>(arg1, arg2, ...)
{
// ... implementatie, zie ook: Scripting API
}
De argumenten in de commandoregel worden doorgegeven naar de functie als arg1, arg2, etc. Om documentatie voor elk commando te leveren, implementeert u eenvoudig de functie 'help' als volgt:
function help(cmd)
{
if (cmd == "sort") {
return i18n("Sort the selected text.");
} else if (cmd == "...") {
// ...
}
}
uitvoeren van help sort in de commandoregel roept deze help-functie op met het argument cmd ingesteld op het gegeven commando, bijv. cmd == "sort". KatePart laat dan de teruggeleverde tekst zien als documentatie voor de gebruiker. Zorg er voor dat de tekenreeksen vertaald zijn.
Ontwikkeling van een commandoregelscript vereist herladen van de scripts om te zien of de wijzigingen zich netjes gedragen. In plaats van het opnieuw opstarten van de toepassing, schakel eenvoudig om naar de commandoregel en start het commando reload-scripts.
Om de scripts toegankelijk te maken in het menu van de toepassing en sneltoetsen toe te kunnen, moet het script een juiste script-header leveren. In het bovenstaande voorbeeld, verschijnen beide functies sort en moveLinesDown in het menu vanwege het volgende deel in de script-header:
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"
}
]
};
De velden voor een actie zijn als volgt:
function[vereist]: De functie die zou moeten verschijnen in het menu → .name[vereist]: De tekst verschijnt het script-menu.icon[optioneel]: Het pictogram verschijnt naast de tekst in het menu. Alle pictogramnamen van KDE kunnen hier worden gebruikt.category[optioneel]: Als een categorie wordt gespecificeerd, verschijnt het script in een submenu.shortcut[optioneel]: De hier gegeven sneltoets is de standaard sneltoets. Voorbeeld:Ctrl+Alt+t. Zie de Qt™-documentatie voor verdere details.interactive[optioneel]: Als het script invoer van de gebruiker in de commandoregel nodig heeft, zet dit dan optrue.
Als u bruikbare scripts ontwikkeld overweeg dan deze aan het KatePart-project bij te dragen door een mengverzoek naar our GitLab project.
De API voor scripts hier aanwezig is beschikbaar voor alle scripts, bijv. scripts voor inspringen en opdrachtregels. De klassen Cursor en Range worden geleverd door biblitheekbestanden in $. Als u ze in uw script wilt gebruiken, wat nodig is om bepaalde XDG_DATA_DIRS/katepart5/librariesDocument of View-functies te gebruiken, voeg dan de benodigde bibliotheek in met:
// vereiste js-bibliotheken van katepart, bijv. range.js als u Range gebruikt
require ("range.js");
Om de standaard API voor scripting uit te breiden met uw eigen functies en prototypen, maak gewoon een nieuw bestand aan in de lokale configuratiemap van KDE $ en voeg deze in in uw script met: XDG_DATA_HOME/apps/katepart5/libraries
require ("mijnscriptnaamhier.js");
Op Windows® zijn deze bestanden gelokaliseerd in %USERPROFILE%\AppData\Local\katepart5\libraries. %USERPROFILE% wordt gewoonlijk C:\\Users\\.user
Om bestaande prototypes zoals Cursor of Reeks uit te breiden, os de aanbevolen manier om niet de globale *.js bestanden te wijzigen. In plaats daarvan wijzigt u het prototype Cursor in JavaScript nadat cursor.js is ingevoegd in uw script via require.
Omdat KatePart is een tekstbewerker is, is alles voor de API voor scripting, waar mogelijk, gebaseerd op cursors en reeksen. Een cursor is een eenvoudig een paar (regel, kolom) die een tekstpositie in het document weergeeft. Een reeks omspant tekst van een begincursorpositie tot een eincursorpositie. De API wordt in de volgende secties in detail uitgelegd.
Cursor();
Constructor. Levert een cursor terug op positie
(0, 0).Voorbeeld:
var cursor = new Cursor();Cursor(
int,regelint);kolomConstructor. Levert een cursor terug op positie (regel, kolom).
Voorbeeld:
var cursor = new Cursor(3, 42);Cursor(Cursor);andereConstructor kopiëren. Geeft een kopie van de cursor
andere.Voorbeeld:
var copy = nieuwe cursor(andere);Cursor Cursor.clone();
Geeft een kloon van de cursor terug.
Voorbeeld:
var clone = cursor.clone();Cursor.setPosition(
int,regelint);kolomStel de cursorpositie in op
regelenkolom.Sinds: KDE 4.11
bool Cursor.isValid();
Controleert of de cursor geldig is. De cursor is ongeldig indien lijn en/of kolom ingesteld zijn op
-1.Voorbeeld:
var valid = cursor.isValid();Cursor Cursor.invalid();
Geeft een nieuwe ongeldige cursor op locatie
(-1, -1).Voorbeeld:
var invalidCursor = cursor.invalid();int Cursor.compareTo(Cursor);andereVergelijkt deze cursor met de cursor
andere. Geeft terug-1, indien deze cursor zich bevindt voor de cursorandere,0, indien beide cursors gelijk zijn+1, als deze cursor gelokaliseerd is na de cursorandere.
bool Cursor.equals(Cursor);andereGeeft
trueterug, als deze cursor en de cursoranderegelijk zijn, andersfalse.String Cursor.toString();
Geeft de cursor terug als een tekenreeks met de vorm “
Cursor(regel, kolom)”.
Range();
Constructor. Aanroepen van
new Range()geeft een bereik op (0, 0) - (0, 0) terug.Range(
Cursor,beginCursor);eindConstructor. Aanroepen van
new Range(geeft de Reeks (begin,eind)begin,eind) terug.Range(
int,beginRegelint,beginKolomint,eindRegelint);eindKolomConstructor. Aanroepen van
new Range(geeft de Reeks van (beginRegel,beginKolom,eindeRegel,eindKolom)beginRegel,beginKolom) tot (eindeRegel,eindKolom).Range(Range);andereConstructor kopiëren. Geeft een kopie terug van Range
andere.Reeks Range.clone();
Geeft een kloon van de reeks terug.
Voorbeeld:
var clone = range.clone();bool Range.isEmpty();
Geeft
trueterug, als zowel begin als einde cursor gelijk zijn.Voorbeeld:
var empty = range.isEmpty();Sinds: KDE 4.11
bool Range.isValid();
Geeft
trueterug, als zowel begin als einde cursor geldig zijn, andersfalse.Voorbeeld:
var valid = range.isValid();Range Range.invalid();
Geeft de Reeks van (-1, -1) tot (-1, -1) terug.
bool Range.contains(Cursor);cursorGeeft
trueterug, als de reeks de cursorpositie bevat, andersfalse.bool Range.contains(Range);andereGeeft
trueterug, als deze reeks de Reeksanderebevat, andersfalse.bool Range.containsColumn(int);kolomGeeft
trueterug, alskolomzich in het half open interval[start.column, end.column)bevindt, andersfalse.bool Range.containsLine(int);regelGeeft
trueterug, alsregelzich in het half open interval[start.line, end.line)bevindt, andersfalse.bool Range.overlaps(Range);overigGeeft
trueterug, als deze reeks en de reeksoverigeen gebied delen, andersfalse.bool Range.overlapsLine(int);regelGeeft
trueterug, alsregelzich in het interval[start.line, end.line)bevindt, andersfalse.bool Range.overlapsColumn(int);kolomGeeft
trueterug, alskolomzich in het interval[start.column, end.column)bevindt, andersfalse.bool Range.onSingleLine();
Geeft
trueterug, als zowel begin als einde van de reeks op dezelfde regel, bijv. alsRange.start.line == Range.end.line.Sinds: KDE 4.9
bool Range.equals(Range);overigGeeft
trueterug, als deze reeks de Reeksanderegelijk zijn, andersfalse.String Range.toString();
Geeft de reeks terug als een tekenreeks van de vorm “
Range(Cursor(line, column), Cursor(line, column))”.
Deze sectie geeft een lijst met alle globale functies.
String read(String);bestandZal het gegeven
bestandzoeken relatief ten opzichte van de mapkatepart5/script/filesen en de inhoud teruggeven als een tekenreeks.
void require(String);bestandZal het gegeven
bestandzoeken relatief ten opzichte van de mapkatepart5/script/librariesen het evalueren.requireis intern beschermd tegen meervoudig invoegen van hetzelfdebestand.Sinds: KDE 4.10
void debug(String);tekstStuurt
tekstnaarstdoutin de console na het starten van de toepassing.
Om volledige lokalisatie te ondersteunen zijn er verschillende functies om tekenreeksen in scripts te vertalen, namelijk i18n, i18nc, i18np en i18ncp. Deze functies gedragen zich op precies dezelfde manier zoals in Vertalingsfuncties van KDE.
De vertalingfuncties vertalen de omwikkelde tekenreeksen via het vertalingssysteem van KDE naar de in de toepassing gebruikte taal. Tekenreeksen in scripts die worden ontwikkeld in de officiële broncode van KatePart worden automatisch geëxtraheerd en vertaalbaar gemaakt. Met andere woorden, als ontwikkelaar van KatePart hoeft u zich niet bezig te houden met extraheren en vertalen. Opgemerkt moet echter worden dat de vertaling alleen werkt binnen de infrastructuur van $kde;. Dat wil zeggen dat nieuwe tekenreeksen in scripts van derden ontwikkeld buiten KDE niet worden vertaald. Neem dus in overweging om uw scripts aan Kate bij te dragen zodat vertaling mogelijk wordt.
void i18n(
String,tekstarg1, ...);Vertaalt
textin de taal die wordt gebruikt door de toepassing. De argumentenarg1, ..., zijn optioneel en worden gebruikt om plaatshouders%1,%2, etc. te vervangen.void i18nc(
String,contextString,tekstarg1, ...);Vertaalt
textin de taal die wordt gebruikt door de toepassing. Bovendien is de tekenreekscontextzichtbaar voor de vertalers, zodat zij een betere vertaling kunnen produceren. De argumentenarg1, ..., zijn optioneel en worden gebruikt om plaatshouders%1,%2, etc. te vervangen.void i18np(
String,enkelvoudString,meervoudint,nummerarg1, ...);Vertaalt ofwel
enkelvoudofmeervoudin de taal die wordt gebruikt door de toepassing, afhankelijk van het gegevennummer. De argumentenarg1, ..., zijn optioneel en worden gebruikt om plaatshouders%1,%2, etc. te vervangen.void i18ncp(
String,contextString,eenvoudString,meervoudint,nummerarg1, ...);Vertaalt
enkelvoudofmeervoudin de taal die wordt gebruikt door de toepassing, afhankelijk van het gegeven nummer. Bovendien is de tekenreekscontextzichtbaar voor de vertalers, zodat zij een betere vertaling kunnen produceren. De argumentenarg1, ..., zijn optioneel en worden gebruikt om plaatshouders%1,%2, etc. te vervangen.
Wanneer een script wordt uitgevoerd, dan is er een globale variabele “view” die de huidige actieve editor-view representeert. Het volgende is een lijst met alle beschikbare weergavefuncties.
void view.copy()Kopieer de selectie als er een is, anders de huidige regel als de optie
[ ] Kopieer/knip de huidige regel als er geen selectie isis gezet.Sinds: KDE Frameworks™ 5.79
void view.cut()Knip de selectie als er een is, anders de huidige regel als de optie
[ ] Kopieer/knip de huidige regel als er geen selectie isis gezet.Sinds: KDE Frameworks™ 5.79
void view.paste()De inhoud van het klembord plakken.
Sinds: KDE Frameworks™ 5.79
Cursor view.cursorPosition()Geeft de huidige cursorpositie in het beeld terug.
void view.setCursorPosition(
int,lineint); void view.setCursorPosition(columnCursor);cursorStelt de huidige cursorpositie in op ofwel (regel, kolom) of op de gegeven cursor.
Cursor view.virtualCursorPosition();
Geeft de virtuele cursorpositie terug waarin elke tab telt voor de overeenkomstige hoeveelheid spaties afhankelijk van de huidige tabbreedte.
void view.setVirtualCursorPosition(
int,lineint); void view.setVirtualCursorPosition(columnCursor);cursorStelt de huidige virtuele cursorpositie in op (regel, kolom) of op de gegeven cursor.
String view.selectedText();
Geeft de geselecteerde tekst terug. Als er geen tekst is geselecteerd dan is de tekenreeks leeg.
bool view.hasSelection();
Geeft
trueterug, als het beeld geselecteerde tekst heeft, andersfalse.Range view.selection();
Geeft de geselecteerde tekstreeks terug. Als er geen tekst is geselecteerd dan is de tekenreeks ongeldig.
void view.setSelection(Range);reeksStelt de geselecteerde tekst in op de gegeven reeks.
void view.removeSelectedText();
Verwijder de geselecteerde tekst. Als het beeld geen geselecteerde tekst bevat, dan doet dit niets.
void view.selectAll();
Selecteert de gehele tekst in het document.
void view.clearSelection();
Wist de tekstselectie zonder de tekst te verwijderen.
void view.setBlockSelection(bool on);
Modus blokselectie aan- of uitzetten.
bool view.blockSelection();
Geeft
trueterug, als modus blokselectie aan is, andersfalse.void view.align(Range);reeksRegels opnieuw laten inspringen binnen
reeksvolgens de huidige instellingen voor inspringen.void view.alignOn(
Range,reeksString);patroon= ""Lijnt regels uit in de
reeksop de kolom gegeven door de reguliere expressiepatroon. Met een leegpatroonzal er standaard uitgelijnd worden op het eerste niet-blanke teken. Als het patroon een vangst heeft zal het inspringen op de gevangen overeenkomst.Voorbeelden:
view.alignOn(document.documentRange(), '-');zal spaties invoegen vóór de eerste-van elke regel om ze allemaal uit te lijnen op dezelfde kolom.view.alignOn(document.documentRange(), ':\\s+(.)');zal spaties invoegen vóór het eerste niet-blanke teken dat verschijnt na een dubbelepunt om ze allemaal op dezelfde kolom uit te lijnen.object view.executeCommand(
String,commandoString,argumentenRange);reeksVoert het opdrachtregelcommando
commandouit met de optionele argumentenargumentenen de optionelereeks. Het terugontvangenobjectheeft een eigenschap booleanobject.okdie aangeeft of uitvoeren van hetcommandomet succes was. In geval van een fout, bevat de tekenreeksobject.statuseen foutbericht.Sinds: KDE Frameworks™ 5.50
Range view.searchText(
Range,reeksString,patroonbool);achterwaarts= falseNaar het eerste voorkomen van
patroonzoeken inreeksen de overeenkomende reeks teruggeven. Zoeken wordt achterwaarts uitgevoerd als de optionele booleaanse parameterachterwaartsis ingesteld optrue.De teruggegeven reeks is ongeldig (zie Range.isValid()) als
patroonniet wordt gevonden inreeks.Sinds: KDE Frameworks™ 5.97
Wanneer een script uitgevoerd wordt is er een globale variabele “document” die het huidige actieve document representeert. Het volgende is een lijst met alle beschikbare documentfuncties.
String document.fileName();
Geeft de bestandsnaam van het document terug of een lege tekenreeks voor niet opgeslagen tekstbuffers.
String document.url();
Geeft de volledige URL van het document terug of een lege tekenreeks voor niet opgeslagen tekstbuffers.
String document.mimeType();
Geeft het MIME-type van het document terug of het MIME-type
application/octet-streamals er geen toepasselijk MIME-type gevonden kan worden.String document.encoding();
Geeft de nu gebruikte codering terug om het bestand op te slaan.
String document.highlightingMode();
Geeft de gebruikte globale accentueringmodus terug voor het gehele document.
String document.highlightingModeAt(Cursor);posGeeft de gebruikte accentueringmodus terug op de gegeven positie in het document.
Array document.embeddedHighlightingModes();
Geeft een reeks van accentueringmodi terug ingebed in dit document.
bool document.isModified();
Geeft
trueterug, als het document niet opgeslagen wijzigingen heeft(gemodificeerd), andersfalse.String document.text();
Geef de gehele inhoud van het document terug in een enkele tekenreeks. Nieuwe regels zijn gemarkeerd met het teken nieuw-regel “
\n”.String document.text(
int,vanafRegelint,vanafKolomint,totRegelint); String document.text(totKolomCursor,vanafCursor); String document.text(totRange);bereikGeeft de tekst terug in het gegeven bereik. Het is aanbevolen de cursor te gebruiken en een versie gebaseerd op bereik voor betere leesbaarheid van de broncode.
String document.line(int);regelGeeft de gegeven tekstregel terug als tekenreeks. De tekenreeks is leeg als de gevraagde regel buiten het bereik ligt.
String document.wordAt(
int,regelint); String document.wordAt(kolomCursor);cursorGeeft het woord terug op de gegeven cursorpositie.
-
Range document.wordRangeAt(
int,regelint); Range document.wordRangeAt(kolomCursor);cursor Geeft de reeks van het woord op de gegeven cursorpositie terug. De teruggeven reeks is ongeldig (zie Range.isValid()), als de tekstpositie zich na het eind van een regel bevindt. Als er geen woord is op de gegeven cursorpositie, zal een lege reeks worden teruggegeven.
Sinds: KDE 4.9
String document.charAt(
int,regelint); String document.charAt(kolomCursor);cursorGeeft het teken terug op de gegeven cursorpositie.
String document.firstChar(int);regelGeeft het eerste teken in de gegeven
regelterug die geen witruimte is. Het eerste teken is in kolom 0. Als de regel leeg of alleen witruimte bevat, dan is de teruggegeven tekenreeks leeg.String document.lastChar(int);regelGeeft het laatste teken in de gegeven
regelterug die geen witruimte is. Als de regel leeg of alleen witruimte bevat, dan is de teruggegeven tekenreeks leeg.bool document.isSpace(
int,regelint); bool document.isSpace(kolomCursor);cursorGeeft
trueterug, als het teken op de gegeven cursorpositie gelijk is aan een witruimte, andersfalse.bool document.matchesAt(
int,regelint,kolomString); bool document.matchesAt(tekstCursor,cursorString);tekstGeeft
trueterug, als de gegeventekstovereenkomt met de overeenkomstige cursorpositie, andersfalse.bool document.startsWith(
int,regelString,tekstbool);skipWhiteSpacesGeeft
trueterug als de regel begint mettekst, andersfalse. Het argumentskipWhiteSpacesbepaalt of voorloopwitruimte genegeerd worden.bool document.endsWith(
int,regelString,tekstbool);skipWhiteSpacesGeeft
trueterug als de regel eindigt mettekst, andersfalse. Het argumentskipWhiteSpacesbepaalt of witruimte achteraan genegeerd wordt.bool document.setText(String);tekstStelt de gehele documenttekst in.
bool document.clear();
Verwijdert de gehele tekst uit het document.
bool document.truncate(
int,regelint); bool document.truncate(kolomCursor);cursorKap de gegeven regel op de gegeven kolom of cursorpositie af. Geeft
trueterug bij succes offalseals de gegeven regel geen deel is van het documentbereik.bool document.insertText(
int,regelint,kolomString); bool document.insertText(tekstCursor,cursorString);tekstVoeg de
tekstop de cursorpositie in. Geefttrueterug bij succes offalse, als het document alleen-lezen is.bool document.removeText(
int,vanafRegelint,vanafKolomint,totRegelint); bool document.removeText(totKolomCursor,vanafCursor); bool document.removeText(totRange);bereikVerwijdert de tekst in het gegeven bereik. Geeft
trueterug bij succes offalse, als het document alleen-lezen is.bool document.insertLine(
int,regelString);tekstVoegt tekst in de gegeven regel in. Geeft
trueterug bij succes offalse, als het document alleen-lezen is of de regel niet in het documentbereik ligt.bool document.removeLine(int);regelVerwijdert de gegeven tekstregel. Geeft
trueterug bij succes offalse, als het document alleen-lezen is of de regel niet in het documentbereik ligt.bool document.wrapLine(
int,regelint); bool document.wrapLine(kolomCursor);cursorBreekt de regel op de gegeven cursorpositie op. Geeft
trueterug bij succes, andersfalse, bijv. als regel < 0.Sinds: KDE 4.9
void document.joinLines(
int,beginRegelint);eindRegelVoegt de regels vanaf
beginRegeltoteindRegelsamen. Twee elkaar opvolgende tekstregels worden altijd gescheiden door een enkele spatie.int document.lines();
Geeft het aantal regels in het document terug.
bool document.isLineModified(int);regelGeeft
trueterug, alsregelnu niet opgeslagen gegevens bevat.Sinds: KDE 5.0
bool document.isLineSaved(int);regelGeeft
trueterug, alsregelis gewijzigd, maar het document is opgeslagen. Dus bevat de regel nu geen niet opgeslagen gegevens.Sinds: KDE 5.0
bool document.isLineTouched(int);regelGeeft
trueterug, alsregelnu niet opgeslagen gegevens bevat of eerder is gewijzigd.Sinds: KDE 5.0
void document.findTouchedLine(
int,beginRegelbool);oplaagZoek naar de volgende aangeraakte regel beginnend bij
regel. Het zoeken wordt uitgevoerd ofwel omhoog of omlaag afhankelijk van de zoekrichting gespecificeerd inomlaag.Sinds: KDE 5.0
int document.length();
Geeft het aantal tekens in het document terug.
int document.lineLength(int);regelGeeft de lengte van de
regelterug.void document.editBegin();
Begint een bewerkingsgroep voor groepering van ongedaan maken/opnieuw doen. Controleer altijd of
editEnd()is aangeroepen als ueditBegin()aanroept. Aanroepen vaneditBegin()gebruikt intern een referentieteller, bijv. deze aanroep kan genest worden.void document.editEnd();
Beëindigt een bewerkingsgroep. De laatst aanroep van
editEnd()(bijv. diegene voor de eerste aanroep vaneditBegin()) beëindigt de bewerkingsstap.int document.firstColumn(int);regelGeeft de eerste niet-witruimte kolom in de gegeven
regelterug. Als er alleen witruimte in de regel bevindt, dan is de terugkeerwaarde-1.int document.lastColumn(int);regelGeeft de laatste niet-witruimte kolom in de gegeven
regelterug. Als er alleen witruimte in de regel bevindt, dan is de terugkeerwaarde-1.int document.prevNonSpaceColumn(
int,regelint); int document.prevNonSpaceColumn(kolomCursor);cursorGeeft de kolom terug met een niet-witruimte teken beginnend bij de gegeven cursorpositie en achterwaarts zoeken.
int document.nextNonSpaceColumn(
int,regelint); int document.nextNonSpaceColumn(kolomCursor);cursorGeeft de kolom terug met een niet-witruimte teken beginnend bij de gegeven cursorpositie en voorwaarts zoeken.
int document.prevNonEmptyLine(int);regelGeeft de volgende niet-lege regel terug met een niet-witruimte tekens en achterwaarts zoeken.
int document.nextNonEmptyLine(int);regelGeeft de volgende niet-lege regel terug met een niet-witruimte teken en voorwaarts zoeken.
bool document.isInWord(
String,tekenint);attribuutGeeft
trueterug, als het gegeventekenmet het gegevenattribuutdeel van een woord kan zijn, andersfalse.bool document.canBreakAt(
String,tekenint);attribuutGeeft
trueterug, als het gegeventekenmet het gegevenattribuutgeschikt is om een regel af te breken, andersfalse.bool document.canComment(
int,beginAttribuutint);eindAttribuutGeeft
trueterug, als een bereik beginnend en eindigend met de gegeven attributen geschikt is om als commentaar te worden aangemerkt, andersfalse.String document.commentMarker(int);attribuutGeeft de markeerder voor commentaar terug voor commentaar op een enkele regel voor een gegeven
attribuut.String document.commentStart(int);attribuutGeeft de markeerder voor commentaar terug voor begin van commentaar over meerdere regels voor een gegeven
attribuut.String document.commentEnd(int);attribuutGeeft de markeerder voor commentaar terug voor het einde van commentaar over meerdere regels voor een gegeven
attribuut.Range document.documentRange();
Geeft een reeks terug die het gehele document omvat.
Cursor documentEnd();
Geeft een cursor terug gepositioneerd in de laatste kolom van de laatste regel in het document.
bool isValidTextPosition(
int,regelint); bool isValidTextPosition(kolomCursor);cursorGeeft
trueterug, als de gegeven cursorpositie is gepositioneerd op een geldige tekstpositie. Een tekstpositie is alleen geldig als het is gelokaliseerd aan het begin, in het midden, of aan het eind van een geldige regel. Verder is een tekstpositie ongeldig als het is gelokaliseerd in een Unicode-surrogaat.Sinds: KDE 5.0
int document.attribute(
int,regelint); int document.attribute(kolomCursor);cursorGeeft het attribuut terug op de gegeven cursorpositie.
bool document.isAttribute(
int,regelint,kolomint); bool document.isAttribute(attribuutCursor,cursorint);attribuutGeeft
trueterug, als het attribuut op de gegeven cursorpositie gelijk is aanattribuut, andersfalse.String document.attributeName(
int,regelint); String document.attributeName(kolomCursor);cursorGeeft de attribuutnaam terug als leesbare tekst. Dit is gelijk aan de
itemData-naam in de syntaxis-accentuering-bestanden.bool document.isAttributeName(
int,regelint,kolomString); bool document.isAttributeName(naamCursor,cursorString);naamGeeft
trueterug, als de attribuutnaam op een bepaalde cursorpositie overeenkomt met de gegevennaam, andersfalse.String document.variable(String);sleutelGeeft de waarde terug van de gevraagde documentvariabele
sleutel. Als de documentvariabele niet bestaat, wordt een lege tekenreeks teruggegeven.void document.setVariable(
String,sleutelString);waardeStelt de waarde in van de gevraagde documentvariabele
sleutel.Zie ook: Documentvariabelen van Kate
Sinds: KDE 4.8
int document.firstVirtualColumn(int);regelGeeft de virtuele kolom terug van het eerste niet-witruimte-teken in de gegeven regel of
-1, als de regel leeg is of alleen witruimte-tekens bevat.int document.lastVirtualColumn(int);regelGeeft de virtuele kolom terug van het laatste niet-witruimte-teken in de gegeven regel of
-1, als de regel leeg is of alleen witruimte-tekens bevat.int document.toVirtualColumn(
int,regelint); int document.toVirtualColumn(kolomCursor); Cursor document.toVirtualCursor(cursorCursor);cursorConverteert de gegeven “echte” cursorpositie naar een virtuele cursorpositie, geeft ofwel een int terug of een cursor-object.
int document.fromVirtualColumn(
int,regelint); int document.fromVirtualColumn(virtueleKolomCursor); Cursor document.fromVirtualCursor(virtueleCursorCursor);virtueleCursorConverteert de gegeven virtuele cursorpositie naar een “echte” cursorpositie, geeft ofwel een int terug of een cursor-object.
Cursor document.anchor(
int,regelint,kolomChar); Cursor document.anchor(tekenCursor,cursorChar);tekenZoekt achterwaarts naar het gegeven teken te beginnen vanaf de gegeven cursor. Als voorbeeld, als '(' als teken wordt meegegeven, dan geeft deze functie de positie terug van de openingings '('. Dit houdt rekening met aantallen, bijv. andere '(...)' worden genegeerd.
Cursor document.rfind(
int,regelint,kolomString,tekstint); Cursor document.rfind(attribuut= -1Cursor,cursorString,tekstint);attribuut= -1Zoek de gegeven tekst achterwaarts met het juiste
attribuut. Het argumentattribuutwordt genegeerd als het is ingesteld op-1. De teruggegeven cursor is ongeldig, als de tekst niet is gevonden.int document.defStyleNum(
int,regelint); int document.defStyleNum(kolomCursor);cursorGeeft de standaard stijl terug op de gegeven cursorpositie.
bool document.isCode(
int,regelint); bool document.isCode(kolomCursor);cursorGeeft
trueterug, als het attribuut op de gegeven cursorpositie niet gelijk is aan alle volgende stijlen:dsComment,dsString,dsRegionMarker,dsChar,dsOthers.bool document.isComment(
int,regelint); bool document.isComment(kolomCursor);cursorGeeft
trueterug, als het attribuut van het teken op de cursorpositie gelijk is aandsComment, andersfalse.bool document.isString(
int,regelint); bool document.isString(kolomCursor);cursorGeeft
trueterug, als het attribuut van het teken op de cursorpositie gelijk is aandsString, andersfalse.bool document.isRegionMarker(
int,regelint); bool document.isRegionMarker(kolomCursor);cursorGeeft
trueterug, als het attribuut van het teken op de cursorpositie gelijk is aandsRegionMarker,andersfalse.bool document.isChar(
int,regelint); bool document.isChar(kolomCursor);cursorGeeft
trueterug, als het attribuut van het teken op de cursorpositie gelijk is aandsChar, andersfalse.bool document.isOthers(
int,regelint); bool document.isOthers(kolomCursor);cursorGeeft
trueterug, als het attribuut van het teken op de cursorpositie gelijk is aandsOthers, andersfalse.void document.indent(
Range,reeksint);aantalLaat alle regels in
reeksinspringen dooraantaltabs ofaantalkerentabSizespaties in te voegen afhankelijk van de voorkeur van de gebruiker. De parameteraantalkan negatief zijn.
Naast het document en weergave-API, is er een algemene bewerker-API die functies levert voor algemene functionaliteit voor bewerken met een script.
Tekenreeks editor.clipboardText();
Geeft de tekst terug die actief is in het globale klembord.
Sinds: KDE Frameworks™ 5.50
String editor.clipboardHistory();
De bewerker houdt een klembordgeschiedenis vast die tot 10 klemborditems bevat. Deze functie geeft alle items terug die actief zijn in de klembordgeschiedenis.
Sinds: KDE Frameworks™ 5.50
void editor.setClipboardText(String);tekstStel de inhoud van het klembord in op
tekst. Detekstzal toegevoegd worden aan de geschiedenis van het klembord.Sinds: KDE Frameworks™ 5.50