2013-01-31 17 views
7

Korzystam z opracowanego przez nas narzędzia wewnętrznego do analizowania szablonów maszynki do golenia z wygenerowanymi modelami. Chodzi o to, że teraz wymaga załadowania szablonu za każdym razem, aby go przetworzyć. Chciałem dodać edior, więc mogłem podejrzeć cshtml podczas jego pisania, więc pomyślałem, że najlepszym sposobem jest dodanie go do rozszerzenia studyjnego.Czy istnieje sposób na dodanie widoku projektanta do edytora maszynki cshtml?

Badałem sieć i wydaje mi się, że można napisać niestandardowy edytor dla VS, ale muszę napisać sam edytor, którego nie chcę robić.

Czy istnieje sposób użycia istniejącego edytora maszynki do golenia wbudowanego w VS2012 i dodania zakładki podglądu z moją kontrolą, która pobiera aktualny tekst z edytora maszynki do golenia, aby można go było przeanalizować i wyświetlić podgląd?

Powodem chcą wykorzystać istniejący edytor jest do barwienia IntelliSense, błąd obsługi itp

Odpowiedz

9

Nie ma wbudowane wsparcie dla widoku projektu dla plików ostrzami (CSHTML i VBHTML). Jednym z powodów jest to, że są mieszanką kodu i kodu HTML, od "bardzo trudnego" do "super niemożliwego" do parsowania.

To super fajna funkcja w VS2012 nazywana Inspektorem stron, która może pokazać rzeczywistą renderowaną stronę obok kodu, który ją wygenerował (np. Widok maszynki Razor) i mapowania między nimi, nawet jeśli część zawartości pochodzi ze strony układu lub częściowego widoku.

Zapoznaj się z artykułem http://msdn.microsoft.com/en-us/library/hh420390(v=VS.110).aspx i znajdź sekcję "Inspektor stron", która zawiera linki do kilku postów na blogu i filmów, które opisują tę funkcję w szczegółach.

Oto fragment:

Page Inspector jest narzędziem, które renderuje strony WWW (HTML, Web Forms, ASP.NET MVC, czy strony internetowe) bezpośrednio w programie Visual Studio IDE. Za pomocą Inspektora stron można sprawdzić zarówno kod źródłowy, jak i wynikowy wynik. W przypadku stron ASP.NET można użyć Inspektora stron do określenia, który kod po stronie serwera wygenerował znaczniki HTML, które są renderowane do przeglądarki. Inspektor stron działa nawet wtedy, gdy włączone są domyślne funkcje pakowania i minimalizowania ASP.NET.

+0

Jeśli analizowanie czasu projektu jest "bardzo niemożliwe", to w jaki sposób jest on tak łatwo analizowany w czasie wykonywania? Dlaczego segmentów kodu nie można zastąpić statycznymi wartościami zastępczymi? – Dan

+0

@ Czy parser Razor analizuje bardzo mało HTML lub C#. Zajmuje się głównie szukaniem "@", które wskazuje na przejście i kilka innych miejsc, w których przejście między HTML i C# jest niejawne, takie jak posiadanie tagu HTML bezpośrednio w bloku C# (który nie byłby prawidłowy C#). Dodajmy do tego fakt, że zarówno C#, jak i HTML ewoluują, parser Razor jest napisany tak, że * większość * zmian w jednym z tych języków nie ma wpływu na analizator składni. Być może więc prawda jest bliższa "bardzo trudnej", a nie "super niemożliwej". – Eilon

+1

Szkoda, że ​​Inspektor stron nie istnieje w VS 2015. :( – Dan

Powiązane problemy