MPS 2021.3의 새로운 기능

MPS 2021.3에는 Coderules, 실험적인 Kotlin 지원, Java 람다, 다양한 VCS 개선 사항 등이 포함되었습니다.

Coderules

몇 년 동안 새로운 유형의 시스템에 대한 작업이 이루어졌다는 것은 다들 알고 계실 겁니다. 이를 실현하는 과정은 쉽거나 간단하지 않았지만 마침내 결과물을 보여 드릴 수 있게 되었습니다. Coderules는 아직 베타 버전이므로 MPS에 번들로 제공되지 않습니다.

이는 완전한 하위 시스템이므로 기초 사항을 안내하는 온라인 과정을 준비했습니다.

온라인 과정으로 이동

실험적 Kotlin 언어 지원

실험적 Kotlin 언어 지원

실험적인 Kotlin 구현이 이제 MPS와 함께 번들로 제공됩니다. 언어(및 해당 텍스트 생성)에 있는 대부분의 구조 요소를 지원하지만 부분적으로만 지원됩니다.

자세히 알아보기

어노테이션에서 리비전 숨기기 액션

어노테이션에서 리비전 숨기기 액션

새로운 액션인 Hide Revision(리비전 숨기기)을 사용하면 어노테이션 결과 위치에서 바로 리비전을 제외하고 에디터와 여백 모두에 결과를 표시할 수 있습니다. 제외된 리비전은 반대 액션인 Restore Hidden Revisions(숨겨진 리비전 복원)로 복원할 수 있습니다.

자세히 알아보기

어노테이션 리비전 액션 결과 최적화

MPS의 Annotate(어노테이션 추가) 액션은 여러 모델에 대해 어노테이션 결과가 구성되기 때문에 텍스트 파일에 대한 git blame 액션만큼 빠르지 않습니다. Annotate revision(리비전에 어노테이션 추가)Annotate previous revision(이전 리비전에 어노테이션 추가) 액션은 결과를 구성하는 데 Annotate 액션과 동일한 알고리즘을 사용하며 속도도 느렸습니다. Annotate revisionAnnotate previous revision 액션의 결과는 초기 Annotate 액션에서 얻은 결과를 사용하여 즉시 구성할 수 있습니다.

병합 루트의 세부 정보 대화 상자

병합 루트의 세부 정보 대화상자

병합하는 동안 브랜치에 대한 상세한 정보를 제공하기 위해 Show Details(세부 정보 표시) 액션이 도입되었습니다. 이 액션은 Merge revision(리비전 병합) 창에서 액세스할 수 있습니다.

Diff 대화상자 툴팁의 변경 관련 짧은 설명

Diff 대화상자 툴팁의 변경 관련 짧은 설명

Diff 대화상자 툴팁에서 변경 사항에 대한 설명을 변경할 수 있는 새로운 액션을 도입했습니다. 이 설명은 더 짧아 읽기 쉽습니다.

향상된 에디터 툴팁
고객 요청

이제 툴팁 안의 링크를 클릭할 수 있으며 툴팁 팝업 창이 기본 애플리케이션 창 내에서 유지됩니다. 텍스트가 많은 경우 툴팁 내부에서 스크롤할 수도 있습니다.

병합 프로세스의 새로운 Diff 알고리즘

병합 프로세스의 새로운 Diff 알고리즘
고객 요청

새로운 타입의 변경에 대해 충돌, 비충돌 및 대칭 변경을 찾기 위한 새로운 알고리즘이 개발되었습니다. Merge(병합) 창에서 노드 이동 추적이 있거나 없는 알고리즘 간의 전환을 위한 UI 메커니즘을 도입했습니다.

자세히 알아보기

Diff 대화상자에서 중첩된 래핑 및 래핑 해제 변경 탐지

Diff 대화상자에서 중첩된 래핑 및 래핑 해제 변경 탐지
고객 요청

이전에도 래핑 또는 래핑 해제 내의 내부 삽입, 삭제, 이동 변경을 탐지할 수 있었지만 중첩된 래핑의 변경은 탐지되지 않았습니다. 이제 중첩된 래핑 및 래핑 해제의 변경을 탐지할 수 있습니다.

VCS 설정 재구성

VCS 설정 재구성

더 쉽게 찾고 사용할 수 있도록 VCS 설정이 재구성되었습니다. Preferences(환경 설정)/Settings(설정) | Version Control(버전 관리)에서 이제 VCS를 구성하는 데 사용 가능한 설정 목록을 찾을 수 있습니다. 또한 디렉터리 매핑을 위한 별도의 노드도 추가했으며, 백그라운드 연산은 기본적으로 활성화됩니다.

Git 노드로 이동하면 설정이 가장 중요한 프로세스인 Commit(커밋), Push(푸시)Update(업데이트)에 해당하는 섹션으로 분류된 것을 확인할 수 있습니다.

호환되는 클로저를 Java 람다로 생성

호환되는 클로저를 Java 람다로 생성
고객 요청

MPS 클로저가 이제 호환되는 경우 Java 람다 식으로 생성됩니다. 다음과 같은 용례에서는 호환되지 않습니다.

  • Yield 연산
  • 'Functional' 추상 클래스
  • 어노테이션
  • 상위 범위와 충돌하는 지역 변수

자세히 알아보기

튜플에 대한 라벨 매핑

튜플에 대한 라벨 매핑
고객 지원

한 쌍의 노드를 node<>, node<> --> node<> 매핑을 위한 키로 사용하는 실험적 기능을 도입했습니다. 이는 두 가지 소스 개념을 지원해야 하는 상황에서 유용합니다. 이 기능을 사용해보고 싶으면 하나의 키 노드로 라벨을 사용할 때와 같은 방식으로 사용하면 됩니다.

자세히 알아보기

제너레이터에서 두 키 매핑의 모든 값에 액세스
고객 지원

튜플에 대한 라벨 매핑 기능 외에도 이제 지정된 두 개의 키, genContext.get output list LABEL for (node1, node2)에 대해 알려진 모든 매핑에 액세스하는 쿼리를 지원합니다.

성능 추적에서 동적 참조를 해결하는 데 소요된 시간 보고

수많은 범위 평가로 인해 동적 참조를 해결하는 과정에서 모델 간 변환 속도가 느려지는 경우가 많습니다. 성능 추적은 모호한 'restoring references'(참조 복원)이라는 제목 아래에 이 중요한 정보를 숨깁니다. 이제 동적 참조를 복원하는 데 소요된 시간이 일반 또는 정적 참조를 복원하는 데 소요된 시간과 별도로 보고됩니다.

프로젝트 마이그레이션 개선 사항

프로젝트 마이그레이션 개선 사항

이번 릴리스에서는 프로젝트 마이그레이션을 생성하는 프로세스를 단순화했습니다. 플러그인 솔루션을 만들고 마이그레이션 및 애플리케이션 플러그인 루트를 작성하고 이 플러그인 솔루션을 빌드 스크립트에 포함하기만 하면 됩니다.

Ant <migrate> 작업 개선

Ant <migrate> 작업은 이제 여러 프로젝트 사양을 지원하며 한 번에 여러 프로젝트를 마이그레이션할 수 있습니다. 중첩된 <project path="”/> 요소 또는 일반 Ant의 <dirset>을 사용하여 작업의 프로젝트 위치를 열거할 수 있습니다.

체크아웃 후 현재 브랜치상에서 리베이스를 원격 브랜치에 사용

체크아웃 후 현재 브랜치상에서 리베이스를 원격 브랜치에 사용

Checkout and Rebase onto Current(체크아웃 후 현재 브랜치상에서 리베이스) 액션을 사용하면 선택한 브랜치를 체크아웃하고 현재 체크아웃된 브랜치상에서 리베이스할 수 있습니다. 이전에는 로컬 브랜치에서만 가능했지만 MPS 2021.3에서는 원격 브랜치에서도 사용할 수 있습니다.

새로운 변경 내용 도구 창

새로운 변경 내용 도구 창

MPS 2021.3에서 IDE는 에디터 왼쪽에 있는 별도의 Changes(변경 내용) 도구 창에서 커밋 간의 차이를 보여줍니다.

새로운 여기까지의 내용을 모두 푸시 액션

새로운 여기까지의 내용을 모두 푸시 액션

이 기능을 사용하면 확실한 커밋만 푸시하고 나머지 커밋은 이후에 처리하도록 남겨둘 수 있습니다. 사용하려면 멈출 지점의 커밋을 선택한 후 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 호출하고, 새로운 Push All up to Here(여기까지의 내용을 모두 푸시) 액션을 선택하면 됩니다.

마이그레이션 가이드 2021.3

모든 릴리스와 마찬가지로 이전 버전에서 원활하게 전환할 수 있도록 마이그레이션 가이드를 준비했습니다.