MPS 2019.3의 새로운 기능

빠른 정의 액션

빠른 정의 액션

Quick Definition(빠른 정의)는 IntelliJ IDEA에 있는 해당 기능과 유사합니다. 노드를 클릭하고 Ctrl-Shift-I를 길게 누르면 노드 정의가 있는 팝업이 표시됩니다. 이 팝업에서는 탐색하고 다른 노드를 선택하고 Find(검색) 액션을 수행할 수 있기 때문에 노드를 빠르게 살펴보고 싶을 때마다 새 탭을 열 필요가 없습니다.

자세히 알아보기

모델 로드 해제

모델 로드 해제

이제 메모리에서 모든 모델을 명시적으로 삭제하여 메모리 사용량을 개선할 수 있습니다. 메모리 표시기를 클릭하거나 Registry(레지스트리) 액션을 이용해 예정된 삭제 매개변수를 설정(초 단위)할 수 있습니다. 현재 이 기능은 실험 상태이며 향후 릴리스에서 개선해 나갈 계획입니다.

자세히 알아보기

독립실행형 생성기 모듈

독립 실행형 생성기 모듈 및 언어당 여러 생성기 지원

이제 언어 1개에 대해 2개 이상의 생성기를 생성하고 이전 버전에서와 마찬가지로 여러 개 생성기를 한 언어 내에서 동시에 호스트하거나 한 언어 옆에 일반 최상위 모듈로 추가할 수 있습니다. 생성기 계획을 사용하면 여러 생성기를 최대한 활용할 수 있습니다. 명시적 생성 계획이 없는 경우 전환을 돕기 위해 언어 생성기 중 하나만 모델에 계속 관여합니다. 새로운 생성기는 언어 컨텍스트 메뉴에서 만들 수 있으며 이어서 표시되는 대화상자에 생성기를 독립 실행형으로 만들 때 사용할 수 있는 새로운 체크박스가 추가되어 있습니다.

콘셉트 및 인터페이스 변환

콘셉트 및 인터페이스 변환

콘셉트을 인터페이스 콘셉트으로 또는 그 반대로 변환하는 새로운 인텐션이 추가되었습니다. 이 인텐션은 언어 구조를 생성할 때 사용되며 사용 위치를 변경하지 않습니다.

사용 위치에서 생성

사용 위치에서 생성

이제 코드의 사용 위치에서 콘셉트, 메서드, 클래스를 생성할 수 있습니다. 이 인텐션을 사용하면 새로운 구문에서 클래스를, 표현식에서 메서드를, 하위/참조 역할 및 확장/구현에서 콘셉트과 인터페이스를 생성할 수 있습니다.

유효한 Java 식별자 생성

INamedConcepts에서 유효한 Java 식별자 생성

새로운 생성기 구문을 사용하면 INamedConcept에서 유효한 Java 식별자를 생성할 수 있습니다. 이 구문은 잘못된 심볼을 제거하고 대문자를 사용하고 필요한 경우 접두어를 추가하여 고유한 이름을 만듭니다.

사용 위치 검색: 탐색기를 작성할 때 임의의 검색 결과를 보고하는 새로운 구문

이전 MPS 버전에서 탐색기의 add result 구문은 node<> 기반 검색 결과에만 허용되었습니다. 이제 언어 설계자는 add raw result를 사용하여 Find Usages(사용 위치 검색) 뷰가 시각화할 수 있는 모든 결과를 표시할 수 있습니다.

수정된 사항

생성기: 동적 참조 경고 제어

MPS 생성기는 동적 참조를 해결하려고 시도하다가 실패할 경우 경고를 표시합니다. 그러나 모든 생성기가 라벨 매핑을 사용하는 엄격한 참조 구성 방법을 준수하는 것은 아니기 때문에 수많은 경고가 발생합니다. 이 문제를 해결하기 위해 경고 표시 여부를 제어할 수있는 새로운 설정이 추가되었습니다.

자세히 알아보기

JavaStubs 로드 성능 향상 고객 요청

스텁 모델을 로드할 때, 특히 긴밀하게 연결된 대규모 jar 모음에서 성능이 크게 개선되었습니다. JetBrains에서 테스트한 대상 프로젝트의 경우 로드 시간이 2019.2 대비 2~3배 단축되었습니다(18초에서 6초로 단축). 이러한 성능 향상은 MPS 2019.1 및 MPS 2019.2에도 적용되었습니다.

빌드 언어: 명시적 모델 루트

MPS는 특정 파일 모음만 모델, 즉 *.mps*.mpsr로 취급해왔지만 사용자 지정 모델의 지속성 때문에 파일 이름은 다릅니다. 모듈이 빌드될 때 모든 필수 모델 파일이 포함되도록 하기 위해, 빌드 스크립트에는 모듈에 대한 명시적 모델 루트 선언이 있으며 이 선언을 통해 사용자 지정 파일 이름 패턴이 지원됩니다.

문서

새 빌드 솔루션 마법사의 사용자 지정 지속성 샘플 및 문서가 업데이트되었습니다. Math 샘플의 생성 시간 오류 및 문서 페이지의 끊어진 링크가 수정되었습니다. 여러 대화상자 및 도구 창도 수정되었습니다.

기본 언어

2진 및 8진 리터럴이 지원되며 Javadocs 내 유형 매개변수가 올바르게 처리됩니다. 그 외 다양한 문제도 수정되었습니다.

모델/모델 ID 객체를 업데이트하는 빠른 수정

MPS는 오래된 이름을 탐지하고 빠른 수정을 통해 최신 이름을 SModel 언어의 객체에 제공합니다.

자세히 알아보기

모듈 패싯 스토리 업데이트

'Tests' 모듈 패싯을 통해 언어 설계자는 완벽한 자유를 얻게 되었습니다. MPS는 이제 Language 모듈에 패싯을 포함하도록 요구하지 않습니다.

자세히 알아보기

다음으로 둘러싸기...

Surround with…(다음으로 둘러싸기) 액션을 여러 노드를 선택한 상태에서 이용할 수 있습니다. 이전에는 단일 노드가 포함된 선택 범위에만 사용할 수 있었습니다.

루트 기록 대화상자에서 영향을 받은 파일 표시 액션 사용

루트 기록에 있는 수정 버전의 경우, 동일한 수정 버전에서 변경된 다른 파일을 살펴볼 수 있습니다.

루트 단위 지속성이 있는 모델의 루트 기록 표시

2019.2에서 소개되었던 Show Root History(루트 기록 표시) 액션을 단일 파일에 보관된 모델의 루트에도 사용할 수 있게 되었습니다. 이제 루트 단위 지속성이 있는 모델도 지원됩니다.

즐겨찾기 뷰 업데이트

MPS에는 우수하게 유지관리된 IntelliJ 플랫폼의 Favorites(즐겨찾기) 도구가 통합되어 있습니다.

자세히 알아보기

메타 언어 스타일 지정

모든 메타 언어가 특히 키보드 탐색, 에디터 내 자리표시자 셀 동작, "New Root"(새 루트) 외관에서 동일한 스타일과 편집 경험을 제공합니다.