diff options
| author | Eli Zaretskii | 2024-11-21 09:43:34 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2024-11-21 09:43:34 +0200 |
| commit | 70dd5705e11f2259dd1890cee6c72ddcf9d7dd33 (patch) | |
| tree | 703f71c25cd2f1561d6eb98368f2d4d16fc92866 | |
| parent | 331610aef0572eacb2846f817e979aa5e29170b7 (diff) | |
| download | emacs-70dd5705e11f2259dd1890cee6c72ddcf9d7dd33.tar.gz emacs-70dd5705e11f2259dd1890cee6c72ddcf9d7dd33.zip | |
Fix overriding 'c-ts-mode' by 'c-mode'
* lisp/progmodes/c-ts-mode.el: Remove all c- and c++-mode
associations from 'major-mode-remap-defaults' before installing
entries that remap to 'c-ts-mode' and 'c++-ts-mode'. (Bug#74339)
| -rw-r--r-- | lisp/progmodes/c-ts-mode.el | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 647a9420e0d..90eeffe370c 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el | |||
| @@ -1488,19 +1488,20 @@ the code is C or C++, and based on that chooses whether to enable | |||
| 1488 | 'c-ts-mode))) | 1488 | 'c-ts-mode))) |
| 1489 | (funcall (major-mode-remap mode)))) | 1489 | (funcall (major-mode-remap mode)))) |
| 1490 | 1490 | ||
| 1491 | ;; The entries for C++ must come first to prevent *.c files be taken | 1491 | (when (treesit-ready-p 'cpp) |
| 1492 | ;; as C++ on case-insensitive filesystems, since *.C files are C++, | 1492 | (setq major-mode-remap-defaults |
| 1493 | ;; not C. | 1493 | (assq-delete-all 'c++-mode major-mode-remap-defaults)) |
| 1494 | (if (treesit-ready-p 'cpp) | 1494 | (add-to-list 'major-mode-remap-defaults '(c++-mode . c++-ts-mode))) |
| 1495 | (add-to-list 'major-mode-remap-defaults | ||
| 1496 | '(c++-mode . c++-ts-mode))) | ||
| 1497 | 1495 | ||
| 1498 | (when (treesit-ready-p 'c) | 1496 | (when (treesit-ready-p 'c) |
| 1499 | (add-to-list 'major-mode-remap-defaults '(c++-mode . c++-ts-mode)) | 1497 | (setq major-mode-remap-defaults |
| 1498 | (assq-delete-all 'c-mode major-mode-remap-defaults)) | ||
| 1500 | (add-to-list 'major-mode-remap-defaults '(c-mode . c-ts-mode))) | 1499 | (add-to-list 'major-mode-remap-defaults '(c-mode . c-ts-mode))) |
| 1501 | 1500 | ||
| 1502 | (when (and (treesit-ready-p 'cpp) | 1501 | (when (and (treesit-ready-p 'cpp) |
| 1503 | (treesit-ready-p 'c)) | 1502 | (treesit-ready-p 'c)) |
| 1503 | (setq major-mode-remap-defaults | ||
| 1504 | (assq-delete-all 'c-or-c++-mode major-mode-remap-defaults)) | ||
| 1504 | (add-to-list 'major-mode-remap-defaults '(c-or-c++-mode . c-or-c++-ts-mode))) | 1505 | (add-to-list 'major-mode-remap-defaults '(c-or-c++-mode . c-or-c++-ts-mode))) |
| 1505 | 1506 | ||
| 1506 | (provide 'c-ts-mode) | 1507 | (provide 'c-ts-mode) |