private void RegisterThemeScript(IModelSyntaxHighLight syntaxHighLight) { if (!string.IsNullOrWhiteSpace(syntaxHighLight.Theme)) { WebWindow.CurrentRequestWindow.RegisterClientScriptInclude("AceThemeJs" + syntaxHighLight.Theme, "https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.3/theme-" + syntaxHighLight.Theme + ".js"); } }
private string ConfigureMouse(IModelSyntaxHighLight syntaxHighLight) { return(GetOptionAssigment(syntaxHighLight.ScrollSpeed, "scrollSpeed") + @" " + GetOptionAssigment(syntaxHighLight.DragDelay, "dragDelay") + @" tooltipFollowsMouse: " + syntaxHighLight.TooltipFollowsMouse.ToString().ToLower() + @", dragEnabled: " + syntaxHighLight.DragEnabled.ToString().ToLower() + @", " + GetOptionAssigment(syntaxHighLight.FocusTimeout, "focusTimeout")); }
private string ConfigureEditor(IModelSyntaxHighLight syntaxHighLight, bool allowEdit) { return(@"editor.setOptions({" + ConfigureEditorCore(syntaxHighLight, allowEdit) + ConfigureRenderer(syntaxHighLight) + ConfigureMouse(syntaxHighLight) + ConfigureSession(syntaxHighLight) + @",});"); }
private object ConfigureEditorCore(IModelSyntaxHighLight syntaxHighLight, bool allowEdit) { return(@"highlightActiveLine: " + syntaxHighLight.HighlightActiveLine.ToString().ToLower() + @", highlightSelectedWord: " + syntaxHighLight.HighlightSelectedWord.ToString().ToLower() + @", cursorStyle: " + syntaxHighLight.CursorStyle.ToString().ToLower() + @", behavioursEnabled: " + syntaxHighLight.BehavioursEnabled.ToString().ToLower() + @", wrapBehavioursEnabled: " + syntaxHighLight.WrapBehavioursEnabled.ToString().ToLower() + @", autoScrollEditorIntoView: " + syntaxHighLight.AutoScrollEditorIntoView.ToString().ToLower() + @", readOnly: " + (syntaxHighLight.ReadOnly ?? !allowEdit).ToString().ToLower() + @","); }
private string ConfigureSession(IModelSyntaxHighLight syntaxHighLight) { return(GetOptionAssigment(syntaxHighLight.FirstLineNumber, "firstLineNumber") + @" " + GetOptionAssigment(syntaxHighLight.TabSize, "tabSize") + @" overwrite: " + syntaxHighLight.Overwrite.ToString().ToLower() + @", newLineMode: " + syntaxHighLight.NewLineMode.ToString().ToLower() + @", useWorker: " + syntaxHighLight.UseWorker.ToString().ToLower() + @", useSoftTabs: " + syntaxHighLight.UseSoftTabs.ToString().ToLower() + @", wrap: " + syntaxHighLight.ToggleWordWrap.ToString().ToLower()); }
public void Configure(string editorID, IModelSyntaxHighLight syntaxHighLight, bool allowEdit, string text) { var script = @"var timer = setInterval(function(){ clearInterval(timer); if (!document.getElementById('AceEditor" + editorID + @"')) return; var editor = ace.edit('AceEditor" + editorID + @"'); editor.getSession().setMode('ace/mode/" + syntaxHighLight.Mode + @"');" + ConfigureEditor(syntaxHighLight, allowEdit) + BindEditorToControl(allowEdit, editorID) + AssignTheme(syntaxHighLight) + @"editor.resize(); },1);"; RegisterThemeScript(syntaxHighLight); WebWindow.CurrentRequestWindow.RegisterStartupScript("AceEditor" + editorID + "InitScript", script); RegisterJsLibScript(); }
private string ConfigureRenderer(IModelSyntaxHighLight syntaxHighLight) { return(@"vScrollBarAlwaysVisible: " + syntaxHighLight.VScrollBarAlwaysVisible.ToString().ToLower() + @", hScrollBarAlwaysVisible: " + syntaxHighLight.HScrollBarAlwaysVisible.ToString().ToLower() + @", highlightGutterLine: " + syntaxHighLight.HighlightGutterLine.ToString().ToLower() + @", animatedScroll: " + syntaxHighLight.AnimatedScroll.ToString().ToLower() + @", showInvisibles: " + syntaxHighLight.ShowInvisibles.ToString().ToLower() + @", showPrintMargin: " + syntaxHighLight.ShowPrintMargin.ToString().ToLower() + @", printMarginColumn: " + syntaxHighLight.PrintMarginColumn.ToString().ToLower() + @", fadeFoldWidgets: " + syntaxHighLight.FadeFoldWidgets.ToString().ToLower() + @", showFoldWidgets: " + syntaxHighLight.ShowFoldWidgets.ToString().ToLower() + @", showLineNumbers: " + syntaxHighLight.ShowLineNumbers.ToString().ToLower() + @", showGutter: " + syntaxHighLight.ShowGutter.ToString().ToLower() + @", displayIndentGuides: " + syntaxHighLight.DisplayIndentGuides.ToString().ToLower() + @", scrollPastEnd: " + syntaxHighLight.ScrollPastEnd.ToString().ToLower() + @", scrollPastEnd: " + syntaxHighLight.ScrollPastEnd.ToString().ToLower() + @", fixedWidthGutter: " + syntaxHighLight.FixedWidthGutter.ToString().ToLower() + @", " + GetOptionAssigment(syntaxHighLight.FontSize, "fontSize") + @" " + GetOptionAssigment(syntaxHighLight.MaxLines, "maxLines") + @" " + GetOptionAssigment(syntaxHighLight.MinLines, "minLines")); }
private string AssignTheme(IModelSyntaxHighLight syntaxHighLight) { return(!String.IsNullOrEmpty(syntaxHighLight.Theme) ? "editor.setTheme('ace/theme/" + syntaxHighLight.Theme + "');" : null); }