VS Code неправильно предполагает, что тип переменной является ее идентификатором, когда тип является массивом на языке программирования C.

#c #visual-studio-code #syntax-highlighting

#c #visual-studio-code #подсветка синтаксиса

Вопрос:

Я использую VS Code, чтобы попрактиковаться в написании кода на C, и я обнаружил действительно раздражающую вещь в его подсветке синтаксиса, которую даже в Discord markdown, Vim и CLion понимают правильно.

В объявлении функции, например

 double atof2(const char[]); // I know arrays shouldn't be function inputs
 

VS Code предполагает, что char это имя параметра (у которого еще нет имени, поскольку это всего лишь объявление) и выделяет его светло-синим, а не темно-синим, как показано на эторисунке. Он должен быть темно-синим, как и все ключевые слова, но это не так. Есть ли способ исправить это или мне просто нужно открыть проблему?

Поскольку другие люди смогли воспроизвести его (здесь и на Discord), вот ссылка на проблему, которую я открыл на Github: https://github.com/microsoft/vscode/issues/138695

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

1. Не удается воспроизвести. Имейте в виду, что C и C — это два разных языка. Убедитесь, что вы выбрали правильный языковой режим в VS Code. Хотя проблема может заключаться в расширении, которое мешает подсветке синтаксиса.

2. Попробуйте это : int bitlength(unsigned int); . Отключите все расширения. значение int должно быть выделено светло-синим цветом вместо цвета для ключевых слов, который является темно-синим. @sbecker

3. Вы правы. Я запутался. На самом деле я могу воспроизвести проблему с языковым режимом C. Хотя в языковом режиме C это, кажется, работает нормально для меня. В C тип окрашен в темно-синий цвет, как и должно быть.

4. Открыл проблему на Github. Вот ссылка: github.com/microsoft/vscode/issues/138695