Preserve readline history across sessions. Add rl_readline_name.
This commit is contained in:
		
							parent
							
								
									5599665a27
								
							
						
					
					
						commit
						103c46abc2
					
				
					 2 changed files with 10 additions and 1 deletions
				
			
		| 
						 | 
					@ -102,3 +102,7 @@ example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nix-repl> config.networking.use<TAB>
 | 
					    nix-repl> config.networking.use<TAB>
 | 
				
			||||||
    config.networking.useDHCP   config.networking.usePredictableInterfaceNames
 | 
					    config.networking.useDHCP   config.networking.usePredictableInterfaceNames
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Input history is preserved by readline in ~/.nix-repl-history
 | 
				
			||||||
 | 
					The readline "application name" is nix-repl. This allows for nix-repl specific
 | 
				
			||||||
 | 
					settings in ~/.inputrc
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,6 +20,7 @@ using namespace nix;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
string programId = "nix-repl";
 | 
					string programId = "nix-repl";
 | 
				
			||||||
 | 
					const string historyFile = string(getenv("HOME")) + "/.nix-repl-history";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct NixRepl
 | 
					struct NixRepl
 | 
				
			||||||
| 
						 | 
					@ -91,8 +92,10 @@ void NixRepl::mainLoop(const Strings & files)
 | 
				
			||||||
    reloadFiles();
 | 
					    reloadFiles();
 | 
				
			||||||
    if (!loadedFiles.empty()) std::cout << std::endl;
 | 
					    if (!loadedFiles.empty()) std::cout << std::endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Allow nix-repl specific settings in .inputrc
 | 
				
			||||||
 | 
					    rl_readline_name = "nix-repl";
 | 
				
			||||||
    using_history();
 | 
					    using_history();
 | 
				
			||||||
    read_history(0);
 | 
					    read_history(historyFile.c_str());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    string input;
 | 
					    string input;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -649,5 +652,7 @@ int main(int argc, char * * argv)
 | 
				
			||||||
        store = openStore();
 | 
					        store = openStore();
 | 
				
			||||||
        NixRepl repl(searchPath);
 | 
					        NixRepl repl(searchPath);
 | 
				
			||||||
        repl.mainLoop(files);
 | 
					        repl.mainLoop(files);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        write_history(historyFile.c_str());
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue