코드 생성 및 리팩터링

사용 위치에서 생성

CLion에서는 함수나 변수, 데이터 멤버, 심지어 클래스를 선언 전에 사용할 수 있습니다. CLion은 해당 항목을 빨간색으로 강조 표시하고 빠른 수정을 제안합니다. Alt+Enter를 눌러 적합한 선언을 추가하세요. 함수의 경우, CLion은 반환 유형과 함수의 매개변수 유형도 탐지합니다.

인텐션 액션

인텐션을 사용하면 올바른 코드에 자동 변경을 적용하여 코드를 개선하거나 루틴 코딩을 더 간편하게 작업할 수 있습니다. 생성자에 데이터 멤버 및 이니셜라이저를 추가하고, 드 모르간의 법칙을 논리 표현식에 적용하고, typedef를 삽입하며, 정의를 클래스 밖으로 꺼내는 등 다양한 작업을 수행해 보세요. 에디터의 왼쪽 거터에 있는 전구는 1개 이상의 인텐션 액션을 사용할 수 있음을 표시합니다. 해당 액션을 적용하려면 간단히 Alt+Enter를 누르세요.

'Surround with'(다음으로 둘러싸기) 및 라이브 템플릿

라이브 템플릿을 사용(Code(코드) | Insert Live Template(라이브 템플릿 삽입) 선택 또는 Ctrl+J 누르기)하여 전체 코드 구문을 만들어 보세요. 사전 정의된 라이브 템플릿은 설정(Editor(에디터) | Live Templates(라이브 템플릿))에 모두 나열되어 있으며 필요에 따라 확장하고 맞춤 설정할 수 있습니다. 코드에서 라이브 템플릿을 적용하려면 간단히 템플릿의 약자를 입력한 후 Tab을 누르세요. 그런 다음, Enter 또는 Tab을 사용해 템플릿 변수를 탐색하세요.

완성된 구문으로 코드를 빠르게 감싸고 싶다면 'Surround with'(다음으로 둘러싸기) 템플릿도 사용해 보세요. Code(코드) | Surround With(다음으로 둘러싸기)를 선택하거나 Ctrl+Alt+T를 눌러 if, while, for, #ifdef 및 기타 래퍼(wrapper)를 컨텍스트에 따라 쉽게 생성할 수 있습니다.

Generate(생성) 메뉴

CLion의 Generate(생성) 메뉴(Alt+Insert)를 이용하면 코드 입력 시간을 아주 쉽게 절약할 수 있습니다.

setters/getters와 생성자/소멸자를 비롯해 비교, 논리, 출력 스트림 연산자를 클릭 한 번으로 만들 수 있습니다. 생성 과정에서 사용할 필드 및 다양한 옵션(Generate as class members(클래스 멤버 생성), Generate in-place(즉시 생성) 등)을 선택하고 필요에 따라 std::tie를 연산자 구현 및 기타 옵션에 사용하세요.

일부 연산자가 이미 있을 경우 CLion에서는 누락된 연산자를 추가하거나 기존 연산자를 모두 교체하도록 제안합니다.

정의 생성, 구현 또는 치환

구현 함수(Ctrl+I), 치환 함수(Ctrl+O), 생성 함수(Shift+Ctrl+D)를 사용해 강력한 코드 생성 기능을 경험해 보세요.

CLion은 프로젝트에 사용 중인 코드 패턴에 맞게 조정되기 때문에 Generate in-place(즉시 생성)의 설정 기본값 역시 코드에 따라 정해집니다. 또한 경험적 지식이 구현되어 가장 일반적인 사용 사례(header-only 또는 cpp-only 클래스 등)를 지원합니다.

리팩터링

CLion에서 제공하는 안정적인 리팩터링 기능 모음으로 높은 코드 품질을 유지할 수 있습니다. 리팩터링을 실행하면 코드의 변경 내용이 범위 전체에 안전하게 적용됩니다.

현재 위치에서 이용할 수 있는 모든 리팩터링을 확인하려면 Refactor This(다음을 리팩터링)... 메뉴(Ctrl+Alt+Shift+T를 누름)를 사용하세요.

리팩터링 목록은 다음을 포함합니다.

Rename(이름 변경)(Shift+F6): 심볼 이름을 변경하고 코드 내 모든 참조를 자동으로 수정합니다.

Change Signature(시그니처 변경)(Ctrl+F6): 함수 매개변수를 추가/삭제/재배열하거나 결과 유형을 변경하거나 함수 이름을 업데이트할 수 있으며 사용 위치도 모두 자동으로 수정됩니다.

Inline(인라인화)(Ctrl+Alt+N): 불필요한 변수 사용/함수 호출을 해당 함수의 이니셜라이저/선언으로 바꿉니다.

Extract(추출)(함수 Ctrl+Alt+M, Typedef Ctrl+Alt+K, 변수 Ctrl+Alt+V, 매개변수 Ctrl+Alt+P, 정의 Ctrl+Alt+D, 상수 Ctrl+Alt+C, 람다 매개변수): CLion은 리팩터링이 실행될 코드 블록을 분석하고 입출력 변수 및 선택된 표현식의 사용 위치를 탐지하여 사용자가 선택하고 새로 생성한 엔티티로 교체합니다.

Pull Members Up/Down(멤버를 위/아래로 이동): 클래스 멤버를 기본 클래스/하위 클래스로 안전하게 이동합니다.

이 외에도 다양한 기능이 있습니다.