Actualizado el 14-01-2007
versión para imprimir

Esquema de un plugin: la función main

function hkp_Main(pDataIn, pDataOut) {
  var sOutput = "Hello World!";
 
  hkp_DataAdd(pDataOut, "OUTPUT", sOutput);
  hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 1);
}

La función main es la que ejecuta las acciones del plugin. Al igual que hkp_Register la función main tiene dos parámetros de entrada y salida de datos hacia el editor.

En este ejemplo, el plugin se limita a declarar una variable (con el texto Hola Mundo); a asignar al texto de salida del plugin el contenido de la variable definida y a especificar el modo de salida

modos de salida

Por modos de salida nos referimos a la forma en que HTML-Kit debe integrar el texto producido por el plugin (OUTPUT) en el documento abierto en el editor.

hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 0);
// el texto se envia a la pestaña 'output' del editor (igual por
// ejemplo que cuando ejecutas tidy).
// es el mejor modo si el plugin manipula el documento actual y quieres
// comparar resultados

hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 1);
// el texto se inserta en la posición del cursor.
// Si tienes texto seleccionado al ejecutar el plugin, se sobreescribirá encima

hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 2);
// el texto se inserta reemplazando el texto seleccionado. 
// Si no hay texto seleccionado, equivale a MODO 1

hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 3);
// La salida del plugin se envia a un popup


hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 4);
// La salida del plugin reemplaza a la palabra 
// bajo el cursor (aunque no esté seleccionada)


hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 5);
// La salida del plugin reemplaza a la etiqueta 
// bajo el cursor (aunque no esté seleccionada)


hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 6);
// La salida del plugin reemplaza al contenido íntegro  
// del documento abierto en el editor


hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 7);
// Se crea un nuevo documento en el editor 
// con la salida del plugin

hkp_DataAddInt(pDataOut, "MODE_OUTPUT", 8);
// La salida del plugin reemplaza la linea
// bajo el cursor (aunque no esté seleccionada)

Alternando modos de salida

Si en un plugin hay varias acciones, y cada una necesita un modo de salida diferente, nada mas fácil. Veamos un extracto de la función main de un plugin con varias acciones:

function hkp_Main(pDataIn, pDataOut)
{
  var nPluginID = 0;        // id del plugin
  var nMenuItemID = 0;      // id de la acción
  var nOutputMode = 0;      // modo de salida. funcionará como modo por defecto.
  var sOutput = "";         // texto de salida

  // hkscript necesita variables inicializadas/declaradas
  // antes de poder usarlas

  
 if(nPluginID == 1)            // es nuestro plugin ?
  {
                        
    if(nMenuItemID == 0)       // es nuestra primera acción ?
    {

    sOutput = "<p></p>";              // texto producido por esta accion
    nOutputMode = 1;                  // modo de salida para esta acción

    }
    else if(nMenuItemID == 1)  // es nuestra segunda acción ? 
    {

      sOutput = "<br><br>";           // texto producido por esta accion
      nOutputMode = 2;                // modo de salida para esta acción

    }

    
  hkp_DataAdd( pDataOut, "OUTPUT", sOutput );
  hkp_DataAddInt( pDataOut, "MODE_OUTPUT", nOutputMode );
  

}  // fin función main

Mas opciones de la función main

kp_DataAddInt(pDataOut, "MODE_MOVE_TO_CARET", 1);
// si la salida del plugin incluye el caracter | el cursor aparecerá en su lugar

kp_DataAddInt(pDataOut, "MODE_PREPROCESS_FORMAT_TAGS", 1);
//habilita el preproceso de etiquetas

This site powered by Phorum.