簡體   English   中英

設置 VSCode 以包含/排除 C++ 智能感知的文件夾

[英]Setting up VSCode to include/exclude folders for C++ intellisense

我經常有一個 CMake 項目來管理我的構建系統。 所以你可以想象我會在我的安裝文件夾中有很多第三方頭文件和我自己的頭文件。

當我有兩個相同標題的副本時,這非常麻煩:一個在我的安裝文件夾中(舊的),而我現在正在修改的一個(新的)。 發生這種情況時,有時智能感知不知道哪個是正確的,並且可能認為我的函數簽名是錯誤的(因為它正在查看舊版本)。

當您嘗試 Ctrl + 左鍵單擊類/函數以快速導航到其定義時,同樣的問題。 它可能會將我引導到錯誤的文件(在安裝文件夾中),因此修改該文件不會對項目產生影響(因為“真實”文件將快速修改舊文件)。

我的安裝文件夾中include文件夾結構的示例:

- boost
    |- fake_boost_header.h
- eigen
    |- not_reap_eigen_header.h
- abseil
    |- real_fake_abseil_header.h
- my_header.h
- my_other_header.h

我嘗試了以下解決方案,但似乎不起作用:

將 c_cpp_properties.json 中的 includePath 設置為install/include/<all_third_party_folder>

歡迎任何想法。 我非常願意使用第三方插件...

在我看來,您的install/include/<...>解決方案與您想要的相反,因為它將保證 VS Code 首先在您的install文件夾中找到標頭。 您可能需要include/**以便它搜索include文件夾中的所有子目錄,假設這是需要編輯的標題。

我不確定您為什么希望 VS Code 了解您的安裝文件夾,因為這是您的構建/代碼生成過程的輸出。 如果您需要安裝文件夾中的第三方代碼版本,請讓您的構建過程從源代碼樹的某個位置復制它們,這樣您就不會在同一目錄中混合(外部)源代碼和生成的代碼。 也就是說,將第三方代碼本身視為源代碼,即使您對它所做的唯一事情是將其復制到您的install文件夾中。 然后,您可以將install文件夾添加到.vscode/settings.json中的排除文件夾列表中,以避免 VS Code 搜索這些目錄:

{
    ...
    "C_Cpp.files.exclude": {
        "install/**": true,
        ...
    },
    "files.watcherExclude": {
        "install/**": true,
        ...
    },
    "search.exclude": {
        "install/**": true,
        ...
    },
    "files.exclude": {
        "install/**": true,
        ...
    },
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM