Konrad Mrożek
2023-06-05 9195818953cc89c190ead3f1ce5ef955dc54f9c6
First version of compiler
4 files added
49 ■■■■■ changed files
TODO.org 3 ●●●●● patch | view | raw | blame | history
clojure/deps.edn 1 ●●●● patch | view | raw | blame | history
clojure/src/test_runner.clj 28 ●●●●● patch | view | raw | blame | history
compiler/clojure-test.vim 17 ●●●●● patch | view | raw | blame | history
TODO.org
New file
@@ -0,0 +1,3 @@
* TODO
  - [ ] Handle output codes properly
  - [ ] Add errorformat compatible with clojure.test
clojure/deps.edn
New file
@@ -0,0 +1 @@
{}
clojure/src/test_runner.clj
New file
@@ -0,0 +1,28 @@
(binding [*compile-files* true]
  (require 'clojure.test))
(ns test-runner
  (:require [clojure.test :as t]))
(when-not (.exists (java.io.File. "classes"))
  (.. (java.io.File. "classes") mkdir))
(defmulti emacs-report :type)
(defmethod emacs-report :pass
  [m]
  (t/with-test-out
    (println "PASS:")))
(defn -main  [& [test-file]]
  (binding  [*compile-files* true]
    (compile 'test-runner)
    (let  [test-namespaces (->> (or test-file  "test")
                                (java.io.File.)
                                (file-seq)
                                (filter (memfn isFile))
                                (map (memfn getPath))
                                (map load-file)
                                (map (comp :ns meta))
                                (into #{}))]
      (run! (fn [n] (t/run-tests n)) test-namespaces))))
compiler/clojure-test.vim
New file
@@ -0,0 +1,17 @@
vim9script
if exists("g:current_compiler")
    finish
endif
g:current_compiler = "clojure-test"
if exists(":CompilerSet") != 2
    command -nargs=* CompilerSet setlocal <args>
endif
echomsg expand('<sfile>:p:h:h')
var clojure_test_deps = "'{:aliases {:clojure-test-vim {:extra-paths [\"classes\"] :extra-deps {mrroman/clojure-test.vim {:local/root \"" .. expand('<sfile>:p:h:h') .. "/clojure\"}}}}}'"
execute 'CompilerSet makeprg=clojure\ -Sdeps\ ' .. escape(clojure_test_deps, ' \|"') .. '\ -Mtest:clojure-test-vim\ -m\ test-runner'
CompilerSet errorformat&