sourcegraph / javascript-typescript-langserver

JavaScript and TypeScript code intelligence through the Language Server Protocol
https://sourcegraph.com
Apache License 2.0
793 stars 72 forks source link

'%' in paths causes error #660

Open martinheidegger opened 4 years ago

martinheidegger commented 4 years ago

When #228 introduced for path normalization ( @%40 ) this block of code was added:

https://github.com/sourcegraph/javascript-typescript-langserver/blob/1c9317e92aa02edb8ea3bc95556e9baee9505cea/src/util.ts#L46

Unfortunately decodeURIComponent doesn't work if the path looks something like

.../node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.11.3-osx/lib/vendor/ruby/2.2.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb

and causes following error:

URIError: URI malformed
    at decodeURIComponent (<anonymous>)
    at /Users/m/.vscode/extensions/sourcegraph.javascript-typescript-0.0.7/node_modules/javascript-typescript-langserver/lib/util.js:46:83
    at Array.map (<anonymous>)
    at Object.normalizeUri (/Users/m/.vscode/extensions/sourcegraph.javascript-typescript-0.0.7/node_modules/javascript-typescript-langserver/lib/util.js:46:49)
    at Glob.<anonymous> (/Users/m/.vscode/extensions/sourcegraph.javascript-typescript-0.0.7/node_modules/javascript-typescript-langserver/lib/fs.js:62:40)
    at Glob.emit (events.js:200:13)
    at Glob._emitMatch (/Users/m/.vscode/extensions/sourcegraph.javascript-typescript-0.0.7/node_modules/glob/glob.js:489:8)
    at Glob._processSimple2 (/Users/m/.vscode/extensions/sourcegraph.javascript-typescript-0.0.7/node_modules/glob/glob.js:705:8)
    at /Users/m/.vscode/extensions/sourcegraph.javascript-typescript-0.0.7/node_modules/glob/glob.js:676:10
    at Glob._stat2 (/Users/m/.vscode/extensions/sourcegraph.javascript-typescript-0.0.7/node_modules/glob/glob.js:789:10)