From 49e067874133e12d10ad3ac0c941438e2d7025e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Wed, 15 Dec 2021 00:45:38 +0900 Subject: [PATCH] Add markdown grammar Fixes #215 --- .gitmodules | 4 +++ helix-syntax/languages/tree-sitter-markdown | 1 + languages.toml | 9 ++++++ runtime/queries/markdown/highlights.scm | 35 +++++++++++++++++++++ runtime/queries/markdown/injections.scm | 0 runtime/queries/svelte/highlights.scm | 2 +- theme.toml | 6 ++++ 7 files changed, 56 insertions(+), 1 deletion(-) create mode 160000 helix-syntax/languages/tree-sitter-markdown create mode 100644 runtime/queries/markdown/highlights.scm create mode 100644 runtime/queries/markdown/injections.scm diff --git a/.gitmodules b/.gitmodules index 6295b9e95..9c10846d0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -150,3 +150,7 @@ path = helix-syntax/languages/tree-sitter-llvm url = https://github.com/benwilliamgraham/tree-sitter-llvm shallow = true +[submodule "helix-syntax/languages/tree-sitter-markdown"] + path = helix-syntax/languages/tree-sitter-markdown + url = https://github.com/MDeiml/tree-sitter-markdown + shallow = true diff --git a/helix-syntax/languages/tree-sitter-markdown b/helix-syntax/languages/tree-sitter-markdown new file mode 160000 index 000000000..ad8c32917 --- /dev/null +++ b/helix-syntax/languages/tree-sitter-markdown @@ -0,0 +1 @@ +Subproject commit ad8c32917a16dfbb387d1da567bf0c3fb6fffde2 diff --git a/languages.toml b/languages.toml index 07b6dba9f..abb94acf7 100644 --- a/languages.toml +++ b/languages.toml @@ -421,3 +421,12 @@ roots = [] file-types = ["ll"] comment-token = ";" indent = { tab-width = 2, unit = " " } + +[[language]] +name = "markdown" +scope = "source.md" +injection-regex = "md|markdown" +file-types = ["md"] +roots = [] + +indent = { tab-width = 2, unit = " " } diff --git a/runtime/queries/markdown/highlights.scm b/runtime/queries/markdown/highlights.scm new file mode 100644 index 000000000..a102719b1 --- /dev/null +++ b/runtime/queries/markdown/highlights.scm @@ -0,0 +1,35 @@ +[ + (atx_heading) + (setext_heading) +] @markup.heading + +(code_fence_content) @none + +[ + (indented_code_block) + (fenced_code_block) +] @markup.raw.block + +(code_span) @markup.raw.inline + +(emphasis) @markup.italic + +(strong_emphasis) @markup.bold + +(link_destination) @markup.underline.link + +; (link_label) @markup.label ; TODO: rename + +[ + (list_marker_plus) + (list_marker_minus) + (list_marker_star) + (list_marker_dot) + (list_marker_parenthesis) +] @punctuation.special + +[ + (backslash_escape) + (hard_line_break) +] @string.character.escape + diff --git a/runtime/queries/markdown/injections.scm b/runtime/queries/markdown/injections.scm new file mode 100644 index 000000000..e69de29bb diff --git a/runtime/queries/svelte/highlights.scm b/runtime/queries/svelte/highlights.scm index 4fcdfd669..f9eef6b5f 100644 --- a/runtime/queries/svelte/highlights.scm +++ b/runtime/queries/svelte/highlights.scm @@ -25,7 +25,7 @@ ((attribute (attribute_name) @_attr - (quoted_attribute_value (attribute_value) @markup.undeline.link)) + (quoted_attribute_value (attribute_value) @markup.underline.link)) (#match? @_attr "^(href|src)$")) (tag_name) @tag diff --git a/theme.toml b/theme.toml index 8c0d1f6ca..0a79861e2 100644 --- a/theme.toml +++ b/theme.toml @@ -28,6 +28,12 @@ string = "silver" # used for lifetimes label = "honey" +"markup.heading" = "lilac" +"markup.bold" = { modifiers = ["bold"] } +"markup.italic" = { modifiers = ["italic"] } +"markup.underline.link" = { fg = "silver", modifiers = ["underlined"] } +"markup.raw" = "almond" + # TODO: diferentiate doc comment # concat (ERROR) @error.syntax and "MISSING ;" selectors for errors