Я установил расширение для vscode (Ubuntu), немного настроил его, и оно работает, но теперь у меня нет завершения для таких ключевых слов, как шаблон, имя типа и так далее. И, что еще хуже, clangd производит автоматическую вставку скобок, угловых скобок, заполнителей типов и, возможно, чего-то еще, чего я еще не видел...
Поиски в Google, на сайте LLVM и Reddit ничего не дали, кроме официального сервера Discord.
#Алан Бертлз да, но там ничего не нашел
ок, какой это плагин? Как вы его настроили?
Это официальное расширение от LLVM. Я создал параметры управления файлом config.yaml, но не могу найти флаги для настройки параметров вставки.
Вот этот? marketplace.visualstudio.com/… вы настроили clangd и создали compile-commands.json, как указано в инструкциях?
Да, это. И да, я заставил cmake сгенерировать этот файл. Другое соображение заключалось в том, что проблема может быть в компиляторе - я обычно использую gcc, но я переключился на clang и также создал новый файл compile_commands.json.
А как ты настроил cmake и clangd? Покажите, пожалуйста, минимально воспроизводимый пример





Поведение вставки заполнителей для аргументов функции (и шаблона) можно отключить, передав --function-arg-placeholders=0 в clangd. В VSCode это можно сделать в настройках VSCode в разделе "clangd.arguments".
Что касается завершения таких ключевых слов, как template и typename, у меня это работает «из коробки», хотя обратите внимание, что элементы завершения имеют вид «фрагмента», например. для template меткой элемента является «объявление шаблона», но когда вы его выбираете, вставляется только template, за которым следует пробел, помещая курсор в правильное положение, чтобы вы могли ввести остальную часть объявления.
Если в каком-то конкретном сценарии завершение не работает должным образом, я бы предложил сообщить о проблеме по адресу https://github.com/clangd/clangd/issues/ с подробностями.
Вы читали документацию по установленному вами расширению clangd?