aboutsummaryrefslogtreecommitdiffstats
path: root/src/webview/spellchecker.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/webview/spellchecker.js')
-rw-r--r--src/webview/spellchecker.js34
1 files changed, 13 insertions, 21 deletions
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js
index b0192b7ef..ab0cc9a90 100644
--- a/src/webview/spellchecker.js
+++ b/src/webview/spellchecker.js
@@ -1,28 +1,24 @@
1import { webFrame } from 'electron'; 1import { webFrame } from 'electron';
2import fs from 'fs';
3import path from 'path';
4import { SpellCheckerProvider } from 'electron-hunspell'; 2import { SpellCheckerProvider } from 'electron-hunspell';
3import path from 'path';
5 4
6import { DICTIONARY_PATH } from '../config'; 5import { DICTIONARY_PATH } from '../config';
7 6
7
8const debug = require('debug')('Franz:spellchecker'); 8const debug = require('debug')('Franz:spellchecker');
9 9
10let provider; 10let provider;
11let currentDict; 11let currentDict;
12let _isEnabled = false; 12let _isEnabled = false;
13 13
14async function loadDictionaries() { 14async function loadDictionary(locale) {
15 const rawList = fs.readdirSync(DICTIONARY_PATH); 15 try {
16 16 // Replacing app.asar is not beautiful but unforunately necessary
17 const dicts = rawList.filter(item => !item.startsWith('.') && fs.lstatSync(path.join(DICTIONARY_PATH, item)).isDirectory()); 17 const fileLocation = path.join(DICTIONARY_PATH, `hunspell-dict-${locale}/${locale}`);
18 18 console.log(fileLocation, __dirname);
19 debug('Found dictionaries', dicts); 19 await provider.loadDictionary(locale, `${fileLocation}.dic`, `${fileLocation}.aff`);
20 20 } catch (err) {
21 for (let i = 0; i < dicts.length; i += 1) { 21 console.error('Could not load dictionary', err);
22 const fileLocation = `${DICTIONARY_PATH}/${dicts[i]}/${dicts[i]}`;
23 debug('Trying to load', fileLocation);
24 // eslint-disable-next-line
25 await provider.loadDictionary(dicts[i], `${fileLocation}.dic`, `${fileLocation}.aff`);
26 } 22 }
27} 23}
28 24
@@ -30,12 +26,6 @@ export async function switchDict(locale) {
30 try { 26 try {
31 debug('Trying to load dictionary', locale); 27 debug('Trying to load dictionary', locale);
32 28
33 if (!provider.availableDictionaries.includes(locale)) {
34 console.warn('Dict not available', locale);
35
36 return;
37 }
38
39 if (!provider) { 29 if (!provider) {
40 console.warn('SpellcheckProvider not initialized'); 30 console.warn('SpellcheckProvider not initialized');
41 31
@@ -48,6 +38,8 @@ export async function switchDict(locale) {
48 return; 38 return;
49 } 39 }
50 40
41 provider.unloadDictionary(locale);
42 loadDictionary(locale);
51 provider.switchDictionary(locale); 43 provider.switchDictionary(locale);
52 44
53 debug('Switched dictionary to', locale); 45 debug('Switched dictionary to', locale);
@@ -66,7 +58,7 @@ export default async function initialize(languageCode = 'en-us') {
66 58
67 debug('Init spellchecker'); 59 debug('Init spellchecker');
68 await provider.initialize(); 60 await provider.initialize();
69 await loadDictionaries(); 61 // await loadDictionaries();
70 62
71 debug('Available spellchecker dictionaries', provider.availableDictionaries); 63 debug('Available spellchecker dictionaries', provider.availableDictionaries);
72 64