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