branch: elpa/clojure-ts-mode
commit d630cd63af8022d5a1fee0e7aa05450b6e0fd75e
Author: Danny Freeman <danny@dfreeman.email>
Commit: Danny Freeman <danny@dfreeman.email>

    Implement clojure-ts-find-ns function
---
 CHANGELOG.md       |  2 ++
 clojure-ts-mode.el | 13 +++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 577d512d95..0f62f38adc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
 
 ## main (unreleased)
 
+- Implement clojure-ts-find-ns function (mostly as a demonstration).
+
 ## 0.1.4
 
 - Fix misplaced defcustom form in hastily release 0.1.3 
[6cba90c556c7e658b815cdbb9b4243bde3273203](https://github.com/clojure-emacs/clojure-ts-mode/commit/6cba90c556c7e658b815cdbb9b4243bde3273203)
diff --git a/clojure-ts-mode.el b/clojure-ts-mode.el
index f7fd4e4f64..2fc9a4a429 100644
--- a/clojure-ts-mode.el
+++ b/clojure-ts-mode.el
@@ -670,6 +670,19 @@ See `clojure-ts--standard-definition-node-name' for the 
implementation used.")
   (add-to-list 'interpreter-mode-alist '("nbb" . clojurescript-ts-mode))
   (clojure-ts--register-novel-modes))
 
+(defvar clojure-ts--find-ns-query
+  (treesit-query-compile
+   'clojure
+   '(((source (list_lit
+               :anchor (sym_lit name: (sym_name) @ns)
+               :anchor (sym_lit name: (sym_name) @ns-name)))
+      (:equal @ns "ns")))))
+
+(defun clojure-ts-find-ns ()
+  "Return the name of the current namespace."
+  (let ((nodes (treesit-query-capture 'clojure clojure-ts--find-ns-query)))
+    (treesit-node-text (cdr (assoc 'ns-name nodes)))))
+
 (provide 'clojure-ts-mode)
 
 ;;; clojure-ts-mode.el ends here

Reply via email to