aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml11
-rw-r--r--runtime/queries/po/highlights.scm15
-rw-r--r--runtime/queries/po/textobjects.scm6
4 files changed, 33 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index 1cdc9e6c..cdecb9b0 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -98,6 +98,7 @@
| pem | ✓ | | | |
| perl | ✓ | ✓ | ✓ | |
| php | ✓ | ✓ | ✓ | `intelephense` |
+| po | ✓ | ✓ | | |
| ponylang | ✓ | ✓ | ✓ | |
| prisma | ✓ | | | `prisma-language-server` |
| prolog | | | | `swipl` |
diff --git a/languages.toml b/languages.toml
index 38dedb44..1caef6b2 100644
--- a/languages.toml
+++ b/languages.toml
@@ -2193,3 +2193,14 @@ indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "yuck"
source = { git = "https://github.com/Philipp-M/tree-sitter-yuck", rev = "9e97da5773f82123a8c8cccf8f7e795d140ed7d1" }
+
+[[language]]
+name = "po"
+scope = "source.po"
+file-types = ["po", "pot"]
+roots = []
+comment-token = "#"
+
+[[grammar]]
+name = "po"
+source = { git = "https://github.com/erasin/tree-sitter-po", rev = "417cee9abb2053ed26b19e7de972398f2da9b29e" }
diff --git a/runtime/queries/po/highlights.scm b/runtime/queries/po/highlights.scm
new file mode 100644
index 00000000..b090f129
--- /dev/null
+++ b/runtime/queries/po/highlights.scm
@@ -0,0 +1,15 @@
+[
+ (msgctxt)
+ (msgid)
+ (msgid_plural)
+ (msgstr)
+]@keyword
+
+(comment) @comment
+(comment (comment_reference (text) @string.special.path))
+(comment (comment_flag (text) @label))
+
+(number) @constant.numeric
+(string) @string
+
+(ERROR) @error
diff --git a/runtime/queries/po/textobjects.scm b/runtime/queries/po/textobjects.scm
new file mode 100644
index 00000000..70abcb14
--- /dev/null
+++ b/runtime/queries/po/textobjects.scm
@@ -0,0 +1,6 @@
+(msgid) @parameter.inside
+
+(comment) @comment.inside
+(comment)+ @comment.around
+
+