diff options
author | Stefan Malzner <stefan@adlk.io> | 2018-12-07 13:47:00 +0100 |
---|---|---|
committer | Stefan Malzner <stefan@adlk.io> | 2018-12-07 13:47:00 +0100 |
commit | 0cdc165ace53019371fc126d8d76817f1f2ed027 (patch) | |
tree | 1c98c3e31258c29ff2f49b748b9df16a892f66e6 /src/webview | |
parent | Bump version to b20 (diff) | |
download | ferdium-app-0cdc165ace53019371fc126d8d76817f1f2ed027.tar.gz ferdium-app-0cdc165ace53019371fc126d8d76817f1f2ed027.tar.zst ferdium-app-0cdc165ace53019371fc126d8d76817f1f2ed027.zip |
fix(Spellchecker): Dictionaries are now part of app instead of dynamic download
Diffstat (limited to 'src/webview')
-rw-r--r-- | src/webview/spellchecker.js | 34 |
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 @@ | |||
1 | import { webFrame } from 'electron'; | 1 | import { webFrame } from 'electron'; |
2 | import fs from 'fs'; | ||
3 | import path from 'path'; | ||
4 | import { SpellCheckerProvider } from 'electron-hunspell'; | 2 | import { SpellCheckerProvider } from 'electron-hunspell'; |
3 | import path from 'path'; | ||
5 | 4 | ||
6 | import { DICTIONARY_PATH } from '../config'; | 5 | import { DICTIONARY_PATH } from '../config'; |
7 | 6 | ||
7 | |||
8 | const debug = require('debug')('Franz:spellchecker'); | 8 | const debug = require('debug')('Franz:spellchecker'); |
9 | 9 | ||
10 | let provider; | 10 | let provider; |
11 | let currentDict; | 11 | let currentDict; |
12 | let _isEnabled = false; | 12 | let _isEnabled = false; |
13 | 13 | ||
14 | async function loadDictionaries() { | 14 | async 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 | ||