-- THIS IS A GENERATED FILE, DO NOT EDIT

{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.Pattern where

import Control.DeepSeq
import Data.Hashable
import GHC.Generics
import qualified Data.Aeson as Aeson
import qualified Data.Row.Aeson as Aeson
import qualified Data.Row.Hashable as Hashable
import qualified Data.Text

{-|
The glob pattern to watch relative to the base path. Glob patterns can have the following syntax:
- `*` to match one or more characters in a path segment
- `?` to match on one character in a path segment
- `**` to match any number of path segments, including none
- `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
- `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
- `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)

@since 3.17.0
-}
newtype Pattern = Pattern Data.Text.Text
  deriving newtype ( [Pattern] -> Encoding
[Pattern] -> Value
Pattern -> Encoding
Pattern -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [Pattern] -> Encoding
$ctoEncodingList :: [Pattern] -> Encoding
toJSONList :: [Pattern] -> Value
$ctoJSONList :: [Pattern] -> Value
toEncoding :: Pattern -> Encoding
$ctoEncoding :: Pattern -> Encoding
toJSON :: Pattern -> Value
$ctoJSON :: Pattern -> Value
Aeson.ToJSON
  , Value -> Parser [Pattern]
Value -> Parser Pattern
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [Pattern]
$cparseJSONList :: Value -> Parser [Pattern]
parseJSON :: Value -> Parser Pattern
$cparseJSON :: Value -> Parser Pattern
Aeson.FromJSON
  , ToJSONKeyFunction [Pattern]
ToJSONKeyFunction Pattern
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [Pattern]
$ctoJSONKeyList :: ToJSONKeyFunction [Pattern]
toJSONKey :: ToJSONKeyFunction Pattern
$ctoJSONKey :: ToJSONKeyFunction Pattern
Aeson.ToJSONKey
  , FromJSONKeyFunction [Pattern]
FromJSONKeyFunction Pattern
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [Pattern]
$cfromJSONKeyList :: FromJSONKeyFunction [Pattern]
fromJSONKey :: FromJSONKeyFunction Pattern
$cfromJSONKey :: FromJSONKeyFunction Pattern
Aeson.FromJSONKey )
  deriving stock (Int -> Pattern -> ShowS
[Pattern] -> ShowS
Pattern -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Pattern] -> ShowS
$cshowList :: [Pattern] -> ShowS
show :: Pattern -> String
$cshow :: Pattern -> String
showsPrec :: Int -> Pattern -> ShowS
$cshowsPrec :: Int -> Pattern -> ShowS
Show, Pattern -> Pattern -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Pattern -> Pattern -> Bool
$c/= :: Pattern -> Pattern -> Bool
== :: Pattern -> Pattern -> Bool
$c== :: Pattern -> Pattern -> Bool
Eq, Eq Pattern
Pattern -> Pattern -> Bool
Pattern -> Pattern -> Ordering
Pattern -> Pattern -> Pattern
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Pattern -> Pattern -> Pattern
$cmin :: Pattern -> Pattern -> Pattern
max :: Pattern -> Pattern -> Pattern
$cmax :: Pattern -> Pattern -> Pattern
>= :: Pattern -> Pattern -> Bool
$c>= :: Pattern -> Pattern -> Bool
> :: Pattern -> Pattern -> Bool
$c> :: Pattern -> Pattern -> Bool
<= :: Pattern -> Pattern -> Bool
$c<= :: Pattern -> Pattern -> Bool
< :: Pattern -> Pattern -> Bool
$c< :: Pattern -> Pattern -> Bool
compare :: Pattern -> Pattern -> Ordering
$ccompare :: Pattern -> Pattern -> Ordering
Ord, forall x. Rep Pattern x -> Pattern
forall x. Pattern -> Rep Pattern x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Pattern x -> Pattern
$cfrom :: forall x. Pattern -> Rep Pattern x
Generic)
  deriving anyclass (Pattern -> ()
forall a. (a -> ()) -> NFData a
rnf :: Pattern -> ()
$crnf :: Pattern -> ()
NFData, Eq Pattern
Int -> Pattern -> Int
Pattern -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: Pattern -> Int
$chash :: Pattern -> Int
hashWithSalt :: Int -> Pattern -> Int
$chashWithSalt :: Int -> Pattern -> Int
Hashable)