diff --git a/browser/components/CodeEditor.js b/browser/components/CodeEditor.js index b1b463c7..8ecf1851 100644 --- a/browser/components/CodeEditor.js +++ b/browser/components/CodeEditor.js @@ -96,7 +96,8 @@ export default class CodeEditor extends React.Component { fontSize: config['editor-font-size'], fontFamily: config['editor-font-family'], indentType: config['editor-indent-type'], - indentSize: config['editor-indent-size'] + indentSize: config['editor-indent-size'], + themeSyntax: config['theme-syntax'] } this.silentChange = false @@ -114,7 +115,7 @@ export default class CodeEditor extends React.Component { var editor = this.editor = ace.edit(el) editor.$blockScrolling = Infinity editor.renderer.setShowGutter(true) - editor.setTheme('ace/theme/xcode') + editor.setTheme('ace/theme/' + this.state.themeSyntax) editor.moveCursorTo(0, 0) editor.setReadOnly(!!this.props.readOnly) editor.setFontSize(this.state.fontSize) @@ -202,9 +203,13 @@ export default class CodeEditor extends React.Component { fontSize: config['editor-font-size'], fontFamily: config['editor-font-family'], indentType: config['editor-indent-type'], - indentSize: config['editor-indent-size'] + indentSize: config['editor-indent-size'], + themeSyntax: config['theme-syntax'] }, function () { - var session = this.editor.getSession() + var editor = this.editor + editor.setTheme('ace/theme/' + this.state.themeSyntax) + + var session = editor.getSession() session.setUseSoftTabs(this.state.indentType === 'space') session.setTabSize(!isNaN(this.state.indentSize) ? parseInt(this.state.indentSize, 10) : 4) }) diff --git a/browser/lib/fetchConfig.js b/browser/lib/fetchConfig.js index bd57d4ca..0a8397df 100644 --- a/browser/lib/fetchConfig.js +++ b/browser/lib/fetchConfig.js @@ -13,7 +13,8 @@ const defaultConfig = { 'preview-font-size': '14', 'preview-font-family': 'Lato', 'switch-preview': 'blur', - 'disable-direct-write': false + 'disable-direct-write': false, + 'theme-syntax': 'xcode' } export default function fetchConfig () { diff --git a/browser/main/modal/Preference/AppSettingTab.js b/browser/main/modal/Preference/AppSettingTab.js index 1a028440..305495a5 100644 --- a/browser/main/modal/Preference/AppSettingTab.js +++ b/browser/main/modal/Preference/AppSettingTab.js @@ -6,6 +6,7 @@ import fetchConfig from 'browser/lib/fetchConfig' const electron = require('electron') const ipc = electron.ipcRenderer const remote = electron.remote +const ace = window.ace const OSX = global.process.platform === 'darwin' @@ -114,6 +115,7 @@ export default class AppSettingTab extends React.Component { {userAlert.message}
) : null + let aceThemeList = ace.require("ace/ext/themelist") return (