jline.console.completer.Completer Maven / Gradle / Ivy
/*
* Copyright (c) 2002-2016, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
*
* http://www.opensource.org/licenses/bsd-license.php
*/
package jline.console.completer;
import java.util.List;
/**
* A completer is the mechanism by which tab-completion candidates will be resolved.
*
* @author Marc Prud'hommeaux
* @author Jason Dillon
* @since 2.3
*/
public interface Completer
{
//
// FIXME: Check if we can use CharSequece for buffer?
//
/**
* Populates candidates with a list of possible completions for the buffer.
*
* The candidates list will not be sorted before being displayed to the user: thus, the
* complete method should sort the {@link List} before returning.
*
* @param buffer The buffer
* @param cursor The current position of the cursor in the buffer
* @param candidates The {@link List} of candidates to populate
* @return The index of the buffer for which the completion will be relative
*/
int complete(String buffer, int cursor, List candidates);
}