Search in sources :

Example 6 with Range

use of org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range in project rstudio by rstudio.

the class SetupChunkOptionsPopupPanel method syncSelection.

private Range syncSelection() {
    Range range = findOptsChunk();
    if (range == null) {
        display_.clearSelection();
        display_.setCursorPosition(Position.create(position_.getRow() + 1, 0));
    } else {
        display_.setSelectionRange(range);
    }
    return display_.getSelectionRange();
}
Also used : Range(org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range)

Example 7 with Range

use of org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range in project rstudio by rstudio.

the class YamlFrontMatter method applyFrontMatter.

/**
    * Replaces the document's front matter with the given front matter; 
    * adds a new front matter section if none exists.
    * 
    * @param display The editor to mutate
    * @param yaml    The new front matter
    * @return Whether the editor buffer was mutated
    */
public static boolean applyFrontMatter(DocDisplay display, String yaml) {
    if (yaml == null || yaml.isEmpty())
        return false;
    Range range = YamlFrontMatter.getFrontMatterRange(display);
    if (range == null) {
        // add the YAML if no front matter exists
        range = Range.create(0, 0, 0, 0);
        yaml = RmdFrontMatter.FRONTMATTER_SEPARATOR + yaml + RmdFrontMatter.FRONTMATTER_SEPARATOR;
    } else if (display.getTextForRange(range) == yaml) {
        return false;
    }
    display.replaceRange(range, yaml);
    return true;
}
Also used : Range(org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range)

Example 8 with Range

use of org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range in project rstudio by rstudio.

the class Source method doReplaceRanges.

private void doReplaceRanges(ReplaceRangesEvent event, DocDisplay docDisplay) {
    JsArray<ReplacementData> data = event.getData().getReplacementData();
    for (int i = 0; i < data.length(); i++) {
        ReplacementData el = data.get(i);
        Range range = el.getRange();
        String text = el.getText();
        // A null range at this point is a proxy to use the current selection
        if (range == null)
            range = docDisplay.getSelectionRange();
        docDisplay.replaceRange(range, text);
    }
    docDisplay.focus();
}
Also used : ReplacementData(org.rstudio.studio.client.events.ReplaceRangesEvent.ReplacementData) JSONString(com.google.gwt.json.client.JSONString) JsArrayString(com.google.gwt.core.client.JsArrayString) Range(org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range)

Example 9 with Range

use of org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range in project rstudio by rstudio.

the class EditingTargetCodeExecution method executeInlineChunk.

private boolean executeInlineChunk() {
    if (!docDisplay_.getSelection().isEmpty())
        return false;
    Token token = docDisplay_.getTokenAt(docDisplay_.getCursorPosition());
    if (token == null || !token.hasType("inline_r_chunk"))
        return false;
    // construct range to execute, trimming off the "`r ...`" boundaries
    int row = docDisplay_.getCursorPosition().getRow();
    int startColumn = token.getColumn() + 3;
    int endColumn = token.getColumn() + token.getValue().length() - 1;
    Range range = Range.create(row, startColumn, row, endColumn);
    inlineChunkExecutor_.execute(range);
    return true;
}
Also used : Token(org.rstudio.studio.client.workbench.views.source.editors.text.ace.Token) Range(org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range)

Example 10 with Range

use of org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range in project rstudio by rstudio.

the class EditingTargetCodeExecution method executeLatex.

private boolean executeLatex(boolean background) {
    // need a suitable editing target to render LaTeX chunks
    if (target_ == null)
        return false;
    Range range = MathJaxUtil.getLatexRange(docDisplay_);
    if (range == null)
        return false;
    target_.renderLatex(range, background);
    return true;
}
Also used : Range(org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range)

Aggregations

Range (org.rstudio.studio.client.workbench.views.source.editors.text.ace.Range)37 Position (org.rstudio.studio.client.workbench.views.source.editors.text.ace.Position)11 JsArrayString (com.google.gwt.core.client.JsArrayString)7 ScheduledCommand (com.google.gwt.core.client.Scheduler.ScheduledCommand)7 Breakpoint (org.rstudio.studio.client.common.debugging.model.Breakpoint)5 Token (org.rstudio.studio.client.workbench.views.source.editors.text.ace.Token)5 ArrayList (java.util.ArrayList)4 AnchoredRange (org.rstudio.studio.client.workbench.views.source.editors.text.ace.AnchoredRange)4 Scope (org.rstudio.studio.client.workbench.views.source.editors.text.Scope)3 JsArray (com.google.gwt.core.client.JsArray)2 Command (com.google.gwt.user.client.Command)2 NativePreviewEvent (com.google.gwt.user.client.Event.NativePreviewEvent)2 NativePreviewHandler (com.google.gwt.user.client.Event.NativePreviewHandler)2 Handler (org.rstudio.core.client.command.Handler)2 EnsureHeightHandler (org.rstudio.core.client.events.EnsureHeightHandler)2 EnsureVisibleHandler (org.rstudio.core.client.events.EnsureVisibleHandler)2 Match (org.rstudio.core.client.regex.Match)2 ChangeFontSizeHandler (org.rstudio.studio.client.application.events.ChangeFontSizeHandler)2 FileChangeHandler (org.rstudio.studio.client.workbench.views.files.events.FileChangeHandler)2 HideMessageHandler (org.rstudio.studio.client.workbench.views.source.editors.text.status.StatusBar.HideMessageHandler)2