1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 17:56:25 +00:00

allow users to enable/disable editor rulers. default: disable

This commit is contained in:
Yu-Hung Ou
2018-03-21 22:31:46 +11:00
parent 29888c89ad
commit 8b11b57ec5
5 changed files with 27 additions and 5 deletions

View File

@@ -14,7 +14,8 @@ const { ipcRenderer } = require('electron')
CodeMirror.modeURL = '../node_modules/codemirror/mode/%N/%N.js'
const defaultEditorFontFamily = ['Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'monospace']
const buildCMRulers = rulers => rulers.map(ruler => ({ column: ruler }))
const buildCMRulers = (rulers, enableRulers) =>
enableRulers ? rulers.map(ruler => ({ column: ruler })) : []
function pass (name) {
switch (name) {
@@ -92,11 +93,11 @@ export default class CodeEditor extends React.Component {
}
componentDidMount () {
const { rulers } = this.props
const { rulers, enableRulers } = this.props
this.value = this.props.value
this.editor = CodeMirror(this.refs.root, {
rulers: buildCMRulers(rulers),
rulers: buildCMRulers(rulers, enableRulers),
value: this.props.value,
lineNumbers: this.props.displayLineNumbers,
lineWrapping: true,
@@ -184,6 +185,7 @@ export default class CodeEditor extends React.Component {
componentDidUpdate (prevProps, prevState) {
let needRefresh = false
const { rulers, enableRulers } = this.props
if (prevProps.mode !== this.props.mode) {
this.setMode(this.props.mode)
}
@@ -201,8 +203,8 @@ export default class CodeEditor extends React.Component {
needRefresh = true
}
if (prevProps.rulers !== this.props.rulers) {
this.editor.setOption('rulers', buildCMRulers(this.props.rulers))
if (prevProps.enableRulers !== enableRulers || prevProps.rulers !== rulers) {
this.editor.setOption('rulers', buildCMRulers(rulers, enableRulers))
}
if (prevProps.indentSize !== this.props.indentSize) {
@@ -414,6 +416,7 @@ export default class CodeEditor extends React.Component {
CodeEditor.propTypes = {
value: PropTypes.string,
enableRulers: PropTypes.bool,
rulers: PropTypes.arrayOf(Number),
mode: PropTypes.string,
className: PropTypes.string,