MPS 2021.1의 새로운 기능

MPS 2021.1에는 Java 어노테이션, 많은 VCS 기능 개선, Apple Silicon 등 다양한 지원 사항이 도입되었습니다.

에디터

확대 및 축소

Contrl 키를 누른 상태에서 마우스 휠을 굴리면 열려있는 에디터 창에서 글꼴 크기를 빠르게 조정할 수 있습니다. 글꼴 크기 변경은 지속적이지 않으며 파일을 다시 열면 텍스트 크기가 기본값으로 재설정됩니다. 이 기능은 Preferences(환경 설정) | Editor(에디터) | General(일반) 섹션의 Change font size with Ctrl/Cmd+Mouse Wheel(Ctrl/Cmd+마우스 휠로 글꼴 크기 변경)에서 활성화/비활성화할 수 있습니다.

들여쓰기 레이아웃 성능 향상

들여쓰기 레이아웃의 구현이 일부 핵심 사례에서 점진적으로 이루어졌습니다. 이를 통해 예를 들어, 주로 들여쓰기 레이아웃을 사용하는 언어(예: BaseLanguage)에서 큰 모델의 렌더링 시간을 줄일 수 있습니다. 이 기능은 VM 옵션 mps.indent_layout.disable_incremental을 사용하여 비활성화할 수 있습니다.

글꼴 두께 옵션

글꼴 두께 옵션

장시간의 작업에도 불편함 없이 볼 수 있으려면 에디터 글꼴을 잘 선택해야 합니다. 최근에 추가된 텍스트 설정을 이용하면 글꼴 선택 시 더 쉽게 맞춤설정할 수 있습니다. 2021.1 버전에서는 Preferences(환경 설정) | Editor(에디터) | Fonts(글꼴)에서 기본 글꼴 및 굵은 글꼴 스타일의 두께를 정밀하게 조정할 수 있습니다.

버전 관리 시스템

루트 어노테이션 개선

루트 어노테이션 개선

버전 관리 시스템 지원 사항에 루트 어노테이션이 추가되었습니다. 이제 이동 추적으로 리비전 변경을 계산하는 새로운 알고리즘이 루트 어노테이션에 사용됩니다. 어노테이션이 추가된 선/셀의 색상은 루트가 변경된 리비전에 따라 결정됩니다. 이제 어노테이션 열이 열려 있을 때 어노테이션이 추가된 셀에 특수한 컨텍스트 메뉴 그룹이 제공됩니다. 어노테이션이 추가된 각 셀에 Copy Revision Number(리비전 번호 복사) , Show Diff(Diff 표시) 및 기타 작업을 적용할 수 있습니다.

병합 커밋을 위한 Diff 대화상자

병합 커밋을 위한 Diff 대화상자

Git 로그에서 병합된 커밋에 대해 diff 대화상자가 활성화됩니다. 뷰어에는 병합된 모델에 대한 가운데 패널과 병합된 두 브랜치의 모델에 대한 왼쪽 및 오른쪽 패널 등 세 개의 패널이 표시됩니다.

Diff 에디터에서 스크롤 동기화

Diff 에디터에서 스크롤 동기화

이제 버튼 하나만 사용하여 Diff 대화상자에서 에디터 스크롤 동기화를 끌 수 있습니다.

루트 어노테이션 및 루트/노드 기록에 사용되는 리비전 그래프

루트 어노테이션 및 루트/노드 기록 알고리즘은 이전에 정렬된 파일 리비전 목록을 기반으로 두 인접 리비전 사이의 루트 변경 사항을 계산했습니다. 그러나 이러한 리비전이 두 개의 다른 브랜치에서 나올 수 있으며, 이 때 얻어지는 변경이 의미가 없는 경우가 있을 수 있었습니다. 병합 리비전도 올바르게 처리되지 않았습니다. 이전 리비전의 변경 사항이 더 최신인 병합 리비전의 변경 사항으로 잘못 표시될 수 있었습니다. 이제 알고리즘이 변경 기록을 공식화할 때 리비전 그래프를 고려합니다.

보류 항목에 저장

새로운 Save to Shelf(보류 항목에 저장) 액션을 사용하면 변경 내용을 로컬 변경 내용에 보관하면서 Shelf(보류 항목)에 복사할 수 있습니다. 이 액션에 액세스하려면 macOS에서 ⇧⌘A(Windows 또는 Linux에서는 Ctrl+Shift+A)를 누르고 'Save to Shelf'를 입력하세요.

생성기

$LOOP$ 매크로 변수에 대한 액세스 개선

$LOOP$ 매크로 변수에 대한 액세스 개선

이제 LOOP.inputNode 표현식을 사용하여 LOOP 매크로의 입력 노드를 참조할 수 있게 되어 VAR 매크로를 사용할 필요가 없습니다. LOOP의 색인은 LOOP.index를 사용하고 이전 사용자 정의 컨텍스트 변수를 대체하여 같은 네임스페이스에서 액세스할 수도 있습니다.

GenPlan 선언에서 업데이트 된 Transform 구문

생성 계획 확장성을 개선하기 위해 계획 설계자에게 알려지지 않은 언어 또는 생성기를 포함하는 새로운 메커니즘이 도입되었습니다. 이제 transform 구문을 사용하여 언어 설계자는 특정 언어를 대상으로 하거나 확장하는 언어를 포함할 수 있습니다. 언어 B가 언어 A를 '대상으로 한다'라는 말은 언어 B의 생성기가 언어 A의 구문을 생성한다는 의미입니다.

컴파일된 템플릿 개선 사항

MPS 2021.1에서는 옵션이 활성화된 경우, 컴파일된 템플릿이 하위 노드가 상위 노드에 제대로 배치되었는지 여부를 확인합니다.

자세히 알아보기

기타

Java 패싯이 있는 MPS 모듈용 Java 컴파일러

MPS 모듈의 Java 컴파일에 대한 접근 방식이 많이 변경되었습니다. 이를 통해 가장 많은 표를 얻은 이슈 중 하나인 어노테이션 처리 지원 문제가 해결됩니다. javax.tools.JavaCompiler API 세트를 활용하도록 MPS Java 컴파일러 인프라를 전환했으며, 이제 MPS가 이 표준 API를 구현하는 모든 컴파일러를 사용할 수 있습니다. 버전 2021.1부터 MPS는 ECJ(Eclipse Compiler for Java)를 사용하는 옵션과 함께 이 API에 대해 구성된 디폴트 컴파일러로 실행됩니다.

자세히 알아보기

프로젝트 마이그레이션을 위한 기준 MPS 버전

새 프로젝트를 만들면 이제 '기준' MPS 버전이 저장됩니다. 이전 MPS 버전의 프로젝트를 최신 프로젝트로 마이그레이션 할 수 없습니다. 이를 통해 작성자는 프로젝트 마이그레이션에 원하는 '기준' 버전을 지정하여 유연하게 제공할 수 있으며, 새 ‘getBaselineVersion():int' 메서드를 사용하여 프로젝트 마이그레이션 인터페이스에서 수정할 수 있습니다.

자세히 알아보기

메서드 시그니처 리팩터링 개선 사항

메서드 시그니처 리팩터링 개선 사항

이제 Method Signature(메서드 시그니처) 리팩터링 대화상자에서 새 인수 또는 유형이 변경된 인수에 대한 디폴트 값을 지정하는 방법이 포함됩니다. 매개변수가 제거되었지만 메서드에서 계속 사용되면 참조가 손실되지 않도록 새 지역 변수가 도입됩니다. 메서드 호출이 시그니처와 일치하지 않으면 인텐션 액션을 통해 메서드의 시그니처를 변경하여 호출과 일치하도록 할 수 있습니다.

자세히 알아보기

BaseLanguage 주석의 새로운 옵션

lang.text 언어에는 BaseLanguage의 하나 또는 여러 행 주석을 직접 개선하는 몇가지 새로운 기능이 제공되었습니다.

  • 이제 텍스트 선택을 통해 위, 아래로 선택할 때 행의 일부만 강조 표시할 수 있습니다.
  • 굵게, 기울임꼴밑줄과 같은 액션이 선택에 적용됩니다.
  • 일반 텍스트에서 복사/붙여넣기가 구현되었습니다.
  • 이제 글머리 기호 및 번호 매기기 목록이 지원됩니다.

Lang.smodel의 개선된 표현식

model.roots(), model.rootsIncludingImported()model.nodesIncludingImported() 표현식이 이제 model.nodes()와 마찬가지로 개념 지정을 위한 #expression을 지원합니다.

플러그인과 함께 배포된 모듈의 가시성 제어

플러그인은 com.intellij.mps.LanguageLibrary 확장 포인트를 통해 자신이 기여하는 모듈을 MPS에 알립니다. 확장 포인트가 이제 선택적 hide="true" 속성을 ​​제공하여 com.intellij.mps.VisibleModuleMask로 지정된 패턴을 통해 플러그인의 모듈을 필터링할 수 있도록 합니다.

자세히 알아보기

기타 개선 사항

HTML 미리보기 기본 제공

HTML 미리보기 기본 제공

새롭게 기본 제공되는 브라우저 미리보기를 사용하면 HTML 파일을 빠르게 미리 볼 수 있습니다. 미리보기를 열려면 에디터의 오른쪽 상단 모서리에 있는 위젯에서 MPS 로고가 있는 아이콘을 클릭하세요. HTML을 변경하거나 연결된 CSS 및 JavaScript 파일을 변경하면 미리보기가 즉시 업데이트됩니다.

Apple Silicon 지원

이제 M1 칩이 있는 Mac에서 MPS를 사용할 수 있습니다. 시작하려면 웹사이트에서 직접 Apple Silicon용 JetBrains MPS 설치 프로그램을 다운로드하거나 JetBrains Toolbox App에서 다운로드 하세요.

자동 가져오기 설정

새 버전의 MPS를 설치할 때마다 나타나는 Import Settings(설정 가져오기) 대화상자가 MPS 2021.1에서는 적절한 설정과 구성이 없을 때만 표시됩니다.

향상된 접근성

이번 릴리스에서는 시작 화면, Project Structure(프로젝트 구조) 뷰, VCS 로그의 UI 요소에 라벨을 더 추가했습니다. 이에 따라 여백 아이콘을 비롯한 이러한 요소가 스크린 리더가 활성화될 때 더 정확히 읽힙니다. 또한 macOS 사용자를 위한 접근성 지원도 개선하기 위해 노력하고 있습니다.