12345678910111213141516171819202122232425262728293031 |
- // 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");
|