Object

com.github.arturopala.gitignore

Glob

Related Doc: package gitignore

Permalink

object Glob

Globbing pathnames.

Wildcard pattern matcher implementing the same rules as https://www.man7.org/linux/man-pages/man7/glob.7.html

Note that wildcard patterns are not regular expressions, although they are a bit similar. First of all, they match filenames, rather than text, and secondly, the conventions are not the same: for example, in a regular expression '*' means zero or more copies of the preceding thing.

Pattern syntax:

A string is a wildcard pattern if it contains one of the characters '?', '*' or '['. Globbing is the operation that expands a wildcard pattern into the list of pathnames matching the pattern. Matching is defined by:

A '?' (not between brackets) matches any single character.

A '*' (not between brackets) matches any string, including the empty string.

A '/' in a pathname cannot be matched by a '?' or '*' wildcard, or by a range like "[.-0]". A range containing an explicit '/' character is syntactically incorrect.

An expression "[...]" where the first character after the leading '[' is not an '!' matches a single character, namely any of the characters enclosed by the brackets. The string enclosed by the brackets cannot be empty; therefore ']' can be allowed between the brackets, provided that it is the first character. (Thus, "[][!]" matches the three characters '[', ']' and '!'.)

There is one special convention: two characters separated by '-' denote a range. (Thus, "[A-Fa-f0-9]" is equivalent to "[ABCDEFabcdef0123456789]".) One may include '-' in its literal meaning by making it the first or last character between the brackets. (Thus, "[]-]" matches just the two characters ']' and '-', and "[--0]" matches the three characters '-', '.', '0', since '/' cannot be matched.)

Now that regular expressions have bracket expressions where the negation is indicated by a '', POSIX has declared the effect of a wildcard pattern "[...]" to be undefined.

An expression "[!...]" matches a single character, namely any character that is not matched by the expression obtained by removing the first '!' from it. (Thus, "[!]a-]" matches any single character except ']', 'a' and '-'.)

One can remove the special meaning of '?', '*' and '[' by preceding them by a backslash, or, in case this is part of a shell command line, enclosing them in quotes. Between brackets these characters stand for themselves. Thus, "matches the four characters '[', '?', '*' and '\'.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Glob
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class BracketPattern(pattern: String) extends Pattern with SingleCharacterPattern with Product with Serializable

    Permalink

    A wildcard pattern matching either class or range of characters.

  2. sealed trait CharacterCheck extends AnyRef

    Permalink

    Character check defined between brackets, either class or range.

  3. final case class CharacterClassCheck(characters: String) extends CharacterCheck with Product with Serializable

    Permalink

    Checks if the character is of any of the provided characters.

    Checks if the character is of any of the provided characters.

    The string cannot be empty; therefore ']' can be allowed, provided that it is the first character. (Thus, "][!" matches the three characters '[', ']' and '!'.)

  4. final case class CharacterRangeCheck(from: Char, to: Char) extends CharacterCheck with Product with Serializable

    Permalink

    Checks if the character is between provided range.

    Checks if the character is between provided range.

    There is one special convention: two characters separated by '-' denote a range. (Thus, "[A-Fa-f0-9]" is equivalent to "[ABCDEFabcdef0123456789]".) One may include '-' in its literal meaning by making it the first or last character between the brackets. (Thus, "[]-]" matches just the two characters ']' and '-', and "[--0]" matches the three characters '-', '.', '0', since '/' cannot be matched.)

  5. final case class CompositeCharacterCheck(checks: List[CharacterCheck]) extends CharacterCheck with Product with Serializable

    Permalink

    Composite check nesting a sequence of positive checks.

  6. final case class CompositePattern(patterns: List[Pattern]) extends Pattern with Product with Serializable

    Permalink

    A pattern consisting of a sequence of nested patterns.

  7. final case class LiteralPattern(pattern: String) extends Pattern with Product with Serializable

    Permalink

    A pattern matching literally, without any wildcards.

  8. sealed trait Matcher extends AnyRef

    Permalink

    An engine that performs match operations on a character sequence by interpreting a Pattern.

  9. final case class NegatedCompositeCharacterCheck(checks: List[CharacterCheck]) extends CharacterCheck with Product with Serializable

    Permalink

    Composite check nesting a sequence of negative checks.

  10. sealed trait Pattern extends AnyRef

    Permalink

    A compiled representation of a glob pattern.

  11. sealed trait SingleCharacterPattern extends Pattern with WildcardPattern

    Permalink

    A type of pattern matching single character only.

  12. sealed trait WildcardPattern extends Pattern

    Permalink

    A type of pattern with variable match length, which can possibly consume nothing or all the remaining input.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object AnySingleCharacterPattern extends Pattern with SingleCharacterPattern

    Permalink

    A wildcard pattern matching any single character except path separator '/' character.

  5. object AnyStringPattern extends Pattern with WildcardPattern with Product with Serializable

    Permalink

    A wildcard pattern matching anything but path separator '/' character.

  6. object AnythingPattern extends Pattern with WildcardPattern with Product with Serializable

    Permalink

    A wildcard pattern matching anything, inluding path separator.

  7. object CharacterCheck

    Permalink

    Support for character classes and ranges.

  8. object Matcher

    Permalink
  9. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. final def compile(pattern: String): Pattern

    Permalink

    Compile pattern expression as re-usable Pattern instance.

  12. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  16. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  18. final def isWildcardPattern(pattern: String): Boolean

    Permalink
  19. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  20. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  21. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  23. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  24. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped