tools & libs/IDES

[eclipse] save actions

  • -
반응형

Save Actions

Save Actions는 이클립스에서 파일을 저장할 때 추가로 처리할 동작을 설정할 수 있는 기능이다. 여기서는 자바 에디터의 save actions 사용에 대해 정리해보자.

주의할 점은 작성한 코드에 대한 임의적인 변경이 이뤄지기 때문에 호불호가 있다.!!

Windows > Preferences > Java > Editor > Save Actions를 통해 메뉴에 진입해보자.

 

기본 메뉴

 - Save Actions를 동작시키려면 Perform the selected actions on save에 대한 체크가 필요하다.

 - 미리 설정된 formatter에 의해 소스 코드의 포멧을 수정하려면 format source code를 체크한다.

 - 불필요한 inport 문장을 제거하고 개별 클래스 import 형태로 수정하려면 Organize imports를 체크한다. 

 - 추가적인 설정을 위해서는 Additional actions를 체크한다. 

 

Additional actions

Additional actions에서는 추가적인 동작을 정의할 수 있다. 대부분 불필요한 내용에 대한 삭제, 정렬, 수정을 다루기 때문에 하나씩 탭을 살펴보고 본인이 필요하다고 생각하는 기능을 설정하면 된다.

기본 사용 방법은 설정 창에서 기능을 선택한 후 우측의 Preview에서 설정 내용을 확인하고 맘에 들면 적용시키면 된다. 예를 들어 Code Organizing 탭을 살펴보자.

Members에 Sort Members 설정이 있는데 멤버들을 정렬 할 것인가, 하지 않을 것인가에 대한 설정이다. 체크했을 때와 하지 않았을 때의 결과를 Preview에서 보고 결정하면 된다.

Sort Members 적용 시 Sort Members 미 적용 시

 

Code Style 탭

 - Control Statements

  • Use blocks in if/while/for/do statement:  제거문의 실행 블럭 작성 시 {} 를 강제 삽입 할것인지 설정한다.
  • Convert for loops to enhanced: index를 기반으로 하는 for 문장을 for each 문장으로 변경할 지 설정한다.

 

 - Expressions

  • Use parenthness in expressions: 표현식을 쓸 때 소괄호로 묶을 것인지 설정한다.
  • Use lazy logical operator: 논리 연산자를 short circuit 형태로 변경한다.

 

- Number Literals

  • Use uppercase for long literal suffix: long 형의 접미사를 대문자 L 로 수정한다.

 

 - Variable declarations

  • Use modifier 'final' where possible: 가능한 곳(수정하지 않고 참조만 하는 변수들)에 final 제한자를 추가한다.
  • Use local variable type interface(Java 10 or higher):  변수 선언을 local variable type 일 var로 수정한다.(java 10의 추가 기능)

 

 - Functional interface instances

  • Convert functional interface instances: 함수형 인터페이스에 대한 객체 사용 부분을 lambda 식 또는 anonymous class 형태로 변경한다.
  • Simplify lambda expression and method reference syntax: 가능한 람다 표현식을 간단히 처리하고 메서드 참조 형태로 코드를 변경한다.

 

Member Accesses

 - Non static accesses

  • Use 'this' qualifier for field accesses: instance member 변수 즉 field에 접근할 때 this를 사용한다.
  • Use 'this' qualifier for method accesses: 메서드에 접근할 때 this를 사용한다.

 - Static Accesses

  • Use declaring class as qualifier: static 요소에 접근할 때 클래스 이름 사용에 대해 설정한다.

 

Missing Code

- Annotations

  • Add missing Annotations: 사용하지 않은 annotation을 자동으로 추가한다.

 

Unnessary Code

 - Unused code

  • Remove unused imports: 사용하지 않는 import 문장을 제거한다.
  • Remove unused private members: private member 중 사용하지 않는 코드들을 제거한다.
  • Remove unused local variables: 사용하지 않는 local 변수들을 제거한다.

 

 - Unnessary code

  • Remove unnessary casts: 불필요한 형변환 처리를 제거한다.
  • Remove unnessary '$NON-NLS$' tags: 불필요한 $NON-NLS$ 태그(I18N 설정 과 관련된 태그) 를 제거한다.
  • Remove redundant type arguments(1.7 or higher): 불필요한 타입 파라미터 설정을 제거한다.(강추)
  • Use Autoboxing(1.5 or higher): Autoboxing 형태의 코드로 변환한다.
  • Use Unboxing(1.5 or higher): Unboxing 형태의 코드도 변환한다.
  • Push down negation: 부정 연산자(!)를 가급적 지양한다.
  • Merge conditions of if/else if/else that have the same block: if/else 문장에서 처리 내용이 동일한 경우 합친다.
  • Operate on Maps directly: Map을 사용할 때 key를 통하지 않고 직접 사용하는 형태로 변경한다.
  • Remove redundant modifiers: 인터페이스 메서드의 public abstract 처럼 중복된(불필요한) 제한자를 제거한다.
  • Remove redundant semicolons: 중복된 세미콜론을 제거한다.
  • Remove unnessary array creation(1.5 or higher): 불필요한 배열 생성 코드를 제거한다.

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.