Я пытаюсь настроить LSP с помощью vim + cmake. Я использую плагин vim-ls c в качестве клиента и clangd в качестве сервера.
Структура папки:
- Тест /
- тест. cpp
- test.h
- CMakeLists.txt
test.h:
#ifndef TEST_H
#define TEST_H
class Apple {
public:
int size;
};
#endif
test. cpp:
#include <iostream>
#include "test.h"
int main() {
Apple apple;
return 0;
}
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(my_test)
add_executable(test test.cpp)
target_include_directories(test PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
~ / .vimr c:
let g:lsc_server_commands = {'c': 'clangd', 'cpp': 'clangd'}
Я строю с
mkdir build
cd build
cmake ..
make
Это прекрасно компилируется без ошибок и предупреждений.
Однако, при редактировании test.cpp
в vim, vim-ls c показывает ошибки, не обнаруживающие пользовательские заголовочные файлы и типы, определенные в них. Например, в приведенном выше проекте отображаются следующие две ошибки:
test.cpp|3 col 10 error| 'test.h' file not found [pp_file_not_found]
test.cpp|6 col 5 error| Unknown type name 'Apple' [unknown_typename]
Как настроить это так, чтобы заголовки в проекте были правильно идентифицированы?