diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 297f67af016c..10989a23c14b 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -114,6 +114,7 @@ | perl | ✓ | | | `perlnavigator` | | php | ✓ | ✓ | ✓ | `intelephense` | | po | ✓ | ✓ | | | +| pod | ✓ | | | | | ponylang | ✓ | ✓ | ✓ | | | prisma | ✓ | | | `prisma-language-server` | | prolog | | | | `swipl` | diff --git a/languages.toml b/languages.toml index 0e2178427b95..defffa0337e7 100644 --- a/languages.toml +++ b/languages.toml @@ -1117,6 +1117,17 @@ indent = { tab-width = 2, unit = " " } name = "perl" source = { git = "https://github.com/tree-sitter-perl/tree-sitter-perl", rev = "ed21ecbcc128a6688770ebafd3ef68a1c9bc1ea9" } +[[language]] +name = "pod" +scope = "source.pod" +injection-regex = "pod" +roots = [] +file-types = ["pod"] + +[[grammar]] +name = "pod" +source = { git = "https://github.com/tree-sitter-perl/tree-sitter-pod", rev = "d466b84009a63986834498073ec05d58d727d55f" } + [[language]] name = "racket" scope = "source.racket" diff --git a/runtime/queries/perl/highlights.scm b/runtime/queries/perl/highlights.scm index 961ff5ea399c..c2496f9fbd94 100644 --- a/runtime/queries/perl/highlights.scm +++ b/runtime/queries/perl/highlights.scm @@ -41,8 +41,6 @@ (eof_marker) @keyword.directive (data_section) @comment -(pod) @comment.block.documentation - (number) @constant.numeric (version) @constant diff --git a/runtime/queries/perl/injections.scm b/runtime/queries/perl/injections.scm index 321c90add371..2b182a6ed961 100644 --- a/runtime/queries/perl/injections.scm +++ b/runtime/queries/perl/injections.scm @@ -1,2 +1,4 @@ ((comment) @injection.content (#set! injection.language "comment")) +((pod) @injection.content + (#set! injection.language "pod")) diff --git a/runtime/queries/pod/highlights.scm b/runtime/queries/pod/highlights.scm new file mode 100644 index 000000000000..e8bd4b54615c --- /dev/null +++ b/runtime/queries/pod/highlights.scm @@ -0,0 +1,61 @@ +[(pod_directive) + (head_directive) + (over_directive) + (item_directive) + (back_directive) + (encoding_directive) + (cut_directive)] @tag + +(head_paragraph + (head_directive) @directive + (#eq? @directive "=head1") + (content) @markup.heading.1) +(head_paragraph + (head_directive) @directive + (#eq? @directive "=head2") + (content) @markup.heading.2) +(head_paragraph + (head_directive) @directive + (#eq? @directive "=head3") + (content) @markup.heading.3) +(head_paragraph + (head_directive) @directive + (#eq? @directive "=head4") + (content) @markup.heading.4) +(head_paragraph + (head_directive) @directive + (#eq? @directive "=head5") + (content) @markup.heading.5) +(head_paragraph + (head_directive) @directive + (#eq? @directive "=head6") + (content) @markup.heading.6) + +(over_paragraph (content) @constant.numeric.integer) +(item_paragraph (content) @markup.list) +(encoding_paragraph (content) @string) + +(verbatim_paragraph (content) @markup.raw) + +(interior_sequence) @tag + +(interior_sequence + (sequence_letter) @letter + (#eq? @letter "B") + (content) @markup.bold) +(interior_sequence + (sequence_letter) @letter + (#eq? @letter "C") + (content) @markup.raw) +(interior_sequence + (sequence_letter) @letter + (#eq? @letter "F") + (content) @markup.italic) +(interior_sequence + (sequence_letter) @letter + (#eq? @letter "I") + (content) @markup.italic) +(interior_sequence + (sequence_letter) @letter + (#eq? @letter "L") + (content) @markup.link.url)