Skip to content

Commit

Permalink
FORGE-763: ShellImpl "noInitMode" concept mismanages completers
Browse files Browse the repository at this point in the history
  • Loading branch information
mbenson committed Jan 23, 2013
1 parent 21f2b78 commit ddaaea2
Showing 1 changed file with 4 additions and 38 deletions.
42 changes: 4 additions & 38 deletions shell/src/main/java/org/jboss/forge/shell/ShellImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,6 @@ public class ShellImpl extends AbstractShellPrompt implements Shell
// overrides
private InputStream _redirectedStream;
private List<String> _historyOverride;
private List<Completer> _deferredCompleters;

private enum BufferingMode
{
Expand Down Expand Up @@ -322,6 +321,8 @@ public boolean canConvertFrom(final Class aClass)
});

configureOSTerminal();

this.completer = new AggregateCompleter(pluginCompleter);
initReaderAndStreams();
initParameters();

Expand Down Expand Up @@ -349,8 +350,6 @@ public boolean canConvertFrom(final Class aClass)
environment.setProperty(OFFLINE_FLAG, false);
}

initCompleters(pluginCompleter);

shellConfig.loadHistory(this);
shellConfig.loadConfig(this);

Expand Down Expand Up @@ -473,32 +472,6 @@ private void _setHistory(final List<String> lines)
reader.setHistory(history);
}

private void initCompleters(final PluginCommandCompleter pluginCompleter)
{
List<Completer> completers = new ArrayList<Completer>();
completers.add(pluginCompleter);
completer = new AggregateCompleter(completers);

if (isNoInitMode())
{
if (_deferredCompleters == null)
{
_deferredCompleters = new ArrayList<Completer>();
}
_deferredCompleters.add(pluginCompleter);
}
else
{
_initCompleters(pluginCompleter);
}
}

private void _initCompleters(final Completer completer)
{
this.reader.addCompleter(this.completer);
this.reader.setCompletionHandler(new OptionAwareCompletionHandler(commandHolder, this));
}

boolean isNoInitMode()
{
return Boolean.getBoolean(NO_INIT_SYSTEM_PROPERTY);
Expand Down Expand Up @@ -566,19 +539,12 @@ public void write(final int b) throws IOException
{
if (_historyOverride != null)
{

_setHistory(_historyOverride);
}

if (_deferredCompleters != null)
{
for (Completer completer : _deferredCompleters)
{
_initCompleters(completer);
}
}
}

this.reader.addCompleter(completer);
this.reader.setCompletionHandler(new OptionAwareCompletionHandler(commandHolder, this));
}

private void initParameters()
Expand Down

0 comments on commit ddaaea2

Please sign in to comment.