sammccall created this revision. sammccall added a reviewer: hokein. Herald added subscribers: cfe-commits, ilya-biryukov, klimek.
The filtering wasn't previously working as intended - the string list is interpreted as a list of editor modes, not file extensions. (It happens to mostly work as "c" and "cpp" are the names of modes, but we're missing objective-c) The file: restriction is new - clangd needs to be able to convert URI<->path in order to determine how to build. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D41343 Files: clangd/clients/clangd-vscode/src/extension.ts Index: clangd/clients/clangd-vscode/src/extension.ts =================================================================== --- clangd/clients/clangd-vscode/src/extension.ts +++ clangd/clients/clangd-vscode/src/extension.ts @@ -22,20 +22,20 @@ const serverOptions: vscodelc.ServerOptions = { command: clangdPath, args: clangdArgs }; - const cppFileExtensions: string[] = ['cpp', 'c', 'cc', 'cxx', 'c++', 'm', 'mm', 'h', 'hh', 'hpp', 'hxx', 'inc']; - const cppFileExtensionsPattern = cppFileExtensions.join(); + const filePattern: string = "**/*.{" + + ['cpp', 'c', 'cc', 'cxx', 'c++', 'm', 'mm', 'h', 'hh', 'hpp', 'hxx', 'inc'].join() + "}"; const clientOptions: vscodelc.LanguageClientOptions = { // Register the server for C/C++ files - documentSelector: cppFileExtensions, + documentSelector: [{scheme: 'file', pattern: filePattern}], uriConverters: { // FIXME: by default the URI sent over the protocol will be percent encoded (see rfc3986#section-2.1) // the "workaround" below disables temporarily the encoding until decoding // is implemented properly in clangd code2Protocol: (uri: vscode.Uri) : string => uri.toString(true), protocol2Code: (uri: string) : vscode.Uri => vscode.Uri.parse(uri) }, synchronize: !syncFileEvents ? undefined : { - fileEvents: vscode.workspace.createFileSystemWatcher('**/*.{' + cppFileExtensionsPattern + '}') + fileEvents: vscode.workspace.createFileSystemWatcher(filePattern) } };
Index: clangd/clients/clangd-vscode/src/extension.ts =================================================================== --- clangd/clients/clangd-vscode/src/extension.ts +++ clangd/clients/clangd-vscode/src/extension.ts @@ -22,20 +22,20 @@ const serverOptions: vscodelc.ServerOptions = { command: clangdPath, args: clangdArgs }; - const cppFileExtensions: string[] = ['cpp', 'c', 'cc', 'cxx', 'c++', 'm', 'mm', 'h', 'hh', 'hpp', 'hxx', 'inc']; - const cppFileExtensionsPattern = cppFileExtensions.join(); + const filePattern: string = "**/*.{" + + ['cpp', 'c', 'cc', 'cxx', 'c++', 'm', 'mm', 'h', 'hh', 'hpp', 'hxx', 'inc'].join() + "}"; const clientOptions: vscodelc.LanguageClientOptions = { // Register the server for C/C++ files - documentSelector: cppFileExtensions, + documentSelector: [{scheme: 'file', pattern: filePattern}], uriConverters: { // FIXME: by default the URI sent over the protocol will be percent encoded (see rfc3986#section-2.1) // the "workaround" below disables temporarily the encoding until decoding // is implemented properly in clangd code2Protocol: (uri: vscode.Uri) : string => uri.toString(true), protocol2Code: (uri: string) : vscode.Uri => vscode.Uri.parse(uri) }, synchronize: !syncFileEvents ? undefined : { - fileEvents: vscode.workspace.createFileSystemWatcher('**/*.{' + cppFileExtensionsPattern + '}') + fileEvents: vscode.workspace.createFileSystemWatcher(filePattern) } };
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits