From e93e2f31a00e71b26443abce5646d696d84073d3 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Tue, 8 Oct 2024 20:48:45 -0500 Subject: [PATCH] add back sunburst theme --- app/settings.rb | 7 +- migrations/128_add_editor_settings.rb | 3 +- public/js/ace/theme-sunburst.js | 130 ++++++++++++++++++++++++++ views/site_files/text_editor.erb | 32 ++++--- 4 files changed, 152 insertions(+), 20 deletions(-) create mode 100644 public/js/ace/theme-sunburst.js diff --git a/app/settings.rb b/app/settings.rb index 7eebd98a..03ddda00 100644 --- a/app/settings.rb +++ b/app/settings.rb @@ -312,10 +312,11 @@ post '/settings/change_editor_settings' do owner = current_site.owner - owner.autocomplete_enabled = params[:autocomplete_enabled] + owner.editor_autocomplete_enabled = params[:editor_autocomplete_enabled] owner.editor_font_size = params[:editor_font_size] - owner.keyboard_mode = params[:keyboard_mode] - owner.tab_width = params[:tab_width] + owner.editor_keyboard_mode = params[:editor_keyboard_mode] + owner.editor_tab_width = params[:editor_tab_width] + owner.editor_theme = params[:editor_theme] owner.save_changes validate: false flash[:success] = 'Code editor settings have been updated.' diff --git a/migrations/128_add_editor_settings.rb b/migrations/128_add_editor_settings.rb index 73051b4d..f7d7e75b 100644 --- a/migrations/128_add_editor_settings.rb +++ b/migrations/128_add_editor_settings.rb @@ -12,5 +12,4 @@ Sequel.migration do DB.drop_column :sites, :keyboard_mode DB.drop_column :sites, :tab_width } -end - +end \ No newline at end of file diff --git a/public/js/ace/theme-sunburst.js b/public/js/ace/theme-sunburst.js new file mode 100644 index 00000000..f8e75d04 --- /dev/null +++ b/public/js/ace/theme-sunburst.js @@ -0,0 +1,130 @@ +ace.define("ace/theme/sunburst",["require","exports","module","ace/lib/dom"], function(require, exports, module) {/* ***** BEGIN LICENSE BLOCK ***** + * Distributed under the BSD license: + * + * Copyright (c) 2010, Ajax.org B.V. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Ajax.org B.V. nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ***** END LICENSE BLOCK ***** */ + + +exports.isDark = true; +exports.cssClass = "ace-sunburst"; +exports.cssText = ".ace-sunburst .ace_gutter {\ +background: #000000;\ +color: rgb(124,124,124)\ +}\ +.ace-sunburst .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-sunburst {\ +background-color: #000000;\ +color: #F8F8F8\ +}\ +.ace-sunburst .ace_cursor {\ +color: #A7A7A7\ +}\ +.ace-sunburst .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20)\ +}\ +.ace-sunburst.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #000000;\ +border-radius: 2px\ +}\ +.ace-sunburst .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174)\ +}\ +.ace-sunburst .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(202, 226, 251, 0.24)\ +}\ +.ace-sunburst .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.10)\ +}\ +.ace-sunburst .ace_gutter-active-line {\ +background-color: rgba(255, 255, 255, 0.10)\ +}\ +.ace-sunburst .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(221, 240, 255, 0.20)\ +}\ +.ace-sunburst .ace_fold {\ +background-color: #E28964;\ +border-color: #F8F8F8\ +}\ +.ace-sunburst .ace_keyword {\ +color: #E28964\ +}\ +.ace-sunburst .ace_constant {\ +color: #3387CC\ +}\ +.ace-sunburst .ace_support {\ +color: #9B859D\ +}\ +.ace-sunburst .ace_support.ace_function {\ +color: #DAD085\ +}\ +.ace-sunburst .ace_support.ace_constant {\ +color: #CF6A4C\ +}\ +.ace-sunburst .ace_storage {\ +color: #99CF50\ +}\ +.ace-sunburst .ace_invalid.ace_illegal {\ +color: #FD5FF1;\ +background-color: rgba(86, 45, 86, 0.75)\ +}\ +.ace-sunburst .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #FD5FF1\ +}\ +.ace-sunburst .ace_string {\ +color: #65B042\ +}\ +.ace-sunburst .ace_string.ace_regexp {\ +color: #E9C062\ +}\ +.ace-sunburst .ace_comment {\ +font-style: italic;\ +color: #AEAEAE\ +}\ +.ace-sunburst .ace_variable {\ +color: #3E87E3\ +}\ +.ace-sunburst .ace_meta.ace_tag {\ +color: #89BDFF\ +}\ +.ace-sunburst .ace_markup.ace_heading {\ +color: #FEDCC5;\ +background-color: #632D04\ +}\ +.ace-sunburst .ace_markup.ace_list {\ +color: #E1D4B9\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); + +}); diff --git a/views/site_files/text_editor.erb b/views/site_files/text_editor.erb index 96d3216e..49be773f 100644 --- a/views/site_files/text_editor.erb +++ b/views/site_files/text_editor.erb @@ -148,9 +148,9 @@ @@ -280,7 +280,7 @@ <% if @ace_mode %> editor.getSession().setMode("ace/mode/<%= @ace_mode %>") <% end %> - editor.getSession().setTabSize(<%= current_site.owner.tab_width %>) + editor.getSession().setTabSize(<%= current_site.owner.editor_tab_width %>) editor.getSession().setUseWrapMode(true) editor.setFontSize(<%= current_site.owner.editor_font_size %>) editor.setShowPrintMargin(false) @@ -288,15 +288,17 @@ maxLines: Infinity, autoScrollEditorIntoView: true, // settings based options here + <% if current_site.owner.editor_autocomplete_enabled %> enableBasicAutocompletion: true, enableLiveAutocompletion: true, + <% end %> enableSnippets: true, }) - <% if current_site.owner.keyboard_mode == 1%> + <% if current_site.owner.editor_keyboard_mode == 1%> editor.setKeyboardHandler("ace/keyboard/vim"); - <% elsif current_site.owner.keyboard_mode == 2%> + <% elsif current_site.owner.editor_keyboard_mode == 2%> editor.setKeyboardHandler("ace/keyboard/emacs"); - <% elsif current_site.owner.keyboard_mode == 3%> + <% elsif current_site.owner.editor_keyboard_mode == 3%> editor.setKeyboardHandler("ace/keyboard/vscode"); <% end %>