200ok-ch / org-parser

org-parser is a parser for the Org mode markup language for Emacs.
GNU Affero General Public License v3.0
316 stars 15 forks source link

Proof of concept for inlining ebnf in cljs build #62

Closed wildwestrom closed 2 years ago

wildwestrom commented 2 years ago

I just added the shadow.resource/inline macro from thheller/shadow-cljs. Trying to fix #61.

All tests pass. Let me know what y'all think.

wildwestrom commented 2 years ago

Uh oh, looks like the docker image for the cljs build is not working.

munen commented 2 years ago

Hi @wildwestrom

Thank you very much for working on this issue and creating a PR :pray:

I have created a minimal shadow-cljs demo application to test whether org-parser will work with your changes. The demo app is also minimally documented to get other developers started more easily: https://github.com/200ok-ch/org-parser-shadow_cljs-demo

When using org-parser master, the demo application starts. However, org-parser doesn't work. There is an error in the JS console.

With your changes, the application doesn't start anymore. This is what I get:

$ npx shadow-cljs watch frontend
shadow-cljs - config: /tmp/acme-app/shadow-cljs.edn
shadow-cljs - HTTP server available at http://localhost:8080
shadow-cljs - server version: 2.16.12 running at http://localhost:9630
shadow-cljs - nREPL server started on port 35261
shadow-cljs - watching build :frontend
[:frontend] Configuring build.
[:frontend] Compiling ...
[:frontend] Build failure:
------ ERROR -------------------------------------------------------------------
 File: jar:file:/home/munen/.m2/repository/org-parser/org-parser/0.1.27-SNAPSHOT/org-parser-0.1.27-SNAPSHOT.jar!/org_parser/parser.cljs:8:19
--------------------------------------------------------------------------------
   5 |             [cljs.analyzer :as ana]
   6 |             [shadow.resource :refer [inline]]))
   7 |
   8 | (defparser parser (inline "../../resources/org.ebnf"))
-------------------------^------------------------------------------------------
Encountered error when macroexpanding shadow.resource/inline.
Resource not found: ../resources/org.ebnf at line 8 org_parser/parser.cljs
--------------------------------------------------------------------------------
   9 |
  10 | (defn parse [& args]
  11 |   (-> (apply parser args)
  12 |       (vary-meta merge {:raw (first args)})))
--------------------------------------------------------------------------------

Maybe I'm just doing it wrong. If so, please let me know.

munen commented 2 years ago

Closing in favor of https://github.com/200ok-ch/org-parser/pull/63

Thank you for the initial suggestion on how to work on this, @wildwestrom :pray: :bow: