org-lint: Add linter for unknown babel language

* lisp/org-lint.el (org-lint-suspicious-language-in-src-block): New
linter checking for unknown src block languages.
This commit is contained in:
Ihor Radchenko 2023-05-31 11:40:47 +03:00
parent 3123caa8e9
commit 74198ac49c
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 13 additions and 0 deletions

View File

@ -504,6 +504,14 @@ Use :header-args: instead"
(list (org-element-property :post-affiliated b)
"Missing language in source block")))))
(defun org-lint-suspicious-language-in-src-block (ast)
(org-element-map ast 'src-block
(lambda (b)
(when-let ((lang (org-element-property :language b)))
(unless (functionp (intern (format "org-babel-execute:%s" lang)))
(list (org-element-property :post-affiliated b)
(format "Unknown source block language: '%s'" lang)))))))
(defun org-lint-missing-backend-in-export-block (ast)
(org-element-map ast 'export-block
(lambda (b)
@ -1350,6 +1358,11 @@ AST is the buffer parse tree."
#'org-lint-missing-language-in-src-block
:categories '(babel))
(org-lint-add-checker 'suspicious-language-in-src-block
"Report suspicious language in source blocks"
#'org-lint-suspicious-language-in-src-block
:trust 'low :categories '(babel))
(org-lint-add-checker 'missing-backend-in-export-block
"Report missing backend in export blocks"
#'org-lint-missing-backend-in-export-block