Ver Mensaje Individual
  #12  
Antiguo 04-08-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Pretender comparar un editor de texto, con más o menos monerías, con el editor de un código de un IDE no tiene sentido.
En un editor de texto (Notepad++ aún con sus tantas cosas no deja de ser uno) vas a brindar herramientas variadas para facilitar la edición de texto de forma rápida.
En un IDE lo que se espera es que el "texto" tenga un sentido, es un código. Si, que Notepad++ te resalta la sintaxis, si... pero al fin y a cabo para él es texto. Texto que ni le importa un carajo si está en la línea 5 o en la 6. Simplemente toma texto.
Para un IDE ese texto tiene un fin, un propósito, tiene significado. Y como tal, obecede y sigue reglas estrictas de semántica y sintáctica. Algunas, muchas (y por no decir todas), de esas reglas tienen condiciones de orden. Es natural entonces que su editor se centre más en ofrecer caracteristicas apropiadas y diseñadas para facilitar esas reglas en primer lugar, y ya en aspecto secundario algunos detalles para la entrada de código.

En un editor de texto es esperable un caso como el que se discute en el hilo. En un IDE no necesariamente y el gran error de damianccs es pretender que Delphi tenga lo mismo que un Notepad++.

¿Porqué no tiene mayor sentido esta característica de duplicación? Como he dicho: en un buen código se evita tender a la duplicación de sentencias. Si es cierto que en ciertas ocasiones tendremos que hacer tipo de cosas como ésta:

Código Delphi [-]
MiQuery.ParamByName('Campo1').AsInteger := blabla;
MiQuery.ParamByName('Campo2').AsInteger := blabla;
MiQuery.ParamByName('Campo3').AsInteger := blabla;
....
En estos casos duplicar la línea puede ayudar. Pero también hay ciertas ocasiones que son más o menos evitable:

Código Delphi [-]
for i := 1 to 3 do
begin
  MiCampo := 'Campo' + IntToStr(i)
  MiQuery.ParamByName(MiCampo).AsInteger := blablabla;
end;
O con su alternativa mediante su propiedad vectorial igualmente válida.

Encontrarse con casos en que debamos estar duplicando líneas de código quizá no sea evitable. Ahora, estos casos deben ser dispersos y mantenerse lo más bajos posibles.
Razón suficiente como para justificar la NO necesidad de que exista una macro o atajo de teclado. No al menos por la "vía oficial". Los expertos como GExpert y cnWizards extienden y brindan más cosas interesantes obviamente.

El IDE tratará de mantener tu "productividad" al momento de acelerar la entrada de código basada en las reglas. Copiar una línea y ponerla consecutiva no es una de ellas. Para lo demás, estan los expertos si tan preocupado estás.

Pero esto no invalida un gran punto, y es otro motivo por el cual no se busca fomentar la copia extensiva por atajo en el IDE de Delphi: si en tu código terminas haciendo demasiado copy & paste, piensa dos veces. Notepad++ no te va a regañar... ¡Notepad ama cualquier texto que le pongas, cuanto más mejor!

El punto es que damianccs se sorprende o extraña demasiado por el hecho de que Delphi no cuente con esa "util" característica.

Casimiro, las macros ya son otro cantar. En principio su concepto no es propio a edición de código (lo que se está discutiendo en este hilo al fin y a cabo) sino para tareas más complejas que puede involucrar acciones "fuera" como configurar, hacer un merge, etc.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita