emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/geiser-kawa 1f6357f 009/119: README - Update


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-kawa 1f6357f 009/119: README - Update
Date: Sun, 1 Aug 2021 18:30:28 -0400 (EDT)

branch: elpa/geiser-kawa
commit 1f6357f139a9993323795ad3a1d10fb900d489ac
Author: spellcard199 <spellcard199@protonmail.com>
Commit: spellcard199 <spellcard199@protonmail.com>

    README - Update
---
 README.org | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 55 insertions(+), 2 deletions(-)

diff --git a/README.org b/README.org
index 554e682..10fe0fd 100644
--- a/README.org
+++ b/README.org
@@ -4,9 +4,62 @@
 
 geiser-kawa-java is the emacs side of a geiser-kawa implementation that uses 
[[https://gitlab.com/spellcard199/kawa-geiser][kawa-geiser]] for its Kawa side.
 
-** Project status
+** Supported features
 
-Work in progress.
+- eval
+- load-file
+- completions
+- module-completions (very fragile atm)
+- autodoc:
+    - for scheme procedures
+    - for java methods
+
+** Unsupported features
+
+geiser-related:
+- macroexpand
+- find-file
+- symbol-location
+- module-location
+- symbol-documentation
+- module-exports
+- callers
+- callees
+- generic-methods
+- (TODO) manual lookup: should work for both formats:
+    - info: using emacs' Info-mode
+    - epub: using emacs' eww browser
+
+kawa- and java-specific:
+- completion for java methods
+- completion for java classes
+
+** Try geiser-kawa without modifying your emacs configuration
+
+1. Get Emacs, Cask, Maven and optionally Kawa and make them available through 
your $PATH
+     - the reason Kawa is optional is that =quickstart.el= calls =mvn package= 
(wrapped by =geiser-kawa-compile-java-dependencies=), which produces a jar that 
includes the compiled [[https://gitlab.com/groups/kashell/][Kawa's master 
branch]]
+2. Clone this repository
+3. cd into the cloned dir
+4. Tell cask to install emacs dependencies with:
+  : cask install
+5. Pull [[http://gitlab.com/spellcard199/kawa-geiser][kawa-geiser]] maven 
dependencies, compile them and start geiser-kawa's scratch buffer and repl with:
+  : cask emacs -Q --load quickstart.el
+
+** Cask issue with geiser
+
+If you use geiser as a dependency in a Cask project, Cask eagerly expands the 
=define-geiser-implementation= macro with =load-file-name= having the wrong 
value. The result is that geiser implementations in geiser do not work when 
geiser is managed as a dependency by Cask.
+
+Link to the issue I've opened in Cask: https://github.com/cask/cask/issues/472.
+
+As a (temporary?) workaround, geiser-kawa.el quotes 
=define-geiser-implementation= and wraps it an =eval= form, and that avoids:
+1. macro expansion to happen during cask-cli.el execution
+2. =load-file-name= having the wrong value of =<path-to-cask-cli.el>= instead 
of =<path-to-geiser-impl.el>=
+As a side effect, using =(require 'geiser-kawa)= instead of =(require geiser)= 
also fixes the problem for the other implementations, but for this I don't 
understand why.
+
+To summarize:
+1. geiser-kawa depends on geiser
+2. geiser as a dependency does not work with Cask (or vice-versa)
+3. If in the emacs instance started with =cask emacs= you use =(require 
'geiser-kawa)= instead of =(require 'geiser)=, geiser-kawa.el chain-requires 
geiser and (for some reason I don't understand) other geiser implementations 
start working
 
 ** Difference from 
[[https://gitlab.com/spellcard199/geiser-kawa-scheme][geiser-kawa-scheme]]
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]