Mejoras para scintilla

Mejoras para scintilla

Postby mastintin » Fri May 04, 2012 9:42 am

Añadidos a scintila.prg para ir implementando folding ...( ojo solo primeros pasos)

en el metodo Setup()
Code: Select all  Expand view

 ::Send( SCI_SETMARGINMASKN, 2, SC_MASK_FOLDERS )
   
  ::Send( SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPEN, SC_MARK_CIRCLEMINUS)
  ::Send( SCI_MARKERDEFINE,SC_MARKNUM_FOLDER ,SC_MARK_CIRCLEPLUS )  
  ::Send( SCI_MARKERDEFINE,SC_MARKNUM_FOLDERSUB , SC_MARK_VLINE)  
  ::Send(SCI_MARKERDEFINE ,SC_MARKNUM_FOLDERTAIL ,SC_MARK_LCORNERCURVE )  
  ::Send(SCI_MARKERDEFINE ,SC_MARKNUM_FOLDEREND ,SC_MARK_CIRCLEPLUSCONNECTED )  
  ::Send( SCI_MARKERDEFINE,SC_MARKNUM_FOLDEROPENMID ,SC_MARK_CIRCLEMINUSCONNECTED )      
  ::Send(SCI_MARKERDEFINE ,SC_MARKNUM_FOLDERMIDTAIL ,SC_MARK_TCORNERCURVE )  
  ::Send(SCI_SETMARGINSENSITIVEN , 0 ,1 )  
  ::Send(SCI_SETMARGINSENSITIVEN , 2 ,1 )

 


En el Methodo NotiFy cambiar:

Code: Select all  Expand view

  case nCode == SCN_MARGINCLICK
           nPos = GetPosHdr( nPtrNMHDR )
           nLine = ::Send( SCI_LINEFROMPOSITION, nPos, 0 )
           if GETMARGHDR(nPtrNMHDR) == 2
              ::Send(SCI_TOGGLEFOLD, nLine)            
           endif
           if GETMARGHDR(nPtrNMHDR) == 0
              ::SetToggle()   
            //  ::MarkerAdd( nLine, 1 )         
           endif
        //   ::MarkerAdd( nLine, 1 )   

      case nCode == SCN_DOUBLECLICK  
         
          // ::SetToggle()   
           
 


Añadir en la parte #pragma BEGINDUMP

Code: Select all  Expand view

static int GetMarHdr( LPARAM lParam )
{
   struct SCNotification * pMsg = ( struct SCNotification * )lParam;
       
   return ( pMsg->margin );
}

HB_FUNC( GETMARGHDR )
{
   hb_retni( GetMarHdr( hb_parnl( 1 ) ));
}

 


Saludos.
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Mejoras para scintilla

Postby cnavarro » Mon May 27, 2013 10:58 am

Buenos dias
Estoy intentando hacer un pequeño editor de codigo.
Tengo definidos los márgenes, nº de lineas, resaltado de palabras, lista de funciones (y que salte a la funcion cuando se hace click en ella), pero no consigo de ninguna manera que me salgan los marcadores (folder, creo que los llama), cómo definir los comienzos y final de estructuras y los símbolos a utilizar en ellos. Me he mirado la documentación y el codigo de Notepad++ pero no consigo aclararme como hacerlo.
Tampoco he conseguido cambiar el color de las lineas de comentarios ni como definir los símbolos que indican que esas lineas son comentarios. El resto de sintaxis si me aparecen coloreados, más o menos.
Si alguien puede echarme una manilla, lo agradezco, ya que estoy "atorado" con este tema desde hace dias.
Saludos
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Tue May 28, 2013 5:29 pm

Este es el Setup que tengo

Code: Select all  Expand view

   ::SendEditor( SCI_SETLEXER , SCLEX_FLAGSHIP )
   ::SendEditor( SCI_SETSTYLEBITS, 8)  
   //? ::SendEditor( SCI_GETLEXER )

   //::Send( SCI_STYLESETBACK , STYLE_DEFAULT , CLR_GRAY )  //CLR_WHITE

   ::SendEditor( SCI_SETKEYWORDS, 0, cCad0+" "+cCad1 )

   //::SendEditor( SCI_SETKEYWORDS, 2, cCad1 )

   ::Send( SCI_STYLESETFONT, STYLE_DEFAULT, oFontEdt:cFaceName )
   ::Send( SCI_STYLESETSIZE, STYLE_DEFAULT, abs(oFontEdt:nHeight) )
    ::Send( SCI_STYLESETFORE, STYLE_DEFAULT, CLR_BLUE )
    ::Send( SCI_STYLESETBACK, STYLE_DEFAULT, CLR_WHITE ) //RGB( 240, 240, 240 ) )

   ::SendEditor( SCI_STYLECLEARALL, 0 , 0 )

   ::Send( SCI_SETMARGINWIDTHN, 0, 50 )
   ::Send( SCI_STYLESETBACK , STYLE_LINENUMBER , RGB( 118, 148, 168 ) )//RGB( 0, 128, 128 )   )  //nRgb( 051, 051, 051 )) //nRgb( 240, 240, 240 ))
   ::Send( SCI_STYLESETFORE , STYLE_LINENUMBER , CLR_WHITE            )
   ::Send( SCI_STYLESETFONT , STYLE_LINENUMBER , oFontEdt:cFaceName   )
   ::Send( SCI_STYLESETSIZE , STYLE_LINENUMBER , abs(oFontEdt:nHeight)) // - 2 )

   //::SendEditor( SCI_STYLECLEARALL, 0 , 0 )
   //::Send( SCI_SETMARGINWIDTHN, 1, 20 )

   ::SendEditor( SCI_SETMARGINTYPEN, 1, SC_MARGIN_SYMBOL )
   ::SendEditor( SCI_SETMARGINWIDTHN, 1, 30 )
   //::SendEditor( SCI_STYLESETBACK , 1 , RGB( 0, 128, 128 )   )
   //::SendEditor( SCI_SETMARGINMASKN , 1 , SC_MASK_FOLDERS )
   ::SendEditor( SCI_SETMARGINSENSITIVEN, 1, 1)

   //::SendEditor( SCI_SETFOLDMARGINCOLOUR ,
   //::Send( SCI_MARKERDEFINE, 1, SC_MARK_BOXPLUS )



   ::SendEditor( SCI_SETMARGINTYPEN, 2, SC_MASK_FOLDERS ) //SC_MARGIN_SYMBOL )
   ::SendEditor( SCI_SETMARGINWIDTHN, 2, 30 )
   ::SendEditor( SCI_SETMARGINMASKN , 2 , SC_MASK_FOLDERS )
 
  ::SendEditor( SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPEN, SC_MARK_CIRCLEMINUS)
  ::SendEditor( SCI_MARKERDEFINE,SC_MARKNUM_FOLDER ,SC_MARK_CIRCLEPLUS )
  ::SendEditor( SCI_MARKERDEFINE,SC_MARKNUM_FOLDERSUB , SC_MARK_VLINE)
  ::SendEditor( SCI_MARKERDEFINE ,SC_MARKNUM_FOLDERTAIL ,SC_MARK_LCORNERCURVE )
  ::SendEditor( SCI_MARKERDEFINE ,SC_MARKNUM_FOLDEREND ,SC_MARK_CIRCLEPLUSCONNECTED )
  ::SendEditor( SCI_MARKERDEFINE,SC_MARKNUM_FOLDEROPENMID ,SC_MARK_CIRCLEMINUSCONNECTED )
  ::SendEditor( SCI_MARKERDEFINE ,SC_MARKNUM_FOLDERMIDTAIL ,SC_MARK_TCORNERCURVE )
  ::SendEditor( SCI_SETMARGINSENSITIVEN, 2, 1)



  //::SendEditor(SCI_SETPROPERTY, "fold", "1")
  //::SendEditor(SCI_SETPROPERTY, "fold.compact", "0")

 //::Send(SCI_SETMARGINSENSITIVEN , 0 ,1 )
  //::Send(SCI_SETMARGINSENSITIVEN , 2 ,1 )




 /*
   ::Send( SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPEN, SC_MARK_BOXMINUS)
   ::Send( SCI_MARKERDEFINE, SC_MARKNUM_FOLDER, SC_MARK_BOXPLUS )
   ::Send( SCI_MARKERDEFINE, SC_MARKNUM_FOLDERSUB, SC_MARK_VLINE)
   ::Send( SCI_MARKERDEFINE, SC_MARKNUM_FOLDEREND, SC_MARK_BOXPLUSCONNECTED)
   ::Send( SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPENMID, SC_MARK_BOXMINUSCONNECTED)
 */


   ::SendEditor( SCI_SETINDENTATIONGUIDES, 1, 0)
   ::SendEditor( SCI_SETHIGHLIGHTGUIDE, 30, 0)

     ::SetAStyle( SCE_FS_COMMENTLINE, CLR_GRAY )
     ::SetAStyle( SCE_FS_OPERATOR, CLR_HRED )    //CLR_HRED
     ::SetAStyle( SCE_FS_STRING, CLR_RED )
     ::SetAStyle( SCE_FS_PREPROCESSOR, CLR_GREEN )
     ::SetAStyle( SCE_FS_NUMBER, CLR_RED )
     ::SetAStyle( SCE_FS_KEYWORD, CLR_BLUE )
     ::SetAStyle( SCE_FS_KEYWORD2, CLR_BLUE)  //CLR_HCYAN )
    ::SetAStyle( SCE_FS_IDENTIFIER , CLR_CYAN )


   //::SetFixedFont()
   ::SetSavePoint()

 


Gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Thu Jun 13, 2013 9:01 am

Buenos dias
Alguna referencia o ejemplo un poco claro que me pueda servir para solucionarlo?
Gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby Antonio Linares » Thu Jun 13, 2013 10:33 am

Cristobal,

Aun no he usado los marcadores en scintilla. Desarrollé la clase, la hemos ido probando Manuel y yo, y Manuel tambien ayuda en su desarrollo, pero no tiene implementado todo eso aún. Y como nadie parece usarla, pues no le dedicamos más tiempo (de momento).

Tienes planeado hacer tu IDE open source ? Seria bueno combinar esfuerzos y tener un IDE al agrado de todos :-) (aunque creo que esto es lo verdaderamente dificil)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Mejoras para scintilla

Postby cnavarro » Thu Jun 13, 2013 10:47 am

Antonio
Esa es la idea inicial.
Si no he publicado aun es porque necesito un poco mas de tiempo para ir puliendo algunos detalles.
Tenia que empezar un proyecto para ir poniendome al dia de todos los controles y novedades desde que lo dejé y me pareció muy buena idea realizar un pequeño proyecto de este tipo intentando recopilar las utilidades que se van publicando, estudiarlas y "mejorarlas" si puedo.
Pero este tipo de proyectos siempre me ha llamado mucho la atencion.
Un saludo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Thu Jun 13, 2013 11:21 am

Antonio
Lo que estoy usando esta basado en la clase que venia con mi version FWH 12.03
Como siempre, hago clases heredadas de las originales.
En cuanto las funcionalidades básicas de los iconos que aparecen en la pantalla esten al 100% las publicaré para que valores qué puede ser "aprovechable".
De momento funciona el editor bien y cuando pinchas en la lista de METHOD y FUNCIONES se va a la linea de codigo donde esta ubicada.
Todo lo que realizo es porque siempre (desde clipper, y tu primera version) he sido un fanático de la programacion y sobre todo de "Fivewin" pero desde hace mucho tiempo no me dedico profesionalmente al tema, y para mantener y actualizar algunas aplicaciones que hice y que utilizo yo.

Te adjunto imagenes de algunas pantallas mas

Image

Image

Image

Image

Image


Un saludo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Thu Jun 13, 2013 11:28 am

Antonio Linares wrote:Cristobal,

Aun no he usado los marcadores en scintilla. Desarrollé la clase, la hemos ido probando Manuel y yo, y Manuel tambien ayuda en su desarrollo, pero no tiene implementado todo eso aún. Y como nadie parece usarla, pues no le dedicamos más tiempo (de momento).

Tienes planeado hacer tu IDE open source ? Seria bueno combinar esfuerzos y tener un IDE al agrado de todos :-) (aunque creo que esto es lo verdaderamente dificil)


Antonio, he estado mirando bastantes editores, entre ellos XEdit, y seguro que si le dedicamos entre todos un poco de esfuerzo lo conseguiremos.
Soy consciente que es un proyecto muy ambicioso y que ya hay aplicaciones muy buenas.
Gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby Antonio Linares » Thu Jun 13, 2013 11:45 am

Cristobal,

Si revisas FWH\samples\sciedit.prg veras que es un IDE construido con FWH y usa scintilla.

Ahi está y es gratuito, pero si te fijas, casi nadie ha hablado nada de él :-) Le faltan cosas. Por otra parte el peligro de los IDEs (es algo que veo en el tuyo) es caer en la tentación de añadirle de todo, pero no ofrecer lo básico, lo que de verdad hace falta. A mi tambien me ha pasado muchas veces: me pierdo en los detalles :-) Tambien le pasó al IDE del chinito (lo digo cariñosamente pues no recuerdo su nombre ahora).

Para mi la respuesta es sencilla: a estas alturas cada uno tiene su editor de código favorito, sus makes, batchs, etc... :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Mejoras para scintilla

Postby cnavarro » Thu Jun 13, 2013 5:25 pm

Antonio, totalmente de acuerdo contigo
Del ejemplo que viene en mi Fw de Scintilla es de donde nacio la idea.
Mis objetivos son precisamente esos, ir a cosas sencillas que se puedan utilizar facilmente (siguiendo tus consejos).
Como he comentado, voy a seguir desarrollando el proyecto, a ver qué soy capaz de desarrollar y espero que en el foro siga consiguiendo los consejos y ayuda (que seguro necesito) para lo que espero contar con tu inestimable opinion.
Un saludo y gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Fri Jun 14, 2013 6:58 am

Antonio Linares wrote:Cristobal,

Aun no he usado los marcadores en scintilla. Desarrollé la clase, la hemos ido probando Manuel y yo, y Manuel tambien ayuda en su desarrollo, pero no tiene implementado todo eso aún. Y como nadie parece usarla, pues no le dedicamos más tiempo (de momento).

Tienes planeado hacer tu IDE open source ? Seria bueno combinar esfuerzos y tener un IDE al agrado de todos :-) (aunque creo que esto es lo verdaderamente dificil)


Antonio, Manuel
Me podéis echar una manilla en este tema para poner las marcas de inicio y fin de funcion y estructura, o alguna indicacion de por donde empezar?
Gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby benjiben143 » Mon Jul 01, 2013 4:14 pm

hola buenos, dias

yo lo toy usando esta clase en proyecto personal y no si me puedan indicar como le podria hacer que x lineas del editor no se puedan hacer modificaciones

saludos
Benjamin Casarrubias Moreno
Cd. Obregon, Sonora, Mexico
chino72vale@hotmail.com
Fivewin 16.05, Harbour 3.2, xharbour 1.2.1, Fivelinux, visual estudio 2013
benjiben143
 
Posts: 116
Joined: Wed Mar 11, 2009 7:32 pm
Location: Obregon, Sonora, Mexico

Re: Mejoras para scintilla

Postby cnavarro » Mon Dec 16, 2013 1:33 am

benjiben143 wrote:hola buenos, dias

yo lo toy usando esta clase en proyecto personal y no si me puedan indicar como le podria hacer que x lineas del editor no se puedan hacer modificaciones

saludos


Pudiste solucionarlo?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6547
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby benjiben143 » Tue Dec 17, 2013 3:26 pm

hola navarro buenos días
por lo pronto lo tengo detenido, espero entrando el año le sigo ya que estoy haciendo uno modulo de cheques para la empresa donde trabajo



saludos
Benjamin Casarrubias Moreno
Cd. Obregon, Sonora, Mexico
chino72vale@hotmail.com
Fivewin 16.05, Harbour 3.2, xharbour 1.2.1, Fivelinux, visual estudio 2013
benjiben143
 
Posts: 116
Joined: Wed Mar 11, 2009 7:32 pm
Location: Obregon, Sonora, Mexico

Re: Mejoras para scintilla

Postby Manuel Valdenebro » Wed Jul 02, 2014 4:21 am

Parece que este tema quedo en stand by.

Desde hace años, uso el xEdit y me resulta muy cómodo. Gracias a él, la compilación de mi primera aplicación de xHarbour a Harbour, ha sido muy rápida. Creo que algunos usamos xEdit, pero, por lo menos a mi, me da un poco de corte hablar de las bondades de un producto de la competencia directa a FW y yo soy fiwenero desde 1995.

¿El xEdit de X-ailer y el de xHarbour son el mismo o diferentes?

En mi personal uso, al xEdit gratuito, solo le falta una cosa básica. Que el editor de recursos, solo te muestra los bitmap e iconos, pero no los diálogos. Eso lo muestra, me imagino, X-ailer. Pero X-ailer no me interesa, porque no quiero cambiar la forma de programar. Quiero seguir programando al modo de FiveWin que en cierta medida es el modo de Clipper.

Si fuera posible hacer un xEdit basado en Scintilla, exclusivo para FWH+Harbour, con un editor de recursos que pudiera funcionar como un WS, para mi, sería un bombazo. Sería tener en una sola herramienta, casi todo lo que ahora necesito para compilar. Si a eso se le une el Easy report, ya sería el acabose.

¿Visual Studio? Quizás sería es una herramienta estupenda, pero los que estamos acostumbrados a trabajar de una manera, nos cuesta hacer un cambio global, sobre todo, cuando lo que tenemos funciona sin problemas.

Desconozco si xEdit es capaz de compilar a 64 bit.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 34 guests