es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Hay una tecla de acceso rápido en Rstudio para “?

Lo uso mucho en Rmarkdow para referirme al código, así que creé un complemento, pero quería saber si hay un atajo. Si ese no es el caso, ¿cómo puedo configurar el complemento para que, al llamarlo, la posición del cursor quede entre ambos símbolos, exactamente como sucede al usar "" o () en RStudio?

El código que utilicé para el complemento es insertInAddin <- function() {
rstudioapi::insertText("``")
}

Estoy buscando ayuda para entender cómo configurar rstudioapi::setCursorPosition() y document_position() dentro del argumento location de insertText.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para configurar el complemento de manera que la posición del cursor se encuentre entre ambos símbolos, puedes utilizar rstudioapi::setCursorPosition() y document_position() dentro del argumento location de insertText().

    Aquí tienes un ejemplo de código que podría lograr esto:

    insertInAddin <- function() {
      editor <- rstudioapi::getSourceEditorContext()$id
      pos <- rstudioapi::getCursorPosition()  # obtener la posición actual del cursor
      rstudioapi::insertText("``", id = editor, location = rstudioapi::document_position(pos - 1))
      rstudioapi::setCursorPosition(pos)  # establecer la posición del cursor entre los dos símbolos
    }
    

    En este código, primero obtenemos el ID del editor de origen actual utilizando rstudioapi::getSourceEditorContext()$id. Luego, obtenemos la posición actual del cursor utilizando rstudioapi::getCursorPosition().

    A continuación, llamamos a insertText() con el argumento de ubicación establecido en rstudioapi::document_position(pos - 1). Esto calcula la posición del documento del carácter antes de la posición actual del cursor e inserta los símbolos ““ en esa ubicación.

    Finalmente, utilizamos rstudioapi::setCursorPosition() para establecer la posición del cursor entre los dos símbolos, que es el carácter inmediatamente después del punto de inserción.

    Al utilizar este código en tu complemento, deberías poder lograr el comportamiento deseado donde el cursor se posiciona entre los ““.

Comments are closed.