branch: externals/org
commit 74198ac49c3e3ae4aeafc7c581f666f797bb03e1
Author: Ihor Radchenko <yanta...@posteo.net>
Commit: Ihor Radchenko <yanta...@posteo.net>

    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.
---
 lisp/org-lint.el | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/lisp/org-lint.el b/lisp/org-lint.el
index fba8402d06..c2ed007abb 100644
--- a/lisp/org-lint.el
+++ b/lisp/org-lint.el
@@ -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

Reply via email to