mirror of https://github.com/sbt/sbt.git
Documented the DynamicExamples and FixedSetExamples classes.
This commit is contained in:
parent
6a4eb92ee5
commit
6f80efade2
|
|
@ -24,7 +24,8 @@ trait ExampleSource
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param examples the source of examples that will be displayed to the user when they press the TAB key.
|
* A convenience example source that wraps any collection of strings into a source of examples.
|
||||||
|
* @param examples the examples that will be displayed to the user when they press the TAB key.
|
||||||
*/
|
*/
|
||||||
sealed case class FixedSetExamples(examples: Iterable[String]) extends ExampleSource {
|
sealed case class FixedSetExamples(examples: Iterable[String]) extends ExampleSource {
|
||||||
override def withAddedPrefix(addedPrefix: String): ExampleSource = FixedSetExamples(examplesWithRemovedPrefix(addedPrefix))
|
override def withAddedPrefix(addedPrefix: String): ExampleSource = FixedSetExamples(examplesWithRemovedPrefix(addedPrefix))
|
||||||
|
|
|
||||||
|
|
@ -744,6 +744,22 @@ private final class Examples[T](delegate: Parser[T], fixed: Set[String]) extends
|
||||||
Completions(fixed map(f => Completion.suggestion(f)) )
|
Completions(fixed map(f => Completion.suggestion(f)) )
|
||||||
override def toString = "examples(" + delegate + ", " + fixed.take(2) + ")"
|
override def toString = "examples(" + delegate + ", " + fixed.take(2) + ")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class wraps an existing parser (the delegate), and replaces the delegate's completions with examples from
|
||||||
|
* the given example source.
|
||||||
|
*
|
||||||
|
* This class asks the example source for a limited amount of examples (to prevent lengthy and expensive
|
||||||
|
* computations and large amounts of allocated data). It then passes these examples on to the UI.
|
||||||
|
*
|
||||||
|
* @param delegate the parser to decorate with completion examples (i.e., completion of user input).
|
||||||
|
* @param exampleSource the source from which this class will take examples (potentially filter them with the delegate
|
||||||
|
* parser), and pass them to the UI.
|
||||||
|
* @param maxNumberOfExamples the maximum number of completions to read from the example source and pass to the UI. This
|
||||||
|
* limit prevents lengthy example generation and allocation of large amounts of memory.
|
||||||
|
* @param removeInvalidExamples indicates whether to remove examples that are deemed invalid by the delegate parser.
|
||||||
|
* @tparam T the type of value produced by the parser.
|
||||||
|
*/
|
||||||
private final class DynamicExamples[T](delegate: Parser[T], exampleSource: ExampleSource, maxNumberOfExamples: Int, removeInvalidExamples: Boolean) extends ValidParser[T]
|
private final class DynamicExamples[T](delegate: Parser[T], exampleSource: ExampleSource, maxNumberOfExamples: Int, removeInvalidExamples: Boolean) extends ValidParser[T]
|
||||||
{
|
{
|
||||||
def derive(c: Char) = examples(delegate derive c, exampleSource.withAddedPrefix(c.toString), maxNumberOfExamples, removeInvalidExamples)
|
def derive(c: Char) = examples(delegate derive c, exampleSource.withAddedPrefix(c.toString), maxNumberOfExamples, removeInvalidExamples)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue