microsoft / microsoft/vscode-cpptools
Autocomplete becomes really slow when including third party library
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 6.2k
- Forks
- 1.7k
- Ø Merge
- 14 Std. 46 Min.
- Gemergte PRs (30 T.)
- 61
Beschreibung
Type: LanguageService
Describe the bug
- OS and Version: macOS Catalina (10.15.6)
- VS Code Version: 1.47.3
- C/C++ Extension Version: 0.29.0
- Other extensions you installed (and if the issue persists after disabling them): CMake, CMake Tools
- Does this issue involve using SSH remote to run the extension on a remote machine?: No
- A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).
I am trying to implement simple demo from https://pytorch.org/cppdocs/frontend.html. The problem occurs when I include #include <torch/torch.h>. The auto complete would not show up for seconds, sometimes it doesn't even show up and I need to force it by pressing ^+Space. I expect to have a cache file generated on the default path to cache the precompiled headers from that library, however I couldn't find it. I also tried to change the cache path, but still no files are generated.
Steps to reproduce
- Copy and follow instruction in https://pytorch.org/cppdocs/frontend.html on
End-to-end Examplesection - Include
#include <torch/torch.h> - Start typing. In my case even typing
structwould not show any the auto complete at all
The following is my settings.json
{
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}
I don't use c_cpp_properties.json
And the following is my settings.json when I tried to change the cache path
{
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"C_Cpp.intelliSenseCachePath": ".vscode"
}
I only find ipch/<some_hash_id> folder inside .vscode, no files are generated
Expected behavior
Instant suggestion for autocomplete
C/C++: Log Diagnostics
-------- Diagnostics - 7/30/2020, 9:06:27 PM
Version: 0.29.0
Current Configuration:
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"macFrameworkPath": [],
"compilerPath": "/usr/local/bin/gcc-10",
"cStandard": "c11",
"cppStandard": "gnu++14",
"intelliSenseMode": "clang-x64",
"compilerArgs": [],
"configurationProvider": "ms-vscode.cmake-tools",
"browse": {
"path": [
"${workspaceFolder}/**"
],
"limitSymbolsToIncludedHeaders": true
}
}
Custom browse configuration:
{
"browsePath": [
"/volumes/workspace/learning/torchcpp/build/cmakefiles",
"/volumes/workspace/learning/torchcpp/third_party/libtorch/include",
"/volumes/workspace/learning/torchcpp/third_party/libtorch/include/torch/csrc/api/include",
"/volumes/workspace/learning/torchcpp"
],
"standard": "gnu++14",
"compilerPath": "/usr/bin/clang++",
"compilerArgs": [
"-g",
"-isysroot",
"/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk",
"-std=c++14",
"-std=gnu++14"
]
}
Custom configurations:
[ /Volumes/Workspace/learning/torchcpp/main.cpp ]
{
"defines": [],
"standard": "gnu++14",
"includePath": [
"/volumes/workspace/learning/torchcpp/third_party/libtorch/include",
"/volumes/workspace/learning/torchcpp/third_party/libtorch/include/torch/csrc/api/include"
],
"intelliSenseMode": "clang-x64",
"compilerPath": "/usr/bin/clang++",
"compilerArgs": [
"-g",
"-isysroot",
"/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk",
"-std=c++14",
"-std=gnu++14"
]
}
Translation Unit Mappings:
[ /Volumes/Workspace/learning/torchcpp/main.cpp ]:
/Volumes/Workspace/learning/torchcpp/main.cpp
Translation Unit Configurations:
[ /Volumes/Workspace/learning/torchcpp/main.cpp ]:
Process ID: 32992
Memory Usage: 113 MB
Compiler Path: /usr/bin/clang++
Includes:
/Volumes/Workspace/learning/torchcpp/third_party/libtorch/include
/Volumes/Workspace/learning/torchcpp/third_party/libtorch/include/torch/csrc/api/include
/Library/Developer/CommandLineTools/usr/include/c++/v1
/Library/Developer/CommandLineTools/usr/lib/clang/11.0.3/include
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include
/Library/Developer/CommandLineTools/usr/include
Frameworks:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks
Standard Version: c++14
IntelliSense Mode: clang-x64
Other Flags:
--clang
--clang_version=110003
Total Memory Usage: 113 MB
Language Server Logs
textDocument/didChange: file:///Volumes/Workspace/learning/torchcpp/main.cpp
cpptools/textEditorSelectionChange
textDocument/didChange: file:///Volumes/Workspace/learning/torchcpp/main.cpp
cpptools/textEditorSelectionChange
textDocument/didChange: file:///Volumes/Workspace/learning/torchcpp/main.cpp
cpptools/textEditorSelectionChange
textDocument/didChange: file:///Volumes/Workspace/learning/torchcpp/main.cpp
cpptools/textEditorSelectionChange
cpptools/getFoldingRanges: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 553)
textDocument/didChange: file:///Volumes/Workspace/learning/torchcpp/main.cpp
cpptools/abortRequest
cpptools/textEditorSelectionChange
textDocument/documentHighlight: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 554)
sending 1 changes to server
sending 1 changes to server
sending 1 changes to server
sending 1 changes to server
sending 1 changes to server
cpptools/finishUpdateSquiggles
Error squiggle count: 9
Update IntelliSense time (sec): 3.702
cpptools/getFoldingRanges: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 555)
textDocument/completion: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 556)
auto_complete::handle_completion: file:///Volumes/Workspace/learning/torchcpp/main.cpp (47:7)
Offering completion
cpptools/getCodeActions: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 557)
cpptools/getSemanticTokens: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 558)
cpptools/getCodeActions: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 559)
textDocument/didSave: file:///Volumes/Workspace/learning/torchcpp/main.cpp
cpptools/fileChanged: file:///Volumes/Workspace/learning/torchcpp/main.cpp
cpptools/getDocumentSymbols: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 560)
cpptools/getDocumentSymbols
tag parsing file: /Volumes/Workspace/learning/torchcpp/main.cpp
completionItem/resolve (id: 561)
idle loop: reparsing the active document
Checking for syntax errors: file:///Volumes/Workspace/learning/torchcpp/main.cpp
Queueing IntelliSense update for files in translation unit of: /Volumes/Workspace/learning/torchcpp/main.cpp
cpptools/finishUpdateSquiggles
Error squiggle count: 10
Update IntelliSense time (sec): 0.26
cpptools/getSemanticTokens: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 562)
cpptools/getCodeActions: file:///Volumes/Workspace/learning/torchcpp/main.cpp (id: 563)
Database safe to open
Screenshots
Additional context
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere die Verzögerung mit dem PyTorch-libtorch-Include und der gezeigten CMake Tools-Konfiguration. Beginne bei den Einträgen language-server textDocument/completion und auto_complete::handle_completion und untersuche anschließend das Timing der IntelliSense-Aktualisierung in den bereitgestellten Logs. Als abgeschlossen gilt die Aufgabe, wenn die Autovervollständigung beim Bearbeiten des Beispiels umgehend erscheint.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp, typescript
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100