1. A computer-implemented method, comprising: receiving a user input into a user interface of an input method editor (IME); determining, based on the user input, whether to process the user input with a script engine; when the user input indicates that the user input is to be processed with the script engine: providing the user input to the script engine, selecting a script from a plurality of scripts electronically stored in a script repository, processing the user input through the script using the script engine to generate one or more candidates, and providing the one or more candidates to an IME engine; when the user input indicates that the user input is not to be processed with the script engine: providing the user input to the IME engine, and processing the user input with the IME engine to generate the one or more candidates; and receiving an extension mode input indicating operation of the IME in an extension mode, operating the IME in the extension mode in response to receiving the extension mode input, and providing all user input to the script engine when operating in the extension mode.