mirror of https://github.com/Hilbis/Hilbish
Compare commits
3 Commits
b70f02e43e
...
69dc1ecbd1
Author | SHA1 | Date |
---|---|---|
sammyette | 69dc1ecbd1 | |
sammyette | 38d036d96f | |
sammyette | a24bca3258 |
|
@ -0,0 +1,10 @@
|
||||||
|
env = {}
|
||||||
|
|
||||||
|
setmetatable(env, {
|
||||||
|
__index = function(_, k)
|
||||||
|
return os.getenv(k)
|
||||||
|
end,
|
||||||
|
__newindex = function(_, k, v)
|
||||||
|
os.setenv(k, tostring(v))
|
||||||
|
end
|
||||||
|
})
|
|
@ -24,6 +24,7 @@ require 'nature.opts'
|
||||||
require 'nature.vim'
|
require 'nature.vim'
|
||||||
require 'nature.runner'
|
require 'nature.runner'
|
||||||
require 'nature.hummingbird'
|
require 'nature.hummingbird'
|
||||||
|
require 'nature.env'
|
||||||
|
|
||||||
local shlvl = tonumber(os.getenv 'SHLVL')
|
local shlvl = tonumber(os.getenv 'SHLVL')
|
||||||
if shlvl ~= nil then
|
if shlvl ~= nil then
|
||||||
|
@ -32,36 +33,6 @@ else
|
||||||
os.setenv('SHLVL', '0')
|
os.setenv('SHLVL', '0')
|
||||||
end
|
end
|
||||||
|
|
||||||
do
|
|
||||||
local virt_G = { }
|
|
||||||
|
|
||||||
setmetatable(_G, {
|
|
||||||
__index = function (_, key)
|
|
||||||
local got_virt = virt_G[key]
|
|
||||||
if got_virt ~= nil then
|
|
||||||
return got_virt
|
|
||||||
end
|
|
||||||
|
|
||||||
if type(key) == 'string' then
|
|
||||||
virt_G[key] = os.getenv(key)
|
|
||||||
end
|
|
||||||
return virt_G[key]
|
|
||||||
end,
|
|
||||||
|
|
||||||
__newindex = function (_, key, value)
|
|
||||||
if type(value) == 'string' then
|
|
||||||
os.setenv(key, value)
|
|
||||||
virt_G[key] = value
|
|
||||||
else
|
|
||||||
if type(virt_G[key]) == 'string' then
|
|
||||||
os.setenv(key, '')
|
|
||||||
end
|
|
||||||
virt_G[key] = value
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
do
|
do
|
||||||
local startSearchPath = hilbish.userDir.data .. '/hilbish/start/?/init.lua;'
|
local startSearchPath = hilbish.userDir.data .. '/hilbish/start/?/init.lua;'
|
||||||
.. hilbish.userDir.data .. '/hilbish/start/?.lua'
|
.. hilbish.userDir.data .. '/hilbish/start/?.lua'
|
||||||
|
|
|
@ -128,15 +128,19 @@ func (rl *Instance) walkHistory(i int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
rl.histOffset += i
|
rl.histOffset += i
|
||||||
|
historyLen := history.Len()
|
||||||
if rl.histOffset == 0 {
|
if rl.histOffset == 0 {
|
||||||
rl.line = []rune(rl.lineBuf)
|
rl.line = []rune(rl.lineBuf)
|
||||||
rl.pos = len(rl.lineBuf)
|
rl.pos = len(rl.lineBuf)
|
||||||
} else if rl.histOffset <= -1 {
|
} else if rl.histOffset <= -1 {
|
||||||
rl.histOffset = 0
|
rl.histOffset = 0
|
||||||
|
} else if rl.histOffset > historyLen {
|
||||||
|
// TODO: should this wrap around?s
|
||||||
|
rl.histOffset = 0
|
||||||
} else {
|
} else {
|
||||||
dedup = true
|
dedup = true
|
||||||
old = string(rl.line)
|
old = string(rl.line)
|
||||||
new, err = history.GetLine(history.Len() - rl.histOffset)
|
new, err = history.GetLine(historyLen - rl.histOffset)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
rl.resetHelpers()
|
rl.resetHelpers()
|
||||||
print("\r\n" + err.Error() + "\r\n")
|
print("\r\n" + err.Error() + "\r\n")
|
||||||
|
|
Loading…
Reference in New Issue