четверг, 8 октября 2026 г.

Markdown, Errors, Giga

Markdown, Errors, Giga

https://giga.chat/link/gcsIbChixe

Волнистые красные линии в VSCode при работе с обычным текстом (Markdown) почти всегда означают, что редактор пытается применить к нему правила языка программирования.

В вашем случае проблема возникает в первых семи строках из-за смешения синтаксиса Markdown и C#. Редактор видит символы, которые в C# являются операторами или разделителями, и пытается их распарсить, но в контексте обычного текста они нарушают грамматику.

Вот что именно происходит в ваших строках:

  1. Символ вертикальной черты |. В языке C# это оператор побитового ИЛИ. Если VSCode считает, что вы пишете код, он ожидает после него валидное выражение. В тексте же это просто разделитель столбцов. Редактор спотыкается, потому что | v или | +--> — это невалидный C# код.
  2. Стрелки +-->. Это невалидные символы для идентификаторов в C#. Если редактор думает, что Trading.Web — это начало кода, то +--> вызывает синтаксическую ошибку.
  3. Слово v (сокращение от version). Стоит сразу после |. Если редактор переключился в режим C#, он видит | v и ожидает число, строку или другой операнд, а получает одиночную букву, что может интерпретироваться как ошибка.
  4. Слова с точками (например, Trading.Web). В C# это выражение доступа к члену (например, namespace Trading и в нем class Web). Если редактор видит Trading.Web |, он воспринимает Trading.Web как код, а вертикальную черту — как ошибку в этом коде.
  5. Отсутствие подсветки синтаксиса кода. В блоках, где текст пишется нормально, VSCode, скорее всего, определил, что это обычный абзац Markdown. Там отключены строгие проверки C#, поэтому слова подчеркиваться перестают.

Почему это происходит именно в начале файла? Чаще всего причина в первой строке файла. Если она начинается не с заголовка (#) или обычного текста, а сразу с Trading.Web |, VSCode может ошибочно определить язык всего файла как C# (или открыть его в режиме «неопределенного синтаксиса», где включены все валидаторы). Также это может быть связано с тем, что для расширения .md у вас включен строгий линтер (например, markdownlint), который пытается проверять всё содержимое.

Как это исправить:

1. Используйте явные блоки кода (самый надежный способ) Если вы описываете архитектуру как схему, заключите ее в тройные обратные кавычки. Это скажет редактору: «Внутри не код, не проверяй его по правилам C#». Чтобы сохранить моноширинный шрифт и убрать фон, используйте конструкцию с указанием языка text:

text
Trading.Web | v Trading.Gateway | +--> Trading.Api.Orders +--> Trading.Api.MarketData

Если же вы хотите подсветить именно архитектуру как диаграмму, можно использовать mermaid (если установлено соответствующее расширение):

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 лучше справляется с проверкой списков, чем с неформатированными строками:

text
Этап 1:
- Оставить один Gateway
- Внутри маршруты: `/api/trading/*`, `/api/marketdata/*`

Этап 2:
- Выделить два Gateway: `Trading.Gateway`, `MarketData.Gateway`

6. Используйте режим предварительного просмотра Нажмите Ctrl+K V (или Cmd+K V на Mac), чтобы открыть боковую панель предпросмотра Markdown. В этом режиме вы увидите документ ровно так, как он будет выглядеть после рендеринга, и красные линии ошибок C# там не будут отображаться, что позволит комфортно писать текст.

Комментариев нет:

Отправить комментарий