Quelques exemples pourraient vous aider à comprendre comment utiliser l'API d'écriture de scripts. Ces exemples et bien d'autres sont disponibles dans le dossier de scripts de Kile : KILE-APP-DIR/scripts/. Chaque script contient une description succincte.
Remplace l'environnement LATEX englobant avec un autre, où la position relative du curseur ne sera pas modifiée. \begin{abc}…\end{abc}, par exemple, peut être changé en \begin{xyz}…\end{xyz}.
var range = document.environmentRange(false);
if ( range.isValid() ) {
var envname = kile.input.getLatexCommand("Saisissez l'environnement","Nouveau nom d'environnement : ");
if ( envname != '' ) {
replaceEnvCommand(envname,range);
}
}
else {
kile.alert.sorry("Aucun environnement LaTeX englobant trouvé.");
}
function replaceEnvCommand(newEnv,r)
{
var c = view.cursorPosition();
var envname = document.environmentName();
if ( envname != "" ) {
var beginRange = new Range(r.start,new Cursor(r.start.line,r.start.column+8+envname.length));
var endRange = new Range(new Cursor(r.end.line,r.end.column-6-envname.length),r.end);
document.editBegin();
document.replaceText(endRange,"\\end{"+newEnv+"}");
document.replaceText(beginRange,"\\begin{"+newEnv+"}");
document.editEnd();
}
}
Remplace la commande LATEX de police englobante avec une autre commande, quand le curseur est placé à l'intérieur du groupe de texte. La position relative du curseur ne sera pas changée. Par exemple, \textbf{abc} peut être changé en \textit{abc}.
var fontCommands = new Array("\\textbf","\\textit","\\textsl","\\texttt",
"\\textsc","\\textrm","\\textsf","\\emph");
var range = document.texgroupRange(false);
if ( range.isValid() ) {
replaceFontCommand(range);
}
else {
kile.alert.sorry("Aucun groupe LaTeX englobant.");
}
function replaceFontCommand®
{
var c = view.cursorPosition();
document.editBegin();
view.setCursorPosition(r.start);
var cmd = document.latexCommand();
var index = fontCommands.indexOf(cmd);
if ( index
>= 0 ) {
var cmdRange = document.latexCommandRange();
if ( cmdRange.isValid() ) {
var newcommand = kile.input.getListboxItem("Choose",
"Choose font command:",buildCmdList(cmd));
if ( new command != "" ) {
document.replaceText(cmdRange,newcommand);
c.column = c.column - (cmd.length - newcommand.length);
}
}
/ view.setCursorPosition©;
}
else {
kile.alert.sorry("No surrounding font command found.");
}
document.editEnd();
}
function buildCmdList(current)
{
var result = new Array();
for ( i=0; i<fontCommands.length; ++i ) {
if ( fontCommands[i] != current ) {
result.push(fontCommands[i]);
}
}
return result;
}
Entourer le texte sélectionné à l'aide commande TeX, où la position relative du curseur ne pourra plus être changée. Par exemple, abc peut être changé en \texcommand{abc}.
var range = view.selectionRange();
if ( range.isValid() ) {
var cmd = kile.input.getLatexCommand(« Choisir », « Choisir la commande LaTeX englobante : »);
if ( cmd != "" ) {
surroundTexCommand("\\"+cmd,range);
}
}
else {
kile.alert.sorry("Aucune sélection trouvée.");
}
function surroundTexCommand(cmd,r)
{
var c = view.cursorPosition();
document.editBegin();
view.clearSelection();
document.insertText(r.end,"}");
document.insertText(r.start,cmd+"{");
c.column = c.column + cmd.length + 2;
view.setCursorPosition(c);
document.editEnd();
}