clojure-emacs / clojure-ts-mode

The next generation Clojure major mode for Emacs, powered by TreeSitter
GNU General Public License v3.0
140 stars 13 forks source link

Support toplevel defs with metadata #43

Closed kommen closed 1 month ago

kommen commented 8 months ago

Fixes #42

Pushing this as WIP and to collect feedback from others if this is the right approach.

bbatsov commented 5 months ago

I guess that's still waiting for feedback, right?

kommen commented 5 months ago

@bbatsov yes, feedback very welcome! however, I'm using this PR in my prod emacs setup for a few months now and it seems to work as intended. So I would be somewhat confident to merge it for now as is and continue with the remaining todos in a follow up, if no one else has objections.

kommen commented 1 month ago

Functionality wise this PR now seems complete to me: I think some of the code needs a bit of clarification and better naming.

I will use my recent changes for a while myself in my daily workflow before I will ask for merging this PR. Meanwhile if folks want to give it a try or discuss the changes with me (here or also on the Clojurians slack), I would appreciate this very much.

I'd be also up to split out some changes in their own PR if others are more comfortable to review smaller chunks (ie. font lock fixes, imenu fixes, indentation fixes).

bbatsov commented 1 month ago

I agree it'd better if we split this into several smaller PRs.

kommen commented 1 month ago

@bbatsov agreed. I will start splitting it into separate PRs once I've had a chance to use it a while all together.

kommen commented 1 month ago

As discussed, splitted out the first set of changes to fix the imenu integration here: https://github.com/clojure-emacs/clojure-ts-mode/pull/54

kommen commented 1 month ago

And the font locking changes here: https://github.com/clojure-emacs/clojure-ts-mode/pull/55

bbatsov commented 1 month ago

Now that #54 and #55 have been merged we can close this PR.

kommen commented 1 month ago

There are still the indentation fixes from this PR which I still will separate out and as with #55 try to port some relevant test utilities over from clojure-mode