1. A method for editing a source code file, comprising: modifying the source code file using a language-independent source code editor, wherein the language-independent source code editor does not include a language-specific lexical analyzer or parser; sending a change notification to an extensible multi-language compiler framework identifying a changed file, changed text, and type of change, wherein the editor communicates to the compiler framework using language-independent metadata, and wherein the compiler framework provides a stream of token nodes, supports mixing and nesting of languages within a source file, and provides the editor with information about the source file, comprising signatures of classes defined by the source file, errors found in the source file, stacks of nested languages at any point in the source file, and information exposed by any language; retokenizing the source code file and updating token and node information; enqueueing a task for the extensible multi-language compiler framework to complete compilation in a background thread; repainting a screen giving immediate feedback to a user; and emptying enqueued tasks and completing remaining steps in the background thread; wherein the extensible multi-language compiler framework has error correction in code-generation, permitting the user to run code even if there is an error in the code; wherein a thread pool allows compilation of multiple files to be performed in parallel; wherein a type cache contains signatures for classes.