2014-06-06 31 views
8

Do những thay đổi trong thư viện tôi đang sử dụng, các getters đã được thay thế bằng quyền truy cập trực tiếp vào thuộc tính. Ví dụ:Thay thế các xiềng xích bằng tài sản bằng Tìm kiếm Cấu trúc IntelliJ và Thay thế

public class MyLibraryClass { 
    private String field; 

    public String getField() { return field; } 
} 

đã trở thành

public class MyLibraryClass { 
    public String field; 
} 

Do đó tôi muốn sử dụng SSR IntelliJ để thay thế các cuộc gọi getter với tài sản Bean. Tuy nhiên tôi đã bị mắc kẹt về cách sử dụng các nhóm chụp regexp để thay thế của tôi. Nếu có một lối tắt IntelliJ khác để làm những gì tôi muốn, tôi rất vui khi sử dụng nó.

Các tham số tìm kiếm SSR sau đây tìm thấy các getters, nhưng tôi dường như không thể sử dụng nhóm chụp cho $property$ để thay thế. Tôi đã thử \1\$1$1 see (using backreferences in IntelliJ)

Tôi cũng đã cố gắng thay đổi tìm kiếm để $instance$.get$property$() (thanh toán bù trừ các khó khăn cho $property$ nhưng việc tìm kiếm không trả lại bất kỳ kết quả.

  1. Làm thế nào tôi có thể truy cập vào nhóm chụp ($1)
  2. có thể thực hiện bất kỳ chế biến trên $1 trước khi thay thế (để sửa chữa các trường hợp)

Tôi nhận thấy tùy chọn Script text chấp nhận mã Groovy, tuy nhiên tôi không thể tìm thấy bất kỳ tài liệu nào về tính năng này.

SSR search template instance variable config property variable config

Trả lời

5

Đặt trong việc thay đổi mẫu $instance$.$field$. Mẫu này giới thiệu biến mới field cần chứa văn bản lệnh sau:

String name = property.methodExpression.referenceName.substring(3) 
name[0].toLowerCase() + name.substring(1) 
+0

Geweldige @ bas-leijdekkers! hoàn toàn nổi bật! – 62mkv

+0

cho những người tìm kiếm thêm ví dụ về thay thế cấu trúc: https://gist.github.com/62mkv/d1cdbac42e225d157226b3f8337c84af – 62mkv

Các vấn đề liên quan