MPS 2020.3의 새로운 기능

MPS 2020.3에는 새로운 생성기 매크로, 동적 사용 위치 강조 표시, 새로운 디자인의 시작 화면 및 기타 사용해볼 만한 다양한 새로운 기능이 제공됩니다.

새로운 생성기 매크로

새로운 생성기 매크로

SWITCH/CALL 매크로가 있는 노드를 호출된 템플릿의 지정된 위치에 쉽게 삽입할 수 있는 $CALL-SITE$라는 새로운 매크로가 생겼습니다. 변경 전에는 SWITCH/CALL 매크로가 첨부된 템플릿 노드가 일반적으로 무시되었습니다. 이제 호출된 템플릿/switch가 '호출 위치의 노드'를 사용하려는 경우, 노드가 일반 템플릿으로서 처리되고, 그 결과물은 원하는 위치에 삽입할 수 있는 묵시적 인수로서 호출된 템플릿/switch에 제공됩니다.

에디터에서 동적 사용 위치 강조 표시

에디터에서 동적 사용 위치 강조 표시

오랫동안 기다려온 기능인 동적 강조 표시가 구현되었습니다. 이 기능은 기존 Highlight Usages(사용 위치 강조 표시) 액션(Ctrl/Cmd+Shift+F7)과 매우 유사합니다. 차이점은 코드를 입력하거나 탐색할 때 동적 강조 표시가 자동으로 작동한다는 것입니다. 커서 아래의 노드에 대한 참조는 편집된 문서에서 거의 즉시 강조 표시됩니다. 물론 원래의 Highlight Usages 액션을 계속 사용해 현재 선택한 노드의 사용 위치를 "고정"해 두고 다른 곳으로 이동할 수 있습니다. 그러면 동적 강조 표시 기능이 커서 아래의 노드를 계속 강조 표시합니다.

이 기능은 MPS 에디터 설정에서 Highlight selected node(선택한 노드 강조 표시) 체크박스를 사용해 켜거나 끌 수 있습니다.

BaseLanguage의 switch 문 개선

BaseLanguage의 switch 문 개선

몇가지 에디터 개선 사항 외에, 이제 switch 개념은 동일한 구문에서 여러 case의 사용을 지원합니다.

프로젝트 패널의 오류 스트립

프로젝트 패널의 오류 스트립

Project(프로젝트) 패널에 오류, 경고 및 메시지를 표시하는 새로운 방법이 도입되었습니다. 오류 스트립을 사용하면 Project 패널에서 메시지를 정리할 수 있습니다. 이 기능은 Logical View(논리적 뷰) 설정 버튼을 눌러 비활성화할 수 있습니다.

모듈 패싯 처리 방법 변경

이제 MPS는 주어진 모듈에 특정 모듈 패싯을 사용하도록 강제하지 않습니다. 모듈과 관련된 패싯은 최종 정보 소스인 모듈 설명자 파일에 기록됩니다. 이미 이전 릴리스에서 Tests 패싯은 완전히 선택 사항이 되었으며 마지막 남은 항목이었던 Java도 더 이상 강제되지 않습니다. 단, Language 모듈 프로퍼티에서 Java 모듈 패싯을 선택 취소하면 클래스 로딩 메커니즘에서 해당 언어가 제외되고 완전히 다른 환경이 렌더링됩니다. 이러한 변경은 Java 이외의 대상 언어를 눈에 띄지 않게 지원하기 위해 구현되었습니다.

VCS의 루트 어노테이션 개선

VCS의 루트 어노테이션 개선

이전 루트 어노테이션 알고리즘은 모델 텍스트 파일에서 얻은 어노테이션의 결과를 사용했습니다. 이는 텍스트 지속형 모델에서만 작동했으며 대부분의 경우 항상 정확하지는 않았습니다. 새로운 접근 방식에서는 어노테이션이 다양한 리비전의 모델을 비교하여 구성됩니다.

자세히 알아보기

Diff 대화상자 창에서 이동된 노드 추적

Diff 대화상자 창에서 이동된 노드 추적

두 모델 간의 변경 내용을 계산하는 이전 알고리즘은 특정 유형의 변경을 탐지하지 못했습니다. 노드 이동은 삽입과 삭제라는 두 가지 별개의 변경으로 탐지되었습니다. 이제 노드 이동을 하나의 이동으로 표시할 수 있습니다. 또한 이동한 부분에 발생한 내부 변경도 탐지됩니다.

자세히 알아보기

새로운 시작 화면

새로운 시작 화면

시작 화면의 디자인이 업데이트되었습니다. 이제 시작 화면에는 프로젝트 선택 기능뿐만 아니라 필요에 따라 IDE를 사용자 지정할 수 있는 다양한 대화상자도 포함됩니다. 무엇보다 Projects(프로젝트) 페이지의 공간이 넓어져 추가 프로젝트를 넣을 수 있습니다. 검색 필드에서 원하는 프로젝트를 검색하는 것도 더 쉬워졌습니다. Customization(사용자 지정) 페이지로 들어가면 색상 테마, IDE 글꼴, 가져오기 액션, 공유 환경 설정 등 기본 인터페이스 설정을 확인할 수 있습니다.

기타 개선 사항

VCS 메뉴 재정렬

VCS 메뉴 재정렬

VCS 메뉴의 이름이 현재 사용 중인 버전 관리 시스템의 이름과 일치하도록 변경되었습니다. 프로젝트 버전 관리에 가장 유용한 액션은 유지되어 메뉴가 더 깔끔하고 찾기 쉬워졌습니다. 주요 Git 기능이 하위 메뉴에 숨겨져 있지 않아 해당 기능에 쉽게 액세스할 수 있습니다. 예를 들어, 프로젝트에서 Git만 사용하는 경우 VCS 메뉴는 다음과 같이 보입니다.

커밋 및 푸시 버튼

가장 많이 사용되는 두 개의 버튼인 Commit(커밋)Commit and Push(커밋 및 푸시)…가 이제 Commit(커밋) 화면에 노출되어 표시됩니다. Commit and Push 버튼을 찾기 위해 드롭다운 목록을 스크롤할 필요 없이, 커밋 후 바로 원격 저장소로 변경 내용을 푸시할 수 있습니다.

브랜치 개선 사항

이 릴리스에서는 브랜치 관련 몇가지 개선 사항이 제공됩니다. 이제 IDE가 새 브랜치 이름에서 허용되지 않는 심볼을 자동으로 수정하며, 현재 브랜치와 관련된 모든 액션이 표시됩니다.

탭을 드래그 앤 드롭하여 에디터 분할

큰 프로젝트에서 작업할 때는 여러 개의 탭을 열어 두는 것이 편리하기 마련입니다. MPS 2020.3에서는 탭을 원하는 위치로 드래그 앤 드롭하여 기본 에디터 화면을 가로 또는 세로로 분할할 수 있습니다. 탭을 드래그하면, 해당 탭을 드롭할 수 있는 위치가 에디터에서 강조 표시됩니다. 탭 표시줄의 시작 부분에는 고정된 탭이 표시됩니다.