The Synthesizer Generator is a tool for creating language-sensitive editing environments and interfaces. Rules input to the Synthesizer Generator define a language's abstract syntax, context-sensitive relationships, display formats, concrete input syntax, and source-to-source restructuring transformations. The Synthesizer Generator then creates an editor for manipulating objects according to the given rules. The treatment of language syntax and static semantics by the Synthesizer Generator is of particular importance. The editor-designer's specification of the language's syntax can address not only context-free syntax but also context-sensitive conditions such as type correctness. As the user creates and modifies objects, the generated editor incrementally checks for violations of specified context conditions.