From 7eb013c6fb33df40b2fae31c9d08f7da275cd963 Mon Sep 17 00:00:00 2001 From: zetashift Date: Sun, 20 Mar 2022 23:14:30 +0100 Subject: [PATCH] Initial basic Org markup support thanks to tree-sitter-org (#1845) --- book/src/generated/lang-support.md | 1 + languages.toml | 12 ++++++++++++ runtime/queries/org/highlights.scm | 24 ++++++++++++++++++++++++ runtime/queries/org/injections.scm | 4 ++++ 4 files changed, 41 insertions(+) create mode 100644 runtime/queries/org/highlights.scm create mode 100644 runtime/queries/org/injections.scm diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 70edafb9c..a3fbe8a39 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 6aa5be3c5..5aa1b2c8a 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 000000000..db8329fa6 --- /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 000000000..24d712d6f --- /dev/null +++ b/runtime/queries/org/injections.scm @@ -0,0 +1,4 @@ +(block parameter: (expr) @injection.language + (contents) @injection.content + (#set! injection.include-children)) +