1. A method performed on a computing device, the method comprising performing code auto-completion based on dynamic analysis that includes discovering code elements in a file comprising code, where at least a portion of the discovered code elements are not discoverable based on static analysis.