mirror of
https://github.com/Hilbis/Hilbish
synced 2025-07-03 01:32:03 +00:00
Compare commits
2 Commits
38b5aec99e
...
95a85eedd2
Author | SHA1 | Date | |
---|---|---|---|
95a85eedd2 | |||
f48272bbea |
@ -76,3 +76,8 @@ of an exact match.
|
|||||||
#### Default: `true`
|
#### Default: `true`
|
||||||
If this is enabled, when a background job is finished,
|
If this is enabled, when a background job is finished,
|
||||||
a [notification](../notifications) will be sent.
|
a [notification](../notifications) will be sent.
|
||||||
|
|
||||||
|
### `processorSkipList`
|
||||||
|
#### Value: `table`
|
||||||
|
#### Default: `{}`
|
||||||
|
A table listing the names of command processors to skip.
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
local fs = require 'fs'
|
local fs = require 'fs'
|
||||||
|
|
||||||
hilbish.processors.add {
|
hilbish.processors.add {
|
||||||
|
name = 'hilbish.autocd',
|
||||||
func = function(path)
|
func = function(path)
|
||||||
if hilbish.opts.autocd then
|
if hilbish.opts.autocd then
|
||||||
local ok, stat = pcall(fs.stat, path)
|
local ok, stat = pcall(fs.stat, path)
|
||||||
|
@ -15,7 +15,8 @@ The nice lil shell for {blue}Lua{reset} fanatics!
|
|||||||
fuzzy = false,
|
fuzzy = false,
|
||||||
notifyJobFinish = true,
|
notifyJobFinish = true,
|
||||||
crimmas = true,
|
crimmas = true,
|
||||||
tips = true
|
tips = true,
|
||||||
|
processorSkipList = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
for optsName, default in pairs(defaultOpts) do
|
for optsName, default in pairs(defaultOpts) do
|
||||||
|
@ -6,6 +6,10 @@ hilbish.processors = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function hilbish.processors.add(processor)
|
function hilbish.processors.add(processor)
|
||||||
|
if not processor.name then
|
||||||
|
error 'processor is missing name'
|
||||||
|
end
|
||||||
|
|
||||||
if not processor.func then
|
if not processor.func then
|
||||||
error 'processor is missing function'
|
error 'processor is missing function'
|
||||||
end
|
end
|
||||||
@ -14,12 +18,26 @@ function hilbish.processors.add(processor)
|
|||||||
table.sort(hilbish.processors.list, function(a, b) return a.priority < b.priority end)
|
table.sort(hilbish.processors.list, function(a, b) return a.priority < b.priority end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function contains(search, needle)
|
||||||
|
for _, p in ipairs(search) do
|
||||||
|
if p == needle then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
--- Run all command processors, in order by priority.
|
--- Run all command processors, in order by priority.
|
||||||
--- It returns the processed command (which may be the same as the passed command)
|
--- It returns the processed command (which may be the same as the passed command)
|
||||||
--- and a boolean which states whether to proceed with command execution.
|
--- and a boolean which states whether to proceed with command execution.
|
||||||
function hilbish.processors.execute(command)
|
function hilbish.processors.execute(command, opts)
|
||||||
|
opts = opts or {}
|
||||||
|
opts.skip = opts.skip or {}
|
||||||
|
|
||||||
local continue = true
|
local continue = true
|
||||||
for _, processor in ipairs(hilbish.processors.list) do
|
for _, processor in ipairs(hilbish.processors.list) do
|
||||||
|
if not contains(opts.skip, processor.name) then
|
||||||
local processed = processor.func(command)
|
local processed = processor.func(command)
|
||||||
if processed.command then command = processed.command end
|
if processed.command then command = processed.command end
|
||||||
if not processed.continue then
|
if not processed.continue then
|
||||||
@ -27,6 +45,7 @@ function hilbish.processors.execute(command)
|
|||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return command, continue
|
return command, continue
|
||||||
end
|
end
|
||||||
|
@ -123,7 +123,9 @@ end
|
|||||||
-- @param priv bool
|
-- @param priv bool
|
||||||
function hilbish.runner.run(input, priv)
|
function hilbish.runner.run(input, priv)
|
||||||
bait.throw('command.preprocess', input)
|
bait.throw('command.preprocess', input)
|
||||||
local input, continue = hilbish.processors.execute(input)
|
local input, continue = hilbish.processors.execute(input, {
|
||||||
|
skip = hilbish.opts.processorSkipList
|
||||||
|
})
|
||||||
if not continue then
|
if not continue then
|
||||||
finishExec(0, '', true)
|
finishExec(0, '', true)
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user