aboutsummaryrefslogtreecommitdiffstats
path: root/src/webview/spellchecker.js
blob: 5beb77e03daed8edda06eef8f1e41ac879e60c94 (plain) (blame)
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
import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker';

import { isMac } from '../environment';

export default class Spellchecker {
  isEnabled = false;
  spellchecker = null;

  enable() {
    this.spellchecker = new SpellCheckHandler();
    if (!isMac) {
      this.spellchecker.attachToInput();
      this.spellchecker.switchLanguage(navigator.language);
    }

    const contextMenuBuilder = new ContextMenuBuilder(this.spellchecker);

    new ContextMenuListener((info) => { // eslint-disable-line
      contextMenuBuilder.showPopupMenu(info);
    });
  }

  // TODO: this does not work yet, needs more testing
  // switchLanguage(language) {
  //   if (language !== 'auto') {
  //     this.spellchecker.switchLanguage(language);
  //   }
  // }
}