From 36ed0bdb0826ef42a95936d818c14df392fbdff0 Mon Sep 17 00:00:00 2001 From: Christian Segundo Date: Wed, 17 Jan 2024 21:57:46 +0100 Subject: fix annoying markdown code block conceal --- public/nvim/.nvim/lua/plugins/lang/markdown.lua | 15 ++-- public/nvim/.nvim/queries/markdown/highlights.scm | 94 +++++++++++++++++++++++ 2 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 public/nvim/.nvim/queries/markdown/highlights.scm diff --git a/public/nvim/.nvim/lua/plugins/lang/markdown.lua b/public/nvim/.nvim/lua/plugins/lang/markdown.lua index dcacfc7..fe30437 100644 --- a/public/nvim/.nvim/lua/plugins/lang/markdown.lua +++ b/public/nvim/.nvim/lua/plugins/lang/markdown.lua @@ -20,12 +20,16 @@ return { { "preservim/vim-markdown", dependencies = { "godlygeek/tabular" }, - config = function() + init = function() + -- All concealing is handled by Treesitter + vim.g.vim_markdown_conceal = 0 vim.g.vim_markdown_conceal_code_blocks = 0 - vim.g.vim_markdown_frontmatter = 1 - vim.g.vim_markdown_strikethrough = 0 - vim.g.vim_markdown_auto_insert_bullets = 0 - vim.g.vim_markdown_new_list_item_indent = 0 + vim.g.vim_markdown_frontmatter = 0 + vim.g.vim_markdown_strikethrough = 0 + + vim.g.vim_markdown_auto_insert_bullets = 0 + vim.g.vim_markdown_new_list_item_indent = 0 + vim.g.vim_markdown_folding_disabled = 1 end, ft = { "markdown" }, }, @@ -37,6 +41,7 @@ return { opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { "markdown_inline", + "markdown", }) end end, diff --git a/public/nvim/.nvim/queries/markdown/highlights.scm b/public/nvim/.nvim/queries/markdown/highlights.scm new file mode 100644 index 0000000..5563428 --- /dev/null +++ b/public/nvim/.nvim/queries/markdown/highlights.scm @@ -0,0 +1,94 @@ +;From MDeiml/tree-sitter-markdown & Helix +;;same as the one shipped in nvim-treesitter without concealing codeblocks +(setext_heading (paragraph) @text.title.1 (setext_h1_underline) @text.title.1.marker) +(setext_heading (paragraph) @text.title.2 (setext_h2_underline) @text.title.2.marker) + +(atx_heading (atx_h1_marker) @text.title.1.marker (inline) @text.title.1) +(atx_heading (atx_h2_marker) @text.title.2.marker (inline) @text.title.2) +(atx_heading (atx_h3_marker) @text.title.3.marker (inline) @text.title.3) +(atx_heading (atx_h4_marker) @text.title.4.marker (inline) @text.title.4) +(atx_heading (atx_h5_marker) @text.title.5.marker (inline) @text.title.5) +(atx_heading (atx_h6_marker) @text.title.6.marker (inline) @text.title.6) + +(link_title) @text.literal +(indented_code_block) @text.literal.block +((fenced_code_block) @text.literal.block (#set! "priority" 90)) + +(info_string) @label + +(pipe_table_header (pipe_table_cell) @text.title) + +(pipe_table_header "|" @punctuation.special) +(pipe_table_row "|" @punctuation.special) +(pipe_table_delimiter_row "|" @punctuation.special) +(pipe_table_delimiter_cell) @punctuation.special + +[ + (fenced_code_block_delimiter) +] @punctuation.delimiter + +;; Conceal backticks +;(fenced_code_block + ;(fenced_code_block_delimiter) @conceal + ;(#set! conceal "")) +;(fenced_code_block + ;(info_string (language) @conceal + ;(#set! conceal ""))) + +; NOTE: The following has been commented out due to issues with spaces in the +; list marker nodes generated by the parser. If those spaces ever get captured +; by a different node (e.g. block_continuation) we can safely readd these +; conceals. +; ;; Conceal bullet points +; ([(list_marker_plus) (list_marker_star)] +; @punctuation.special +; (#offset! @punctuation.special 0 0 0 -1) +; (#set! conceal "•")) +; ([(list_marker_plus) (list_marker_star)] +; @punctuation.special +; (#any-of? @punctuation.special "+" "*") +; (#set! conceal "•")) +; ((list_marker_minus) +; @punctuation.special +; (#offset! @punctuation.special 0 0 0 -1) +; (#set! conceal "—")) +; ((list_marker_minus) +; @punctuation.special +; (#eq? @punctuation.special "-") +; (#set! conceal "—")) + +(code_fence_content) @none + +[ + (link_destination) +] @text.uri + +[ + (link_label) +] @text.reference + +[ + (list_marker_plus) + (list_marker_minus) + (list_marker_star) + (list_marker_dot) + (list_marker_parenthesis) + (thematic_break) +] @punctuation.special + + +(task_list_marker_unchecked) @text.todo.unchecked +(task_list_marker_checked) @text.todo.checked + +((block_quote) @text.quote (#set! "priority" 90)) + +[ + (block_continuation) + (block_quote_marker) +] @punctuation.special + +[ + (backslash_escape) +] @string.escape + +(inline) @spell -- cgit v1.2.3