From c80709e5a3a31c6e7a2b9e099101722b9dda1ef8 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Thu, 31 Jul 2014 21:25:34 +0000 Subject: [PATCH] Copy codemirror mode configuration instead of changing it If we change it, the modified (wrong) mode is saved in the notebook, which wrecks havoc on highlighting once the notebook is saved and reopened. --- .../html/static/notebook/js/codemirror-ipython.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/IPython/html/static/notebook/js/codemirror-ipython.js b/IPython/html/static/notebook/js/codemirror-ipython.js index 096ba1785..1fb01ee3b 100644 --- a/IPython/html/static/notebook/js/codemirror-ipython.js +++ b/IPython/html/static/notebook/js/codemirror-ipython.js @@ -7,10 +7,15 @@ CodeMirror.requireMode('python',function(){ "use strict"; CodeMirror.defineMode("ipython", function(conf, parserConf) { - - parserConf.singleOperators = new RegExp("^[\\+\\-\\*/%&|\\^~<>!\\?]"); - parserConf.name = 'python' - return CodeMirror.getMode(conf, parserConf); + var pythonConf = {}; + for (var prop in parserConf) { + if (parserConf.hasOwnProperty(prop)) { + pythonConf[prop] = parserConf[prop]; + } + } + pythonConf.name = 'python'; + pythonConf.singleOperators = new RegExp("^[\\+\\-\\*/%&|\\^~<>!\\?]"); + return CodeMirror.getMode(conf, pythonConf); }, 'python'); CodeMirror.defineMIME("text/x-ipython", "ipython");