diff --git a/langs b/langs index 599570cd..d03628df 160000 --- a/langs +++ b/langs @@ -1 +1 @@ -Subproject commit 599570cd2a6d1b43a109634896b5c52121e155e3 +Subproject commit d03628df5dc61e22accd8e7be0a587694f8b3d6e diff --git a/lisp/tree-sitter.el b/lisp/tree-sitter.el index 6686ae13..0079e8b6 100644 --- a/lisp/tree-sitter.el +++ b/lisp/tree-sitter.el @@ -150,7 +150,9 @@ OLD-LEN is the char length of the old text." "Enable `tree-sitter' in the current buffer." (unless tree-sitter-language ;; Determine the language symbol based on `major-mode' . - (let ((lang-symbol (alist-get major-mode tree-sitter-major-mode-language-alist))) + (let* + ((file-extension (if (eq major-mode 'tuareg-mode) (file-name-extension buffer-file-name) nil)) + (lang-symbol (alist-get (list major-mode file-extension) tree-sitter-major-mode-language-alist nil nil 'equal))) (unless lang-symbol (error "No language registered for major mode `%s'" major-mode)) (setq tree-sitter-language (tree-sitter-require lang-symbol))))