Autocomplete built in commands (die, etc.)

develop
Phillip Spiess 2017-11-27 13:10:09 -08:00
parent 35b0e962ce
commit 7e55efa3f7
2 changed files with 33 additions and 20 deletions

@ -433,6 +433,11 @@ static bool try_autocomplete(color_ostream &con, const std::string &first, std::
{
std::vector<std::string> possible;
// Check for possible built in commands to autocomplete first
for (auto iter = built_in_commands.begin(); iter != built_in_commands.end(); ++iter)
if (iter->substr(0, first.size()) == first)
possible.push_back(*iter);
auto plug_mgr = Core::getInstance().getPluginManager();
for (auto it = plug_mgr->begin(); it != plug_mgr->end(); ++it)
{
@ -612,28 +617,12 @@ static std::string sc_event_name (state_change_event id) {
string getBuiltinCommand(std::string cmd)
{
std::string builtin = "";
if (cmd == "ls" ||
cmd == "help" ||
cmd == "type" ||
cmd == "load" ||
cmd == "unload" ||
cmd == "reload" ||
cmd == "enable" ||
cmd == "disable" ||
cmd == "plug" ||
cmd == "keybinding" ||
cmd == "alias" ||
cmd == "fpause" ||
cmd == "cls" ||
cmd == "die" ||
cmd == "kill-lua" ||
cmd == "script" ||
cmd == "hide" ||
cmd == "show" ||
cmd == "sc-script"
)
// Check our list of builtin commands from the header
if (built_in_commands.count(cmd))
builtin = cmd;
// Check for some common aliases for built in commands
else if (cmd == "?" || cmd == "man")
builtin = "help";

@ -30,6 +30,7 @@ distribution.
#include <vector>
#include <stack>
#include <map>
#include <set>
#include <stdint.h>
#include "Console.h"
#include "modules/Graphic.h"
@ -84,6 +85,29 @@ namespace DFHack
SC_UNPAUSED = 8
};
// List of built in commands
const std::set<std::string> built_in_commands = {
"ls" ,
"help" ,
"type" ,
"load" ,
"unload" ,
"reload" ,
"enable" ,
"disable" ,
"plug" ,
"keybinding" ,
"alias" ,
"fpause" ,
"cls" ,
"die" ,
"kill-lua" ,
"script" ,
"hide" ,
"show" ,
"sc-script"
};
class DFHACK_EXPORT StateChangeScript
{
public: