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, но ничего не изменилось.

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

🤔 А знаете ли вы, что...
Язык C++ имеет широкое сообщество разработчиков и обширную документацию.


2
127
1

Ответ:

Решено

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