2011-07-26 14 views
7

He intentado obtener el número de línea y el número de columna de la posición del cursor en un jface TextEditor. Intenté la función getCursorPosition(). Pero al imprimir esto muestra solo un "?". Tenga en cuenta que necesito el número de línea y el número de columna dentro de un editor y no con respecto a la pantalla. Vi que hay una función JTextArea.getCaretPosition. Pero no sé cómo convertir un editor de texto a JTextArea. Además, ¿es posible leer la palabra donde se coloca el cursor?Cómo obtener la posición del cursor en un eclipse TextEditor

Gracias

Respuesta

8

Desde un TextEditor, puede obtener el documento, proveedor de documentos, y la selección. Eso le dará acceso a la compensación del cursor actual.

ITextEditor editor = (ITextEditor) editorPart 
     .getAdapter(ITextEditor.class); 
IDocumentProvider provider = editor.getDocumentProvider(); 
IDocument document = provider.getDocument(editorPart 
     .getEditorInput()); 
ITextSelection textSelection = (ITextSelection) editorPart 
     .getSite().getSelectionProvider().getSelection(); 
int offset = textSelection.getOffset(); 
int lineNumber = document.getLineOfOffset(offset); 

IDocument proporciona otros métodos para obtener las aperturas de líneas (se puede calcular la columna de eso).

Para más información ver http://wiki.eclipse.org/The_Official_Eclipse_FAQs#Text_Editors

+0

con errores desde la conversión no es comprobar – Chameleon

+0

cuenta que esto no consigue la posición del cursor actual, sino de la selección. El cursor puede ubicarse en cualquier extremo de la selección. – Lii

+1

¿No puedo obtener la posición sin seleccionar una parte en el editor? –

Cuestiones relacionadas