elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)  (Leído 7,418 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
[SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
« en: 14 Julio 2015, 20:52 pm »

¿Qué es esto?


Snippet Tool es una extensión para Visual Studio, la cual mediante un menú desplegable en el menú contextual del editor de código, nos ayudará a realizar pequeñas pero repetitivas tareas de documentación XML y Snippets, para C# y VB.Net.



Snippet Tool no es una herramienta completa de documentación XML.

La idea principal fue desarrollar una simple extensión que me ayudase a automatizar la creación de archivos Snippet desde el texto seleccionado en el editor (vease el comando "Create Snippet File" en el menú contextual),
despues, decidí añadírle algunas funcionalidad adicionales cómo se puede comprobar en la imagen, a modo de complemento para cubrir necesidades que otras extensiones profesionales de documentación XML, cómo por ejemplo Ghost Doc, no llevan a cabo.

La idea es utilizar dichas funcionalidades cómo complemento, en combinación de alguna otra extensión cómo la ya mencionada, Ghost Doc.





Características


  • Automatización para la creación de archivos .snippet administrados por Visual Studio.
     
  • Automatización para la inserción de diversos tags cotidianos relacionados con la documentación XML.
     
  • Los comandos del menú se pueden invocar mediante combinaciones de teclas pre-establecidas, por ejemplo al presionar CTRL + E + R, el texto seleccionado se insertará en el tag <see cref="texto"/>.
     
  • Compatible con la sintaxis de C-Sharp y VisualBasic.Net.





Demostración


Estas imágenes pertenecen a la versión 1.0





































Ejemplo de compilación y renderizado de la documentación



Código
  1. <member name="M:ConsoleApplication1.Program.TestFunc(System.Int32,System.Int32)">
  2.    <summary>
  3.    This is a test method that performs a loop.
  4.    </summary>
  5.  
  6.    <example> This is a code example.
  7.    <code>
  8.    try
  9.    {
  10.        TestFunc(1, 10);
  11.    }
  12.    catch
  13.    {}
  14.    </code>
  15.    </example>
  16.  
  17.    <param name="param1">
  18.    An <see cref="T:System.Int32"/> that determines the first value of the <see langword="for"/> loop.
  19.    Use <paramref name="param2"/> to assign the last value.
  20.    </param>
  21.  
  22.    <param name="param2">
  23.    An <see cref="T:System.Int32"/> that determines the last value of the <see langword="for"/> loop.
  24.    Use <paramref name="param1"/> to assign the first value.
  25.    </param>
  26.  
  27.    <remarks>
  28.    For more information see <see href="https://msdn.microsoft.com/en-us/library/5kzh1b5w.aspx"/>
  29.    </remarks>
  30.  
  31.    <seealso href="https://msdn.microsoft.com/en-us/library/5kzh1b5w.aspx"/>
  32. </member>








Código Fuente


Versión 1.3


Notas:
La extensión ha sido desarrollada con la SDK de Visual Studio 2013, obviamente es necesario disponer de las referencias de dicha SDK para editar el proyecto.
Microsoft Visual Studio 2013 SDK





Descarga el instalador de la extensión (paquete VSIX)


Versión 1.0
Para Visual Studio 2013
(EXPERIMENTAL) Para Visual Studio 2010, 2012, o 2015


Versión 1.1
Para Visual Studio 2013
(EXPERIMENTAL) Para Visual Studio 2010, 2012, o 2015


Versión 1.3
Para Visual Studio 2010, 2012, 2013 y 2015





Observaciones


Las combinaciones del teclado se pueden presionar desde cualquier editor, por ejemplo desde el explorador de soluciones, esto no es una mejora, sino un fallo de diseño que se intentaré solucionar en futuras versiones.

Si encuentran cualquier bug no duden en comunicármelo preferiblemente DEJANDO UN COMENTARIO EN ESTE POST en lugar de enviarme un email o mensaje privado, y trataré de solucionar el problema.

También estoy abierto a sugerencias para implementar nuevas funcionalidades en la extensión, pero no voy a añadirle cosas típicas cómo por ejemplo soporte para insertar sumarios, ya que para eso está Ghost Doc (u otras extensiones).

Espero que les haya servido y gustado este aporte.

Un saludo!


« Última modificación: 11 Diciembre 2015, 20:30 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
« Respuesta #1 en: 15 Julio 2015, 18:34 pm »

Nueva versión 1.1

Cambio de imagen, más comandos, y un panel de opciones en el menú herramientas de Visual Studio, ¡más y mejor!:



Added
  • A properties page with name "Snippet Tools" inside the "Tools -> Options" menu.
     
  • Paragraph command ( <para></para> tag ) with hotkey: Ctrl+E+Space.
     
  • Separator Line command with hotkey: Ctrl+E+Tab.
     

Improved
  • Simplified Command icons.
     
  • Tag enclosing behavior when a full line is selected.
     

Fixed
  • Keyboard shortcuts now are only avaliable when are pressed on the text editor.
     

Modified
  • Keyboard shortcuts of "Hyperlink", "Hyperlink Alter" and "Remarks Section" commands.
     


« Última modificación: 15 Julio 2015, 18:55 pm por Eleкtro » En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
« Respuesta #2 en: 15 Julio 2015, 19:08 pm »

Excelente idea, realmente fantástico. Lo descargué y lo probaré en un rato. Luego te digo que tal me fue.

Salu2s
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
« Respuesta #3 en: 15 Julio 2015, 19:18 pm »

Excelente idea, realmente fantástico. Lo descargué y lo probaré en un rato. Luego te digo que tal me fue.

Salu2s

Vale :P, gracias.

Por curiosidad, ¿qué versión de VS utilizas?, me gustaría saber si la extensión se instala y funciona correctamente en VS2010, 2012 o 2015.

PD: Luego publicaré y compartiré un enlace de descarga desde la galería de extensiones de MSDN y quitaré el enlace de Mediafire, así se podrá descargar e instalar desde allí o también desde la IDE de Visual Studio directamente.

Saludos
« Última modificación: 15 Julio 2015, 19:54 pm por Eleкtro » En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
« Respuesta #4 en: 15 Julio 2015, 19:24 pm »

Vale :P, gracias.

Por curiosidad, ¿qué versión de VS utilizas?, me gustaría saber si la extensión se instala y funciona correctamente en VS2010, 2012 o 2015.

Utilizo VS2013, todavía no he querido dar el brinco a VS2015.

Salu2s
En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
« Respuesta #5 en: 16 Julio 2015, 01:43 am »

Grandísimo aporte  ;-) ;-) Descargando  ::)

¿Cómo has conseguido realizar la documentación al estilo MSDN? Soy profano en documentación en C#, utilizo plugins, pero a la hora de exportar ni idea de como darle formato a la docu de las API que escribo.


Saludos!
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
« Respuesta #6 en: 16 Julio 2015, 03:12 am »

¿Cómo has conseguido realizar la documentación al estilo MSDN?

Es muy sencillo, te explico, de forma resumida:
La imagen de arriba es puro Html compilado con la herramienta HTML Help Compiler (hhc.exe) del paquete Microsoft HTML Help Workshop que puedes descargar gratuitamente desde MSDN;
los archivos de la estructura de archivos o filesystem (index.html, style.css, image.jpg, etc) son comprimidos y empaquetados en un archivo de ayuda con formato .chm (Microsoft Compiled HTML Help File).

La razón de que tenga un aspecto visual parecido a MSDN, es por que hoy en día existen muchas herramientas que además de ofrecer plantillas Html de ese estilo, automatizan dicha tarea de documentación Html para APIs, extrayendo los datos de las fuentee de documentación de una solución .Net mediante el uso de Reflection para los miembros no documentados mnualmente (ej: Int32), y de la documentación existente en los archivos de documentación XML generados por la solución de VS para los miembros que hayan sido documentados manualmente, claro está.

La herramienta que utilicé para compilar el ejemplo en la imagen de arriba, es la opción favorita que se puede encontrar dentro del software open-source:
Sandcastle Help File Builder

De hecho, prefiero utilizar ese programa antes que cualquier software comercial craqueado, y sabes que de eso tengo un montón para .Net, jaja, pero SandCastle aun siendo gratuito es insuperable.
Por otro lado, para documentar la UI de una aplicación, sus características etc, es preferible usar herramientas más especializadas en esa tarea, cómo por ejemplo Help&Manual, Helpinator, o Dr. Explain, cada una de ellas tiene funcionalidades alucinantes, sobre todo la "captura" que realiza Dr. Explain sobre los elementos de una GUI (pruébalo, en serio). WinCHM también es útil, pero es muy simplón.

Para compilar en formato .chm, el cual es el formato de documentación offline más común, pues cómo ya he mencionado necesitarás disponer del compiler (hhc.exe) que viene incluido en el paquete Microsoft HTML Help Workshop:
Microsoft HTML Help Downloads
(no recuerdo si el SandCastle incluye el hhc.exe, pero igualmente para utilizar otras herramientas de este tipo lo necesitarás por que no lo suelen incluir por defecto, es un requisito adicional)

Si deseas documentar la API en formato HxS entonces necesitarás el compiler del paquete Microsoft Help 2 pero no es descargable desde la MSDN, viene incluido en la instalación de VS2008, y está considerado cómo formato obsoleto, vaya, que no vale la pena interesarse por él.

También puedes compilar en formato .mshc para visualizarlo con la herramienta Microsoft Help Viewer que viene incluida en la instalación de VS.

EDITO: Ah, se me olvidó comentarte que además con la extensión GhostDoc puedes generar los archivos htm al estilo MSDN con el comando "Preview Comment" (pero no compilar un .chm).

Saludos!
« Última modificación: 16 Julio 2015, 03:30 am por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [SOURCE] Snippet Tool Extension For Visual Studio (C#/VB)
« Respuesta #7 en: 11 Diciembre 2015, 20:31 pm »

Nueva versión 1.3

( Descárgala en el comentario principal! )



Añadido
  • Nuevo comando: Collapse Xml Comments
     
  • Nuevo comando: Expand Xml Comments
     
  • Nuevo comando: Delete Xml Comments
     

Corregido
  • En la versión prevía, para deshacer una acción era necesario deshacerla 2 veces seguidas en algunos comandos.
     

Mejorado
  • El comando Paragraph ahora puede añadir el tag vacío (<para></para>) si no hay texto seleccionado.
     
  • El comando Remarks ahora puede añadir el tag vacío (<remarks></remarks>) si no hay texto seleccionado.
     
  • Limpieza y refactorización general del código fuente.
     



Demostración de las nuevas características:










En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines