microsoft / microsoft/vscode-cpptools

includepath with network folders

Offen
#3,402 5 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug Language Service network drive
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

I have a C++ workspace with following folder hierarchy

myWorkspace/
myWorkspace/component1/ImportedInterfaces/*.h --> need to exclude this folder
myWorkspace/component1/publicinterfaces/*.h
myWorkspace/component1/module1/localinterfaces/*.h
myWorkspace/component1/module1/src/*.cpp
myWorkspace/component2/ImportedInterfaces/*.h --> need to exclude this folder
myWorkspace/component2/publicinterfaces/*.h
myWorkspace/component2/module1/localinterfaces/*.h
myWorkspace/component2/module1/src/*.cpp

myWorkspace also depends on two other workspace folders on the network with similar hierarchy:

\\machine1\home\users\myDependentWorkspace1
\\machine2\home\users\myDependentWorkspace2

below is my c_cpp_properties.json file:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "//machine1//home/users/myDependentWorkspace1/**",
                "//machine2//home/users/myDependentWorkspace1/**",
                ],
            "windowsSdkVersion": "10.0.14393.0",
            "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe",
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "${workspaceFolder}/**",
                "//machine1//home/users/myDependentWorkspace1/**",
                "//machine2//home/users/myDependentWorkspace1/**",
                ],
            }
        }
    ],
    "version": 4
}

=============================
for folder exclusion i have the following in my settings.json file:

"C_Cpp.intelliSenseEngineFallback": "Enabled",
    "C_Cpp.loggingLevel": "Debug",
    "C_Cpp.exclusionPolicy": "checkFolders",
    "files.exclude": {
       "**/ImportedInterfaces": true
    }

========================================
I see the following message in Log(Extension Host):

[2019-04-03 16:05:17.018] [exthost] [error] [ms-vscode.cpptools] provider FAILED
[2019-04-03 16:05:17.018] [exthost] [error] Error: [UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")
	at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:111:329
	at new d (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:111:464)
	at new f (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:112:671)
	at Function.parse (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:112:11)
	at nullConverter (C:\Users\rip\.vscode\extensions\ms-vscode.cpptools-0.22.1\node_modules\vscode-languageclient\lib\protocolConverter.js:22:47)
	at asLocation (C:\Users\rip\.vscode\extensions\ms-vscode.cpptools-0.22.1\node_modules\vscode-languageclient\lib\protocolConverter.js:300:34)
	at item.map (C:\Users\rip\.vscode\extensions\ms-vscode.cpptools-0.22.1\node_modules\vscode-languageclient\lib\protocolConverter.js:290:43)
	at Array.map (<anonymous>)
	at asDefinitionResult (C:\Users\rip\.vscode\extensions\ms-vscode.cpptools-0.22.1\node_modules\vscode-languageclient\lib\protocolConverter.js:290:25)

Workaround is to copy all these folders to a local folder(e:\folder or d:\folder). Include paths to local drive folders work fine. Is network drive folders supported in VSCode. If so, how do we point to it via includepath ?

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit dem includePath und den browse-Einträgen in c_cpp_properties.json sowie den Ausschlusseinstellungen in settings.json und reproduzieren Sie dann den Extension Host URI-Fehler anhand der angezeigten Pfade zu Netzwerkordnern. Prüfen Sie, ob unterstützte UNC-Pfade ohne den gemeldeten Fehler aufgelöst werden können; abgeschlossen ist dies, wenn Netzwerk-Includes ohne den Providerfehler funktionieren und der angeforderte Ordn er Ausschluss wirksam bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp, vscode
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.