1
0
mirror of https://github.com/BoostIo/Boostnote synced 2026-01-06 05:29:21 +00:00

new feature: auto detect snippet language

only try to detect after pasting and mode has not been set and default snippet language is "Auto Detect"
This commit is contained in:
HarlanLuo
2019-01-01 16:23:15 +08:00
parent 05da826c24
commit deb2cd0156
5 changed files with 104 additions and 7 deletions

View File

@@ -599,12 +599,14 @@ class SnippetNoteDetail extends React.Component {
}
addSnippet () {
const { config } = this.props
const { config: { editor: { snippetDefaultLanguage } } } = this.props
const { note } = this.state
const defaultLanguage = snippetDefaultLanguage === 'Auto Detect' ? null : snippetDefaultLanguage
note.snippets = note.snippets.concat([{
name: '',
mode: config.editor.snippetDefaultLanguage || 'text',
mode: defaultLanguage,
content: '',
linesHighlighted: []
}])
@@ -696,8 +698,6 @@ class SnippetNoteDetail extends React.Component {
const viewList = note.snippets.map((snippet, index) => {
const isActive = this.state.snippetIndex === index
let syntax = CodeMirror.findModeByName(convertModeName(snippet.mode))
if (syntax == null) syntax = CodeMirror.findModeByName('Plain Text')
return <div styleName='tabView'
key={index}
style={{zIndex: isActive ? 5 : 4}}

View File

@@ -481,6 +481,7 @@ class UiTab extends React.Component {
ref='editorSnippetDefaultLanguage'
onChange={(e) => this.handleUIChange(e)}
>
<option key='Auto Detect' value='Auto Detect'>Auto Detect</option>
{
_.sortBy(CodeMirror.modeInfo.map(mode => mode.name)).map(name => (<option key={name} value={name}>{name}</option>))
}