28 de febrero de 2014

NotePad++ (NotePad plus) y Visual FoxPro

"VISUAL FOXPRO" EN NOTEPAD++

NotePad++ permite que el usuario defina las características de coloreado y envoltura para un lenguaje no definido de forma nativa, en este articulo proporciono una configuración "sugerida" para el leguaje de "Visual FoxPro".

Notepad++ es un editor de texto GPL con soporte para varios lenguajes de programación que incluye opciones avanzadas para desarrolladores.

Este editor incluye características como coloreado y envoltura de sintaxis, pestañas, resaltado de paréntesis e indentación, grabación y reproducción de macros y soporte de extensiones.

Entre los lenguajes de programación que soporta están Ada, ASP, ASM Ensamblador (x86), ASM Ensamblador (Z80), AutoIt, Batch, C, C#, C++, Caml, CMake, COBOL, CSS, D, Diff, Flash ActionScript, Fortran, Gui4Cli, Haskell, HTML, INNO, Java, JavaScript, JSP, KiXtart, Lisp, Lua, Makefile, MATLAB, MS INI (archivo), NSIS, Objective-C, Pascal, Perl, PHP, PostScript, PowerShell, Properties, Python, R, RC (fichero de recurso), Ruby, Shell, Scheme, Smalltalk , SQL, Tcl, TeX, VB, VHDL, Verilog, XML, YAML.

Lamentablemente de forma nativa no incluye "Visual FoxPro", sin embargo se puede personalizar de tal forma que soporte el lenguaje, a continuación se explica como hacerlo.

INSTALE NOTEPAD++

Ingrese a la pagina del creador http://notepad-plus-plus.org, descargue e instale la ultima versión.

"VISUAL FOXPRO" EN NOTEPAD++

NotePad++ permite que el usuario defina las características de coloreado y envoltura para un lenguaje no definido de forma nativa, en este articulo proporciono una configuración "sugerida" para el leguaje de "Visual FoxPro".

Descargue los archivos

Definicion de Visual FoxPro (UDL)
Opcionales
Funciones/Procedimientos en programa (functionList.xml)
NotePad como editor oredeterminado de programas VFP (defaultnotpadeditvfpprg.reg)
Definir el lenguaje
  1. Ingrese a "NotePadd++"
  2. En el menú principal ingrese a "Lenguaje -> Definir idioma"
  3. En la ventana que desplegada presione el botón "Importar.." y seleccione el archivo "userDefineLang-VisualFoxPro-Jgoh.xml" en la ubicación en donde se descargo
Con estos pasos ya se definió el lenguaje y cada uno de sus atributos. Cierre NotePad++ para asegurar que tome el nuevo lenguaje.

Lista de funciones

NotePad tiene la opción "Lista de funciones" (En el menú principal ingrese a "Vista -> Lista de funciones") la cual es útil cuando se abre un programa que contiene definiciones de Funciones o Procedimientos. Sin embargo como NotePad++ de forma nativa no tiene soporte para VFP es necesario agregar la configuración para dicha característica
  1. Ingrese al directorio %APPDATA%\notepad++\
  2. Edite el archivo functionList.xml con NotePad++
  3. En la sección <associationMap> adicione la siguiente linea al final:
    <association userDefinedLangName="Visual FoxPro" id="vfp_syntax"/>
  4. En la sección <parsers> adicione al final:
  5.    <parser id="vfp_syntax" displayName="VFP Classes & Functions" commentExpr="(t*!*)">
        <classRange
         mainExpr="^[t ]*((define class)[s]+)[w:]+[s]+as[s]+([w:]+)"
         closeSymbole = "^[t ]*enddefine"
         displayMode="node">
         <className>
          <nameExpr expr="[w:]+[s]+as[s]+([w:]+)"/>
         </className>
         <function
          mainExpr="^[t ]*((procedure|proc|function|func)[s]+)[w:]+[s]*[ (,)w]*">
          <functionName>
           <funcNameExpr expr="((procedure|proc|function|func)[s]+)[w:]+[s]*[ (,)w]*"/>
           <funcNameExpr expr="[s]+[w:]+[s]*[ (,)w]*"/>
           <funcNameExpr expr="[w:]+[s]*[ (,)w]*"/>
          </functionName>
         </function>
        </classRange>
    
        <function
         mainExpr="^[t ]*((procedure|proc|function|func)[s]+)[w:]+[s]*[ (,)w]*"
         displayMode="$functionName">
         <functionName>
          <funcNameExpr expr="((procedure|proc|function|func)[s]+)[w:]+[s]*[ (,)w]*"/>
          <funcNameExpr expr="[s]+[w:]+[s]*[ (,)w]*"/>
          <funcNameExpr expr="[w:]+[s]*[ (,)w]*"/>
         </functionName>
        </function>
       </parser>
    
Guarde el archivo.

NOTA: Si lo desea puede remplazar el archivo local functionList.xml por el que descargo

NotePad++ como editor predeterminado de programas desde Visual FoxPro

Usted puede predeterminar como editor de programas (*.prg) a NotePad desde la interfaz de FoxPro, para eso debemos crear el registro de windows la siguiente entrada
[HKEY_CURRENT_USER\Software\Microsoft\VisualFoxPro\9.0\Options]
"TEDIT"="/N C:\Program Files (x86)\Notepad++\notepad++.exe"
NOTA: Si lo desea puede combinar el archivo defaultnotpadeditvfpprg.reg a su registro de windows presionando el botón derecho del ratón sobre el y seleccionando la opción "Combinar". recuerde que debe editar el archivo y cambiar la ruta del programa dependiendo de donde instalo NotePad.

SCREENSHOT


FUENTES
Jose Guillermo Ortiz Hernandez

6 comentarios :

  1. Gracias por el post, funciona (a diferencia de las decenas de post des-actualizados por el cambio en cómo definir lenguajes que hubo en Notepad++).

    Una corrección, tan sólo. En la primera línea del texto a añadir en de functionlist.xml, cambiar el & por & , para que el xml esté bien formado.
    Ray

    ResponderBorrar
    Respuestas
    1. El HTML o el blogspot están jugando una mala pasada: lo que hay que cambiar es el & por &_amp_; (eliminar los _, debo ponerlo para que no sea reconocido como HTML y escrito como &).
      Ray

      Borrar
  2. Gracias por su post, muy útil y representa un gran aporte y labor de definición. No puede descargar la definición de funciones, el link da un error de servidor, si me lo puedes enviar, sería excelente. Y si usted me pudiese dar los pasos a seguir para definir un UDL me gustaría hacer uno para Clipper, me parece que alguien hizo uno para Harbour pero aún no logro dar con el archivo xml. Gracias.

    ResponderBorrar
  3. Lo encontré en esta ubicacion http://www.foxite.com/uploads/46ad5aa5-82aa-4b01-a0fc-4798854b5773.zip

    ResponderBorrar
  4. Here is new and working documetation: https://github.com/ToniKoehler/notepad-plus-plus-vfpLanguage

    ResponderBorrar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.