summaryrefslogtreecommitdiff
path: root/script/provider/spell.lua
diff options
context:
space:
mode:
Diffstat (limited to 'script/provider/spell.lua')
-rw-r--r--script/provider/spell.lua53
1 files changed, 53 insertions, 0 deletions
diff --git a/script/provider/spell.lua b/script/provider/spell.lua
new file mode 100644
index 00000000..6647bbad
--- /dev/null
+++ b/script/provider/spell.lua
@@ -0,0 +1,53 @@
+local suc, codeFormat = pcall(require, 'code_format')
+if not suc then
+ return
+end
+
+local fs = require 'bee.filesystem'
+local config = require 'config'
+local diagnostics = require 'provider.diagnostic'
+local pformatting = require 'provider.formatting'
+local util = require 'utility'
+
+local m = {}
+
+function m.loadDictionaryFromFile(filePath)
+ return codeFormat.spell_load_dictionary_from_path(filePath)
+end
+
+function m.loadDictionaryFromBuffer(buffer)
+ return codeFormat.spell_load_dictionary_from_buffer(buffer)
+end
+
+function m.addWord(word)
+ return codeFormat.spell_load_dictionary_from_buffer(word)
+end
+
+function m.spellCheck(uri, text)
+ if not m._dictionaryLoaded then
+ m.initDictionary()
+ m._dictionaryLoaded = true
+ end
+
+ local tempDict = config.get(uri, 'Lua.spell.dict')
+
+ return codeFormat.spell_analysis(uri, text, tempDict)
+end
+
+function m.getSpellSuggest(word)
+ local status, result = codeFormat.spell_suggest(word)
+ if status then
+ return result
+ end
+end
+
+function m.initDictionary()
+ local basicDictionary = fs.path(METAPATH) / "spell/dictionary.txt"
+ local luaDictionary = fs.path(METAPATH) / "spell/lua_dict.txt"
+
+ m.loadDictionaryFromFile(basicDictionary:string())
+ m.loadDictionaryFromFile(luaDictionary:string())
+ pformatting.updateNonStandardSymbols(config.get(nil, "Lua.runtime.nonstandardSymbol"))
+end
+
+return m