Vscode IntelliSense не работает для C/C++, что бы я ни делал

Я не могу заставить Vscode выделить синтаксис или завершить какой-либо код C/C++.

  • Я использую последнюю версию Vscode (1.90.1 на момент написания).
  • Пакет расширений C/C++ и C/C++ (последние, неинсайдерские версии) установлен и включен.
  • У меня clang установлен и работает.
  • Пытаюсь следовать официальной документации Vscode по адресу https://code.visualstudio.com/docs/cpp/config-clang-mac

Я создаю папку, открываю ее с помощью code /path/to/my/folder, у меня пустой файл CPP. Я пробую именно то, что говорят документы, строка за строкой. Я даже вставил точный код из документации, но он распознается как «Обычный текст» и не требует ни завершения, ни раскраски:

Выше показано, как выглядит моя среда Vscode, тогда как в документации Microsoft хорошо выделен синтаксис и файл C/C++, завершающий код, с теми же действиями, что и я. В моем случае я даже не вижу C или C++ в списке языков на выбор, и он распознается как «Обычный текст».

Вот мой settings.json:


{
    "workbench.startupEditor": "newUntitledFile",
    "explorer.confirmDelete": false,
    "workbench.colorTheme": "Monokai",
    "editor.codeLens": false,
    "git.autofetch": true,
    "git.enableSmartCommit": true,
    "explorer.confirmDragAndDrop": false,
    "git.confirmSync": false,
    "window.title": "${activeFolderShort}/${activeEditorShort} (${activeFolderLong})",
    "debug.console.fontSize": 10,
    "keyboard.dispatch": "keyCode",
    "editor.tabCompletion": "on",
    "prettier.tabWidth": 4,
    "editor.defaultFormatter": "dbaeumer.vscode-eslint",
    "editor.fastScrollSensitivity": 3,
    "typescript.tsserver.trace": "verbose",
    "C_Cpp.intelliSenseEngine": "default",
    "editor.tokenColorCustomizations": {
        "[Monokai]": {
            "keywords": "#ff4a5f",
            "functions": "#99ff88",
            "comments": "#80a090",
            "textMateRules": [
               
                {
                    "scope": "keyword.operator",
                    "settings": {
                        "foreground": "#ffaa66"
                    }
                },
                {
                    "scope": "entity.name.tag",
                    "settings": {
                        "foreground": "#ff3377",
                        "fontStyle": "bold"
                    }
                },
                {
                    "scope": "entity.other.attribute-name",
                    "settings": {
                        "foreground": "#44e855",
                    }
                }
            ]
        }
    },
    "workbench.colorCustomizations":{

        "[Monokai]": {
            "editorIndentGuide.background1": "#383838",
            "editor.background": "#20201e",
            "statusBar.background" : "#1A1A1A",
            "statusBar.noFolderBackground" : "#212121",
            "statusBar.debuggingBackground": "#263238",
        },
       
      },
      "task.slowProviderWarning": [
        "typescript"
      ],
      "update.mode": "manual",
      "typescript.updateImportsOnFileMove.enabled": "never",
      "javascript.updateImportsOnFileMove.enabled": "always",
    "editor.maxTokenizationLineLength": 1000,
      "terminal.integrated.fontSize": 9,
      "editor.fontSize": 8,
      "editor.minimap.renderCharacters": false,
      "editor.minimap.maxColumn": 80,
      "editor.minimap.enabled": false,
      "editor.gotoLocation.multipleDefinitions": "goto",
      "editor.gotoLocation.multipleDeclarations": "goto",
      "editor.gotoLocation.multipleImplementations": "goto",
      "editor.gotoLocation.multipleReferences": "goto",
      "editor.gotoLocation.multipleTypeDefinitions": "goto",
      "apc.activityBar": {
        "size": 42,
        "itemMargin": 2
      },
      "apc.sidebar.titlebar": {
        "fontSize": 10
      },
      "apc.header": {
        "fontSize": 10,
        "height": 24,
      },
      "apc.stylesheet": {
        ".explorer-viewlet .mac": "font-size: 11px",
        ".debug-viewlet .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench .debug-hover-widget .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench .debug-viewlet .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench .debug-hover-widget .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench.mac .debug-viewlet .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench.mac .debug-hover-widget .monaco-list-row .expression":
          "font-size: 10px !important",
        ".part.editor>.content .editor-group-container>.title .tabs-container>.tab, .tabs-and-actions-container": "height: 28px !important",
        ".monaco-icon-label": "font-size: 8pt",
        ".monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input": "background-color: #1c1e1c"
      },
      "apc.listRow": {
        "height": 18
      },
      "customizeUI.fontSizeMap": {
          "window-title": "10px", // Window title font when using custom titlebar
          "tab-title": "11px",    // Used for editor tab titles
      },
      "customizeUI.listRowHeight": 18,
      "customizeUI.stylesheet": {
          ".explorer-viewlet .mac": "font-size: 11px",
          ".debug-viewlet .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench .debug-hover-widget .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench .debug-viewlet .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench .debug-hover-widget .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench.mac .debug-viewlet .monaco-list-row .expression, body.row-height-lte20 .monaco-workbench.mac .debug-hover-widget .monaco-list-row .expression":
            "font-size: 10px !important",
          ".part.editor>.content .editor-group-container>.title .tabs-container>.tab, .tabs-and-actions-container": "height: 28px !important",
          ".monaco-icon-label": "font-size: 8pt",
          ".monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input": "background-color: #1c1e1c"
      },
      "emmet.showExpandedAbbreviation": "never",
      "terminal.integrated.lineHeight": 0.8,
      "color-highlight.languages": [
        "*"
      ],
    "editor.detectIndentation": false,
    "debug.javascript.suggestPrettyPrinting": false,
    "workbench.editor.decorations.badges": false,
    "explorer.decorations.badges": false,
    "react-native-tools.showUserTips": false,
    "editor.accessibilitySupport": "off",
    "react-native-tools.networkInspector.consoleLogsColorTheme": "Dark",
    "debug.console.wordWrap": false,
    "workbench.layoutControl.enabled": false,
    "editor.unicodeHighlight.allowedCharacters": {
        "‘": true,
        "’": true
    },
    "[typescriptreact]": {
      "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[typescript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "solidity.validationDelay": 500,
    "debug.allowBreakpointsEverywhere": true,
    "workbench.settings.enableNaturalLanguageSearch": false,
    "explorer.compactFolders": false,
    "window.restoreWindows": "all",
    "editor.unicodeHighlight.includeStrings": false,
    "editor.codeActionsOnSave": {
        "source.organizeImports": "explicit"
    },
    "terminal.explorerKind": "external",
    "[css]": {
        "editor.defaultFormatter": "vscode.css-language-features"
    },
    "files.associations": {
        "*.css": "tailwindcss"
    },
    "eslint.runtime": "node",
    "eslint.format.enable": true,
    "workbench.editor.empty.hint": "hidden",
    "git.openRepositoryInParentFolders": "always",
    "solidity.telemetry": false,
    "cmake.showOptionsMovedNotification": false

}

Обратите внимание, что настройки C_Cpp.intelliSenseEngine там не было, и она все еще не работала, я добавил, пытаясь найти решение, но, похоже, это не имеет значения.

Я также попробовал отключить все расширения, кроме C/C++ (а в другом случае, помимо C/C++, еще и C/C++ Extension Pack) и перезапустить Vscode, но ничего не изменилось.

Что я делаю не так?

Можешь показать свой settings.json? Возможно, вы настроили язык по умолчанию для файлов .cpp. Вы также можете попробовать отключить все расширения, кроме C/C++.

HolyBlackCat 18.06.2024 09:37

Согласен с пунктом @HolyBlackCat об отключении всех расширений, кроме C/C++. Если вы хотите увидеть примеры settings.json и другие файлы конфигурации, я создал об этом блог. Руководство по настройке программирования на C/C++ в VSCode

Usman Mehmood 18.06.2024 09:50

@Raildex, это на Mac, компилятора VS C++ для Mac нет. Им нужно будет использовать инструменты сборки xcode.

Alan Birtles 18.06.2024 11:23

@Raildex Более того, базовая подсветка должна работать без компилятора. И MSVC им конкретно не нужен, подойдет любой компилятор.

HolyBlackCat 18.06.2024 11:26

Я бы рекомендовал вообще не использовать IntelliSense.

user12002570 18.06.2024 16:43

@HolyBlackCat, пожалуйста, прочтите мой обновленный вопрос. Я добавил settings.json и отключил все остальные расширения, но то же самое.

Can Poyrazoğlu 18.06.2024 16:46

@UsmanMehmood, пожалуйста, посмотрите мой обновленный вопрос. Я отключил все остальные расширения, но то же самое.

Can Poyrazoğlu 18.06.2024 16:46

@user12002570 user12002570 ваш комментарий ничего не добавляет к решению.

Can Poyrazoğlu 18.06.2024 16:47

@CanPoyrazoğlu Вот почему это было опубликовано как комментарий, а не как ответ. Это не ответ и не должен быть таковым.

user12002570 18.06.2024 16:49

Работает ли это, если вы вручную переключитесь в режим C++, нажав кнопку «обычный текст» в углу?

HolyBlackCat 18.06.2024 16:50

@HolyBlackCat Я не могу. Во-первых, в списке языков нет «C» или «C++». На третьем снимке экрана в вопросе показан список языков, когда я нажимаю «Обычный текст», чтобы открыть средство выбора языка.

Can Poyrazoğlu 18.06.2024 16:57

@user12002570 user12002570 это тоже не добавляет ничего полезного в качестве комментария. в любом случае я решил проблему, и теперь IntelliSense работает отлично.

Can Poyrazoğlu 18.06.2024 17:41

@CanPoyrazoğlu Приятно слышать, что вы решили свою проблему.

user12002570 19.06.2024 03:56
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
13
127
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я решил проблему, удалив каталоги ~/Library/Application Support/Code и ~/.vscode/extensions (сначала я попробовал только последний, но не сработало, затем я удалил и первый). Я не знаю, что было причиной проблемы, но я сделал резервную копию settings.json оттуда, удалил все, перезапустил Vscode, поставил settings.json обратно, перезапустил Vscode, установил расширение C/C++ (поскольку все расширения также были удалены), и проблема исправился. Теперь я вижу C++ в списке языков, и IntelliSense работает отлично.

В VSC по умолчанию установлены некоторые скрытые расширения, за которые отвечают, например. для этой базовой подсветки синтаксиса C/C++. Вы можете увидеть их в графическом интерфейсе рынка расширений, если введете в поиск @builtin.

HolyBlackCat 18.06.2024 17:50

@HolyBlackCat, спасибо! Я проверю их. Возможно, по какой-то причине они были повреждены, и уничтожение всей папки восстановило их правильно. поскольку я использую Vscode более 7 лет и никогда ничего не очищал, возможно, где-то что-то было повреждено.

Can Poyrazoğlu 18.06.2024 17:52

Другие вопросы по теме