summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml12
-rw-r--r--runtime/queries/org/highlights.scm24
-rw-r--r--runtime/queries/org/injections.scm4
4 files changed, 41 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index 70edafb9..a3fbe8a3 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -42,6 +42,7 @@
| nix | ✓ | | ✓ | `rnix-lsp` |
| ocaml | ✓ | | ✓ | |
| ocaml-interface | ✓ | | | |
+| org | ✓ | | | |
| perl | ✓ | ✓ | ✓ | |
| php | ✓ | ✓ | ✓ | |
| prolog | | | | `swipl` |
diff --git a/languages.toml b/languages.toml
index 6aa5be3c..5aa1b2c8 100644
--- a/languages.toml
+++ b/languages.toml
@@ -976,3 +976,15 @@ auto-format = true
[[grammar]]
name = "hcl"
source = { git = "https://github.com/MichaHoffmann/tree-sitter-hcl", rev = "3cb7fc28247efbcb2973b97e71c78838ad98a583" }
+
+[[language]]
+name = "org"
+scope = "source.org"
+injection-regex = "org"
+file-types = ["org"]
+roots = []
+indent = { tab-width = 2, unit = " " }
+
+[[grammar]]
+name = "org"
+source = { git = "https://github.com/milisims/tree-sitter-org", rev = "1c3eb533a9cf6800067357b59e03ac3f91fc3a54" }
diff --git a/runtime/queries/org/highlights.scm b/runtime/queries/org/highlights.scm
new file mode 100644
index 00000000..db8329fa
--- /dev/null
+++ b/runtime/queries/org/highlights.scm
@@ -0,0 +1,24 @@
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "*")) @markup.heading.1
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "**")) @markup.heading.2
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "***")) @markup.heading.3
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "****")) @markup.heading.4
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "*****")) @markup.heading.5
+(headline (stars) @markup.heading.marker (#eq? @markup.heading.marker "******")) @markup.heading.6
+
+(block) @markup.raw.block
+(list) @markup.list.unnumbered
+(directive) @markup.label
+(property_drawer) @markup.label
+
+
+((expr) @markup.bold
+ (#match? @markup.bold "\\*.*\\*"))
+
+((expr) @markup.italic
+ (#match? @markup.italic "/.*/"))
+((expr) @markup.raw.inline
+ (#match? @markup.raw.inline "~.*~"))
+
+((expr) @markup.quote
+ (#match? @markup.quote "=.*="))
+
diff --git a/runtime/queries/org/injections.scm b/runtime/queries/org/injections.scm
new file mode 100644
index 00000000..24d712d6
--- /dev/null
+++ b/runtime/queries/org/injections.scm
@@ -0,0 +1,4 @@
+(block parameter: (expr) @injection.language
+ (contents) @injection.content
+ (#set! injection.include-children))
+