2013-02-21 27 views
9

IDEA hoặc một trong các plugin của nó có khả năng sắp xếp mã thành các ký tự đặc biệt không?Định dạng mã: Cách căn chỉnh mã nhiều dòng thành các ký tự đặc biệt?

Ý tôi là để mã

Map(
    'name -> "Peter", 
    'age -> 27, 
    'company -> "Foobar" 
) 

được chuyển thành

Map(
    'name -> "Peter", 
    'age  -> 27, 
    'company -> "Foobar" 
) 

Ví dụ 2:

execute("x", true, 27) 
execute("foobar", false, 0) 

chuyển thành

execute("x"  , true , 27) 
execute("foobar", false, 0) 
+0

Không có giải pháp chung cho tất cả ngôn ngữ và phần mã, mọi trường hợp đều yêu cầu hỗ trợ từ trình định dạng ngôn ngữ cụ thể. Tùy chọn này được gọi là [align khi multiline] (http://img13.imageshack.us/img13/2453/20130221161759.png). Nếu nó chưa được hỗ trợ cho ngôn ngữ của bạn hoặc trường hợp sử dụng, [gửi yêu cầu tính năng] (http://youtrack.jetbrains.net/issues/IDEA) và nó có thể được triển khai trong các bản phát hành trong tương lai. – CrazyCoder

+0

Tôi ở cùng với bạn, Stefan, nhưng tôi thấy rằng việc thực hiện nó theo cách thủ công không phải là một trở ngại lớn đối với việc viết mã, vì người ta dành nhiều thời gian hơn chỉ nghĩ đến việc nhận các thuật toán và cấu trúc đúng. Tuy nhiên ... Không có góa phụ hay đứa trẻ mồ côi, OK? –

+0

Nếu bạn mở một yêu cầu tính năng, hãy đăng nó ở đây, để chúng tôi có thể upvote. Đó chắc chắn sẽ là một tính năng tuyệt vời, tôi cũng sử dụng loại định dạng này, tất cả thời gian và tôi ghét làm điều đó theo cách thủ công. –

Trả lời

1

Trong IDEA 12 nếu bạn đang sử dụng plugin Scala, bạn có thể định cấu hình "Căn chỉnh khi nhiều dòng" cho nhiều thứ, bao gồm cả dấu ngoặc đơn của phương thức. Ví dụ cụ thể của bạn về nhiều lần xâm nhập trên các dòng riêng biệt không được hỗ trợ.

4

Bạn có thể sắp xếp báo cáo trường hợp, tuy nhiên:

value match { 
    case s: String => Some(java.lang.Long.parseLong(s)) 
    case bi: BigInt => Some(bi.longValue) 
    case _ => None 
} 

Giống như vậy:

value match { 
    case s: String => Some(java.lang.Long.parseLong(s)) 
    case bi: BigInt => Some(bi.longValue) 
    case _   => None 
} 

Sử dụng tùy chọn:

Cài đặt -> Mã Style -> Scala => Bao bì và niềng răng - > các câu lệnh 'đối sánh' và 'trường hợp' -> Căn chỉnh trong các nhánh của các cột 'case'

+0

Có thể áp dụng kiểu này cho các chức năng một phần không? – kisileno

+0

Có, nó có thể và nó hoạt động. Tôi có các dòng trống giữa các câu lệnh 'case', đó là lý do tại sao nó không hoạt động. – kisileno

0

Trình định dạng mã dường như là một solution.

+0

Điều đó có vẻ đầy hứa hẹn. Thật không may tôi không thể làm cho nó hoạt động trong IDEA. –

+0

Hoạt động hoàn hảo cho tôi. Đã cho tôi như 5 phút để thiết lập nó. – jhegedus

+0

OK, tôi đã làm việc đó. Một số người cho rằng trông rất tuyệt. Mặt khác, tôi bỏ lỡ hai tính năng quan trọng: hỗ trợ cho các tab và các tab thông minh và hỗ trợ cho việc định dạng từng phần dựa trên lựa chọn. Hơn nữa, "Ví dụ 2" của tôi không được hỗ trợ bởi scalafmt. Dù sao, nó trông rất hứa hẹn và có thể là một giải pháp tốt cho nhiều người. –

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