@@ -602,7 +602,12 @@ literals with regex grammar."
602602 (sym_lit name: (sym_name) @font-lock-function-name-face))))
603603 ((list_lit
604604 ((sym_lit name: (sym_name) @def)
605- ((:equal " reify" @def)))
605+ ((:match ,(rx-to-string
606+ `(seq bol
607+ (or " reify"
608+ " extend-protocol" )
609+ eol))
610+ @def)))
606611 (list_lit
607612 (sym_lit name: (sym_name) @font-lock-function-name-face))))
608613 ; ; letfn
@@ -2186,6 +2191,12 @@ type, etc. See `treesit-thing-settings' for more details."
21862191 (and (clojure-ts--list-node-p node)
21872192 (string= (clojure-ts--list-node-sym-text parent) " reify" ))))
21882193
2194+ (defun clojure-ts--extend-protocol-defn-p (node )
2195+ " Return non-nil if NODE is a function definition in an extend-protocol form."
2196+ (when-let* ((parent (treesit-node-parent node)))
2197+ (and (clojure-ts--list-node-p node)
2198+ (string= (clojure-ts--list-node-sym-text parent) " extend-protocol" ))))
2199+
21892200(defun clojure-ts-add-arity ()
21902201 " Add an arity to a function or macro."
21912202 (interactive )
@@ -2196,6 +2207,7 @@ type, etc. See `treesit-thing-settings' for more details."
21962207 " defmacro"
21972208 " defmethod"
21982209 " defprotocol"
2210+ " extend-protocol"
21992211 " reify"
22002212 " proxy" )
22012213 eol))
@@ -2210,13 +2222,16 @@ type, etc. See `treesit-thing-settings' for more details."
22102222 (clojure-ts--parent-until #'clojure-ts--defprotocol-defn-p ))
22112223 ((string= parent-def-sym " reify" )
22122224 (clojure-ts--parent-until #'clojure-ts--reify-defn-p ))
2225+ ((string= parent-def-sym " extend-protocol" )
2226+ (clojure-ts--parent-until #'clojure-ts--extend-protocol-defn-p ))
22132227 (t parent-def-node))))
22142228 (let ((beg-marker (copy-marker (treesit-node-start parent-def-node)))
22152229 (end-marker (copy-marker (treesit-node-end parent-def-node))))
22162230 (cond
22172231 ((string= parent-def-sym " defprotocol" )
22182232 (clojure-ts--add-arity-defprotocol-internal fn-node))
2219- ((string= parent-def-sym " reify" )
2233+ ((or (string= parent-def-sym " reify" )
2234+ (string= parent-def-sym " extend-protocol" ))
22202235 (clojure-ts--add-arity-reify-internal fn-node))
22212236 (t (clojure-ts--add-arity-internal fn-node)))
22222237 (indent-region beg-marker end-marker))
0 commit comments