내 DSL Eclipse에 세 번째 범주를 추가하여 오류, 경고 및 myNewCat
을 별도로 볼 수 있습니다. warning()
및 error()
과 같은 기능 (동일한 매개 변수)을 사용하여 유효성 검사 클래스에서 myNewCat()
을 호출 할 수도 있습니다. 가장 쉬운 방법은 무엇입니까? 결과는 문제가 심각도 (예 : 오류, 경고, 정보) 중 하나는 마커 속성을 사용하여 그룹의 문제를 볼 Xtext : 경고 및 오류 외에도
답변
처럼 보이지만, 다른 마커가해야하는지
예는 그룹화를 할 수있는 속성 , 예. 유형. 보기 메뉴 (문제보기의 오른쪽 상단에있는 흰색 아래쪽 화살표)에서 문제보기 -> 그룹화 -> 그룹을 선택할 수 있습니다. ...
org.eclipse.ui.markerSupport
확장 점을 사용할 수 있습니다 사용 가능한 그룹을 사용자 정의하십시오 (참조 : Marker Support Reference). 고정 된 수의 심각도 수준은 여러 곳에서 하드 코딩되기 때문에 "심각도"그룹에 추가 심각도 수준을 추가하는 것이 효과적이지 않을 것이라고 생각합니다. org.eclipse.ui.internal.views.markers.Markers.getMarkerCounts(MarkerEntry[])
이지만 심각도 및 기타 추가 기준에 따라 자체 그룹을 만들 수 있습니다.
이 시점에서 추가하려는 그룹이 오류, 경고 및 정보 (예 : 경미한 경고, 권장 사항 또는 유사)와 일치하는 다른 심각도인지 또는 실제로 원하는지 여부를 생각할 수도 있습니다 그룹화의 다른 종류. 하지만 물어볼 때 또 다른 심각도 수준을 원한다고 가정 해 봅시다.
은에 다음과 같은 확장자를 추가, 사용자 정의 심각도 특성을 기반으로 사용자 정의 그룹을 추가하려면 당신의 UI 프로젝트의plugin.xml
: 세 가지 잘 알려진 범주와 추가 심각도 :
<extension point="org.eclipse.ui.ide.markerSupport">
<markerContentGeneratorExtension generatorId="org.eclipse.ui.ide.problemsGenerator" id="org.example.mydsl.problemGeneratorExtension">
<markerGrouping id="org.example.mydsl.customSeverityGrouping" label="Custom severity">
<markerGroupingEntry id="org.example.mydsl.errorSeverity" label="Errors" priority="30" />
<markerGroupingEntry id="org.example.mydsl.warningSeverity" label="Warnings" priority="20" />
<markerGroupingEntry id="org.example.mydsl.infoSeverity" label="Infos" priority="10" />
<markerGroupingEntry id="org.example.mydsl.myAdditionalSeverity" label="My Additional severity" priority="5" />
<markerAttributeGrouping attribute="customseverity" markerType="org.eclipse.core.resources.problemmarker">
<markerAttributeMapping markerGroupingEntry="org.example.mydsl.errorSeverity" value="2" />
<markerAttributeMapping markerGroupingEntry="org.example.mydsl.warningSeverity" value="1" />
<markerAttributeMapping markerGroupingEntry="org.example.mydsl.infoSeverity" value="0" />
<markerAttributeMapping markerGroupingEntry="org.example.mydsl.myAdditionalSeverity" value="10" />
</markerAttributeGrouping>
</markerGrouping>
</markerContentGeneratorExtension>
</extension>
markerGroupingEntry
요소
org.example.mydsl.myAdditionalSeverity
.
markerGroupingEntry
요소는 마커 속성 "customseverity"의 값에 따라이 카테고리를 채우는 데 사용됩니다. 속성 "customseverity는"당신이에서 그룹화이 열 수 있습니다 이제 10
값이있는 경우 귀하의 추가 심각도 수준이 가득 "문제의보기 메뉴를 -> 그룹으로 -> 사용자 정의 심각도"이 후
, 당신은에 있습니다 속성 값이 실제로 설정되어 있는지 확인하십시오. 나는이 작업을 수행 할 수있는 장소가 org.eclipse.xtext.ui.editor.validation.MarkerCreator.setMarkerAttributes(Issue, IResource, IMarker)
그래서 당신이 당신의 자신의 서브 클래스 MydslMarkerCreator
을 만들 필요가 생각 :
package org.example.xsduse.ui.validation
import org.eclipse.core.resources.IMarker
import org.eclipse.core.resources.IResource
import org.eclipse.core.runtime.CoreException
import org.eclipse.xtext.ui.editor.validation.MarkerCreator
import org.eclipse.xtext.validation.Issue
class XsduseMarkerCreator extends MarkerCreator {
public static val CUSTOM_SEVERITY = "customseverity"
override protected setMarkerAttributes(Issue issue, IResource resource, IMarker marker) throws CoreException {
super.setMarkerAttributes(issue, resource, marker)
if (issue.code.startsWith("org.example.mydsl.customseverityissues.")) {
marker.setAttribute(XsduseMarkerCreator.CUSTOM_SEVERITY, 10)
} else {
marker.setAttribute(XsduseMarkerCreator.CUSTOM_SEVERITY, marker.getAttribute(IMarker.SEVERITY))
}
}
}
당신이 그것을 확장 할 수 있도록 심각도 열거입니다 org.eclipse.xtext.diagnostics.Severity
를 사용하여 전달되는 표준 심각도 수준. 따라서 추가 심각도 레벨을 전달하는 데 사용할 수 없습니다. 예를 들어, 문제 코드를 사용하여이 정보를 전송하고 추가 심각도 수준의 모든 문제에 대해 공통 접두어를 사용합니다. 다른 심각도 수준의 경우 원래 심각도 특성을 다시 사용했습니다.이 특성은 super.setMarkerAttributes(...)
으로 설정되어 있습니다.
은 UI 모듈 (MydslUiModule
)에서 클래스를 등록하는 것을 잊지 마세요 :
...
class MydslUiModule extends AbstractMydslUiModule {
def Class<? extends MarkerCreator> bindMarkerCreator() {
XsduseMarkerCreator
}
...
}
지금 당신이 "org.example.mydsl로 시작하는 문제 코드와 함께 평소와 문제로 발리를 사용할 수 있습니다. 관습 " 귀하의 새 카테고리에 표시됩니다.
문제 코드에서 정보를 전송했기 때문에 error(), warning() 등의 함수를 만드는 것이 내 예제에서는 이해가되지 않지만 다른 채널을 결정할 경우 실제로 구현하려고 할 수 있습니다 .
- 1. Java에서 오류 번호 및 경고 - 경고 및 경고?
- 2. mysqli - 경고 및 오류
- 3. simplexml 경고 및 오류
- 4. 경고 및 배포 오류
- 5. 치명적인 오류 및 경고?
- 6. 오류 및 경고/mysqli
- 7. StringTemplate 및 Xtext
- 8. xtext 및 junit pde
- 9. Xtext : xtext 렉서를 테스트하려면 어떻게해야합니까?
- 10. Xtext
- 11. XText : 세계적인 범위 및 importedURI
- 12. ios - 메모리 경고 및 오류
- 13. Xcode 4, 오류 및 경고
- 14. MinGW 및 부스트 경고 오류?
- 15. 경고 및 오류 카르마/크롬
- 16. PHP 경고,주의 및 오류
- 17. xtext 키워드 및 터미널 규칙
- 18. XText 작동시키기
- 19. Xtext - Operation
- 20. XText 유효성 검사 : 다른 파일의 오류 표시
- 21. 이클립스 Xtext 실행 응용 프로그램으로 - 자바 오류
- 22. 예기치 않은 xtext 구문 분석 오류
- 23. Xtext 오류 : 등록 된 리소스 팩토리가 필요합니다.
- 24. 오류 경고
- 25. 오류 : "경고 :
- 26. Xtext : 객체
- 27. Xtext - 아이
- 28. 문자열이 Xtext
- 29. CAKeyframeAnimation의 'GetTiming()'함수를 사용한 오류 및 경고
- 30. 데이터 흐름 오류 모니터링 및 경고