Skip to content

Commit

Permalink
Fix #30 – user plugins take priority over built-in plugins (#73)
Browse files Browse the repository at this point in the history
user plugins should take priority over stock plugins
  • Loading branch information
liquidev committed Mar 3, 2021
1 parent 8883685 commit 2e1a6ad
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
15 changes: 9 additions & 6 deletions data/core/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -535,16 +535,19 @@ end

function core.load_plugins()
local no_errors = true
for _, root_dir in ipairs {DATADIR, USERDIR} do
for _, root_dir in ipairs {USERDIR, DATADIR} do
local files = system.list_dir(root_dir .. "/plugins")
for _, filename in ipairs(files or {}) do
local basename = filename:gsub(".lua$", "")
if config[basename] ~= false then
for _, plugin_path in ipairs(files or {}) do
local basename = common.basename(plugin_path)
if system.get_file_info(plugin_path).type == "file" then
basename = basename:match("(.-)%.lua$")
end
if basename ~= nil and config[basename] ~= false then
local modname = "plugins." .. basename
local ok = core.try(require, modname)
-- Normally a log line is added for each loaded plugin which is a
-- good thing. Unfortunately we load the user module before the plugins
-- so all the messages here can fill the log screen and hide an evential
-- so all the messages here can fill the log screen and hide an eventual
-- user module's error.
-- if ok then core.log_quiet("Loaded plugin %q", modname) end
if not ok then
Expand Down Expand Up @@ -760,7 +763,7 @@ function core.step()
local did_keymap = false
local mouse_moved = false
local mouse = { x = 0, y = 0, dx = 0, dy = 0 }


for type, a,b,c,d in system.poll_event do
if type == "mousemoved" then
Expand Down
4 changes: 2 additions & 2 deletions data/core/start.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ local prefix = EXEDIR:match("^(.+)[/\\]bin$")
DATADIR = prefix and (prefix .. '/share/lite-xl') or (EXEDIR .. '/data')
USERDIR = HOME and (HOME .. '/.config/lite-xl') or (EXEDIR .. '/user')

package.path = package.path .. ';' .. USERDIR .. '/?.lua'
package.path = package.path .. ';' .. USERDIR .. '/?/init.lua'
package.path = DATADIR .. '/?.lua;' .. package.path
package.path = DATADIR .. '/?/init.lua;' .. package.path
package.path = USERDIR .. '/?.lua;' .. package.path
package.path = USERDIR .. '/?/init.lua;' .. package.path

0 comments on commit 2e1a6ad

Please sign in to comment.