提交 332908b2 编写于 作者: M Martin Aeschlimann

[json] Hover/completion not working for scoped packages. Fixes #10541

上级 4950c7cd
......@@ -121,29 +121,29 @@ export class PackageJSONContribution implements IJSONContribution {
if ((location.matches(['dependencies', '*']) || location.matches(['devDependencies', '*']) || location.matches(['optionalDependencies', '*']) || location.matches(['peerDependencies', '*']))) {
let currentKey = location.path[location.path.length - 1];
if (typeof currentKey === 'string') {
let queryUrl = 'http://registry.npmjs.org/' + encodeURIComponent(currentKey) + '/latest';
let queryUrl = 'http://registry.npmjs.org/' + encodeURIComponent(currentKey).replace('%40', '@');
return this.xhr({
url : queryUrl
}).then((success) => {
try {
let obj = JSON.parse(success.responseText);
if (obj && obj.version) {
let version = obj.version;
let name = JSON.stringify(version);
let latest = obj && obj['dist-tags'] && obj['dist-tags']['latest'];
if (latest) {
let name = JSON.stringify(latest);
let proposal = new CompletionItem(name);
proposal.kind = CompletionItemKind.Property;
proposal.insertText = name;
proposal.documentation = localize('json.npm.latestversion', 'The currently latest version of the package');
result.add(proposal);
name = JSON.stringify('^' + version);
name = JSON.stringify('^' + latest);
proposal = new CompletionItem(name);
proposal.kind = CompletionItemKind.Property;
proposal.insertText = name;
proposal.documentation = localize('json.npm.majorversion', 'Matches the most recent major version (1.x.x)');
result.add(proposal);
name = JSON.stringify('~' + version);
name = JSON.stringify('~' + latest);
proposal = new CompletionItem(name);
proposal.kind = CompletionItemKind.Property;
proposal.insertText = name;
......@@ -179,8 +179,8 @@ export class PackageJSONContribution implements IJSONContribution {
}
private getInfo(pack: string): Thenable<string[]> {
let queryUrl = 'http://registry.npmjs.org/' + encodeURIComponent(pack) + '/latest';
let queryUrl = 'http://registry.npmjs.org/' + encodeURIComponent(pack).replace('%40', '@');
return this.xhr({
url : queryUrl
}).then((success) => {
......@@ -191,8 +191,9 @@ export class PackageJSONContribution implements IJSONContribution {
if (obj.description) {
result.push(obj.description);
}
if (obj.version) {
result.push(localize('json.npm.version.hover', 'Latest version: {0}', obj.version));
let latest = obj && obj['dist-tags'] && obj['dist-tags']['latest'];
if (latest) {
result.push(localize('json.npm.version.hover', 'Latest version: {0}', latest));
}
return result;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册