mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Text editor plugin, InputDialog enhancements (#4135)
This plugin mostly sets up a "Text editor>" submenu, that allows browsing files, creating a new file, and managing a history of previously opened file for easier re-opening. It restore previous scroll and cursor positions on re-opening. Additional "Check lua" syntax button is added when editing a .lua file, and prevent saving if errors. The text editing is mainly provided by the enhanced InputDialog. InputDialog: added a few more options, the main one being 'save_callback', which will add a Save and Close buttons and manage saving/discarding/exiting. If "fullscreen" and "add_nav_bar", will add a show/hide keyboard button to it. Moved the preset buttons setup code in their own InputDialog methods for clarity of the main init code. Buttons are now enabled/disabled depending on context for feedback (eg: Save is disabled as long as text has not been modified). Added util.checkLuaSyntax(lua_string), might be useful elsewhere.
This commit is contained in:
@@ -471,7 +471,7 @@ end
|
||||
|
||||
--- Replaces invalid UTF-8 characters with a replacement string.
|
||||
--
|
||||
-- Based on <a href="http://notebook.kulchenko.com/programming/fixing-malformed-utf8-in-lua">http://notebook.kulchenko.com/programming/fixing-malformed-utf8-in-lua</a>
|
||||
-- Based on http://notebook.kulchenko.com/programming/fixing-malformed-utf8-in-lua
|
||||
---- @string str the string to be checked for invalid characters
|
||||
---- @string replacement the string to replace invalid characters with
|
||||
---- @treturn string valid UTF-8
|
||||
@@ -677,4 +677,18 @@ function util.urlDecode(url)
|
||||
return url
|
||||
end
|
||||
|
||||
--- Check lua syntax of string
|
||||
--- @string text lua code text
|
||||
--- @treturn string with parsing error, nil if syntax ok
|
||||
function util.checkLuaSyntax(lua_text)
|
||||
local lua_code_ok, err = loadstring(lua_text)
|
||||
if lua_code_ok then
|
||||
return nil
|
||||
end
|
||||
-- Replace: [string "blah blah..."]:3: '=' expected near '123'
|
||||
-- with: Line 3: '=' expected near '123'
|
||||
err = err:gsub("%[string \".-%\"]:", "Line ")
|
||||
return err
|
||||
end
|
||||
|
||||
return util
|
||||
|
||||
Reference in New Issue
Block a user