]> jturnerusa.dev Git - emacs.d/commitdiff
lisp/flycheck-nasm: create flycheck checker for NASM
authorJohn Turner <jturner.usa@gmail.com>
Mon, 5 Feb 2024 21:01:38 +0000 (16:01 -0500)
committerJohn Turner <jturner.usa@gmail.com>
Mon, 5 Feb 2024 21:01:38 +0000 (16:01 -0500)
lisp/flycheck-nasm/flycheck-nasm.el [new file with mode: 0644]

diff --git a/lisp/flycheck-nasm/flycheck-nasm.el b/lisp/flycheck-nasm/flycheck-nasm.el
new file mode 100644 (file)
index 0000000..9ff9bde
--- /dev/null
@@ -0,0 +1,37 @@
+;;; flycheck-nasm-mode.el --- flycheck checker for NASM  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2024  John Turner
+
+;; Author: John Turner jturner.usa@gmail.com
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+
+;;; Code:
+
+(require 'flycheck)
+
+(flycheck-def-option-var flycheck-nasm-format "elf64" nasm
+  "NASM executable format."
+  :type 'string)
+
+(flycheck-define-checker nasm
+  "Flycheck checker for NASM."
+  :command ("nasm" "-o" "/dev/null" (option "-f" flycheck-nasm-format) source)
+  :error-patterns ((error line-start (file-name) ":" line ":" space "error:" space (message) line-end)
+                   (warning line-start (file-name) ":" line ":" space "warning:" space (message) line-end))
+  :modes (asm-mode nasm-mode))
+
+(provide 'flycheck-nasm)
+;;; flycheck-nasm-mode.el ends here