From 80bf8b63c936b6c84409446aa6742aae4f0b4026 Mon Sep 17 00:00:00 2001 From: Gaeulbyul <830515+gaeulbyul@users.noreply.github.com> Date: Sun, 10 Jun 2018 22:52:02 +0900 Subject: [PATCH 01/13] Fix "Undefined variable" error on load ``` Error detected while processing vim-caddyfile/ftplugin/caddyfile.vim: line 19: E121: Undefined variable: g:NERDDelimiterMap Press ENTER or type command to continue ``` This commit will fix error on loading Caddyfile --- ftplugin/caddyfile.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftplugin/caddyfile.vim b/ftplugin/caddyfile.vim index 53ecd6d..5500406 100644 --- a/ftplugin/caddyfile.vim +++ b/ftplugin/caddyfile.vim @@ -16,7 +16,7 @@ if exists('g:NERDDelimiterMap') endif elseif exists('g:NERDCustomDelimiters') if !has_key(g:NERDCustomDelimiters, 'caddyfile') - let g:NERDDelimiterMap.caddyfile = s:delimiters + let g:NERDCustomDelimiters.caddyfile = s:delimiters endif else let g:NERDCustomDelimiters = {'caddyfile': s:delimiters} From 47cc7ebcd07b91bbba81b6a70dd8f53d1cc69fb4 Mon Sep 17 00:00:00 2001 From: Nonkr Date: Tue, 12 Jun 2018 17:35:39 +0800 Subject: [PATCH 02/13] :sparkles:support *.Caddyfile --- ftdetect/caddyfile.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftdetect/caddyfile.vim b/ftdetect/caddyfile.vim index ec2ac0c..8ac80e8 100644 --- a/ftdetect/caddyfile.vim +++ b/ftdetect/caddyfile.vim @@ -1 +1 @@ -au BufNewFile,BufRead Caddyfile set ft=caddyfile +au BufNewFile,BufRead Caddyfile,*.Caddyfile set ft=caddyfile From ec0519d8880d189d0a439b42fe447c41cd41c207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gawe=C5=82=20Kazimierczuk?= Date: Tue, 2 Nov 2021 10:41:06 +0100 Subject: [PATCH 03/13] Make it work with sudoedit --- ftdetect/caddyfile.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/ftdetect/caddyfile.vim b/ftdetect/caddyfile.vim index ec2ac0c..3b5c12c 100644 --- a/ftdetect/caddyfile.vim +++ b/ftdetect/caddyfile.vim @@ -1 +1,2 @@ au BufNewFile,BufRead Caddyfile set ft=caddyfile +au BufRead Caddyfile.* set ft=caddyfile From a989763c4d91bb4b6f366c3603270fb49e9f8982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gawe=C5=82=20Kazimierczuk?= Date: Tue, 2 Nov 2021 11:25:43 +0100 Subject: [PATCH 04/13] Highlight named matchers --- syntax/caddyfile.vim | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index 8309542..d20c440 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -6,11 +6,11 @@ if exists("b:current_syntax") endif syn match caddyDirective "^\s*\([a-zA-Z0-9_]\+\)" nextgroup=caddyDirectiveArgs skipwhite -syn region caddyDirectiveArgs start="" end="\({\|#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString nextgroup=caddyDirectiveBlock skipwhite +syn region caddyDirectiveArgs start="" end="\({\|#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher nextgroup=caddyDirectiveBlock skipwhite syn region caddyDirectiveBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment syn match caddySubdirective "^\s*\([a-zA-Z0-9_]\+\)" contained nextgroup=caddySubdirectiveArgs skipwhite -syn region caddySubdirectiveArgs start="" end="\(#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString +syn region caddySubdirectiveArgs start="" end="\(#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher syn match caddyHost "\(https\?:\/\/\)\?\(\(\w\{1,}\.\)\(\w\{2,}\.\?\)\+\|localhost\)\(:[0-9]\{1,5}\)\?" nextgroup=caddyHostBlock skipwhite syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment @@ -18,6 +18,7 @@ syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyD syn region caddyPlaceholder start="{" skip="\\}" end="}" oneline contained syn region caddyString start='"' skip='\\\\\|\\"' end='"' oneline syn match caddyComment "#.*$" +syn match caddyNamedMatcher "\(\s\|^\)@[a-z]\+" hi link caddyDirective Keyword hi link caddySubdirective Structure @@ -25,5 +26,6 @@ hi link caddyHost Identifier hi link caddyPlaceholder Special hi link caddyString String hi link caddyComment Comment +hi link caddyNamedMatcher Identifier let b:current_syntax = "caddyfile" From f6eb2e4ac7e861c3ef0458a450751e42cd81eee1 Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Thu, 18 Nov 2021 02:50:50 -0800 Subject: [PATCH 05/13] syntax: Add support for hyphens in hostnames --- syntax/caddyfile.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index d20c440..b03875e 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -12,7 +12,7 @@ syn region caddyDirectiveBlock start="{" skip="\\}" end="}" contained contains=c syn match caddySubdirective "^\s*\([a-zA-Z0-9_]\+\)" contained nextgroup=caddySubdirectiveArgs skipwhite syn region caddySubdirectiveArgs start="" end="\(#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher -syn match caddyHost "\(https\?:\/\/\)\?\(\(\w\{1,}\.\)\(\w\{2,}\.\?\)\+\|localhost\)\(:[0-9]\{1,5}\)\?" nextgroup=caddyHostBlock skipwhite +syn match caddyHost "\v\c(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment syn region caddyPlaceholder start="{" skip="\\}" end="}" oneline contained From 84d42c009b5f3aead073aeb24f28feb3a87d6fb2 Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Thu, 18 Nov 2021 03:30:26 -0800 Subject: [PATCH 06/13] syntax: Restrict hosts to start of line + whitespace Fixes a bug where hosts inside args would match as caddyHost. --- syntax/caddyfile.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index b03875e..4e94bf6 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -12,7 +12,7 @@ syn region caddyDirectiveBlock start="{" skip="\\}" end="}" contained contains=c syn match caddySubdirective "^\s*\([a-zA-Z0-9_]\+\)" contained nextgroup=caddySubdirectiveArgs skipwhite syn region caddySubdirectiveArgs start="" end="\(#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher -syn match caddyHost "\v\c(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite +syn match caddyHost "\v\c^\s*\zs(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment syn region caddyPlaceholder start="{" skip="\\}" end="}" oneline contained From 17f59356cfcb2b16bc3c43c9560b6155cf1a4ddb Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Thu, 18 Nov 2021 15:50:23 -0800 Subject: [PATCH 07/13] syntax: Add support for imports --- syntax/caddyfile.vim | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index 4e94bf6..f77a6c6 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -7,13 +7,18 @@ endif syn match caddyDirective "^\s*\([a-zA-Z0-9_]\+\)" nextgroup=caddyDirectiveArgs skipwhite syn region caddyDirectiveArgs start="" end="\({\|#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher nextgroup=caddyDirectiveBlock skipwhite -syn region caddyDirectiveBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment +syn region caddyDirectiveBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment,caddyImport syn match caddySubdirective "^\s*\([a-zA-Z0-9_]\+\)" contained nextgroup=caddySubdirectiveArgs skipwhite syn region caddySubdirectiveArgs start="" end="\(#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher +" Needs priority over Directive +syn match caddyImport "\v^\s*(import)" nextgroup=caddyImportPattern skipwhite +syn match caddyImportPattern "\v\c\S+" contained nextgroup=caddyImportArgs skipwhite +syn region caddyImportArgs start="" end="$"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher + syn match caddyHost "\v\c^\s*\zs(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite -syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment +syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment,caddyImport syn region caddyPlaceholder start="{" skip="\\}" end="}" oneline contained syn region caddyString start='"' skip='\\\\\|\\"' end='"' oneline @@ -23,6 +28,7 @@ syn match caddyNamedMatcher "\(\s\|^\)@[a-z]\+" hi link caddyDirective Keyword hi link caddySubdirective Structure hi link caddyHost Identifier +hi link caddyImport PreProc hi link caddyPlaceholder Special hi link caddyString String hi link caddyComment Comment From cdf3de6ba69aec77520360873f1f5434352deaf0 Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Thu, 18 Nov 2021 15:53:19 -0800 Subject: [PATCH 08/13] syntax: Add support for named matcher definitions --- syntax/caddyfile.vim | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index f77a6c6..3ea0475 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -18,12 +18,15 @@ syn match caddyImportPattern "\v\c\S+" contained nextgroup=caddyImportArgs skipw syn region caddyImportArgs start="" end="$"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher syn match caddyHost "\v\c^\s*\zs(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite -syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment,caddyImport +syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment,caddyNamedMatcherDef,caddyImport + +syn match caddyNamedMatcher "\v^\s*\zs\@\S+" contained skipwhite +syn match caddyNamedMatcherDef "\v\s*\zs\@\S+" nextgroup=caddyNamedMatcherDefBlock +syn region caddyNamedMatcherDefBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment,caddyImport syn region caddyPlaceholder start="{" skip="\\}" end="}" oneline contained syn region caddyString start='"' skip='\\\\\|\\"' end='"' oneline syn match caddyComment "#.*$" -syn match caddyNamedMatcher "\(\s\|^\)@[a-z]\+" hi link caddyDirective Keyword hi link caddySubdirective Structure @@ -32,6 +35,7 @@ hi link caddyImport PreProc hi link caddyPlaceholder Special hi link caddyString String hi link caddyComment Comment +hi link caddyNamedMatcherDef caddyNamedMatcher hi link caddyNamedMatcher Identifier let b:current_syntax = "caddyfile" From de23be620cd4c2010563d6c4058319bfdb11631e Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Thu, 18 Nov 2021 15:53:50 -0800 Subject: [PATCH 09/13] syntax: Use region for comments --- syntax/caddyfile.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index 3ea0475..17c677d 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -26,7 +26,7 @@ syn region caddyNamedMatcherDefBlock start="{" skip="\\}" end="}" contained cont syn region caddyPlaceholder start="{" skip="\\}" end="}" oneline contained syn region caddyString start='"' skip='\\\\\|\\"' end='"' oneline -syn match caddyComment "#.*$" +syn region caddyComment start="#" end="$" oneline hi link caddyDirective Keyword hi link caddySubdirective Structure From 5e57c5792239cf0141238a3a5b2d4171884a67ce Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Thu, 18 Nov 2021 15:54:09 -0800 Subject: [PATCH 10/13] syntax: Add support for snippets --- syntax/caddyfile.vim | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index 17c677d..5b884a5 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -20,6 +20,10 @@ syn region caddyImportArgs start="" end="$"me=s-1 oneline contained contains=cad syn match caddyHost "\v\c^\s*\zs(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment,caddyNamedMatcherDef,caddyImport +" Needs priority over Host +syn region caddySnippetDef start="("rs=e+1 end=")"re=s-1 oneline keepend contains=caddySnippet +syn match caddySnippet "\v\w+" contained nextgroup=caddySnippetBlock skipwhite + syn match caddyNamedMatcher "\v^\s*\zs\@\S+" contained skipwhite syn match caddyNamedMatcherDef "\v\s*\zs\@\S+" nextgroup=caddyNamedMatcherDefBlock syn region caddyNamedMatcherDefBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment,caddyImport @@ -32,6 +36,8 @@ hi link caddyDirective Keyword hi link caddySubdirective Structure hi link caddyHost Identifier hi link caddyImport PreProc +hi link caddySnippetDef PreProc +hi link caddySnippet Identifier hi link caddyPlaceholder Special hi link caddyString String hi link caddyComment Comment From e4d5436ee5e1a78b44341aa9616fc67db172f2fe Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Thu, 18 Nov 2021 15:55:27 -0800 Subject: [PATCH 11/13] Update metadata blocks --- ftplugin/caddyfile.vim | 5 +++-- syntax/caddyfile.vim | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ftplugin/caddyfile.vim b/ftplugin/caddyfile.vim index 5500406..fbaa137 100644 --- a/ftplugin/caddyfile.vim +++ b/ftplugin/caddyfile.vim @@ -1,5 +1,6 @@ -" Language: Caddyfile -" Author: Josh Glendenning +" Language: Caddyfile +" Maintainer: 0az <0az@afzhou.com> +" Original Author: Josh Glendenning if exists('b:did_ftplugin') finish diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index 5b884a5..4da4b6c 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -1,5 +1,6 @@ -" Language: Caddyfile -" Author: Josh Glendenning +" Language: Caddyfile +" Maintainer: 0az <0az@afzhou.com> +" Original Author: Josh Glendenning if exists("b:current_syntax") finish From 519ddfafa4aee95e9f9ce690e6b517e79e90f92f Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Fri, 19 Nov 2021 00:08:56 -0800 Subject: [PATCH 12/13] syntax: Fix localhost / single-part hostnames --- syntax/caddyfile.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index 4da4b6c..2467bce 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -18,7 +18,7 @@ syn match caddyImport "\v^\s*(import)" nextgroup=caddyImportPattern skipwhite syn match caddyImportPattern "\v\c\S+" contained nextgroup=caddyImportArgs skipwhite syn region caddyImportArgs start="" end="$"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher -syn match caddyHost "\v\c^\s*\zs(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite +syn match caddyHost "\v\c^\s*\zs(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+|[0-9a-z-]+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment,caddyNamedMatcherDef,caddyImport " Needs priority over Host From cae29906371eb6bb9ea490f562fb04b3a7a3cf4f Mon Sep 17 00:00:00 2001 From: 0az <0az@afzhou.com> Date: Sat, 20 Nov 2021 15:08:43 -0800 Subject: [PATCH 13/13] syntax: Fix directives, subdirectives, and imports --- syntax/caddyfile.vim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/syntax/caddyfile.vim b/syntax/caddyfile.vim index 2467bce..14ac889 100644 --- a/syntax/caddyfile.vim +++ b/syntax/caddyfile.vim @@ -6,15 +6,15 @@ if exists("b:current_syntax") finish endif -syn match caddyDirective "^\s*\([a-zA-Z0-9_]\+\)" nextgroup=caddyDirectiveArgs skipwhite +syn match caddyDirective "\v^\s*(\w\S*)" nextgroup=caddyDirectiveArgs skipwhite syn region caddyDirectiveArgs start="" end="\({\|#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher nextgroup=caddyDirectiveBlock skipwhite syn region caddyDirectiveBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment,caddyImport -syn match caddySubdirective "^\s*\([a-zA-Z0-9_]\+\)" contained nextgroup=caddySubdirectiveArgs skipwhite +syn match caddySubdirective "\v^\s*(\w\S*)" contained nextgroup=caddySubdirectiveArgs skipwhite syn region caddySubdirectiveArgs start="" end="\(#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher " Needs priority over Directive -syn match caddyImport "\v^\s*(import)" nextgroup=caddyImportPattern skipwhite +syn match caddyImport "\v^\s*" nextgroup=caddyImportPattern skipwhite syn match caddyImportPattern "\v\c\S+" contained nextgroup=caddyImportArgs skipwhite syn region caddyImportArgs start="" end="$"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher