RText: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Corretta la URL di una fonte. |
Aggiunta di due macro di esempio nella sezione Dettagli sulle macro. |
||
Riga 42:
Il codice sorgente è attualmente ospitato dai Server di SourceForge, Maven e GitHub.
== Caratteristiche ==
RText è un software che segue la filosofia [[FOSS]], supporta l'[[autocompletamento]], la ricerca/sostituzione tramite [[espressioni regolari]], il [[code folding]], i [[segnalibro (informatica)|segnalibri]], l'[[Bracket matching|evidenziazione delle parentesi]] e l'[[indentazione]].<ref name=j-rsyntaxtextareaapidocumentation /> Supporta anche l'aggiunta di [[macro (informatica)|macro]] e [[plugin (informatica)|plugin]]. Di base sono già inclusi alcuni plugin ritenuti essenziali dal fondatore, scritti dallo stesso sviluppatore del progetto (permettono, per esempio, di esplorare il [[File System]]).<br />
RText ha un'interfaccia personalizzabile ed è possibile aprire più documenti all'interno della stessa istanza del programma tramite l'uso delle linguette. Presenta stili, ''font'' e colori a tema propri di editor di testo evoluti. Il tradizionale Blocco note incluso in bundle con il sistema operativo [[Microsoft Windows|Windows]], al contrario, non permette di scegliere il colore del font e dello sfondo. Sono presenti alcuni ''temi'' che recuperano la tradizionale modalità sfondo nero/caratteri bianchi o grigi.
Inoltre gli utenti possono definire l'evidenziazione della sintassi e l'autocompletamento per qualunque altro linguaggio, tramite un sistema di definizione basato su [[JFlex|JFlex (The Fast Scanner Generator for Java)]] che rende RText estensibile, se si ha familiarità con il linguaggio di programmazione Java.
Altre caratteristiche sono:
* [[Code folding]] ed [[evidenziazione del codice]] (anche personalizzata)
* Auto-completamento
* Visualizzazione a schede (per aprire più documenti)
* Zoom in e zoom out
* Supporto Windows Cinese, Giapponese e Koreano
* Copia del testo selezionato negli appunti del sistema operativo, sottoforma di [[Rich_Text_Format|RTF]]<ref name=s-rtextreview>{{cita web|titolo=Recensione di RText pubblicata su Softpedia|url=http://www.softpedia.com/get/Office-tools/Text-editors/RText.shtml/|editore=Elena Opris|accesso=31 dicembre 2014|data=31 dicembre 2014 |lingua=en |urlmorto=no |dataarchivio=20 aprile 2015 |urlarchivio=http://www.webcitation.org/6Xvw17xRM}}</ref><ref name=j-rsyntaxtextareaapidocumentation />
* Stampa ed anteprima di stampa<ref name=h-rtextreview>{{cita web|titolo=Recensione di RText pubblicata su HTML.it|url=http://download.html.it/software/rtext//|editore=Redazione di HTML.it|accesso=15 luglio 2008|data=15 luglio 2008 |lingua=it |urlmorto=no |dataarchivio=20 aprile 2015 |urlarchivio=http://www.webcitation.org/6XvwkEDCV}}</ref>
* Esportazione del contenuto dell'area testuale sottoforma di codice HTML, con conseguente conservazione dello stile sintattico impostato.
* Gestore [[Appunti_(informatica)|appunti]] integrato nell'area testuale (attivabile premendo la combinazione di tasti Ctrl+Shift+V).
* 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 occupata dall'applicazione nell'area di memoria [[Allocazione_dinamica_della_memoria|heap]].
== Linguaggi supportati ==
Supporta diversi [[linguaggi di programmazione]] e [[Linguaggio di marcatura|di marcatura]]<ref name=j-rsyntaxtextareaapidocumentation />.
Al momento sono:
{{Div col|cols=3|small=no}}
* [[Assembly]]
* [[C (linguaggio)|C]]
* [[C++]]
* [[CSS]]
* [[C Sharp|C#]]
* [[Clojure]]
* [[D_(linguaggio)|D]]
* [[DART_(linguaggio)|Dart]]
* [[Groovy]]
* [[HTML]]
* [[Java (linguaggio)|Java]]
* [[JavaScript]]
* [[JavaServer_Pages|JSP]]
* [[Visual Basic]]
* File .jshintrc
* [[JavaScript_Object_Notation|JSON]]
* [[Lisp]]
* [[Nullsoft_Scriptable_Install_System|NSIS]]
* [[Perl]]
* [[PHP]]
* [[Python]]
* [[Ruby]]
* [[Scala_(linguaggio_di_programmazione)|Scala]]
* [[SQL]]
* [[Shell script|Script della shell UNIX]]
* [[File_batch|Windows batch]]
* [[XML|File XML]]
* [[ActionScript]]
* [[BBCode]]
* [[Embarcadero_Delphi|Delphi]]
* [[Document_Type_Definition|Dtd]]
* [[Fortran]]
* [[.htaccess|Htaccess]]
* [[LaTeX]]
* [[Lua]]
* Makefile
* [[MXML]]
* File di properties
* [[SAS_(linguaggio_di_programmazione)|SAS]]
* [[Tcl]]
{{Div col end}}
== Aspetti tecnici ==
Riga 70 ⟶ 140:
textArea.beginAtomicEdit();
try {
var fileName = textArea.selectedText;
if (fileName==null || fileName.length()==0) {
Riga 79 ⟶ 148:
}
else {
var isUrl = fileName.startsWith("http://");
Riga 105 ⟶ 173:
javax.swing.JOptionPane.ERROR_MESSAGE);
}
}
} finally {
textArea.endAtomicEdit();
Riga 121 ⟶ 187:
textArea.beginAtomicEdit()
try {
def fileName = textArea.selectedText
if (fileName==null || fileName.length()==0) {
Riga 130 ⟶ 195:
}
else {
def isUrl = fileName.startsWith("http://")
Riga 156 ⟶ 220:
JOptionPane.ERROR_MESSAGE)
}
}
} finally {
textArea.endAtomicEdit()
Riga 181 ⟶ 243:
textArea.beginAtomicEdit();
try {
var text = textArea.selectedText;
if (text==null || text.length()==0) {
Riga 201 ⟶ 262:
textArea.setSelectionEnd(start+text.length());
}
} finally {
textArea.endAtomicEdit();
Riga 207 ⟶ 267:
</source>
====Esempio di una macro che ordina alfabeticamente gli elementi di una lista====
L'esempio che segue mostra lo script [[JavaScript]] di una macro che ordina tutte le righe nel foglio di lavoro attivo di RText:
<source lang="javascript">
var removeDuplicates = true; // Change to "false" if you want to keep duplicates
function join(lines) {
var sb = new java.lang.StringBuffer();
if (lines!=null && lines.length>0) {
for (var i=0; i<lines.length; i++) {
//System.out.println(lines[i]);
sb.append(lines[i]).append('\n');
}
}
return sb.toString();
}
// Note: You'll want to consider wrapping your scripts inside calls to
// beginAtomicEdit() and endAtomicEdit(), so the actions they perform can
// be undone with a single Undo action.
textArea.beginAtomicEdit();
try {
var lines = textArea.text.split("\n");
if (removeDuplicates) {
var ts = new java.util.TreeSet();
for (var i=0; i<lines.length; i++) {
ts.add(lines[i]);
}
lines = ts.toArray();
}
java.util.Arrays.sort(lines);
textArea.text = join(lines);
} finally {
textArea.endAtomicEdit();
}
</source>
Lo stesso esempio programmato in linguaggio [[Groovy]]:
<source lang="groovy">
final def removeDuplicates = true // Change to "false" if you want to keep duplicates
// Note: You'll want to consider wrapping your scripts inside calls to
// beginAtomicEdit() and endAtomicEdit(), so the actions they perform can
// be undone with a single Undo action.
textArea.beginAtomicEdit()
try {
def lines = textArea.text.split("\n")
if (removeDuplicates) {
def ts = new TreeSet()
lines.each {
ts.add(it)
}
lines = ts.toArray()
}
Arrays.sort(lines)
textArea.text = lines.join("\n")
} finally {
textArea.endAtomicEdit()
}
</source>
== Altri progetti ==
|