diff --git a/src/Umbraco.Web.UI/umbraco_client/CodeArea/javascript.js b/src/Umbraco.Web.UI/umbraco_client/CodeArea/javascript.js index 9b5c0e4402..6d37c171be 100644 --- a/src/Umbraco.Web.UI/umbraco_client/CodeArea/javascript.js +++ b/src/Umbraco.Web.UI/umbraco_client/CodeArea/javascript.js @@ -10,16 +10,18 @@ function resizeTextArea(textEditor, offsetX, offsetY) { var currentHandle = null, currentLine; function updateLineInfo(cm) { + var line = cm.getCursor().line, handle = cm.getLineHandle(line); if (handle == currentHandle && line == currentLine) return; if (currentHandle) { cm.setLineClass(currentHandle, null, null); - cm.clearMarker(currentHandle); + // cm.clearMarker(currentHandle); } + currentHandle = handle; currentLine = line; cm.setLineClass(currentHandle, null, "activeline"); - cm.setMarker(currentHandle, String(line + 1)); + //cm.setMarker(currentHandle, String(line + 1)); } diff --git a/src/umbraco.controls/CodeArea.cs b/src/umbraco.controls/CodeArea.cs index cd28223241..a6adc8e4d6 100644 --- a/src/umbraco.controls/CodeArea.cs +++ b/src/umbraco.controls/CodeArea.cs @@ -62,7 +62,7 @@ namespace umbraco.uicontrols public EditorType CodeBase { get; set; } public string ClientSaveMethod { get; set; } - public enum EditorType { JavaScript, Css, Python, XML, HTML, Razor, HtmlMixed} + public enum EditorType { JavaScript, Css, Python, XML, HTML, Razor, HtmlMixed } protected override void OnInit(EventArgs e) { @@ -72,8 +72,8 @@ namespace umbraco.uicontrols if (CodeMirrorEnabled) { ClientDependencyLoader.Instance.RegisterDependency(0, "CodeMirror/js/lib/codemirror.js", "UmbracoClient", ClientDependencyType.Javascript); - - + + ClientDependencyLoader.Instance.RegisterDependency(2, "CodeMirror/js/mode/" + CodeBase.ToString().ToLower() + "/" + CodeBase.ToString().ToLower() + ".js", "UmbracoClient", ClientDependencyType.Javascript); if (CodeBase == EditorType.HtmlMixed) { @@ -82,19 +82,21 @@ namespace umbraco.uicontrols ClientDependencyLoader.Instance.RegisterDependency(1, "CodeMirror/js/mode/css/css.js", "UmbracoClient", ClientDependencyType.Javascript); } - + ClientDependencyLoader.Instance.RegisterDependency(2, "CodeMirror/js/lib/codemirror.css", "UmbracoClient", ClientDependencyType.Css); ClientDependencyLoader.Instance.RegisterDependency(3, "CodeArea/styles.css", "UmbracoClient", ClientDependencyType.Css); - if (AutoSuggest && HttpContext.Current.Request.Browser.Browser != "IE") - { - ClientDependencyLoader.Instance.RegisterDependency(3, "CodeMirror/js/lib/util/simple-hint-customized.js", "UmbracoClient", ClientDependencyType.Javascript); - - ClientDependencyLoader.Instance.RegisterDependency(4, "CodeMirror/js/lib/util/" + CodeBase.ToString().ToLower() + "-hint.js", "UmbracoClient", ClientDependencyType.Javascript); - ClientDependencyLoader.Instance.RegisterDependency(5, "CodeMirror/js/lib/util/" + CodeBase.ToString().ToLower() + "-hints.js", "UmbracoClient", ClientDependencyType.Javascript); - - ClientDependencyLoader.Instance.RegisterDependency(4, "CodeMirror/js/lib/util/simple-hint.css", "UmbracoClient", ClientDependencyType.Css); - } + + + //if (AutoSuggest && HttpContext.Current.Request.Browser.Browser != "IE") + //{ + // ClientDependencyLoader.Instance.RegisterDependency(3, "CodeMirror/js/lib/util/simple-hint-customized.js", "UmbracoClient", ClientDependencyType.Javascript); + + // ClientDependencyLoader.Instance.RegisterDependency(4, "CodeMirror/js/lib/util/" + CodeBase.ToString().ToLower() + "-hint.js", "UmbracoClient", ClientDependencyType.Javascript); + // ClientDependencyLoader.Instance.RegisterDependency(5, "CodeMirror/js/lib/util/" + CodeBase.ToString().ToLower() + "-hints.js", "UmbracoClient", ClientDependencyType.Javascript); + + // ClientDependencyLoader.Instance.RegisterDependency(4, "CodeMirror/js/lib/util/simple-hint.css", "UmbracoClient", ClientDependencyType.Css); + //} } } @@ -137,7 +139,7 @@ namespace umbraco.uicontrols EnsureChildControls(); var jsEventCode = ""; - + if (!CodeMirrorEnabled) { @@ -167,8 +169,6 @@ namespace umbraco.uicontrols OffSetX += 20; } - - jsEventCode += @" //create the editor @@ -181,11 +181,11 @@ namespace umbraco.uicontrols jQuery(window).resize(function(){ resizeTextArea(m_textEditor, " + OffSetX.ToString() + "," + OffSetY.ToString() + @"); }); jQuery(document).ready(function(){ resizeTextArea(m_textEditor, " + OffSetX.ToString() + "," + OffSetY.ToString() + @"); });"; - /* - if (!UmbracoSettings.ScriptDisableEditor && HttpContext.Current.Request.Browser.Browser == "IE") - { - jsEventCode += "jQuery('
" + ui.Text("codemirroriewarning").Replace("'", "\\'") + "
').insertAfter('#" + this.ClientID + "');"; - }*/ + /* + if (!UmbracoSettings.ScriptDisableEditor && HttpContext.Current.Request.Browser.Browser == "IE") + { + jsEventCode += "jQuery('" + ui.Text("codemirroriewarning").Replace("'", "\\'") + "
').insertAfter('#" + this.ClientID + "');"; + }*/ } @@ -209,15 +209,16 @@ namespace umbraco.uicontrols var extraKeys = ""; var editorMimetype = ""; - if (AutoSuggest) - { - extraKeys = @", - extraKeys: { - ""'@'"": function(cm) { CodeMirror.{lang}Hint(cm, '@'); }, - ""'.'"": function(cm) { CodeMirror.{lang}Hint(cm, '.'); }, - ""Ctrl-Space"": function(cm) { CodeMirror.{lang}Hint(cm, ''); } - }".Replace("{lang}", CodeBase.ToString().ToLower()); - } +// if (AutoSuggest && HttpContext.Current.Request.Browser.Browser != "IE") +// { +// extraKeys = @", +// extraKeys: { +// ""'@'"": function(cm) { CodeMirror.{lang}Hint(cm, '@'); }, +// ""'.'"": function(cm) { CodeMirror.{lang}Hint(cm, '.'); }, +// ""Ctrl-Space"": function(cm) { CodeMirror.{lang}Hint(cm, ''); } +// }".Replace("{lang}", CodeBase.ToString().ToLower()); +// } + if (!string.IsNullOrEmpty(EditorMimeType)) editorMimetype = @", @@ -235,18 +236,17 @@ namespace umbraco.uicontrols indentUnit: 4, indentWithTabs: true, enterMode: ""keep"", - textWrapping: false" + - editorMimetype + @", - gutter: true, onCursorActivity: updateLineInfo, - onChange: updateLineInfo" + + lineWrapping: false" + + editorMimetype + @", + lineNumbers: true" + extraKeys + @" }); - - updateLineInfo(codeEditor); + + updateLineInfo(codeEditor); "; - + /* string[] parserFiles = new string[] { "tokenizejavascript.js", "parsejavascript.js" }; string[] cssFile = new string[] { "jscolors.css", "umbracoCustom.css" };