mirror of
				https://github.com/sammy-ette/Hilbish
				synced 2025-08-10 02:52:03 +00:00 
			
		
		
		
	feat: add fuzzy opt for fuzzy history searching
This commit is contained in:
		
							parent
							
								
									4593a2006c
								
							
						
					
					
						commit
						b98239ac82
					
				
							
								
								
									
										2
									
								
								lua.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								lua.go
									
									
									
									
									
								
							@ -68,7 +68,7 @@ func luaInit() {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Add more paths that Lua can require from
 | 
			
		||||
	err := util.DoString(l, "package.path = package.path .. " + requirePaths)
 | 
			
		||||
	_, err := util.DoString(l, "package.path = package.path .. " + requirePaths)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Fprintln(os.Stderr, "Could not add Hilbish require paths! Libraries will be missing. This shouldn't happen.")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ setmetatable(hilbish.opts, {
 | 
			
		||||
 | 
			
		||||
local function setupOpt(name, default)
 | 
			
		||||
	opts[name] = default
 | 
			
		||||
	require('nature.opts.' .. name)
 | 
			
		||||
	pcall(require, 'nature.opts.' .. name)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local defaultOpts = {
 | 
			
		||||
@ -25,7 +25,8 @@ local defaultOpts = {
 | 
			
		||||
	greeting = string.format([[Welcome to {magenta}Hilbish{reset}, {cyan}%s{reset}.
 | 
			
		||||
The nice lil shell for {blue}Lua{reset} fanatics!
 | 
			
		||||
]], hilbish.user),
 | 
			
		||||
	motd = true
 | 
			
		||||
	motd = true,
 | 
			
		||||
	fuzzy = false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
for optsName, default in pairs(defaultOpts) do
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								rl.go
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								rl.go
									
									
									
									
									
								
							@ -25,7 +25,14 @@ func newLineReader(prompt string, noHist bool) *lineReader {
 | 
			
		||||
		rl: rl,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	regexSearcher := rl.Searcher
 | 
			
		||||
	rl.Searcher = func(needle string, haystack []string) []string {
 | 
			
		||||
		fz, _ := util.DoString(l, "return hilbish.opts.fuzzy")
 | 
			
		||||
		fuzz, ok := fz.TryBool()
 | 
			
		||||
		if !fuzz || !ok {
 | 
			
		||||
			return regexSearcher(needle, haystack)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		matches := fuzzy.Find(needle, haystack)
 | 
			
		||||
		suggs := make([]string, 0)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -26,13 +26,14 @@ func SetFieldProtected(module, realModule *rt.Table, field string, value rt.Valu
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DoString runs the code string in the Lua runtime.
 | 
			
		||||
func DoString(rtm *rt.Runtime, code string) error {
 | 
			
		||||
func DoString(rtm *rt.Runtime, code string) (rt.Value, error) {
 | 
			
		||||
	chunk, err := rtm.CompileAndLoadLuaChunk("<string>", []byte(code), rt.TableValue(rtm.GlobalEnv()))
 | 
			
		||||
	var ret rt.Value
 | 
			
		||||
	if chunk != nil {
 | 
			
		||||
		_, err = rt.Call1(rtm.MainThread(), rt.FunctionValue(chunk))
 | 
			
		||||
		ret, err = rt.Call1(rtm.MainThread(), rt.FunctionValue(chunk))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
	return ret, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DoFile runs the contents of the file in the Lua runtime.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user