delphi ide class-completion

delphi - ¿En qué orden los resultados de Class Pontion?



ide class-completion (4)

Ejemplo: creo una nueva unidad, declaro una clase con varios métodos como constructor, destructor, method1, method2, method3 en ese orden y luego presiono Ctrl-Shift-C. El IDE crea todos los cuerpos de método automáticamente, pero el orden se mezcla y no como se declaró en la sección de interfaz.

Ahora bien, esto no es un problema, pero ¿hay alguna razón para ello? Parece ser más difícil mezclar eso que simplemente hacerlo en el orden de la declaración.

¿O hay alguna regla que tenga sentido y que yo no pueda ver?


De forma predeterminada, estoy bastante seguro de que intenta crearlos en orden alfabético por nombre de método, y luego intenta mantener esto cuando se agregan más métodos después usando el mismo método. El resultado final puede ser una mezcla aleatoria de pedidos.


El IDE intenta crear todo en orden alfabético. Pero, si los métodos se vuelven fuera de secuencia (por ejemplo, cambiar el nombre de un método) se complica. El comportamiento exacto parece depender de la versión. Las versiones anteriores simplemente agregarían el nuevo método al final del archivo en cualquier orden. Las versiones más recientes parecen un poco más inteligentes, pero aún no he calculado exactamente cómo.


Según mi experiencia, me parece que algunas veces el IDE crea los métodos en orden alfabético, pero otras veces solo agrega los nuevos métodos al final del archivo.


Esto es un poco complicado de responder, ya que depende de cómo sus métodos ya están dispuestos.

Si ya están implementados en orden alfabético, intentará y mantendrá eso. Si el IDE no puede inferir ningún tipo de orden, recurre a soltarlos al final del archivo.

Hay otra arruga donde, por convención, si incluyes un comentario en la forma: {<ClassName>} antes del primer bloque de método implementado y luego usas ese comentario para delinear todas las implementaciones de clase subsiguientes, intentará mantener los métodos agrupados juntos.

El orden alfabético sigue las mismas reglas anteriores, excepto que puede inyectar los nuevos métodos en ese bloque lógico delineado por el comentario indicado.

Si utiliza la finalización de clase con una nueva clase, notará que el IDE generará automáticamente ese comentario delineante.

Si permite que la finalización de la clase organice automáticamente los métodos y solo use la tecla Ctrl + Shift + UpAr para navegar entre la implementación de un método y la declaración, el orden debería ser menos importante.

Normalmente, saltaré a la clase decl usando la secuencia de teclas anterior, luego usaré las teclas de flecha para ir al método en la declinación que quiero, y luego usaré esa secuencia de teclas nuevamente para acceder rápidamente a ella.

Otra buena secuencia de teclas es Ctrl + Alt + UpAr o Ctrl + Alt + DnAr que saltará rápidamente del método impl al método impl en orden de archivo.