Markdown, Errors, Giga
https://giga.chat/link/gcsIbChixe
Волнистые красные линии в VSCode при работе с обычным текстом (Markdown) почти всегда означают, что редактор пытается применить к нему правила языка программирования.
В вашем случае проблема возникает в первых семи строках из-за смешения синтаксиса Markdown и C#. Редактор видит символы, которые в C# являются операторами или разделителями, и пытается их распарсить, но в контексте обычного текста они нарушают грамматику.
Вот что именно происходит в ваших строках:
- Символ вертикальной черты
|. В языке C# это оператор побитового ИЛИ. Если VSCode считает, что вы пишете код, он ожидает после него валидное выражение. В тексте же это просто разделитель столбцов. Редактор спотыкается, потому что| vили| +-->— это невалидный C# код. - Стрелки
+-->. Это невалидные символы для идентификаторов в C#. Если редактор думает, чтоTrading.Web— это начало кода, то+-->вызывает синтаксическую ошибку. - Слово
v(сокращение от version). Стоит сразу после|. Если редактор переключился в режим C#, он видит| vи ожидает число, строку или другой операнд, а получает одиночную букву, что может интерпретироваться как ошибка. - Слова с точками (например,
Trading.Web). В C# это выражение доступа к члену (например,namespace Tradingи в немclass Web). Если редактор видитTrading.Web |, он воспринимаетTrading.Webкак код, а вертикальную черту — как ошибку в этом коде. - Отсутствие подсветки синтаксиса кода. В блоках, где текст пишется нормально, VSCode, скорее всего, определил, что это обычный абзац Markdown. Там отключены строгие проверки C#, поэтому слова подчеркиваться перестают.
Почему это происходит именно в начале файла?
Чаще всего причина в первой строке файла. Если она начинается не с заголовка (#) или обычного текста, а сразу с Trading.Web |, VSCode может ошибочно определить язык всего файла как C# (или открыть его в режиме «неопределенного синтаксиса», где включены все валидаторы). Также это может быть связано с тем, что для расширения .md у вас включен строгий линтер (например, markdownlint), который пытается проверять всё содержимое.
Как это исправить:
1. Используйте явные блоки кода (самый надежный способ)
Если вы описываете архитектуру как схему, заключите ее в тройные обратные кавычки. Это скажет редактору: «Внутри не код, не проверяй его по правилам C#». Чтобы сохранить моноширинный шрифт и убрать фон, используйте конструкцию с указанием языка text:
Trading.Web | v Trading.Gateway | +--> Trading.Api.Orders +--> Trading.Api.MarketDataЕсли же вы хотите подсветить именно архитектуру как диаграмму, можно использовать mermaid (если установлено соответствующее расширение):
graph LR
A[Trading.Web] --> B[Trading.Gateway]
B --> C[Trading.Api.Orders]
B --> D[Trading.Api.MarketData]2. Избегайте символов C# в обычном тексте Замените разделители на нейтральные для Markdown символы:
- Вместо
|используйте дефис-или табуляцию для создания таблицы. - Вместо
+-->используйте->(это стандартный символ для диаграмм) или просто-->. - Если нужно написать версию, пишите ее полностью:
v1.0.0илиversion: 1.0.0.
Пример исправленного текста:
Trading.Web -> Trading.Gateway -> Trading.Api.Orders Trading.Gateway -> Trading.Api.MarketData
3. Проверьте настройки языка файла В правом нижнем углу VSCode указан текущий язык (например, "Markdown" или "C#").
- Кликните на него.
- Если там выбрано что-то кроме Markdown, выберите Markdown.
- Если Markdown уже выбран, но ошибки остались, выберите Configure File Association for '.md'... и убедитесь, что там стоит Markdown.
4. Отключите линтер для описательного текста
Если у вас установлены расширения для линтинга Markdown (например, markdownlint), они могут подчеркивать слишком длинные строки или неправильные заголовки.
- В первой строке файла добавьте комментарий для линтера (если он это поддерживает):
<!-- markdownlint-disable -->. - Либо настройте правила в файле
.markdownlint.jsonв корне проекта, чтобы они игнорировали блоки без разметки.
5. Используйте стандартную разметку Markdown Если это список этапов, оформите его как список. Markdown лучше справляется с проверкой списков, чем с неформатированными строками:
Этап 1:
- Оставить один Gateway
- Внутри маршруты: `/api/trading/*`, `/api/marketdata/*`
Этап 2:
- Выделить два Gateway: `Trading.Gateway`, `MarketData.Gateway`6. Используйте режим предварительного просмотра
Нажмите Ctrl+K V (или Cmd+K V на Mac), чтобы открыть боковую панель предпросмотра Markdown. В этом режиме вы увидите документ ровно так, как он будет выглядеть после рендеринга, и красные линии ошибок C# там не будут отображаться, что позволит комфортно писать текст.
Комментариев нет:
Отправить комментарий