2012-06-13 12 views
8

Muchas veces escribo algo de SQL como esto:¿Es posible resaltar la sintaxis SQL en línea?

string sql = @" 
    -- Multi-line SQL 
"; 

Sin entrar en un debate sobre si este enfoque es bueno o malo, alguien puede decirme cuál es la mejor manera de conseguir este SQL a destacar dentro de Visual ¿Estudio?

Un enfoque que puedo pensar es crear archivos separados .sql y luego usarlos como una cadena aquí para que al editar el SQL original, Visual Studio reconozca que se trata de un archivo SQL y la sintaxis lo resalte.

Esto parece ser un enfoque tedioso para resolver un problema simple. ¿Hay una solución más simple?

+3

No me puedo imaginar que hubiera una. Tendría que enseñarle al analizador el truco de identificar cadenas aleatorias como SQL. – Oded

Respuesta

1

No va a funcionar como otros te dicen. ¿Cómo sabría VS qué cadenas son sql y cuáles no? Si no desea usar archivos sql, puede hacer su propia extensión de archivo como ".sqlx" o algo así y luego en las propiedades VS asignar el editor SQL para esta extensión, por lo que VS sabe aplicarle la codificación de color correcta.

A continuación, puede hacer algo como esto:

string sql = System.IO.File.ReadAllText("your path to sql file"); 

puede ser incluso mejor, porque al menos se mantendrá separada código SQL. Sin embargo, recomendaría mirar Entity Framework o Linq-to-SQL

5

Hay una extensión de Visual Studio para esto (para VS 2010 y 2012). Tiene los problemas que podría imaginar, como resaltar SQ: palabras clave en cadenas que no contienen SQL. Dependiendo del tipo de trabajo que realice, puede preferir que esto no tenga resaltado en SQL.

http://visualstudiogallery.msdn.microsoft.com/a3a662c6-28eb-4de9-9a29-d328b1ac3f6b

Una cosa que puedo recomendar está cambiando los colores de la palabra clave de SQL en Visual Studio para haber variaciones en los colores normales de cadena. De esta manera, el resaltado es útil cuando es correcto, pero no distrae en los casos en que se está resaltando una palabra en una cadena que en realidad no contiene SQL.

3

JetBrains acaba de lanzar ReSharper 2016.2 que tiene soporte para resaltado de sintaxis en línea e intellisense para expresiones regulares y html con comentarios de código como /*language=html*/.

Me parece una característica sorprendente, que (creo) podría extenderse fácilmente para soportar SQL y casi cualquier otro idioma.

He añadido una de estas solicitudes aquí: https://youtrack.jetbrains.com/issue/RSRP-460656

Esto no responde a su pregunta, pero estoy esperando que van a considerar añadir esta característica, como en línea de SQL es bastante común en el código (es decir, trabajando con Dapper).

Cuestiones relacionadas