Ясный способ настроить LSP (vim-ls c) с помощью vim + CMake? - PullRequest
2 голосов
/ 18 марта 2020

Я пытаюсь настроить 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]

Как настроить это так, чтобы заголовки в проекте были правильно идентифицированы?

...