aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/textmodes/markdown-ts-mode.el (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ; Use 'treesit-declare-unavailable-functions' in markdown-ts-mode.Eli Zaretskii2026-02-221-4/+1
|
* Add support for hiding markup delimiters in markdown-ts-modeRahul Martim Juliato2026-02-211-13/+52
| | | | | | | | | | | | | | | | | | * lisp/textmodes/markdown-ts-mode.el (markdown-ts-hide-markup): New defcustom controlling visibility of markup delimiters. (markdown-ts--fontify-delimiter): Fontify delimiter nodes and conditionally apply invisibility. (markdown-ts--set-hide-markup): Internal helper to update invisibility state. (markdown-ts-toggle-hide-markup): Interactive command to toggle delimiter visibility. (markdown-ts-setup): Initialize delimiter hiding according to 'markdown-ts-hide-markup' and register managed properties. (markdown-ts--treesit-settings): Use 'markdown-ts--fontify-delimiter' for delimiter nodes. (require 'outline): Ensure outline faces are available so headings are fontified correctly on first load.
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* December 2025 spelling fixesPaul Eggert2025-12-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the fixes are to continue to use American rather than British spelling. * doc/misc/modus-themes.org (my-modus-themes-engraved-faces): Fix misspelled ‘:foreground’s. * etc/themes/modus-themes.el (modus-themes-faces): Fix misspelled ‘modus-themes-bold’. * lisp/emacs-lisp/rx.el (rx--normalize-char-pattern): Rename from rx--normalise-char-pattern. (rx--optimize-or-args): Rename from rx--optimise-or-args. * lisp/frame.el (frame--special-parameters): Fix misspelled "right-divider-width". * lisp/net/tramp.el (tramp-fingerprint-prompt-regexp): Use American spelling “centered”, to match current libfprintf. * lisp/org/org-fold-core.el (org-fold-core--optimize-for-huge-buffers): Rename from org-fold-core--optimise-for-huge-buffers. (org-fold-core-update-optimization): Rename from org-fold-core-update-optimisation, leaving an alias behind. (org-fold-core-remove-optimization): Rename from org-fold-core-remove-optimisation, leaving an alias behind. * lisp/org/org.el (org-advertized-archive-subtree): This alias is now obsolete. * lisp/play/zone.el (zone-ignored-buffers): Fix misspelling of ‘zone--buffer-encrypted-p’. * lisp/progmodes/csharp-mode.el (csharp-ts-mode-faces): Fix misspelling of ‘csharp’ group. * lisp/vc/vc.el (vc-clonable-backends-custom-type): Rename from vc-cloneable-backends-custom-type, leaving an alias behind. * test/lisp/emacs-lisp/bytecomp-tests.el: (bytecomp-tests--warn-arity-non-compiled-callee): Rename from bytecomp-tests--warn-arity-noncompiled-callee. (bytecomp-test-defface-spec): Reword a deliberate misspelling of “default” that is so common I don’t want it to pollute the spelling dictionary. * test/lisp/emacs-lisp/package-vc-tests.el: (package-vc-tests-preserve-artifacts): Rename from package-vc-tests-preserve-artifacts. * test/lisp/eshell/em-prompt-tests.el: (em-prompt-test/forward-backward-paragraph-1): Reword a deliberate misspelling of “goodbye” that is so common I don’t want it to pollute the spelling dictionary.
* Skip unknown language for code block in markdown-ts-mode (bug#79670)Yuan Fu2025-10-291-5/+10
| | | | | | | * lisp/textmodes/markdown-ts-mode.el: (markdown-ts--convert-code-block-language): Return nil if the langauge doesn't have a corresponding major mode in markdown-ts-code-block-source-mode-map.
* Check if treesit-major-mode-remap-alist is bound in ts-modes autoload formsJuri Linkov2025-10-161-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/c-ts-mode.el: * lisp/progmodes/cmake-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/dockerfile-ts-mode.el: * lisp/progmodes/elixir-ts-mode.el: * lisp/progmodes/go-ts-mode.el: * lisp/progmodes/heex-ts-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/lua-ts-mode.el: * lisp/progmodes/php-ts-mode.el: * lisp/progmodes/python.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/rust-ts-mode.el: * lisp/progmodes/sh-script.el: * lisp/progmodes/typescript-ts-mode.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/markdown-ts-mode.el: * lisp/textmodes/mhtml-ts-mode.el: * lisp/textmodes/toml-ts-mode.el: * lisp/textmodes/yaml-ts-mode.el: In autoload forms replace '(treesit-available-p)' with (boundp 'treesit-major-mode-remap-alist). Calling 'treesit-available-p' in loaddefs.el is too early since the tree-sitter library might not be loaded yet. Checking if 'treesit-major-mode-remap-alist' is bound is equivalent to checking if Emacs is compiled with tree-sitter support. (bug#79622)
* * lisp/textmodes/markdown-ts-mode.el: Fix embed settings.Juri Linkov2025-08-291-22/+28
| | | | | | | (markdown-ts--range-settings): Move embed settings for html/toml/yaml to 'markdown-ts-setup'. (markdown-ts-setup): Append range rules to 'treesit-range-settings' only when grammars for html/toml/yaml are installed.
* Silence byte-compile warnings when treesit is not availableJuri Linkov2025-08-181-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/c-ts-mode.el: * lisp/progmodes/cmake-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/dockerfile-ts-mode.el: * lisp/progmodes/elixir-ts-mode.el: * lisp/progmodes/go-ts-mode.el: * lisp/progmodes/heex-ts-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/lua-ts-mode.el: * lisp/progmodes/php-ts-mode.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/rust-ts-mode.el: * lisp/progmodes/sh-script.el: * lisp/progmodes/typescript-ts-mode.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/markdown-ts-mode.el: * lisp/textmodes/mhtml-ts-mode.el: * lisp/textmodes/toml-ts-mode.el: * lisp/textmodes/yaml-ts-mode.el: Declare 'treesit-major-mode-remap-alist' and 'treesit-language-available-p' to silence warnings that are false alarms. Also improve docstrings.
* New user option 'treesit-enabled-modes' (bug#79180)Juri Linkov2025-08-141-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/treesit.el (treesit-enabled-modes): New user option. * src/treesit.c (treesit-major-mode-remap-alist): New variable. * lisp/progmodes/c-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/sh-script.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/mhtml-ts-mode.el: * lisp/textmodes/toml-ts-mode.el: Add ts-mode mapping to 'treesit-major-mode-remap-alist' for ts-modes that already have the corresponding non-ts mode association in 'auto-mode-alist'. * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode-maybe): * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode-maybe): * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode-maybe): * lisp/progmodes/go-ts-mode.el (go-ts-mode-maybe) (go-mod-ts-mode-maybe, go-work-ts-mode-maybe): * lisp/progmodes/heex-ts-mode.el (heex-ts-mode-maybe): * lisp/progmodes/lua-ts-mode.el (lua-ts-mode-maybe): * lisp/progmodes/php-ts-mode.el (php-ts-mode-maybe): * lisp/progmodes/rust-ts-mode.el (rust-ts-mode-maybe): * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode-maybe) (tsx-ts-mode-maybe): * lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode-maybe): * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode-maybe): Add a wrapper function to 'auto-mode-alist' for ts-modes that have no corresponding non-ts mode. Also add a mapping to 'treesit-major-mode-remap-alist' for the case when a non-ts mode is installed from an external source to be able to customize it with 'treesit-enabled-modes'.
* Use keyword :commit with full hashes for treesit-language-source-alist.Juri Linkov2025-06-201-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/treesit.el (treesit-language-source-alist): Document the format that uses keywords. (treesit--install-language-grammar-1): Remove args 'revision', 'source-dir', 'cc', 'c++', 'commit'. Use 'args' to process the keywords, and use the remaining list as the previous list of arguments. (treesit--install-language-grammar-1): Let-bind 'treesit--install-language-grammar-full-clone' and 'treesit--install-language-grammar-blobless' to t when 'commit' is non-nil (bug#78542). * lisp/progmodes/c-ts-mode.el: * lisp/progmodes/cmake-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/dockerfile-ts-mode.el: * lisp/progmodes/elixir-ts-mode.el: * lisp/progmodes/go-ts-mode.el: * lisp/progmodes/heex-ts-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/php-ts-mode.el: * lisp/progmodes/python.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/rust-ts-mode.el: * lisp/progmodes/sh-script.el: * lisp/progmodes/typescript-ts-mode.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/html-ts-mode.el: * lisp/textmodes/markdown-ts-mode.el: * lisp/textmodes/toml-ts-mode.el: * lisp/textmodes/yaml-ts-mode.el: Use the keyword :commit with full hashes instead of tags in 'treesit-language-source-alist'. * lisp/treesit-x.el (define-treesit-generic-mode): Simplify the keyword :copy-queries. (gitattributes-generic-ts-mode, liquid-generic-ts-mode): Add keywords :commit and :copy-queries to :source. * admin/tree-sitter/treesit-admin.el (treesit-admin--unversioned-treesit-language-source-alist): Handle :revision and :commit as well. (treesit-admin--find-latest-compatible-revision): Process the keywords in the recipe.
* * lisp/textmodes/markdown-ts-mode.el: Improve.Juri Linkov2025-05-041-10/+9
| | | | | | | | | | | | (markdown-ts-list-marker): Inherit from 'shadow' like in non-ts mode. (markdown-ts-block-quote): Inherit from 'italic' like in non-ts mode. (markdown-ts--treesit-settings): Use 'shadow' for parens in 'markdown-inline' only under 'inline_link' and 'image'. Use @markdown-ts-block-quote for 'block_quote'. Override with 'append' for links. (markdown-ts--range-settings): Use global html parser for 'html_tag' since its ranges are interconnected. (markdown-ts-setup): Create the 'html' parser.
* ; * lisp/textmodes/markdown-ts-mode.el (treesit-node-child): Declare.Eli Zaretskii2025-05-031-0/+1
|
* Embed html, yaml and toml in markdown-ts-mode.Juri Linkov2025-05-011-3/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/textmodes/markdown-ts-mode.el (markdown-ts--treesit-settings): Use @italic on the whole 'block_quote'. (markdown-ts-outline-predicate): New function. (markdown-ts--range-settings): Embed 'yaml' in host 'markdown', embed 'toml' in host 'markdown', embed 'html' in host 'markdown-inline', and use local 'html_block'. (markdown-ts-setup): Append html/yaml/toml to treesit-font-lock-settings and treesit-font-lock-feature-list when their grammars are ready. (markdown-ts-mode): Set comment-start/comment-end. Set treesit-outline-predicate to 'markdown-ts-outline-predicate'. * lisp/textmodes/toml-ts-mode.el (toml-ts-mode--font-lock-feature-list): New variable. (toml-ts-mode): Use it. * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode--font-lock-feature-list): New variable. (yaml-ts-mode): Use it. (yaml-ts-mode--outline-nodes): New variable. (yaml-ts-mode--outline-predicate): Use it. * lisp/treesit-x.el (liquid-generic-ts-mode): Use 'treesit-ready-p' on optional 'yaml' grammar. Merge 'yaml-ts-mode--font-lock-feature-list'.
* Fix parens inside links in markdown-ts--treesit-settings.Juri Linkov2025-04-181-0/+1
| | | | | | * lisp/textmodes/markdown-ts-mode.el (markdown-ts--treesit-settings): Override paren delimiter inside inline link. https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00655.html
* Lock tree-sitter language grammars to verified versions.Juri Linkov2025-04-181-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * admin/notes/tree-sitter/build-module/build.sh: Update org for toml/yaml. * admin/tree-sitter/treesit-admin.el (treesit-admin--builtin-language-sources): Add verified versions. * lisp/progmodes/c-ts-mode.el: Append language source to treesit-language-source-alist. (c-ts-mode, c++-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/cmake-ts-mode.el: Append language source to treesit-language-source-alist. (cmake-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/csharp-mode.el: Append language source to treesit-language-source-alist. (csharp-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/dockerfile-ts-mode.el: Append language source to treesit-language-source-alist. (dockerfile-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/elixir-ts-mode.el: Append language source to treesit-language-source-alist. (elixir-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/go-ts-mode.el: Append language source to treesit-language-source-alist. (go-ts-mode, go-mod-ts-mode, go-work-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/heex-ts-mode.el: Append language source to treesit-language-source-alist. (heex-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/java-ts-mode.el: Append language source to treesit-language-source-alist. (java-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/js.el: Append language source to treesit-language-source-alist. (js-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/json-ts-mode.el: Append language source to treesit-language-source-alist. (json-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/lua-ts-mode.el: Append language source to treesit-language-source-alist. (lua-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/php-ts-mode.el (php-ts-mode--language-source-alist): Update versions from comments in ts-modes. Append to treesit-language-source-alist. (php-ts-mode-install-parsers): Use treesit-language-source-alist directly. (php-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/ruby-ts-mode.el: Append language source to treesit-language-source-alist. (ruby-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/rust-ts-mode.el: Append language source to treesit-language-source-alist. (rust-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/sh-script.el: Append language source to treesit-language-source-alist. (bash-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/typescript-ts-mode.el: Append language source to treesit-language-source-alist. (typescript-ts-mode, tsx-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/css-mode.el: Append language source to treesit-language-source-alist. (css-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/html-ts-mode.el: Append language source to treesit-language-source-alist. (html-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/markdown-ts-mode.el: Append language source to treesit-language-source-alist. (markdown-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--language-source-alist): Append to treesit-language-source-alist. (mhtml-ts-mode-install-parsers): Use treesit-language-source-alist directly. (mhtml-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/toml-ts-mode.el: Append language source to treesit-language-source-alist. (toml-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/yaml-ts-mode.el: Append language source to treesit-language-source-alist. (yaml-ts-mode): Use treesit-ensure-installed. * test/infra/Dockerfile.emba: Add verified versions to treesit-language-source-alist.
* * lisp/textmodes/markdown-ts-mode.el: More ts-modes for code blocks.Juri Linkov2025-04-161-4/+32
| | | | | | | | (markdown-ts--code-block-language-map): Add more aliases. (markdown-ts-code-block-source-mode-map): Add more mappings for existing core ts-modes. (markdown-ts--convert-code-block-language): Check 'lang-string' with 'symbolp'. Check 'mode' with 'fboundp'.
* ; Fix documentation of a recent commitEli Zaretskii2025-04-161-13/+13
| | | | | | | | | | * lisp/textmodes/markdown-ts-mode.el (markdown-ts-delimiter) (markdown-ts-heading-1, markdown-ts-setext-heading) (markdown-ts-heading-2, markdown-ts-heading-3) (markdown-ts-heading-4, markdown-ts-heading-5) (markdown-ts-heading-6, markdown-ts-list-marker) (markdown-ts-block-quote, markdown-ts-language-keyword) (markdown-ts--configured-languages): Doc fixes.
* Expand markdown-ts-mode and add code block support for javascriptYuan Fu2025-04-151-27/+203
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Define new faces and use them in place of font-lock faces - Add more fontification, add a new feature for headings. - Remove fontification for code blocks, so embedeed parser can fontify them - Add experimental code block support for javascript by using tree-sitter setup from js-ts-mode. - Correctly setup markdown_inline with range settings. * lisp/textmodes/markdown-ts-mode.el: (markdown-ts--code-block-language-map): (markdown-ts-code-block-source-mode-map): New variables. (markdown-ts-faces): New group. (markdown-ts-delimiter): (markdown-ts-heading-1): (markdown-ts-setext-heading): (markdown-ts-heading-2): (markdown-ts-heading-3): (markdown-ts-heading-4): (markdown-ts-heading-5): (markdown-ts-heading-6): (markdown-ts-list-marker): (markdown-ts-block-quote): (markdown-ts-language-keyword): New faces. (markdown-ts--treesit-settings): (markdown-ts--configured-languages): New variables. (markdown-ts--harvest-treesit-configs): (markdown-ts--add-config-for-mode): (markdown-ts--convert-code-block-language): New functions. (markdown-ts--range-settings): New variable. (markdown-ts-setup): Setup range configuration. (markdown-ts-mode): Add heading feature.
* Improve 'treesit-outline-search'Juri Linkov2025-02-271-0/+1
| | | | | | | | * lisp/treesit.el (treesit-outline-search): Add optional arg 'recursive' to avoid infinite recursion when it gets stuck. * lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode): Set buffer-local 'treesit-outline-predicate' to "section".
* ; Fix copyright year in last commitStefan Kangas2025-02-181-1/+1
|
* Add markdown-ts-modeRahul Martim Juliato2025-02-181-0/+113
* lisp/textmodes/markdown-ts-mode.el: New file. Ref: https://lists.gnu.org/r/emacs-devel/2024-06/msg01061.html