Skip to content

Commit

Permalink
Use americano to compile java classes
Browse files Browse the repository at this point in the history
  • Loading branch information
ericdallo committed May 15, 2021
1 parent e5a377d commit b55e964
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 6 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
/integration-test/sample-test/target
/out
/target
/classes
/.DS_Store
/.cpcache
/node_modules
Expand Down
11 changes: 7 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
all: debug-bin

clean:
rm -f clojure-lsp clojure-lsp.jar docs/README.md
rm -rf classes clojure-lsp clojure-lsp.jar docs/README.md

debug-bin: clean
classes:
clojure -X:javac

debug-bin: clean classes
clojure -X:debug-jar
clojure -X:bin

prod-bin:
prod-bin: clean classes
clojure -X:prod-jar
clojure -X:bin

prod-native:
./graalvm/native-unix-compile.sh

test:
test: classes
clojure -M:test

integration-test:
Expand Down
6 changes: 4 additions & 2 deletions deps.edn
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{:deps {org.clojure/clojure {:mvn/version "1.10.3"}
clojure-lsp/clojure-lsp-extensions {:mvn/version "1.0.2"}
org.clojure/tools.reader {:mvn/version "1.3.5"}
org.eclipse.lsp4j/org.eclipse.lsp4j {:mvn/version "0.12.0" :exclusions [org.eclipse.xtend/org.eclipse.xtend.lib]}
org.eclipse.xtend/org.eclipse.xtend.lib {:mvn/version "2.25.0" :exclusions [com.google.guava/guava]}
Expand All @@ -17,10 +16,13 @@
medley/medley {:mvn/version "1.3.0"}
anonimitoraf/clj-flx {:mvn/version "1.2.0"}
clj-kondo/clj-kondo {:mvn/version "2021.04.24-20210426.144134-2"}}
:paths ["resources" "src"]
:paths ["resources" "src" "classes"]
:aliases {:test {:extra-deps {lambdaisland/kaocha {:mvn/version "1.0.829"}}
:extra-paths ["test"]
:main-opts ["-m" "kaocha.runner"]}
:javac {:replace-deps {org.suskalo/americano {:mvn/version "1.0.0"}}
:exec-fn americano.cli/javac
:exec-args {:source-paths ["src-java"]}}
:prod-jar {:replace-deps {com.github.seancorfield/depstar {:mvn/version "2.0.216"}}
:exec-fn hf.depstar/uberjar
:exec-args {:jar "clojure-lsp.jar"
Expand Down
28 changes: 28 additions & 0 deletions src-java/clojure_lsp/ClojureExtensions.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package clojure_lsp;

import java.util.concurrent.CompletableFuture;

import org.eclipse.lsp4j.TextDocumentIdentifier;
import org.eclipse.lsp4j.jsonrpc.services.JsonRequest;
import org.eclipse.lsp4j.jsonrpc.services.JsonSegment;

import clojure.java.api.Clojure;
import clojure.lang.IFn;

/**
* Interface for protocol extensions for Java
*
* @author Gorkem Ercan
*
*/
@JsonSegment("clojure")
public class ClojureExtensions {
@JsonRequest
@SuppressWarnings("unchecked")
CompletableFuture<String> dependencyContents(TextDocumentIdentifier documentUri) {
IFn require = Clojure.var("clojure.core", "require");
require.invoke(Clojure.read("clojure-lsp.main"));
IFn extension = Clojure.var("clojure-lsp.main", "extension");
return (CompletableFuture<String>) extension.invoke("dependencyContents", documentUri);
}
}

0 comments on commit b55e964

Please sign in to comment.