// IPython mode is just a slightly altered Python Mode with `?` beeing a extra // single operator. Here we define `ipython` mode in the require `python` // callback to auto-load python mode, which is more likely not the best things // to do, but at least the simple one for now. "use strict"; import * as CodeMirror from 'codemirror'; import "codemirror/mode/python/python"; CodeMirror.defineMode("ipython", (config: CodeMirror.EditorConfiguration, modeOptions: any) => { var pythonConf: any = {}; for (var prop in modeOptions) { if (modeOptions.hasOwnProperty(prop)) { (pythonConf as any)[prop] = (modeOptions as any)[prop]; } } pythonConf.name = 'python'; pythonConf.singleOperators = new RegExp("^[\\+\\-\\*/%&|\\^~<>!\\?]"); if (pythonConf.version === 3) { pythonConf.identifiers = new RegExp("^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*"); } else if (pythonConf.version === 2) { pythonConf.identifiers = new RegExp("^[_A-Za-z][_A-Za-z0-9]*"); } return CodeMirror.getMode(config, pythonConf); }, 'python'); CodeMirror.defineMIME("text/x-ipython", "ipython");