[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-kawa 9f3a057 050/119: README - Add more information
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-kawa 9f3a057 050/119: README - Add more information about java completion + update kawa-devutil dep |
Date: |
Sun, 1 Aug 2021 18:30:36 -0400 (EDT) |
branch: elpa/geiser-kawa
commit 9f3a057d653a43c83f61caf11acb61d09ad71251
Author: spellcard199 <spellcard199@protonmail.com>
Commit: spellcard199 <spellcard199@protonmail.com>
README - Add more information about java completion + update kawa-devutil
dep
---
README.org | 29 +++++++++++++++++------------
pom.xml | 2 +-
2 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/README.org b/README.org
index feb68a1..8f8419b 100644
--- a/README.org
+++ b/README.org
@@ -32,8 +32,7 @@ Only versions of Kawa > 3.1 are supported, mostly due to the
fact that before th
- info: using emacs' Info-mode
- epub: using emacs' eww browser
- kawa- and java-specific:
- - completion for java's field and method names accessed through
colon-notation (don't expect java-grade reliability)
- - completion for java's package and class names
+ - [[#7ca3650a-2658-42f0-8274-96f194768e11][Completion for java's package,
class, field, method names]]
** Unsupported features
@@ -64,15 +63,23 @@ To try geiser-kawa you need neither Maven nor Kawa:
- =mvnw= ([[https://github.com/takari/maven-wrapper][maven-wrapper]]) takes
care of downloading a project-specific Maven version
- kawa-geiser has [[https://gitlab.com/groups/kashell/][Kawa's master branch]]
as one of its dependencies. When =quickstart.el= calls =./mvnw package=
(wrapped by =geiser-kawa-compile-java-dependencies=), it produces a jar that
includes kawa-geiser and all its dependencies, including Kawa itself.
-** About completion for java's fields, methods and packages (that's what =fmp=
stands for in the function names)
+** About completion for java's fields, methods and packages
+:PROPERTIES:
+:CUSTOM_ID: 7ca3650a-2658-42f0-8274-96f194768e11
+:END:
The whole project is in a persistent "experimental" state, but this part even
more so because it's based on assumptions I'm not sure about.
-The main interactive elisp function is
=geiser-kawa-complete-java-fmp-at-point=. It's not bound to a key by default.
+The main interactive elisp function is
=geiser-kawa-complete-java-fmp-at-point=. By default, it's not bound to a key.
(fmp stands for field-method-package).
-For this to work you have to:
-- use Kawa's type annotations: rememver that the Kawa compiler mostly trusts
you
-- avoid syntax errors (e.g. unbalanced parentheses, wrong number of children
sexps inside a form, etc...)
+Supported forms (with issues) are:
+ - completion for package and class names: dot notation, like in java
+ - completion for field and method names:
+ - =field=, =slot-ref=
+ - =static-field=
+ - =invoke=
+ - =invoke-static=
+ - colon notation
How it works (the region getting part is quite rudimentray):
1. A region of the current buffer and cursor point inside it are sent to
kawa-geiser, which uses
[[https://gitlab.com/spellcard199/kawa-devutil][kawa-devutil]] for actual
functionality. The region of the buffer goes:
@@ -82,11 +89,9 @@ How it works (the region getting part is quite rudimentray):
- to: either:
- end of sexp beginning at toplevel, if =(geiser-syntax--pop-to-top)=
is non-nil
- =(line-end-position)=, if =(geiser-syntax--pop-to-top)= is =nil=
-2. An arbitrary symbol is added at cursor point, so it can be found again in
the AST
-3. Code is compiled into Kawa's AST, but not evaluated
-4. Various AST "matchers" (functions that check if a certain pattern is found)
are tried in order until either:
- - one of them matches: the matcher function itself then also has to tell
which class we are completing for
- - none are left: empty data
+2. [[https://gitlab.com/spellcard199/kawa-devutil][kawa-devutil]]'s completion
method is called passing code and cursor point
+
+You can find some examples and known issues in
[[https://gitlab.com/spellcard199/kawa-devutil][kawa-devutil]]'README.
** Difference from
[[https://gitlab.com/spellcard199/geiser-kawa-scheme][geiser-kawa-scheme]]
diff --git a/pom.xml b/pom.xml
index 9e40490..935aa0d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,7 +63,7 @@
<dependency>
<groupId>com.gitlab.spellcard199</groupId>
<artifactId>kawa-devutil</artifactId>
- <version>0b00cca508863b81b2157b706e1496bd05b77fa7</version>
+ <version>5aa298138d09904a0370d93f8a4bcb46e253e71c</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
- [nongnu] elpa/geiser-kawa 6d4c6f5 004/119: Update .gitignore, (continued)
- [nongnu] elpa/geiser-kawa 6d4c6f5 004/119: Update .gitignore, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 274f990 024/119: Use mvnw (maven-wrapper) as default command to compile kawa-geiser, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 55efc48 043/119: Fix non-passing Autodoc test, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa a709cfc 027/119: Small reword in README, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 4938a98 049/119: Update kawa-devutil dep + fix code accordingly, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 5521b28 025/119: Update README after joining of geiser-kawa and kawa-geiser projects, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa b95e191 003/119: README - Add small recap table about difference from geiser-kawa-scheme, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 5549434 005/119: Add Cask file, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 590968e 045/119: Add autodoc support for constructor methods, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 47a2956 044/119: Refactor kawageiser.Geiser.java, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 9f3a057 050/119: README - Add more information about java completion + update kawa-devutil dep,
Philip Kaludercic <=
- [nongnu] elpa/geiser-kawa 34b68ce 052/119: Add check for deps with run-kawa is called. Uses emacs advice on run-kawa., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 0aa42cb 040/119: Fix broken test, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa b8647aa 057/119: Fix error in func name, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 79dec54 061/119: Add support for viewing Expression tree, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 8d6202f 081/119: Refactor + Fix style + Copyright notices, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 1ffe084 097/119: Fixes for windows support + README.org: add instructions, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa ad862b1 090/119: Update README.org, TODO.org, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa d7cb7d9 105/119: Remove advice from "run-kawa" + add "geiser-kawa-run-kawa" function, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa ff93297 112/119: README.org - small changes, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-kawa 71f8a69 114/119: Fix checkdoc and lint warnings in preparation for melpa recipe update, Philip Kaludercic, 2021/08/01