MPS 2021.2의 새로운 기능

MPS 2021.2는 맞춤법 검사 메커니즘, 자동 완성 팝업, VCS 개선 사항 등을 제공합니다.

자동 완성 팝업

일반적으로 Ctrl/Cmd + Space를 눌러 호출하는 코드 완성이 이제 입력을 중지하면 기본적으로 0.5초 후에 자동으로 팝업됩니다. 필요한 경우 예전처럼 수동으로 열 수 있습니다. 자세히 알아보기.

VCS diff에서 래핑 및 래핑 해제 변경 사항 개선

VCS diff에서 래핑 및 래핑 해제 변경 사항 개선

래핑 변경이 이제 훨씬 더 유연해졌습니다. 래핑 및 래핑 해제 변경 내에서 독립적인 내부 변경이 가능해집니다. 또한 여러 개의 래핑 및 래핑 해제 변경 사항이 나란히 있을 수도 있습니다. 내부 이동이 이제 ID가 변경된 노드 내에서 탐지됩니다.

노드 속성 변경 표시 개선

노드 속성 변경 표시 개선

속성에 대한 에디터 셀이 이전에는 Diff 대화상자에서 올바르게 강조 표시되지 않았습니다. 일반적으로, 속성이 추가되거나 삭제되면 해당 속성만이 아닌 속성이 있는 전체 노드가 강조 표시됩니다.

일반 맞춤법 검사 메커니즘

일반 맞춤법 검사 메커니즘

IntelliJ IDEA 맞춤법 검사 메커니즘을 사용하여 주석 및 문자열 리터럴에서 오타와 실수를 검사하는 MPS 기능이 라벨 셀에 나타날 수 있는 모든 텍스트에서 작동하도록 확장되었습니다. 사전과 대조하여 셀의 텍스트를 검사해야 한다는 것을 나타내려면(환경 설정에서 구성됨) 에디터 선언의 셀에 spellcheck 스타일을 추가하기만 하면 됩니다.

RCP(Rich Client Platforms)의 경우, 배포에 jetbrains.mps.editor.spellcheck 플러그인을 포함하는 것을 잊지 마세요.

마이그레이션을 위한 프로젝트 버전 관리

마이그레이션을 위한 프로젝트 버전 관리

이전 MPS 버전을 사용하는 개발자가 새 MPS 버전으로 마이그레이션된 프로젝트에 액세스하는 시나리오를 해결했습니다. Migration 하위 시스템이 이제 마이그레이션을 적용할 때 MPS 플랫폼 버전을 추적하고, 열려고 하는 프로젝트가 최신 버전으로 마이그레이션된 경우 경고를 표시합니다. 이는 모델이 의도하지 않게 손상되는 것을 방지하는 도움을 줍니다.

최적화된 참조 범위

MPS에는 단일 모델을 읽을 때 보이는 범위 조각을 공유하는 메커니즘이 있습니다. new ModelPlusImportedScope(model, rootsOnly, concept)의 대체 항목으로 for model [ factory, key], visible roots [concept]visible nodes [concept] 등 범위를 공유하기 위한 jmlang.constraints에 새로운 표현식이 도입되었습니다. 새 표현식은 모델의 범위를 캐시 메모리에 저장하는 데 사용됩니다. 즉, 한 번만 기록하고 계산하면 됩니다.

노드 수정 시 제한 없음

확장 작성자는 MPS 모델에서 작동하는 코드를 작성할 때 부여할 액세스 권한의 유형을 선택해야 합니다. SNode 연산(예: setProperty(), addChild() 등)의 경우, UI 상호 작용 없이도 명령어 액세스 권한만 부여할 수 있었습니다. 이제 이 제한이 해제되었으며 모델에 대한 쓰기 액세스 권한을 갖는 모든 코드가 이제 노드를 수정할 수 있습니다.

툴팁 레이더

툴팁 레이더

툴팁 기능에 이제 어떤 셀에 툴팁이 있는지 보여주는 레이더라는 요소가 도입되었습니다. 툴팁 레이더는 Ctrl 키를 길게 눌러 활성화할 수 있습니다.

다이아몬드 연산자

이제 baseLanguage에서 생성자에 Java 다이아몬드 연산자를 사용하여 컨텍스트에서 일반 매개변수를 추론할 수 있습니다. 다이아몬드 연산자는 새로 작성된 코드에서 기본적으로 활성화됩니다. 기존 생성자에서 활성화하려면 기존 유형 매개변수를 제거하고 검사 도구에서 infer type parameters(추론 타입 매개변수)true로 설정하거나 <>을 다시 입력하고 빈 매개변수를 제거하면 됩니다.

BaseLanguage 프로퍼티 개선

이제 baseLanguage의 프로퍼티가 타입 검사에서 올바르게 고려됩니다. 프로퍼티가 인터페이스 또는 추상 메서드를 상속할 때 구현되지 않은 메서드에 대해 오류가 발생하지 않습니다. 일반 타입으로 프로퍼티를 정의할 때 인스턴스의 프로퍼티에 액세스하는 데 올바른 타입이 사용됩니다.

T 타입의 프로퍼티에 대해 노출된 setter는 void가 아니라 T 타입의 객체를 반환합니다.

통합된 Diff 표시

통합된 Diff 표시

이제 MPS는 에디터 탭에서 초기 파일과 변경된 파일 버전의 차이점을 표시합니다. Show Diff(Diff 표시) 액션을 호출한 방식에 관계없이 IDE가 기본적으로 에디터에서 Diff를 엽니다.

별도의 창에서 변경 사항을 추적하는 것이 더 편하다고 생각되면 에디터에서 원하는 파일을 끌면 됩니다. 이렇게 하면 IDE가 이를 기억하고 향후 Diff를 별도의 창에서 엽니다.

기타 개선 사항

환경 설정/설정의 새로운 탐색 옵션

환경 설정/설정의 새로운 탐색 옵션

Preferences/Settings(환경 설정/설정) 창의 오른쪽 상단에 새로 추가된 화살표를 이용하면 각 섹션을 쉽게 이동할 수 있습니다. 이 화살표를 이용하면 섹션 사이를 앞, 뒤로 빠르게 이동할 수 있습니다.

도구 창을 드래그앤 드롭

끌어서 놓기를 이용해 도구 창을 기본 IDE 창 내에서 이동하거나 별도의 창으로 만들기가 쉬워졌습니다. 도구 창의 이름 표시줄을 클릭해 계속 누른 상태로 드래그한 후 강조 표시된 위치 중 어느 곳에든 드롭하면 됩니다.

HTML 미리보기 기본 제공

터미널 개선 사항

기본 제공되는 터미널의 커서 모양에 새로운 옵션이 도입되었습니다. 또한 터미널에서 옵션 (⌥)을 메타 키로 사용하는 단축키가 새롭게 지원됩니다. 예를 들어, 다음 단축키를 사용할 수 있습니다.

  • ⌥+F – 다음 단어로 이동
  • ⌥+B – 한 단어 뒤로 이동
  • ⌥+D – 다음 단어 삭제