New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add cljd.flutter.alpha2/widget clj-kondo support #194
Conversation
@D00mch Thanks for this PR! I'm willing to receive an issue about About |
@borkdude I see your point but it's not syntax change to us (for example we tried hard to not break the reader/cljc). Clojurescript introduced dashed properties, Clojure recently allowed to pass opts maps instead of spreading them etc. The thing is that all these evolutions are non-breaking: they don't change the semantics of the rest of the language. It reminds me of the open/closed world assumptions: Under the closed world assumption, if we don't know a thing, the thing doesn't exist and can't exist in the future without having to revise everything we inferred. (This echoes MUST UNDERSTAND/MUST IGNORE protocol design schools.) My belief is that tooling should work under the open world assumption so as to not be in "crisis" when something new appears. Concretely it would mean "warning on unknown" rather than "erroring on unknown", recognizing that some forms are correct, some are known to be incorrect (because they conflict with some knowledge) and some whose correctness is unknown and where the user's scrutiny is required. I understand it's harder to create a good users experience in this setting but I deeply believe that the ecosystem as a whole would benefit from being more welcoming to accretive changes. |
@cgrand It's not so hard not to break the Clojure reader here, since most things are keywords, symbols, lists, etc. But it's very easy to change the language semantics (maybe I should have used that word) by introducing meaning to certain keywords. E.g. shadow-cljs introduced |
I think the |
I started a discussion about more broadly supporting |
Well, to me divergence/convergence cycles are unavoidable. Clojure is thought as a hosted language and the host will always have to shine through.
Well, when you have methods names such as Metadata. |
So if anyone uses LSP, check it, please. The PR is ready, I can't do anything general with the |
Fix #191
Add directive support for:
:bg-watcher :let :managed :watch :vsync :context :get
Not fully supported:
:bg-watcher
is just ignored.:dispose
or:refresh-on
in some binding forms are just ignored.Not supported:
:flds
destructuring. I will consider making a PR into clj-kondo, I have a commit in my local branch already