Как заставить отступы кода вести себя правильно в файлах бритвы vbhtml? - PullRequest
6 голосов
/ 25 ноября 2011

Это сводит меня с пути.Я долгое время являюсь VB.NET разработчиком форм, совершенно новым для ASP.NET и совершенно новым для MVC.Я создаю vbhtml страницы, которые используют синтаксис VB.NET Razor, и я, кажется, постоянно борюсь с UI, который пытается неправильно сделать отступ в моем коде.Возьмите следующий пример, основанный на странице шаблона для нового Razor представления:

@Code
    Layout = Nothing
End Code
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <div>
        @If True Then
            @<ul>
                @For x = 1 To 2

                Next
            </ul>
                End If '<-- Randomly indented too far
    </div>
</body>
</html>

В приведенном выше примере, как только я нажму, вернусь после Next, End If двумя строками ниже случайным образомпереходит на две вкладки вперед от того места, где он должен быть.В других примерах я попадал в круг, где нажатие одной строки в нужное место приводит к тому, что другая строка выходит из позиции, и наоборот.

Я так раздражен в этой точке, что был бы счастлив отключить автоОтступы полностью и просто справляйся сам, но я даже не могу понять, как это сделать!Следуя совету в другом потоке, я отключил отступ для HTML страниц, но все, что останавливается, это отступ для тегов HTML - блоки кода по-прежнему скользят повсюду.

Я думал, что расширение может вызыватьпроблема, но я отключил их все и перезапустил, и проблема остается.Я делаю что-то в корне неправильно?Мне трудно поверить, что Microsoft выпустит что-то настолько плохое, что кажется более вероятным, что я просто не правильно его использую.

Ответы [ 2 ]

2 голосов
/ 26 ноября 2011

Я нашел решение (в некотором роде) по другому вопросу (я действительно усердно искал перед публикацией этого вопроса и ничего не смог найти): Почему форматирование кода Visual Studio не работает должным образом для разметки Razor?

По сути, решение, по-видимому, заключается в обеспечении того, чтобы ваш код использовал пробелы вместо пробелов для пробелов.Увеличение общего размера страницы из-за увеличения пробелов уменьшает проблему (но не устраняет ее полностью).В связанной ветке тот, кто, по-видимому, связан с Microsoft, признал, что это действительно ошибка, связанная с перекрывающимися форматерами для HTML и VB.NET, которую они надеются исправить в новой версии.Я уменьшил до 2 пробелов на отступ, чтобы уменьшить влияние на пропускную способность.

Спасибо ребятам, которые внесли свой вклад.

0 голосов
/ 06 февраля 2013

Лучшей альтернативой здесь (вместо использования пробелов для вкладок) является изменение отступа блока для HTML и C # / VB на «Блок» вместо «Смарт». Это не полное решение, но ИМО гораздо менее болезненный обходной путь, чем использование пробелов!

...