SModel 언어 개선
때로는 원시 포인터(예: SNodeReference 또는 SModelReference)를 처리해야 할 경우가 있습니다. 원시 포인터는 생성 및 연산하기가 어려워서 이를 처리할 때 곤혹스러울 수 있습니다. 포인터를 더 쉽게 처리할 수 있도록 SModel 언어에 새로운 유형과 연산이 추가되었습니다.
노드 포인터
새로운 'node-ptr<>' 유형이 추가되어 노드 포인터를 사용한 작업이 더 쉬워졌습니다. 이 포인터는 'resolve' 연산을 통해 실제 노드로 확인될 수 있습니다. "node-ptr/ ... /" 표현식은 이미 사용이 중단된 기존의 "nodePointer/ ... /" 구문을 대체합니다. 표현식의 변환을 처리할 수 있도록 마이그레이션 스크립트가 생성되었습니다.
포인터를 사용해 참조 설정
대상을 참조 링크로 설정할 때 대상 노드에 액세스할 필요가 없습니다. 대상에 대한 포인터로 충분합니다. 참조 링크 액세스 표현식에 적용되는 'set ptr' 연산이 참조 대상을 지정된 포인터로 설정합니다. 노드가 노드 포인터로 지정된 것인지 확인하려면 새로운 'is' 연산을 사용해야 합니다.
smodel 유형에 대한 엄격한 입력 규칙
SModel 유형에 대한 입력 규칙이 더 엄격해졌습니다. SNodeReference 인터페이스 메서드는 더 이상 'node-ptr' 값에 사용할 수 없습니다. 다운캐스트 연산자는 명시적으로 SNodeReference를 얻기 위해 사용되어야 합니다. 또한, 노드 인스턴스에 대한 'pointer' 연산은 이제 일반 SNodeReference 대신 'node-ptr'을 반환합니다.
새로운 마이그레이션 스크립트
node/.../' 표현식과 같은 이전 SModel 언어 구문, 바람직하지 않은 인용구 또는 다운캐스트를 마이그레이션하는 데 도움이 되도록 몇 가지 마이그레이션 스크립트가 추가되었습니다. 실행하려면 Tools -> Scripts -> Enhancements...로 이동하여 "SModel Language Enhancements (node-ptr<> and model-ptr)"를 선택합니다. 또한, 동일한 창에서 "Use node pointers in reference macro queries" 옵션을 사용해 생성기 매크로의 이전 구문을 처리할 수 있습니다.
SModel 쿼리에 대한 범위 지정 개선
Smodel 쿼리는 이제 작업 범위에 대해 더 직관적으로 동작합니다. 범위가 특정 쿼리에 대한 매개변수로 선언될 경우 해당 쿼리는 이전과 같이 편집 가능한 모델에서뿐만 아니라 읽기 전용 모델을 포함하여 전체 범위에서 실행됩니다.
에디터
하위 트리용 리플렉티브 에디터 표시
이제 하위 트리 전체에 대해 리플렉티브 에디터를 표시할 수 있습니다. 이렇게 하려면 노드를 선택하고 Cmd/Ctrl+Shift+[를 누르거나 컨텍스트 메뉴에서 'Show reflective editor for subtree'(하위 트리용 리플렉티브 에디터 표시)를 선택하세요. 일반 에디터로 돌아가려면 Cmd/Ctrl+], Cmd/Ctrl+Shift+]를 누르거나 'Show regular editor for the Subtree'(하위 트리용 일반 에디터 표시) 옵션을 오른쪽 클릭하세요. 여전히 Cmd/Ctrl+[를 눌러서 또는 컨텍스트 메뉴를 통해서 현재 노드에 대해서만 리플렉티브 에디터를 표시할 수 있습니다.