clojure-vim/clj-refactor.nvim

`crrs` (rename symbol) does not replace all instances of the symbol

daveyarwood opened this issue · 2 comments

I have a test file with a bunch of test cases like:

(testing "frequency -> the nearest MIDI note"
  (is (= (pitch/hz->midi 7.95) 0))
  (is (= (pitch/hz->midi 8.176) 0))
  (is (= (pitch/hz->midi 25.96) 20))
  (is (= (pitch/hz->midi 26) 20))
  (is (= (pitch/hz->midi 107.3) 45))
  (is (= (pitch/hz->midi 261) 60))
  (is (= (pitch/hz->midi 430) 69))
  (is (= (pitch/hz->midi 439) 69))
  (is (= (pitch/hz->midi 440) 69))
  (is (= (pitch/hz->midi 441) 69))
  (is (= (pitch/hz->midi 8372) 120)))

If I go into the example.pitch namespace (aliased in the test file above as pitch), move my cursor over the pitch/hz->midi function name in the defn form, and use crrs to rename it to foop, it renames the function in the example.pitch namespace, but only replaces the first instance of pitch/hz->midi in the test file with foop:

(testing "frequency -> the nearest MIDI note"
  (is (= (foop 7.95) 0))
  (is (= (pitch/hz->midi 8.176) 0))
  (is (= (pitch/hz->midi 25.96) 20))
  (is (= (pitch/hz->midi 26) 20))
  (is (= (pitch/hz->midi 107.3) 45))
  (is (= (pitch/hz->midi 261) 60))
  (is (= (pitch/hz->midi 430) 69))
  (is (= (pitch/hz->midi 439) 69))
  (is (= (pitch/hz->midi 440) 69))
  (is (= (pitch/hz->midi 441) 69))
  (is (= (pitch/hz->midi 8372) 120)))

Also note that it should have replaced it with pitch/foop.

hukka commented

Not sure if it's related, but seems like renaming a function does not change spec/fdef calls for that function.