DirectiveHandler

class Object
trait Matchable
class Any

Value members

Abstract methods

def description: String
def handleValues(scopedDirective: ScopedDirective, logger: Logger): Either[BuildException, ProcessedDirective[T]]
def isRestricted: Boolean

Is this directive an advanved feature, that will not be accessible when running scala-cli as scala

Is this directive an advanved feature, that will not be accessible when running scala-cli as scala

def keys: Seq[String]
def name: String
def usage: String

Concrete methods

It checks the values ascribed to the key inside the passed in scopedDirective, in order to see if they are of the types listed to be expected by the implementation of getSupportedTypes inside the specific handler.

It checks the values ascribed to the key inside the passed in scopedDirective, in order to see if they are of the types listed to be expected by the implementation of getSupportedTypes inside the specific handler.

Returns:

Either a UsingDirectiveExpectationError or the using directive values of the scopedDirective grouped in string, boolean, or numeric sequences.

final protected def checkIfValuesAreExpected(scopedDirective: ScopedDirective): Either[BuildException, GroupedScopedValuesContainer]

It checks if the values assigned to the key of the scopedDirective have the expected type or number.

It checks if the values assigned to the key of the scopedDirective have the expected type or number.

Note: the correct functioning of this method for some of the handlers might require overriding the implementations for getSupportedTypes, getValueNumberBounds, and unexpectedValueHint inside those handlers.

Value parameters:
scopedDirective

the directive whose values are to be processed according to the key

Returns:

Either a BuildException or the grouped using directive values inside the passed scopedDirective

def descriptionMd: String
def examples: Seq[String]
protected def getSupportedTypes(key: String): Set[UsingDirectiveValueKind]

the default implementation only includes UsingDirectiveValueKind.STRING Override for changing it.

the default implementation only includes UsingDirectiveValueKind.STRING Override for changing it.

Value parameters:
key

the using directive key for which the supported types are calculated.

Returns:

a set of supported using directive value kinds of string, numeric, or boolean by this handler

by default, it is (lower = 1, upper = Int.MaxValue). Please, override for other cases.

by default, it is (lower = 1, upper = Int.MaxValue). Please, override for other cases.

Value parameters:
key

the using directive key for which the value number bounds are calculated.

checks if the passed in scopedDirective has the expected number of values according to the implementation of getValueNumberBounds for the handler on which this is called

checks if the passed in scopedDirective has the expected number of values according to the implementation of getValueNumberBounds for the handler on which this is called

Returns:

Either a UsingDirectiveExpectationError or the same passed in scopedDirective

protected def unexpectedValueHint(key: String): String

The default implementation just asks the user to put quotation marks around the using directive values with string type.

The default implementation just asks the user to put quotation marks around the using directive values with string type.

Therefore, it should get overrided if other information is to be shown instead in any particular handler.

This method gets internally called in the implementation of checkAndGroupValuesByType for producing the error value.

Value parameters:
key

the using directive key for which the unexpected value(s) are passed.

Returns:

the hint to be shown to the user if the value(s) passed to the corresponding using directive key are unexpected.

def usageMd: String