@@ -985,18 +985,18 @@ If CLJS? is T we insert in the cljs part of the ns declaration."
985
985
(defun cljr--cljs-file-p (&optional buf )
986
986
" Is BUF, or the current buffer, visiting a cljc file?"
987
987
(s-equals-p (file-name-extension (buffer-file-name (or buf (current-buffer ))))
988
- " cljs" ))
988
+ " cljs" ))
989
989
990
990
(defun cljr--cljc-file-p (&optional buf )
991
991
" Is BUF, or the current buffer, visiting a cljc file?"
992
992
(s-equals-p (file-name-extension (buffer-file-name (or buf (current-buffer ))))
993
- " cljc" ))
993
+ " cljc" ))
994
994
995
995
(defun cljr--clj-file-p (&optional buf )
996
996
" Is BUF, or the current buffer, visiting a clj file?"
997
997
(or (eq major-mode 'clojure-mode )
998
998
(s-equals-p (file-name-extension (buffer-file-name (or buf (current-buffer ))))
999
- " clj" )))
999
+ " clj" )))
1000
1000
1001
1001
(defun cljr--add-test-declarations ()
1002
1002
(save-excursion
@@ -2138,8 +2138,8 @@ FEATURE is either :clj or :cljs."
2138
2138
(if (cljr--point-in-reader-conditional-p)
2139
2139
(cljr--point-in-reader-conditional-branch-p :clj )
2140
2140
(s-equals-p (cljr--prompt-user-for " Language context at point? "
2141
- (list " clj" " cljs" ))
2142
- " clj" )))))
2141
+ (list " clj" " cljs" ))
2142
+ " clj" )))))
2143
2143
2144
2144
(defun cljr--aget (map key )
2145
2145
(cdr (assoc key map)))
@@ -2867,7 +2867,7 @@ Also adds the alias prefix to all occurrences of public symbols in the namespace
2867
2867
(cljr--ensure-op-supported " find-used-publics" )
2868
2868
(let ((filename (buffer-file-name )))
2869
2869
(let* ((alias (or alias
2870
- (cljr--prompt-user-for (format " alias for [%s ]: " ns))))
2870
+ (cljr--prompt-user-for (format " alias for [%s ]: " ns))))
2871
2871
(request
2872
2872
(cljr--create-msg " find-used-publics"
2873
2873
" used-ns" ns
@@ -2970,15 +2970,21 @@ Inspect SYMBOL, the thing at point, to find out whether we have
2970
2970
to create an alias or refer."
2971
2971
(save-excursion
2972
2972
(cljr--insert-in-ns " :require" )
2973
- (let ((missing (format " %s " missing-symbol))
2974
- (alias? (cljr--qualified-symbol-p symbol)))
2975
- (if alias?
2976
- (cljr--insert-libspec-verbosely (format " [%s :as %s ] " missing
2977
- (cljr--symbol-prefix symbol)))
2978
- (if (and (s-contains-p " ." missing)
2979
- (s-uppercase? (s-left 1 (cljr--symbol-suffix missing))))
2980
- (cljr--insert-libspec-verbosely (cljr--symbol-prefix symbol))
2981
- (cljr--insert-libspec-verbosely (format " [%s :refer [%s ]] "
2973
+ (let* ((missing (format " %s " missing-symbol))
2974
+ (alias? (cljr--qualified-symbol-p symbol)))
2975
+ (cond
2976
+ ; ; defrecord / deftype where the package must be required
2977
+ ((and (s-contains-p " ." missing)
2978
+ (s-uppercase? (s-left 1 (cljr--symbol-suffix symbol))))
2979
+ (cljr--insert-libspec-verbosely (cljr--symbol-prefix missing)))
2980
+ ; ; Fully qualified symbol
2981
+ ((and (cljr--qualified-symbol-p symbol)
2982
+ (string= (cljr--symbol-prefix symbol) missing))
2983
+ (cljr--insert-libspec-verbosely missing))
2984
+ (alias?
2985
+ (cljr--insert-libspec-verbosely (format " [%s :as %s ] " missing
2986
+ (cljr--symbol-prefix symbol))))
2987
+ (t (cljr--insert-libspec-verbosely (format " [%s :refer [%s ]] "
2982
2988
missing symbol)))))))
2983
2989
2984
2990
(defun cljr--add-missing-libspec (symbol candidates )
@@ -2993,8 +2999,8 @@ to create an alias or refer."
2993
2999
; ; In the line below we're assuming that all clojure code
2994
3000
; ; will prefer - over _ when naming namespaces :(
2995
3001
(progn (cljr--insert-missing-require
2996
- (s-replace " _ " " - " ( format " %s " missing- symbol))
2997
- missing-symbol)
3002
+ symbol
3003
+ (s-replace " _ " " - " ( format " %s " missing-symbol)) )
2998
3004
(cljr--insert-missing-import missing-symbol)))
2999
3005
((eq type :class ) (cljr--insert-missing-import missing-symbol))
3000
3006
(t (error (format " Uknown type %s " type))))))
0 commit comments