@@ -1668,25 +1668,33 @@ BOUND bounds the whitespace search."
16681668
16691669(defvar clojure-ts--align-query
16701670 (treesit-query-compile 'clojure
1671- (append
1672- `(((map_lit) @map)
1673- ((ns_map_lit) @ns-map)
1674- ((list_lit
1675- ((sym_lit) @sym
1676- (:match ,(clojure-ts-symbol-regexp clojure-ts-align-binding-forms) @sym))
1677- (vec_lit) @bindings-vec))
1678- ((list_lit
1679- ((sym_lit) @sym
1680- (:match ,(clojure-ts-symbol-regexp clojure-ts-align-cond-forms) @sym)))
1681- @cond)
1682- ((anon_fn_lit
1683- ((sym_lit) @sym
1684- (:match ,(clojure-ts-symbol-regexp clojure-ts-align-binding-forms) @sym))
1685- (vec_lit) @bindings-vec))
1686- ((anon_fn_lit
1687- ((sym_lit) @sym
1688- (:match ,(clojure-ts-symbol-regexp clojure-ts-align-cond-forms) @sym)))
1689- @cond)))))
1671+ `(((map_lit) @map)
1672+ ((ns_map_lit) @ns-map)
1673+ ((list_lit
1674+ ((sym_lit) @sym
1675+ (:match ,(clojure-ts-symbol-regexp clojure-ts-align-binding-forms) @sym))
1676+ (vec_lit) @bindings-vec))
1677+ ((list_lit
1678+ :anchor
1679+ ((sym_lit) @sym
1680+ (:match ,(rx bol (or " for" " doseq" ) eol) @sym))
1681+ (vec_lit
1682+ ((kwd_lit) @kwd
1683+ (:equal " :let" @kwd))
1684+ :anchor
1685+ (vec_lit) @bindings-vec)))
1686+ ((list_lit
1687+ ((sym_lit) @sym
1688+ (:match ,(clojure-ts-symbol-regexp clojure-ts-align-cond-forms) @sym)))
1689+ @cond)
1690+ ((anon_fn_lit
1691+ ((sym_lit) @sym
1692+ (:match ,(clojure-ts-symbol-regexp clojure-ts-align-binding-forms) @sym))
1693+ (vec_lit) @bindings-vec))
1694+ ((anon_fn_lit
1695+ ((sym_lit) @sym
1696+ (:match ,(clojure-ts-symbol-regexp clojure-ts-align-cond-forms) @sym)))
1697+ @cond))))
16901698
16911699(defvar clojure-ts--align-reader-conditionals-query
16921700 (treesit-query-compile 'clojure
@@ -2564,12 +2572,6 @@ function can also be used to upgrade the grammars if they are outdated."
25642572 (let ((treesit-language-source-alist clojure-ts-grammar-recipes))
25652573 (treesit-install-language-grammar grammar)))))
25662574
2567- (defsubst clojure-ts--font-lock-setting-update-override (setting )
2568- " Return SETTING with override set to TRUE."
2569- (let ((new-setting (copy-tree setting)))
2570- (setf (nth 3 new-setting) t )
2571- new-setting))
2572-
25732575(defun clojure-ts--harvest-treesit-configs (mode )
25742576 " Harvest tree-sitter configs from MODE.
25752577Return a plist with the following keys and value:
@@ -2578,10 +2580,7 @@ Return a plist with the following keys and value:
25782580 :simple-indent (from `treesit-simple-indent-rules' )"
25792581 (with-temp-buffer
25802582 (funcall mode)
2581- ; ; We need to set :override t for all external queries, otherwise new faces
2582- ; ; won't be applied on top of the string face defined for `clojure-ts-mode' .
2583- (list :font-lock (seq-map #'clojure-ts--font-lock-setting-update-override
2584- treesit-font-lock-settings)
2583+ (list :font-lock treesit-font-lock-settings
25852584 :simple-indent treesit-simple-indent-rules)))
25862585
25872586(defun clojure-ts--add-config-for-mode (mode )
0 commit comments