2012-02-23 14 views
17

MS Visual Studio tiene una gran característica: sugiere automáticamente las unidades para agregar en la cláusula using al escribir el código con refrences a las clases estándar ausentes.¿Alguna herramienta que sugiera una referencia de unidad automáticamente para Delphi 2010?

¿Existe alguna herramienta de terceros para implementar una función similar para Delphi?

Estoy cansado de agregar todos los SysUtils, Windows, Mensajes, etc. en cada nueva unidad.

+7

+1 Esa es una gran característica en VS que falta en RAD Studio –

+0

+1 lo que David dijo + no debería ser demasiado complicado para analizar todas las unidades de "rutas" y almacenarlas en una sqlite db o algo liviano de modo que cuando presione CTRL + SPACE y escriba algo que no esté relacionado con las unidades ya incluidas, debería mostrar opciones como "declare type | class | etc". o "incluya la unidad X" si encuentra lo que está escribiendo ... – ComputerSaysNo

+0

Cuando utiliza el código completado, la unidad se agregará cuando aún no esté allí. Entonces es posible. –

Respuesta

12

Si la unidad que contiene la referencia aún no está en la lista de usos, esto es cómo puedo guardar muchos pasos manuales:

  • botón derecho del ratón sobre el texto subrayado (error-insighted)
  • elija "Refactorización | Buscar unidad ... ".

Un cuadro de diálogo presentará la unidad disponible que contiene el tipo o símbolo desconocido, y un clic del mouse agrega la unidad seleccionada a la lista de usos del archivo actual.

+1

¿Puedo cambiar/ampliar las rutas de navegación? – Andrew

+0

Esto explota con memoria insuficiente en XE5 Actualización 2 :-(Mi método para funciones RTL: presione F1 en el identificador y copie y pegue la unidad en la que se encuentra. – costa

+0

No siempre funciona: no encontrará Winapi.MMSystem para Función PlaySound. –

1

Esta no es una herramienta para sugerir referencias, solo limpia las cláusulas de unidad innecesarias.

CnPack IDE Wizards es un excelente complemento de código abierto para Delphi.
http://www.cnpack.org/index.php?lang=en

Utilizo su característica Uses cleaner mucho. Hay un elemento de menú:
CnPack ->Mejoras de Proyecto ->Unidad de Uso

Creo que esto puede ser útil para sus necesidades.

+0

no. puede ayudar a administrar referencias existentes, pero no puede sugerir referencias. – Andrew

+1

@hubalu, pero esta pregunta es sobre la sugerencia de la unidad. Cuando escribe por ejemplo 'ShellExecute', obtendrá la unidad' ShellAPI' sugerida. – TLama

2

CNPack Input Helper puede sugest y autocompletar unidades (lo siento por otra respuesta, pero no puedo comentar otra).

CNPack lamentablemente no auto-añadir unidades de un lugar de entrada de código, pero se puede:

  • Copia una palabra de un lugar del cursor (CNPack-> Editor enchancements-> Tabset/Button-> Portapapeles operaciones- > Cortar/copiar token ...).
  • Busque eventualmente esta palabra en archivos de origen (grep) para identificar la unidad.
  • Uso CNPack-> Toggle Usos/Incluir Campo (Ctrl + U) y empezar a escribir y usar CNPack-> Entrada ayudante sugerencia/terminación automática, o IDE/GExperts/unidad de uso CNPack futuro
  • Volver al lugar de edición de código
+0

No puedo entender cómo usar este Input Helper para sugerencias qué unidades incluir en la cláusula 'uses'. ¿Puedes explicar tu escenario? – Andrew

2

The JCL incluye el "Asistente de usos". Observa los errores de compilación que mencionan el "identificador no declarado", y cuando ve uno, automáticamente agrega la unidad donde se declara ese identificador. El paquete JclUsesExpert.dpk solo está disponible para ciertas versiones Delphi. No sé si eso se debe a que el complemento no funciona en versiones posteriores, o si alguien simplemente se olvidó de copiar el proyecto en las carpetas de las versiones posteriores.

0

O tal vez usted puede probar esto: http://www.epocalipse.com/products.htm

Unidad de expertos

"Un software gratuito Delphi complemento que le permite abrir rápidamente las unidades y añadirlos a la cláusula de usos."

Nunca intenté con este experto, pero es semm prometedor.

Cuestiones relacionadas