2012-06-13 14 views
8

Często piszę trochę SQL takiego:Czy jest możliwe podkreślenie składni SQL in-line?

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

Bez wsiada do dyskusji o tym, czy takie podejście jest dobre lub złe, może ktoś mi powiedzieć co jest najlepszym sposobem, aby dostać tę SQL być podświetlony wewnątrz wizualna Studio?

Jedna z metod, o których myślę, to utworzenie oddzielnych plików .sql, a następnie wykorzystanie ich jako ciągu, aby podczas edycji oryginalnego SQL Visual Studio rozpoznał, że jest to plik SQL, a składnia - podświetla go.

To wydaje się żmudne podejście do rozwiązania prostego problemu. Czy istnieje prostsze rozwiązanie?

+3

Nie mogę sobie wyobrazić, że taki będzie. Będziesz musiał nauczyć parsera sztuczki identyfikującej losowe ciągi jako SQL. – Oded

Odpowiedz

1

Nie będzie działać tak, jak mówią inni. W jaki sposób VS wie, które łańcuchy sql, a które nie są. Jeśli nie chcesz używać plików sql, możesz utworzyć własne rozszerzenie pliku, takie jak ".sqlx" lub coś takiego, a następnie we właściwościach VS przypisać edytor SQL dla tego rozszerzenia, aby VS wiedział, aby zastosować do niego prawidłowe kodowanie kolorów.

Następnie można zrobić coś takiego:

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

może to być nawet lepiej, bo przynajmniej będzie trzymać kodu SQL oddzielne. Jednak zdecydowanie polecam spojrzenie na Entity Framework lub Linq-SQL SQL

5

Istnieje rozszerzenie Visual Studio (dla VS 2010 i 2012). Ma problemy, które można sobie wyobrazić, takie jak wyróżnianie SQ: słowa kluczowe w ciągach, które nie zawierają kodu SQL. W zależności od rodzaju wykonywanej pracy możesz nadal preferować to, aby nie wyróżniać się w SQL.

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

Jedno mogę polecić zmienia kolory słów kluczowych SQL w Visual Studio jako wariacje na normalnych kolorach smyczkowych. W ten sposób podświetlanie jest pomocne, gdy jest poprawne, ale nie rozprasza w przypadku, gdy podświetla słowo w łańcuchu, który w rzeczywistości nie zawiera kodu SQL.

3

JetBrains właśnie wydał ReSharper 2016.2, który obsługuje wbudowane podświetlanie składni i intellisense dla wyrażenia regularnego i html z komentarzami do kodu, takimi jak /*language=html*/.

Uważam, że jest to niesamowita funkcja, którą (jak sądzę) można dość łatwo rozszerzyć, aby obsługiwać SQL i prawie każdy inny język.

Dodałem żądanie funkcji Tutaj: https://youtrack.jetbrains.com/issue/RSRP-460656

nie odpowiedzieć na to pytanie, ale mam nadzieję, będą one rozważyć dodanie takiej funkcji, jako inline SQL jest dość powszechne w kodzie (tj współpraca z Dapper).

Powiązane problemy