mirror of
				https://github.com/sammy-ette/Hilbish
				synced 2025-08-10 02:52:03 +00:00 
			
		
		
		
	feat: add hilbish.history interface (closes #85)
This commit is contained in:
		
							parent
							
								
									3f9aad64b5
								
							
						
					
					
						commit
						22d8a61544
					
				
							
								
								
									
										5
									
								
								api.go
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								api.go
									
									
									
									
									
								
							| @ -84,6 +84,11 @@ The nice lil shell for {blue}Lua{reset} fanatics! | |||||||
| 	util.Document(L, aliasesModule, "Alias inferface for Hilbish.") | 	util.Document(L, aliasesModule, "Alias inferface for Hilbish.") | ||||||
| 	L.SetField(mod, "aliases", aliasesModule) | 	L.SetField(mod, "aliases", aliasesModule) | ||||||
| 
 | 
 | ||||||
|  | 	// hilbish.history table | ||||||
|  | 	historyModule := lr.Loader(L) | ||||||
|  | 	util.Document(L, historyModule, "History interface for Hilbish.") | ||||||
|  | 	L.SetField(mod, "history", historyModule) | ||||||
|  | 
 | ||||||
| 	L.Push(mod) | 	L.Push(mod) | ||||||
| 
 | 
 | ||||||
| 	return 1 | 	return 1 | ||||||
|  | |||||||
							
								
								
									
										57
									
								
								rl.go
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								rl.go
									
									
									
									
									
								
							| @ -205,3 +205,60 @@ func (lr *lineReader) ClearInput() { | |||||||
| func (lr *lineReader) Resize() { | func (lr *lineReader) Resize() { | ||||||
| 	readline.Resize() | 	readline.Resize() | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // lua module | ||||||
|  | func (lr *lineReader) Loader(L *lua.LState) *lua.LTable { | ||||||
|  | 	lrLua := map[string]lua.LGFunction{ | ||||||
|  | 		"add": lr.luaAddHistory, | ||||||
|  | 		"all": lr.luaAllHistory, | ||||||
|  | 		"clear": lr.luaClearHistory, | ||||||
|  | 		"get": lr.luaGetHistory, | ||||||
|  | 		"size": lr.luaSize, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	mod := L.SetFuncs(L.NewTable(), lrLua) | ||||||
|  | 
 | ||||||
|  | 	return mod | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaAddHistory(l *lua.LState) int { | ||||||
|  | 	cmd := l.CheckString(1) | ||||||
|  | 	lr.AddHistory(cmd) | ||||||
|  | 
 | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaSize(l *lua.LState) int { | ||||||
|  | 	l.Push(lua.LNumber(readline.HistorySize())) | ||||||
|  | 
 | ||||||
|  | 	return 1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaGetHistory(l *lua.LState) int { | ||||||
|  | 	idx := l.CheckInt(1) | ||||||
|  | 	cmd := readline.GetHistory(idx) | ||||||
|  | 	l.Push(lua.LString(cmd)) | ||||||
|  | 
 | ||||||
|  | 	return 1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaAllHistory(l *lua.LState) int { | ||||||
|  | 	tbl := l.NewTable() | ||||||
|  | 	size := readline.HistorySize() | ||||||
|  | 
 | ||||||
|  | 	for i := 0; i < size; i++ { | ||||||
|  | 		cmd := readline.GetHistory(i) | ||||||
|  | 		tbl.Append(lua.LString(cmd)) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	l.Push(tbl) | ||||||
|  | 
 | ||||||
|  | 	return 1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaClearHistory(l *lua.LState) int { | ||||||
|  | 	readline.ClearHistory() | ||||||
|  | 	readline.SaveHistory(defaultHistPath) | ||||||
|  | 
 | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | |||||||
| @ -41,3 +41,40 @@ func (lr *lineReader) Resize() { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // lua module | ||||||
|  | func (lr *lineReader) Loader() *lua.LTable { | ||||||
|  | 	lrLua := map[string]lua.LGFunction{ | ||||||
|  | 		"add": lr.luaAddHistory, | ||||||
|  | 		"all": lr.luaAllHistory, | ||||||
|  | 		"clear": lr.luaClearHistory, | ||||||
|  | 		"get": lr.luaGetHistory, | ||||||
|  | 		"size": lr.luaSize, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	mod := l.SetFuncs(l.NewTable(), lrLua) | ||||||
|  | 
 | ||||||
|  | 	return mod | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaAddHistory(l *lua.LState) int { | ||||||
|  | 	cmd := l.CheckString(1) | ||||||
|  | 	lr.AddHistory(cmd) | ||||||
|  | 
 | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaSize(l *lua.LState) int { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaGetHistory(l *lua.LState) int { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaAllHistory(l *lua.LState) int { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaClearHistory(l *lua.LState) int { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | |||||||
| @ -63,3 +63,40 @@ func (lr *lineReader) Resize() { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // lua module | ||||||
|  | func (lr *lineReader) Loader() *lua.LTable { | ||||||
|  | 	lrLua := map[string]lua.LGFunction{ | ||||||
|  | 		"add": lr.luaAddHistory, | ||||||
|  | 		"all": lr.luaAllHistory, | ||||||
|  | 		"clear": lr.luaClearHistory, | ||||||
|  | 		"get": lr.luaGetHistory, | ||||||
|  | 		"size": lr.luaSize, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	mod := l.SetFuncs(l.NewTable(), lrLua) | ||||||
|  | 
 | ||||||
|  | 	return mod | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaAddHistory(l *lua.LState) int { | ||||||
|  | 	cmd := l.CheckString(1) | ||||||
|  | 	lr.AddHistory(cmd) | ||||||
|  | 
 | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaSize(l *lua.LState) int { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaGetHistory(l *lua.LState) int { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaAllHistory(l *lua.LState) int { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (lr *lineReader) luaClearHistory(l *lua.LState) int { | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user