Skip to content

Commit 24fe072

Browse files
authored
Merge pull request #4 from 0az/main
Integrate changes from all extant forks
2 parents 0d3018d + cae2990 commit 24fe072

3 files changed

Lines changed: 34 additions & 14 deletions

File tree

ftdetect/caddyfile.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
au BufNewFile,BufRead Caddyfile set ft=caddyfile
1+
au BufNewFile,BufRead Caddyfile,*.Caddyfile,Caddyfile.* set ft=caddyfile

ftplugin/caddyfile.vim

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
" Language: Caddyfile
2-
" Author: Josh Glendenning <josh@isobit.io>
1+
" Language: Caddyfile
2+
" Maintainer: 0az <0az@afzhou.com>
3+
" Original Author: Josh Glendenning <josh@isobit.io>
34

45
if exists('b:did_ftplugin')
56
finish
@@ -16,7 +17,7 @@ if exists('g:NERDDelimiterMap')
1617
endif
1718
elseif exists('g:NERDCustomDelimiters')
1819
if !has_key(g:NERDCustomDelimiters, 'caddyfile')
19-
let g:NERDDelimiterMap.caddyfile = s:delimiters
20+
let g:NERDCustomDelimiters.caddyfile = s:delimiters
2021
endif
2122
else
2223
let g:NERDCustomDelimiters = {'caddyfile': s:delimiters}

syntax/caddyfile.vim

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,48 @@
1-
" Language: Caddyfile
2-
" Author: Josh Glendenning <josh@isobit.io>
1+
" Language: Caddyfile
2+
" Maintainer: 0az <0az@afzhou.com>
3+
" Original Author: Josh Glendenning <josh@isobit.io>
34

45
if exists("b:current_syntax")
56
finish
67
endif
78

8-
syn match caddyDirective "^\s*\([a-zA-Z0-9_]\+\)" nextgroup=caddyDirectiveArgs skipwhite
9-
syn region caddyDirectiveArgs start="" end="\({\|#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString nextgroup=caddyDirectiveBlock skipwhite
10-
syn region caddyDirectiveBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment
9+
syn match caddyDirective "\v^\s*(\w\S*)" nextgroup=caddyDirectiveArgs skipwhite
10+
syn region caddyDirectiveArgs start="" end="\({\|#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher nextgroup=caddyDirectiveBlock skipwhite
11+
syn region caddyDirectiveBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment,caddyImport
1112

12-
syn match caddySubdirective "^\s*\([a-zA-Z0-9_]\+\)" contained nextgroup=caddySubdirectiveArgs skipwhite
13-
syn region caddySubdirectiveArgs start="" end="\(#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString
13+
syn match caddySubdirective "\v^\s*(\w\S*)" contained nextgroup=caddySubdirectiveArgs skipwhite
14+
syn region caddySubdirectiveArgs start="" end="\(#\|$\)"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher
1415

15-
syn match caddyHost "\(https\?:\/\/\)\?\(\(\w\{1,}\.\)\(\w\{2,}\.\?\)\+\|localhost\)\(:[0-9]\{1,5}\)\?" nextgroup=caddyHostBlock skipwhite
16-
syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment
16+
" Needs priority over Directive
17+
syn match caddyImport "\v^\s*<import>" nextgroup=caddyImportPattern skipwhite
18+
syn match caddyImportPattern "\v\c\S+" contained nextgroup=caddyImportArgs skipwhite
19+
syn region caddyImportArgs start="" end="$"me=s-1 oneline contained contains=caddyPlaceholder,caddyString,caddyNamedMatcher
20+
21+
syn match caddyHost "\v\c^\s*\zs(https?://)?(([0-9a-z-]+\.)([0-9a-z-]+\.?)+|[0-9a-z-]+)?(:\d{1,5})?" nextgroup=caddyHostBlock skipwhite
22+
syn region caddyHostBlock start="{" skip="\\}" end="}" contained contains=caddyDirective,caddyComment,caddyNamedMatcherDef,caddyImport
23+
24+
" Needs priority over Host
25+
syn region caddySnippetDef start="("rs=e+1 end=")"re=s-1 oneline keepend contains=caddySnippet
26+
syn match caddySnippet "\v\w+" contained nextgroup=caddySnippetBlock skipwhite
27+
28+
syn match caddyNamedMatcher "\v^\s*\zs\@\S+" contained skipwhite
29+
syn match caddyNamedMatcherDef "\v\s*\zs\@\S+" nextgroup=caddyNamedMatcherDefBlock
30+
syn region caddyNamedMatcherDefBlock start="{" skip="\\}" end="}" contained contains=caddySubdirective,caddyComment,caddyImport
1731

1832
syn region caddyPlaceholder start="{" skip="\\}" end="}" oneline contained
1933
syn region caddyString start='"' skip='\\\\\|\\"' end='"' oneline
20-
syn match caddyComment "#.*$"
34+
syn region caddyComment start="#" end="$" oneline
2135

2236
hi link caddyDirective Keyword
2337
hi link caddySubdirective Structure
2438
hi link caddyHost Identifier
39+
hi link caddyImport PreProc
40+
hi link caddySnippetDef PreProc
41+
hi link caddySnippet Identifier
2542
hi link caddyPlaceholder Special
2643
hi link caddyString String
2744
hi link caddyComment Comment
45+
hi link caddyNamedMatcherDef caddyNamedMatcher
46+
hi link caddyNamedMatcher Identifier
2847

2948
let b:current_syntax = "caddyfile"

0 commit comments

Comments
 (0)