Я не могу заставить Vscode выделить синтаксис или завершить какой-либо код C/C++.
Я создаю папку, открываю ее с помощью 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, но ничего не изменилось.
Что я делаю не так?
Согласен с пунктом @HolyBlackCat об отключении всех расширений, кроме C/C++. Если вы хотите увидеть примеры settings.json
и другие файлы конфигурации, я создал об этом блог. Руководство по настройке программирования на C/C++ в VSCode
@Raildex, это на Mac, компилятора VS C++ для Mac нет. Им нужно будет использовать инструменты сборки xcode.
@Raildex Более того, базовая подсветка должна работать без компилятора. И MSVC им конкретно не нужен, подойдет любой компилятор.
Я бы рекомендовал вообще не использовать IntelliSense.
@HolyBlackCat, пожалуйста, прочтите мой обновленный вопрос. Я добавил settings.json
и отключил все остальные расширения, но то же самое.
@UsmanMehmood, пожалуйста, посмотрите мой обновленный вопрос. Я отключил все остальные расширения, но то же самое.
@user12002570 user12002570 ваш комментарий ничего не добавляет к решению.
@CanPoyrazoğlu Вот почему это было опубликовано как комментарий, а не как ответ. Это не ответ и не должен быть таковым.
Работает ли это, если вы вручную переключитесь в режим C++, нажав кнопку «обычный текст» в углу?
@HolyBlackCat Я не могу. Во-первых, в списке языков нет «C» или «C++». На третьем снимке экрана в вопросе показан список языков, когда я нажимаю «Обычный текст», чтобы открыть средство выбора языка.
@user12002570 user12002570 это тоже не добавляет ничего полезного в качестве комментария. в любом случае я решил проблему, и теперь IntelliSense работает отлично.
@CanPoyrazoğlu Приятно слышать, что вы решили свою проблему.
Я решил проблему, удалив каталоги ~/Library/Application Support/Code
и ~/.vscode/extensions
(сначала я попробовал только последний, но не сработало, затем я удалил и первый). Я не знаю, что было причиной проблемы, но я сделал резервную копию settings.json
оттуда, удалил все, перезапустил Vscode, поставил settings.json
обратно, перезапустил Vscode, установил расширение C/C++ (поскольку все расширения также были удалены), и проблема исправился. Теперь я вижу C++ в списке языков, и IntelliSense работает отлично.
В VSC по умолчанию установлены некоторые скрытые расширения, за которые отвечают, например. для этой базовой подсветки синтаксиса C/C++. Вы можете увидеть их в графическом интерфейсе рынка расширений, если введете в поиск @builtin
.
@HolyBlackCat, спасибо! Я проверю их. Возможно, по какой-то причине они были повреждены, и уничтожение всей папки восстановило их правильно. поскольку я использую Vscode более 7 лет и никогда ничего не очищал, возможно, где-то что-то было повреждено.
Можешь показать свой
settings.json
? Возможно, вы настроили язык по умолчанию для файлов .cpp. Вы также можете попробовать отключить все расширения, кроме C/C++.