2
2
ミラー元 https://github.com/Hilbis/Hilbish 前回の同期 2025-07-11 05:22:02 +00:00

feat: add raw input hook (closes #180)

このコミットが含まれているのは:
TorchedSammy 2022-07-10 20:34:00 -04:00
コミット 08e2951513
署名者: sammyette
GPGキーID: 904FC49417B44DCD
4個のファイルの変更8行の追加0行の削除

ファイルの表示

@ -65,6 +65,7 @@ will be ran on startup
- Message of the day on startup (`hilbish.motd`), mainly intended as quick
small news pieces for releases. It is printed by default. To disable it,
set `hilbish.opts.motd` to false.
- `hilbish.rawInput` hook for input from the readline library
### Changed
- **Breaking Change:** Upgraded to Lua 5.4.

4
lua.go
ファイルの表示

@ -48,6 +48,10 @@ func luaInit() {
}
})
lr.rl.RawInputCallback = func(r []rune) {
hooks.Em.Emit("hilbish.rawInput", string(r))
}
// Add more paths that Lua can require from
err := util.DoString(l, "package.path = package.path .. " + requirePaths)
if err != nil {

ファイルの表示

@ -198,6 +198,8 @@ type Instance struct {
ViModeCallback func(ViMode)
ViActionCallback func(ViAction, []string)
RawInputCallback func([]rune) // called on all input
}
// NewInstance is used to create a readline instance and initialise it with sane defaults.

ファイルの表示

@ -94,6 +94,7 @@ func (rl *Instance) Readline() (string, error) {
rl.skipStdinRead = false
r := []rune(string(b))
rl.RawInputCallback(r[:i])
if isMultiline(r[:i]) || len(rl.multiline) > 0 {
rl.multiline = append(rl.multiline, b[:i]...)