Fork me on GitHub
#lsp
<
2021-04-15
>
Karol Wójcik09:04:59

Does anybody experience the same wrong warning from clj-kondo?

(defn ^:export init! <-- unused init! public fn
  []
  (mount!))

borkdude09:04:26

this is not a warning from clj-kondo, but from an additional linter in clojure-lsp

Karol Wójcik09:04:04

Ahh. Sorry @U04V15CAJ. You're right. I thought that clojure-lsp relies on clj-kondo entirely when it comes to code checking! Thanks!

ericdallo12:04:42

Yes, check clojure-lsp docs about how to disable public linters

zane20:04:31

Is this the right default behavior? It seems common for (non-private) functions to be unused within a namespace.

ericdallo20:04:36

yes, it's the default behaviour, there are corner cases like API public functions and datomic functions I think but user can disable for some namespaces like in the docs

Karol Wójcik09:04:32

Found another bug in clojure-lsp. When moving the cursor to (:require) line, the namespace line vanishes.

ericdallo12:04:37

This is not a clojure-lsp bug, probably some issue with lsp-ui from emacs

👍 3
ericdallo12:04:38

You can ask for help on Emacs-lsp discord channel

anonimitoraf14:04:32

Hmm, I'm getting a lot of failed tests in the master branch

ericdallo14:04:08

is it integration or unit tests?

ericdallo14:04:09

It passes on my machine and in the CI, so it seems something with your machine 😅

anonimitoraf14:04:10

Hmm, I'm not sure how to answer that. I run clojure -M:test/runner where

:test/runner
  {:extra-paths ["test"]
   :extra-deps  {eftest/eftest {:mvn/version "0.5.9"}}
   :main-opts   ["-e"  "(require,'[eftest.runner,:refer,[find-tests,run-tests]]),(run-tests,(find-tests,\"test\"))"]}

ericdallo14:04:21

try just make test

anonimitoraf14:04:28

Interesting, yea it's all fine with make test

anonimitoraf14:04:01

Do you know how

:test/runner
  {:extra-paths ["test"]
   :extra-deps  {eftest/eftest {:mvn/version "0.5.9"}}
   :main-opts   ["-e"  "(require,'[eftest.runner,:refer,[find-tests,run-tests]]),(run-tests,(find-tests,\"test\"))"]}
is different? (I just stole this alias off https://app.slack.com/team/U05254DQM's config)

ericdallo14:04:32

it seems the same, not sure how it's affecting the tests :thinking_face:

3
practicalli-johnny15:04:39

@UR37CBF8D It's probably the -e option in the :main-opts as that approach is a bit of a hack. I will check to see if there is a better way to make an alias for eftest. I do prefer using lambdaisland koacha as a test runner (or cognitect labs runner)

👍 3
practicalli-johnny16:04:03

Or it could be eftest running unit tests in parallel when the tests aren't happy being run in parallel, especially if make test doesn't use eftest

ericdallo16:04:48

clojure-lsp test alias already uses kaocha runner

👍 3
anonimitoraf08:04:05

Right. Thanks @U05254DQM I'll try out kaocha

practicalli-johnny08:04:04

Ah yes, the Makefile simply calls clojure -M:test which is an alias that runs kaocha via Clojure.main So you can also run clojure -M:test directly or if using my user level aliases, clojure -M:test/runner

👍 3
anonimitoraf07:04:58

Thanks @U05254DQM. I changed kaocha to eftest because it felt faster. I'll give koacha another try

practicalli-johnny11:04:36

@UR37CBF8D Running eftest using the :multithred? false setting does run the clojure-lsp tests successfully, so it does seem that the lsp unit tests should be run in in sequence, rather than the default parallel mode that eftest uses. I added a :test/eftest-sequential alias to practicalli/clojure-deps-edn that works with clojure-lsp test

anonimitoraf23:04:49

Ahhh, I see. That makes sense

anonimitoraf14:04:02

I'm on this commit:

commit 8a294181096a151cd4ee845a127b6e7306805800 (HEAD -> master, upstream/master)
Author: Eric Dallo <[email protected]>
Date:   Tue Apr 13 22:02:27 2021 -0300

    Improve resolve-macro-as command to check and log if couldn't resolve the macro.