Ejemplo de script para el enlace del editor general¶
Esta solución de script permite la optimización cuando se trabaja con diferentes tipos de componentes que tienen el mismo archivo con una extensión específica, pero que deben abrirse con un editor específico en función del tipo de componente.
Para ello, el script BeforeEdit vincula el archivo de proyecto a un editor configurable en función del ID del tipo de componente.
Archivos necesarios para esta función de script¶
Nombre de archivo | Descripción | Funcionalidad |
---|---|---|
ScriptBeforeEdit.exe | Se proporciona en el paquete de scripts | Vincula el archivo de proyecto de forma configurable a un editor en función del ID del tipo de componente |
ScriptBeforeEdit.ini | Puede editarse con un editor de texto | Define el script BeforeEdit para un ID de tipo de componente específico |
Editor_Mapping.script | Puede editarse con un editor de texto | Script procesado por el intérprete de scripts |
Requisitos de la solución de script¶
- Recomendación: Instale los editores en diferentes equipos de forma que estén siempre bajo la misma ruta de acceso local en las mismas carpetas.
- Sin embargo, si un editor también está instalado en diferentes carpetas en diferentes equipos, todas las rutas de acceso posibles deben ser especificadas y configuradas en el script.
Configurar el script¶
Activar ScriptBeforeEdit.exe¶
Copie la aplicación en la pestaña Directorio de scripts del servidor para la actualización automática del cliente.
Editar ScriptBeforeEdit.ini¶
Le recomendamos que añada cualquier archivo ScriptBeforeEdit.ini
existente del directorio de scripts del cliente. Si este archivo no existe (todavía), utilice la plantilla del paquete de scripts.
- Activa el script de asignación de editores introduciendo la conexión del ID del tipo de componente al script en la sección [General].
- Si se van a vincular varios tipos de componentes diferentes al script, se debe hacer una nueva entrada para cada ID de tipo de componente.
- Guarde el archivo.
- Copie el archivo en la pestaña Scripts del Servidor para la actualización automática del cliente.
Ejemplo:
[General]
//Component types, linking the component type ID to a specific editor.
{Component type ID}= editor_mapping
Ejemplo concreto:
Editar editor_Mapping.script¶
- Abre el
editor_Mapping.script
en el editor de texto. - Edite la aplicación de scripts ScriptBeforeEdit.
- Si es necesario, realice los ajustes indicados en la tabla siguiente.
- Guarde el archivo.
- Copie el archivo en la pestaña Scripts del Servidor para la actualización automática del cliente.
Script¶
Function ScriptBeforeEdit
{
//----------------------------------------------------
//
// en:
// Script configuration
// var1 -> Assignment (component type Id <-> editor)
// var2 -> Filter which files should be considered by the Script.
// var3 -> Formatting of the call argument to open the file in the editor
//
// en:
// Script-Configuration:
// var1 -> Mapping of Component type Id to Editor
// var2 -> specification of files which should be treated by this script.
// var3 -> formated argument to launch the selected file in the editor.
//
$def::var1 = $func::getifcomponenttypeid(<Id 1>, $func::getiffileexists(<Editor 1>) )
$def::var1 = $func::getifcomponenttypeid(<Id 2>, $func::getiffileexists(<Editor 2>) )
$def::var1 = $func::getifcomponenttypeid(<Id 3>, $func::getiffileexists(<Editor 3>) )
$def::var2 =<Filefilter specification>
$def::var3 = $vdog::specific->WorkingDir$vdog::specific->SelectedFile
//----------------------------------------------------
// en:
// Script logic
//
// en:
// Script logic
//
exit.ifemptyvar $def::var1
continue.ifselectedfilefiltermatch $def::var2
call $def::var1
{
arg $def::var3
wait 0
rundir $def::var1
}
done
}
Personalizaciones¶
Línea 17:
Un Id del tipo de componente se asigna a un editor específico.
Un Id del tipo de componente se define como una condición. A $def::var1 sólo se le asigna la definición de la ruta del editor como valor si el Id del tipo de componente coincide con el de la tarea.
Por lo tanto, se aplica lo siguiente: $def::var1 = Si el Id del tipo de componente coincide, utilice el Editor.
La sintaxis del script para esto es: $def::var1 = $func::getifcomponenttypeid(<ID n>
,<Editor n>
) <ID n>
debe sustituirse ahora por el Id del tipo de componente específico que debe vincularse a un Editor específico. <Editor n>
debe ser reemplazado por la ruta absoluta al editor que debe ser enlazado al Id del tipo de componente.
La función $func::getiffileexists(...) sólo acepta la especificación si el editor especificado puede encontrarse localmente.
Ejemplo con la comprobación de si el editor existe localmente: $def::var1 = $func::getifcomponenttypeid(5A527AA2D4A846208BB8648EED1146BD,$func::getiffileexists(C:\Archivos de programa
mieditor.exe))
Ejemplo sin comprobar si existe el editor: $def::var1 = $func::getifcomponenttypeid(5A527AA2D4A846208BB8648EED1146BD, C:\Archivos de programa\myeditor.exe)
Estas líneas pueden eliminarse si no se necesitan más asignaciones de editor. La configuración se realiza como en la línea 5. También se pueden insertar otras líneas para asignaciones de editor adicionales.
Línea 21:
Aquí se puede configurar un filtro de archivos para determinar qué archivos deben ser enlazados a un editor por el script. Ejemplo: $def::var2 = .txt|.dat
El script sólo tiene en cuenta los archivos con extensión TXT o DAT. El script se termina para todas las demás extensiones. Se ejecuta la lógica estándar para abrir el editor.
Ejemplo: $def::var2 =
No se filtra ningún archivo. El script se aplica a cada archivo.
Línea 23:
Formato de la línea de comandos, cómo debe abrirse el archivo seleccionado en el editor. Esto depende del editor respectivo.
Ejemplo para el Bloc de notas: $def::var3 = $vdog::specific-> WorkingDir$vdog::specific-> SelectedFile.
Ejemplo para otro editor: $def::var3 = Project:$vdog::specific-> WorkingDir$vdog::specific-> SelectedFile
Línea 32:
Todas las asignaciones del editor deben realizarse antes de esta línea. Si se llama al script aunque (todavía) no se haya tenido en cuenta el ID del tipo de componente en la asignación del editor, el script finaliza en esta línea. Se ejecuta la lógica estándar para abrir el editor.
Línea 34:
Aquí tiene lugar la comprobación del filtro de archivos configurado. Si el archivo actual coincide con el filtro, la secuencia de comandos continúa; de lo contrario, la secuencia de comandos se interrumpe en este punto y el sistema abre el editor.