/
spell-checker.js
44 lines (35 loc) · 1.29 KB
/
spell-checker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import CodeMirrorSpellChecker from 'codemirror-spell-checker-inkdrop'
import LanguageChooser from './spell-checker-display'
module.exports = {
activate () {
const { CodeMirror } = require('inkdrop')
let language = inkdrop.config.get('plugins.spell-checker.language')
if (!language) {
language = 'en_US'
}
// Store the latest languages
inkdrop.config.set('plugins.spell-checker.languages', CodeMirrorSpellChecker.languages)
CodeMirrorSpellChecker({
codeMirrorInstance: CodeMirror,
ignoreCodeBlocks: true,
language: language
})
global.inkdrop.on('editor:init', ::this.handleEditorInit)
inkdrop.components.registerClass(LanguageChooser)
inkdrop.layouts.addComponentToLayout('modals', 'LanguageChooser')
},
deactivate () {
inkdrop.layouts.removeComponentFromLayout('modals', 'LanguageChooser')
inkdrop.components.deleteClass(LanguageChooser)
const editor = global.inkdrop.getActiveEditor()
if (editor && editor.codeMirror && this.originalMode) {
editor.codeMirror.setOption('mode', this.originalMode)
}
},
handleEditorInit (editor) {
const cm = editor.codeMirror
this.originalMode = cm.getOption('mode')
cm.setOption('backdrop', this.originalMode)
cm.setOption('mode', 'spell-checker')
}
}