diff --git a/syntax/just.vim b/syntax/just.vim index ffaf2ea..6f84d07 100644 --- a/syntax/just.vim +++ b/syntax/just.vim @@ -29,6 +29,8 @@ syn region justRawString start=/'/ end=/'/ syn region justRawString start=/'''/ end=/'''/ syn region justString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=justLineContinuation,justStringEscapeSequence syn region justString start=/"""/ skip=/\\\\\|\\"/ end=/"""/ contains=justLineContinuation,justStringEscapeSequence + +syn cluster justStringLiterals contains=justRawString,justString syn cluster justAllStrings contains=justBacktick,justRawString,justString syn match justRegexReplacement /\v,%(\_s|\\\n)*%('\_[^']*'|'''%(\_.%(''')@!)*\_.?''')%(\_s|\\\n)*\)/me=e-1 transparent contained contains=@justExpr,@justStringsWithRegexCapture @@ -59,12 +61,15 @@ syn match justRecipeColon ":" contained syn region justRecipeAttributes \ matchgroup=justRecipeAttr start='\v^%(\\\n)@3value ''' param1 + $ param2: env + +[confirm()] +argless-attribute1: + /bin/false + +[confirm( )] +argless-attribute2: + /bin/false + +[confirm \ + ( + + \ +) ] +argless-attribute3: + /bin/false diff --git a/tests/cases/invalid.just b/tests/cases/invalid.just index 98be678..036b379 100644 --- a/tests/cases/invalid.just +++ b/tests/cases/invalid.just @@ -83,3 +83,19 @@ non-default-param-after-default4 param0=''' value ''' param1 + $ param2: env + +[confirm()] +argless-attribute1: + /bin/false + +[confirm( )] +argless-attribute2: + /bin/false + +[confirm \ + ( + + \ +) ] +argless-attribute3: + /bin/false diff --git a/tests/cases/recipes-with-extras.html b/tests/cases/recipes-with-extras.html index b474fc7..93b378e 100644 --- a/tests/cases/recipes-with-extras.html +++ b/tests/cases/recipes-with-extras.html @@ -63,6 +63,29 @@ multiline-attr-no-continuations: /bin/true + +[confirm("confirm2: Are you sure?")] +confirm2: + python3 -c pass + +[confirm ( + ''' + confirm3: Are you sure?''' \ +) + ] +confirm3: + python3 -c pass + +[confirm \ + ( \ +" +confirm4: Are you sure? [y/N] +>" +)] +confirm4: + python3 -c pass + + somevar := "1" interp_with_func_with_arg foo: echo {{quote(foo)}} diff --git a/tests/cases/recipes-with-extras.just b/tests/cases/recipes-with-extras.just index 4deed58..35e56b4 100644 --- a/tests/cases/recipes-with-extras.just +++ b/tests/cases/recipes-with-extras.just @@ -63,6 +63,29 @@ runpwd_then_error: multiline-attr-no-continuations: /bin/true + +[confirm("confirm2: Are you sure?")] +confirm2: + python3 -c pass + +[confirm ( + ''' + confirm3: Are you sure?''' \ +) + ] +confirm3: + python3 -c pass + +[confirm \ + ( \ +" +confirm4: Are you sure? [y/N] +>" +)] +confirm4: + python3 -c pass + + somevar := "1" interp_with_func_with_arg foo: echo {{quote(foo)}}