Символ переименования Neovim Clangd LSP не меняется в рамках всего проекта

Я использую Neovim через дистрибутив NVChad с языковым сервером clangd. Когда я пытаюсь использовать функцию rename symbol, она не переименовывает этот символ во всем моем проекте, а только в любых открытых файлах (а если открытых файлов слишком много, то даже не во всех открытых файлах).

Как я могу обойти это, чтобы переименование происходило по всему проекту? Это сделало бы рефакторинг намного удобнее. Если вам нужна моя конкретная конфигурация Neovim, вы можете увидеть ее в моем репозитории конфигураций здесь

Есть ли в вашем проекте файл compile_commands.json, настроенный, как описано на странице clangd.llvm.org/installation#project-setup?

HighCommander4 21.04.2024 06:34

Использование bear для создания этого файла помогло мне. Спасибо!

vs07 21.04.2024 18:28
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
204
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Как предложил @HighCommander4 в комментариях, установка compile_commands.json исправила эту проблему.

Добавляем также, почему это решает проблему: наличие файла compile_commands.json дает clangd список исходных файлов в проекте, позволяя clangd создать индекс для проекта, который дает перекрестные ссылки на информацию во всех индексированных файлах. Такие функции, как переименование, используют индекс для поиска всех вхождений символа в проекте.

HighCommander4 22.04.2024 03:13

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