1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 01:36:22 +00:00

Merge pull request #218 from asmsuechan/feature-vim-keymap

Adds vim keymap setting
This commit is contained in:
Sota Sugiura
2017-01-14 17:03:20 +09:00
committed by GitHub
9 changed files with 35 additions and 2 deletions

View File

@@ -52,7 +52,7 @@ export default class CodeEditor extends React.Component {
indentUnit: this.props.indentSize, indentUnit: this.props.indentSize,
tabSize: this.props.indentSize, tabSize: this.props.indentSize,
indentWithTabs: this.props.indentType !== 'space', indentWithTabs: this.props.indentType !== 'space',
keyMap: 'sublime', keyMap: this.props.keyMap,
inputStyle: 'textarea', inputStyle: 'textarea',
extraKeys: { extraKeys: {
Tab: function (cm) { Tab: function (cm) {
@@ -102,6 +102,9 @@ export default class CodeEditor extends React.Component {
if (prevProps.fontFamily !== this.props.fontFamily) { if (prevProps.fontFamily !== this.props.fontFamily) {
needRefresh = true needRefresh = true
} }
if (prevProps.keyMap !== this.props.keyMap) {
needRefresh = true
}
if (prevProps.indentSize !== this.props.indentSize) { if (prevProps.indentSize !== this.props.indentSize) {
this.editor.setOption('indentUnit', this.props.indentSize) this.editor.setOption('indentUnit', this.props.indentSize)
@@ -194,6 +197,7 @@ CodeEditor.propTypes = {
CodeEditor.defaultProps = { CodeEditor.defaultProps = {
readOnly: false, readOnly: false,
theme: 'xcode', theme: 'xcode',
keyMap: 'sublime',
fontSize: 14, fontSize: 14,
fontFamily: 'Monaco, Consolas', fontFamily: 'Monaco, Consolas',
indentSize: 4, indentSize: 4,

View File

@@ -166,6 +166,7 @@ class MarkdownEditor extends React.Component {
mode='GitHub Flavored Markdown' mode='GitHub Flavored Markdown'
value={value} value={value}
theme={config.editor.theme} theme={config.editor.theme}
keyMap={config.editor.keyMap}
fontFamily={config.editor.fontFamily} fontFamily={config.editor.fontFamily}
fontSize={editorFontSize} fontSize={editorFontSize}
indentType={config.editor.indentType} indentType={config.editor.indentType}
@@ -179,6 +180,7 @@ class MarkdownEditor extends React.Component {
} }
style={previewStyle} style={previewStyle}
theme={config.ui.theme} theme={config.ui.theme}
keyMap={config.editor.keyMap}
fontSize={config.preview.fontSize} fontSize={config.preview.fontSize}
fontFamily={config.preview.fontFamily} fontFamily={config.preview.fontFamily}
codeBlockTheme={config.preview.codeBlockTheme} codeBlockTheme={config.preview.codeBlockTheme}

View File

@@ -152,6 +152,7 @@ class NoteDetail extends React.Component {
fontSize={editorFontSize} fontSize={editorFontSize}
indentType={config.editor.indentType} indentType={config.editor.indentType}
indentSize={editorIndentSize} indentSize={editorIndentSize}
keyMap={config.editor.keyMap}
readOnly readOnly
ref={'code-' + index} ref={'code-' + index}
/> />

View File

@@ -509,6 +509,7 @@ class SnippetNoteDetail extends React.Component {
fontSize={editorFontSize} fontSize={editorFontSize}
indentType={config.editor.indentType} indentType={config.editor.indentType}
indentSize={editorIndentSize} indentSize={editorIndentSize}
keyMap={config.editor.keyMap}
onChange={(e) => this.handleCodeChange(index)(e)} onChange={(e) => this.handleCodeChange(index)(e)}
ref={'code-' + index} ref={'code-' + index}
/> />

View File

@@ -25,6 +25,7 @@ export const DEFAULT_CONFIG = {
}, },
editor: { editor: {
theme: 'default', theme: 'default',
keyMap: 'sublime',
fontSize: '14', fontSize: '14',
fontFamily: 'Monaco, Consolas', fontFamily: 'Monaco, Consolas',
indentType: 'space', indentType: 'space',

View File

@@ -94,6 +94,10 @@
p p
line-height 1.2 line-height 1.2
.note-for-keymap
margin-left: 10px
font-size: 12px
colorDarkControl() colorDarkControl()
border-color $ui-dark-borderColor border-color $ui-dark-borderColor
background-color $ui-dark-backgroundColor background-color $ui-dark-backgroundColor

View File

@@ -31,7 +31,8 @@ class UiTab extends React.Component {
fontFamily: this.refs.editorFontFamily.value, fontFamily: this.refs.editorFontFamily.value,
indentType: this.refs.editorIndentType.value, indentType: this.refs.editorIndentType.value,
indentSize: this.refs.editorIndentSize.value, indentSize: this.refs.editorIndentSize.value,
switchPreview: this.refs.editorSwitchPreview.value switchPreview: this.refs.editorSwitchPreview.value,
keyMap: this.refs.editorKeyMap.value
} }
config.preview = { config.preview = {
fontSize: this.refs.previewFontSize.value, fontSize: this.refs.previewFontSize.value,
@@ -178,6 +179,23 @@ class UiTab extends React.Component {
</select> </select>
</div> </div>
</div> </div>
<div styleName='group-section'>
<div styleName='group-section-label'>
Editor Keymap
</div>
<div styleName='group-section-control'>
<select value={config.editor.keyMap}
ref='editorKeyMap'
onChange={(e) => this.handleUIChange(e)}
>
<option value='sublime'>default</option>
<option value='vim'>vim</option>
</select>
<span styleName='note-for-keymap'>Please reload boostnote after you change the keymap</span>
</div>
</div>
<div styleName='group-header2'>Preview</div> <div styleName='group-header2'>Preview</div>
<div styleName='group-section'> <div styleName='group-section'>
<div styleName='group-section-label'> <div styleName='group-section-label'>

View File

@@ -31,6 +31,7 @@
<script src="../node_modules/codemirror/addon/mode/overlay.js"></script> <script src="../node_modules/codemirror/addon/mode/overlay.js"></script>
<script src="../node_modules/codemirror/addon/mode/loadmode.js"></script> <script src="../node_modules/codemirror/addon/mode/loadmode.js"></script>
<script src="../node_modules/codemirror/keymap/sublime.js"></script> <script src="../node_modules/codemirror/keymap/sublime.js"></script>
<script src="../node_modules/codemirror/keymap/vim.js"></script>
<script src="../node_modules/codemirror/addon/runmode/runmode.js"></script> <script src="../node_modules/codemirror/addon/runmode/runmode.js"></script>
<script src="../node_modules/raphael/raphael.min.js"></script> <script src="../node_modules/raphael/raphael.min.js"></script>

View File

@@ -57,6 +57,7 @@
<script src="../node_modules/codemirror/addon/mode/overlay.js"></script> <script src="../node_modules/codemirror/addon/mode/overlay.js"></script>
<script src="../node_modules/codemirror/addon/mode/loadmode.js"></script> <script src="../node_modules/codemirror/addon/mode/loadmode.js"></script>
<script src="../node_modules/codemirror/keymap/sublime.js"></script> <script src="../node_modules/codemirror/keymap/sublime.js"></script>
<script src="../node_modules/codemirror/keymap/vim.js"></script>
<script src="../node_modules/codemirror/addon/runmode/runmode.js"></script> <script src="../node_modules/codemirror/addon/runmode/runmode.js"></script>
<script src="../node_modules/codemirror/addon/edit/continuelist.js"></script> <script src="../node_modules/codemirror/addon/edit/continuelist.js"></script>