Eclipse 텍스트 편집기의 캐럿 위치를 선택한 블록의 반대쪽으로 이동시키는 약간의 플러그인을 작성 중입니다. 문제는 선택이 왼쪽에서 오른쪽인지 또는 오른쪽에서 왼쪽인지를 알아내는 좋은 방법을 찾지 못한다는 것입니다.Eclipse 텍스트 편집기의 캐럿 위치
- 어떤 방법으로 CarretListener를 사용
나는 이러한 대안이 있습니다 이해합니다. 불필요한 것처럼 보이고 싶지 않습니다.
- 밑받침을 잡고
StyledText
을 선택하고 캐럿 위치와 비교합니다. 에디터의 구현 방법을 알아야하기 때문에 추상화를 깨뜨리는 것 같습니다. 또 다른 단점은 텍스트 뷰어에서widgetOffset2ModelOffset
메서드를 사용하여 위치를 조정해야한다는 것입니다.
내 ITextEditor
또는 ISelectionProvider
또는 무엇인가에서 캐럿 포지션을 얻을 수 없습니까?
public class SwapCursorSelectionHandler extends AbstractHandler {
public Object execute(ExecutionEvent event)
{
ITextEditor editor;
try {
editor = (ITextEditor) HandlerUtil.getActivePartChecked(event);
} catch (ExecutionException exc) {
throw new RuntimeException(exc);
}
ITextSelection sel = (ITextSelection) editor.getSelectionProvider().getSelection();
// How to find out if sel is left-to-right or right-to-left?!
editor.selectAndReveal(...);
return null;
}
}
업데이트 :
여기 내 코드입니다 StyledText
를 사용하지 않고이 작업을 수행 할 수있는 방법이있을 것 같지 않습니다. 이상하게 생각하고 선택 방향 정보가 ITextSelection
에 추가되어야한다고 제안하는 버그 보고서를 삽입하는 것을 고려합니다. 제가 이것을하기 전에이 제안에 관해서 여기에있는 사람들에 대한 의견을 얻는 것이 흥미로울 것입니다.