This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-09-04
Channels
- # aleph (1)
- # announcements (7)
- # beginners (22)
- # calva (31)
- # cider (2)
- # clj-commons (1)
- # clj-http (2)
- # clj-kondo (10)
- # cljsrn (33)
- # clojure (18)
- # clojure-europe (7)
- # clojure-nl (3)
- # clojure-uk (2)
- # clojurescript (93)
- # depstar (3)
- # events (1)
- # figwheel-main (3)
- # fulcro (13)
- # graalvm (95)
- # graphql (1)
- # introduce-yourself (1)
- # lsp (92)
- # off-topic (2)
- # pathom (11)
- # releases (1)
- # shadow-cljs (33)
- # specter (6)
- # tools-deps (4)
- # vim (3)
- # web-security (1)
- # xtdb (7)
These are some topics which I should focus next weeks/months, keep in mind that are guides, things can and probably will change priority: • Auto-reload configuration changes without the need of restart the server • Improve API support adding missing features that are available on clojure-lsp as editor (Diagnostics, Find definition, Find references etc) • Add more code actions (Move to let, introduce-let) • Improve support on Java classes, find definition and find references (needs clj-kondo improvements) • Keep up-to-date with next LSP 3.17 release • Support for adding dependencies to project.clj or deps.edn, searching on clojars/maven-central the artifacts and its versions • POC Fix the support for static image, a great addition for clojure-lsp. the lib sqlite-jdbc that is used by clojure-lsp doesn't support it, so we can use datalevin instead or something else • POC (probably a separated new branched project) Add support for DAP (Debugger Adapter Protocol) which would be a way to provide a server for debugging Clojure in any editor following DAP (similar to LSP idea), probably using cider-nrepl under the hood. • Fix not critical old issues but that should make clojure-lsp more mature • Keep helping community in Clojurians #lsp • Clojure London talk about Clojure development with clojure-lsp


Probably we could start with a new bucker for java with it's locations, or even add to var-definition with a class flag or something, this way we could have find-definition and if we have the var-usages the references as well
ok. I'm looking at the javaparser project now. it's lgpl, but I think it's safe to include such a project?
I always thought since it's LGPL it's safe, but not sure if it works fine for all kind of licenses like MIT / EPL
we could make that functionality optional, when the class is there, use it, else don't provide java analysis
I've already been using that class for java methods (which are stored as functions to get arity errors, which was something from the initial versions of clj-kondo)
the funny thing is, I've never really encountered an example where clj-kondo helped me with this
well, it could be a clojure API, it'd just be more convenient, but both should work
that's why maybe an clojrue API makes more sense as we do care more about data not classes
so I'm already running into this problem: https://stackoverflow.com/a/6054258/6264
haha lol @U064X3EF3
ok, pushed to the branch.
lein run -m clj_kondo.impl.JavaParser
now prints somethingI didn't get it to work by writing Clojure, I think just making a facade in Java is the way to go for this nasty lib
we might want to split this into a separate project so we can package the compiled java into a separate artifact
just tested, the javaparser seems quite good for java, a abstraction in java seems a good idea indeed to get data
I use a github action for clojure-lsp clojars deploy, there is even no alias for deploy locally
so I think the interface we need is: throw Java source file in, get out a map with information
seems good, the return map should contain localtion, documentation arity etc right?
yeah maybe :classes [{:name ... :file :...}
or so. let's start with the least info possible
> If you use a library that is LGPL, and you statically link with that library, your software must be released with a compatible license.
We should ask some advice in the broader #clojure community. If you could do some research to get more clarity, that would be nice
it seems generic for multiple languagues right? we would need to check if the java parser is good enough
I think we could borrow some of this stuff from there too: https://github.com/carocad/parcera/blob/master/src/clojure/parcera/antlr/java.clj
hmm, the antlr grammar is unoptimized they say and the optimized one only supports 8
Hey I made a document about writing a basic nvim setup for clojure using fennel, aniseed, conjure and clojure-lsp https://github.com/rafaeldelboni/nvim-fennel-lsp-conjure-as-clojure-ide Hope it helps people wanting to move to use fennel in nvim config files.





Thank you very much! I will share that with vim users when they find issues to configure clojure-lsp :)
Feel free to link on http://clojure-lsp.io/clients as well
Can I open a PR?