diff --git a/src/main/resources/org/jenkinsci/plugins/managedscripts/ScriptConfig/edit-config-codemirror.js b/src/main/resources/org/jenkinsci/plugins/managedscripts/ScriptConfig/edit-config-codemirror.js new file mode 100644 index 0000000..8e664a3 --- /dev/null +++ b/src/main/resources/org/jenkinsci/plugins/managedscripts/ScriptConfig/edit-config-codemirror.js @@ -0,0 +1,27 @@ +document.onreadystatechange = function(){ + // editor.on seems to require newer codemirror version + // var pending; + // editor.on("change", function() { + // clearTimeout(pending); + // pending = setTimeout(update, 400); + // }); + function looksLike(code) { + var firstline = code.split('\n')[0]; + if(firstline.indexOf('#!') == 0){ + var shellpattern = /bin\/[\w]{0,2}sh/; + var shellpatternwin = /[\w]{0,2}sh\.exe/; + if(firstline.indexOf('python') > -1){ + return "python"; + // perl requires stapler-adjunct-codemirror > 1.3 + }else if(firstline.indexOf('perl') > -1){ + return "perl"; + }else if(shellpattern.exec(firstline) || shellpatternwin.exec(firstline)){ + return "shell"; + } + } + } + function update() { + editor.setOption("mode", looksLike(editor.getValue())); + } + update(); +}; diff --git a/src/main/resources/org/jenkinsci/plugins/managedscripts/ScriptConfig/edit-config.jelly b/src/main/resources/org/jenkinsci/plugins/managedscripts/ScriptConfig/edit-config.jelly index 9590573..480bb51 100644 --- a/src/main/resources/org/jenkinsci/plugins/managedscripts/ScriptConfig/edit-config.jelly +++ b/src/main/resources/org/jenkinsci/plugins/managedscripts/ScriptConfig/edit-config.jelly @@ -55,34 +55,6 @@ THE SOFTWARE. org.kohsuke.stapler.codemirror.mode.shell.shell, org.kohsuke.stapler.codemirror.mode.perl.perl, "/> - + \ No newline at end of file