Scrivere un proprio plugin

Per scrivere un proprio plugin, ad esempio mioplugin, si inizia creando la directory

    $TEXMACS_HOME_PATH/plugins/mioplugin

in cui sistemare tutti i file (si ricorda che $TEXMACS_HOME_PATH per default è $HOME/.TeXmacs). Opzionalmente è possibile creare le seguenti sottodirectory:

bin
per file binari
doc
per la documentazione (non ancora supportata).
langs
per il supporto linguistico, come ad esempio il dizionario (non ancora supportata).
lib
per le librerie
packages
per i pacchetti di stile
progs
per i programmi in Scheme
src
per i file sorgente
styles
per i file di stile

L'idea è che i file presenti in queste sottodirectory vengano automaticamente riconosciuti all'avvio di TeXmacs. Ad esempio se è prevista una sottodirectory bin allora la stringa

    $TEXMACS_HOME_PATH/plugins/mioplugin/bin

verrà automaticamente aggiunta, all'avvio, alla variabile ambientale PATH. Osserviamo come la struttura della sottodirectory di un plugin sia molto simile alla struttura della sottodirectory di $TEXMACS_PATH.

Esempio 1. Il tipo più semplice di plugin consiste solo di file di dati, ossia di una collezione di file di stile e di pacchetti. Per creare un plugin di questo genere è sufficiente creare le sottodirectory:

    $TEXMACS_HOME_PATH/plugins/mioplugin
    $TEXMACS_HOME_PATH/plugins/mioplugin/styles
    $TEXMACS_HOME_PATH/plugins/mioplugin/packages

e sistemare i file di stile e i pacchetti nelle ultime due sottodirectory. Dopo aver rilanciato TeXmacs i file di stile e i pacchetti appariranno automaticamente nei menu DocumentoStile e DocumentoUsa pacchetto.

Per plugin più complessi, che richiedono l'aggiunta di parti di codice in Scheme o in C++, è necessario scrivere un file di configurazione in Scheme

    $TEXMACS_HOME_PATH/plugins/mioplugin/progs/init-mioplugin.scm

che dovrebbe contenere istruzioni del tipo

(plugin-configure myplugin

configuration-options

dove le opzioni configuration-options descrivono le principali azioni da eseguire all'inizio, incluso il controllo del funzionamento del plugin stesso. Nella sezione seguente descriveremo alcuni semplici plugin e la loro configurazione. Molti altri esempi sono contenuti nella directory

    $TEXMACS_PATH/examples/plugins

Alcuni di questi verranno comunque descritti in dettaglio nel capitolo relativo alla stesura di nuove interfacce.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".