sed-i-all-rs-files-for-rust-analyzer.sh 1.3 KB

1234567891011121314151617181920212223242526
  1. #!/usr/bin/env bash
  2. set -e
  3. # rust-analyzer doesn't support hiding noisy test calls in the call hierarchy from tests/benches
  4. # so, here's some wild hack from ryoqun!
  5. if [[ $1 = "doit" ]]; then
  6. # it's true that we put true just for truly-aligned lines
  7. # shellcheck disable=SC2046 # our rust files are sanely named with no need to escape
  8. true &&
  9. sed -i -e 's/#\[cfg(test)\]/#[cfg(escaped_cfg_test)]/g' $(git ls-files :**.rs :^**/build.rs) &&
  10. sed -i -e 's/#\[bench\]/#[cfg(escaped_bench)]/g' $(git ls-files :**.rs :^**/build.rs) &&
  11. sed -i -e 's/#\[test\]/#[cfg(escaped_test)]/g' $(git ls-files :**.rs :^**/build.rs) &&
  12. sed -i -e 's/#\[tokio::test\]/#[cfg(escaped_tokio_test)]/g' $(git ls-files :**.rs :^**/build.rs)
  13. elif [[ $1 = "undoit" ]]; then
  14. # shellcheck disable=SC2046 # our rust files are sanely named with no need to escape
  15. true &&
  16. sed -i -e 's/#\[cfg(escaped_cfg_test)\]/#[cfg(test)]/g' $(git ls-files :**.rs :^**/build.rs) &&
  17. sed -i -e 's/#\[cfg(escaped_bench)\]/#[bench]/g' $(git ls-files :**.rs :^**/build.rs) &&
  18. sed -i -e 's/#\[cfg(escaped_test)\]/#[test]/g' $(git ls-files :**.rs :^**/build.rs) &&
  19. sed -i -e 's/#\[cfg(escaped_tokio_test)\]/#[tokio::test]/g' $(git ls-files :**.rs :^**/build.rs)
  20. else
  21. echo "usage: $0 [doit|undoit]" > /dev/stderr
  22. exit 1
  23. fi