improved autocompletion in shell
This commit is contained in:
parent
33378ef8de
commit
7a999b13bd
@ -70,9 +70,23 @@ SparrowShell::AutocompletionCallBack::AutocompletionCallBack(SparrowShell* shell
|
||||
|
||||
void SparrowShell::AutocompletionCallBack::exec(){
|
||||
std::string text = m_text_input_node->getText();
|
||||
std::vector<std::string> result = m_shell->m_script->possibleCompletion(text);
|
||||
std::vector<std::string> results = m_shell->m_script->possibleCompletion(text);
|
||||
|
||||
if (!results.empty()){
|
||||
std:: string common_prefix = results[0];
|
||||
for( auto result : results){
|
||||
int i = 0;
|
||||
auto s1 = common_prefix.c_str();
|
||||
auto s2 = result.c_str();
|
||||
std::string cp;
|
||||
while( (s1[i] && s2[i]) && (s1[i] == s2[i]) )
|
||||
cp.push_back(s1[i++]);
|
||||
common_prefix = cp;
|
||||
}
|
||||
m_text_input_node->setText(common_prefix);
|
||||
}
|
||||
std::string output = "";
|
||||
for(std::string& fun : result)
|
||||
for(std::string& fun : results)
|
||||
output+=fun+" ";
|
||||
m_shell->out(output,glm::vec3(1,1,0));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user