RText: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Aggiunta di una caratteristica dell'editor testuale.
Aggiunto l'esempio di una macro JavaScript che tenta l'apertura di un file.
Riga 64:
===Dettagli sulle macro===
Le macro vengono programmate alternativamente nel [[linguaggio di scripting]] [[Programmazione orientata agli oggetti|orientato agli oggetti]] ed agli [[Programmazione orientata agli eventi|eventi]] [[JavaScript]], sfruttando l'interprete [[JavaScript]] Rhino, oppure nel [[linguaggio di programmazione]] [[Programmazione ad oggetti|ad oggetti]] per la [[piattaforma Java]] [[Groovy]].
 
====Esempio di una macro che apre un file====
L'esempio che segue mostra lo script [[JavaScript]] di una macro che apre un file. Il nome del file da aprire viene ricavato sulla base della selezione nel foglio di lavoro attivo dell'editor RText; se disponibile, il file viene aperto in un nuovo foglio di lavoro di RText:
<source lang="javascript">
textArea.beginAtomicEdit();
try {
 
var fileName = textArea.selectedText;
if (fileName==null || fileName.length()==0) {
javax.swing.JOptionPane.showMessageDialog(rtext,
"Couldn't open file: No selection.\n" +
"A file name must be selected in the active editor to open a file.",
"Error", javax.swing.JOptionPane.ERROR_MESSAGE);
}
else {
 
var isUrl = fileName.startsWith("http://");
 
var file = new java.io.File(fileName);
if (!file.isAbsolute()) {
var parentDir = new java.io.File(textArea.fileFullPath).parentFile;
file = new java.io.File(parentDir, fileName);
}
 
// Easter egg - if this is a URL, open it in a browser
if (isUrl) {
java.awt.Desktop.getDesktop().browse(new java.net.___URL(fileName).toURI());
}
else if (file.isFile()) {
rtext.openFile(file.absolutePath);
}
else if (file.isDirectory()) {
var chooser = rtext.fileChooser;
chooser.currentDirectory = file;
rtext.getAction(org.fife.rtext.RTextActionInfo.OPEN_ACTION).actionPerformed(null);
}
else {
javax.swing.JOptionPane.showMessageDialog(rtext,
"File does not exist:\n" + file.absolutePath, "Error",
javax.swing.JOptionPane.ERROR_MESSAGE);
}
 
}
 
} finally {
textArea.endAtomicEdit();
}
</source>
 
== Caratteristiche ==
Riga 83 ⟶ 131:
* Restituzione di frammenti di codice sorgente esemplificativi ([[snippet]]) nei linguaggi usati per programmare le macro.
* Collegamenti ipertestuali cliccabili (se il motore analitico del linguaggio lo consente).<ref name=j-rsyntaxtextareaapidocumentation />
 
Nella barra di stato della finestra principale è presente l'indicatore della quantità di memoria occupats dall'applicazione nell'area di memoria [[Allocazione_dinamica_della_memoria|heap]].
 
== Linguaggi supportati ==