1. A computer-implemented method of providing inheritance to a programming object, comprising: receiving a first programming object included in a first document, wherein the first programming object is described in a declarative language; receiving inheritance information about the first programming object, wherein the inheritance information associated with the first programming object is stored separately from the first programming object; analyzing the inheritance information, wherein the analyzing identifies at least one base object from which the first programming object inherits at least one property; based on the analyzing, generating a merged first programming object, wherein the generating merges the at least one property of the at least one base object into the first document and within the first programming object, and wherein the generating further comprises: recursively analyzing each element of a node of the at least one base object identified in the inheritance information; and determining the at least one property to be inherited by the first programming object from the at least one base object based on the recursively analyzing each element of the node; and sending the merged first programming object to an editor for editing.