scripts/generateFiles.ts in language_server-protocol-0.3.0 vs scripts/generateFiles.ts in language_server-protocol-0.4.0
- old
+ new
@@ -57,14 +57,18 @@
};
}
const handleInterface = (node: ts.InterfaceDeclaration) => {
const members = node.members.filter(member => member.name).map(member => serialize(member));
+ const parentName = node.heritageClauses && node.heritageClauses[0].getLastToken().getText();
+ const parent = output.find(i => i.interface && (i.interface.name === parentName));
output.push(
{
interface: serialize(node),
+ parent: parent,
+ allMembers: ((parent && parent.allMembers) || []).concat(members),
members
}
);
}
@@ -146,11 +150,11 @@
{{#if definition.interface.documentation}}
#
{{comment definition.interface.documentation indent=6}}
#
{{/if}}
- class {{definition.interface.name}}
- def initialize({{params definition.members}})
+ class {{definition.interface.name}}{{#if definition.parent}} < {{definition.parent.interface.name}}{{/if}}
+ def initialize({{params definition.allMembers}})
@attributes = {}
{{#each definition.members}}
@attributes[:{{name}}] = {{local_var name}}{{#if optional}} if {{local_var name}}{{/if}}
{{/each}}