MPS 2019.2의 새로운 기능

열거형 데이터 유형

열거형 데이터 유형

새로운 열거형 데이터 유형 선언은 옵션의 목록을 간결하게 선언할 수 있는 방법을 제공합니다. 각 옵션은 이름이 지정된 열거형 멤버로 표현됩니다. 선택적으로, 일부 멤버에 대한 에디터의 표현을 변경하고, 프로퍼티에 명시적으로 설정된 멤버가 없을 경우 사용될 디폴트 멤버를 선택할 수 있습니다.

자세히 알아보기

오류 메시지 사용자 지정

오류 메시지 사용자 지정 고객 요청

한동안, 일부 MPS 오류 메시지를 사용자 지정할 수 있는 기능에 대한 요청이 있었습니다. 저희 유료 고객 중 한 분의 요청 덕분에 이 기능을 최우선순위로 부여할 수 있었습니다. 이제, 오류 보고의 모든 제약 조건을 수정할 수 있습니다. 다음 릴리스에서는 다른 종류의 오류에 대해서도 이 보고 사용자 지정 기능을 적용할 예정입니다.

오류 텍스트 사용자 지정에서 'feedback'이라는 이름의 새로운 관점을 사용할 수 있습니다.

자세히 알아보기

규칙 기반 제약 조건 언어

규칙 기반 제약 조건 언어

향후 일반 MPS 제약 조건 언어에서 현재 사용할 수 있는 canBe* 제약 조건을 대체하기 위하여 규칙 기반 제약 조건 언어가 생성되었습니다. 규칙 기반 제약 조건 언어는 실험적인 기능으로, 향후 릴리스에서 많은 발전이 있을 것으로 기대됩니다.

자세히 알아보기

루트 기록

루트 기록

Git 메뉴에 특정 루트에 대한 VCS 변경 기록을 표시하는 새로운 액션이 추가되었습니다. 이 액션은 에디터의 컨텍스트 메뉴에서 사용할 수 있습니다.

자세히 알아보기

전체 텍스트 검색

전체 텍스트 검색

프로퍼티 값에 대하여 전체 텍스트 검색을 사용할 수 있습니다. 프로젝트 액션에서 Edit(편집)–>Find(검색)–>Find Text(텍스트 검색) (Ctrl+Alt+Shift+F)를 사용해 지정된 텍스트와 일치하는 프로퍼티 값을 지닌 노드를 검색할 수 있습니다.

특정 오류 검사

특정 오류 검사

테스트 언어의 가장 일반적인 사용 사례 중 하나는 오류 메시지 또는 경고와 관련하여 노드를 검사하는 것입니다. MPS의 테스트 하위 시스템은 동일한 노드에서 나타난 서로 다른 오류를 구분하지 못해 잘못된 동작으로 연결되는 경우가 있었습니다. 또한 사용자가 해당 테스트 주석 안에 예상되는 오류를 지정하였더라도 이 노드 상에서 보고된 추가적인 오류와 경고가 테스트 위반으로 보고되지 않는 경우도 있었습니다.

자세히 알아보기

패턴에 대해 정의된 검사 규칙

패턴에 대해 정의된 검사 규칙

특정 콘셉트에 대해 검사 규칙을 정의할 경우 이 규칙은 해당 콘셉트의 인스턴스인 모든 노드에 대해서 호출됩니다.

이제 상위 콘셉트에서 상속된 규칙을 재정의하는 대신 재정의할 규칙의 목록을 명시적으로 지정할 수 있습니다. 반드시 재정의 기능을 사용하는 모든 검사 규칙을 검토해서 어떤 규칙이 재정의되어야 하는지 결정하는 것이 좋습니다.

자세히 알아보기

Facade API 유형 검사

이번 릴리스에서는 새로운 facade API가 유형 검사 쿼리를 실행할 때 지원되는 유일한 방법입니다.

새로운 API: jetbrains.mps.typechecking.TypecheckingFacade 및 관련 클래스를 참조하세요.

사용 중지된 API(기존): jetbrains.mps.typesystem.* 패키지의 계층 구조는 이제 더 이상 사용되지 않습니다. 'typesystem' 관점의 콘텐츠에서 자동으로 생성되는 코드를 제외하고 이 계층 구조 안의 클래스를 직접 사용하는 것은 권장되지 않습니다.

다음 릴리스에 예정된 변경 사항

다음은 유형 시스템 지원과 관련하여 수행되고 있는 변경 사항에 대한 임시적인 계획입니다. 유형 시스템의 구현을 담당하던 관점과 이 관점에서 사용되던 언어는 더 이상 사용되지 않게 됩니다. 머지않아 해당 언어 및 런타임 지원은 별도의 플러그인으로 마이그레이션됩니다.

새롭게 도입되는 관점은 유형 시스템 관점의 '유형 시스템이 아닌' 부분을 본질적으로 대체하게 됩니다. 사용이 중지되는 유형 시스템 관점에서 검사 규칙을 추출할 수 있는 마이그레이션 기능이 제공됩니다.

새로운 유형 검사 프레임워크 및 런타임 지원이 도입됩니다. 즉, 이전 엔진이 완전히 새롭게 작성됩니다.

백그라운드에서의 Make

백그라운드에서 Make 프로세스가 제대로 작동합니다. 백그라운드 Make 실행 중에 UI 응답성을 개선하기 위한 작업이 진행되었습니다. 이전 버전을 복원하려면 새로운 UI 설정인 Preferences(환경 설정)–>Project Settings(프로젝트 설정)–>Perform in background(백그라운드에서 실행)를 사용하세요.

런타임으로서의 Java 11

이제 MPS가 JDK 11에서 실행됩니다. 이는 스텁 모듈을 로드하는 메커니즘에 영향을 줍니다. JDK 11에서 다시 패키징된 일부 클래스 및 필드의 드문 사용 사례를 제외하고, 프로젝트의 대부분은 마이그레이션이 필요하지 않습니다.

IntelliJ IDEA 플러그인에서 MPS 패싯이 있는 모듈은 이제 JDK 버전 11과 연결해야 합니다. 그러지 않으면 코드 생성이 실패합니다.

BaseLanguage

BaseLanguage 개선은 이번 릴리스의 주요 목표 중 하나였습니다. 버그에서 사용 편의성 문제까지 BaseLanguages와 관련된 수많은 문제가 해결되었습니다.

새로운 샘플

커뮤니티로부터 받은 피드백을 바탕으로 XML 생성에 대한 새로운 샘플 프로젝트가 추가되었습니다.

BL 주석의 철자 검사

단일 줄 주석, Javadoc 텍스트 및 문자열 리터럴에 대한 철자 검사가 지원됩니다.

로컬 git 설정

(각 git 저장소를 기준으로) 병합 드라이버 설정이 전역에서 로컬로 번경되어 이제 MPS 설치만큼 많은 병합 드라이버를 보유할 수 있습니다.