Skip to content

R code cell parser issues #3709

@kylebutts

Description

@kylebutts

Positron Version:

Positron-2024.06.1-27

Steps to reproduce the issue:

My favorite part of VSCode and R is the code cell feature, so I'm very excited to see support in Positron. There's a few features missing, so I wanted to flag them here. I'm happy to submit a pull request if outside contributions are welcomed? I've contributed to the R VSCode on this feature, so am aware of VSCode extension development (REditorSupport/vscode-R#1454)

  1. Create a new R file and a new python file and insert this code:
#+
2 + 1
3 + 2 


#+ 
1 + 1

2 + 2

#+
2 + 2

#' # Hi
#' 
#' Testing `knitr::spin` markdown syntax
#' 
# %%
2 + 1
3 + 2


# %%
1 + 1

2 + 2

# %%
2 + 2
# %% [markdown]
# Hi

Testing `knitr::spin` markdown syntax

What did you expect to happen?

This is the resulting view:
CleanShot 2024-06-28 at 12 57 50@2x

Here are the bugs I'm seeing

  1. Note the cells only can be one contiguous blob of code (no new lines). That is from isCellEnd: (line) => line.trim() === '',. I think the tests for this have no extra new lines, so this is not noticed.

    const rCellParser: CellParser = {
    isCellStart: (line) => line.startsWith('#+'),
    isCellEnd: (line) => line.trim() === '',
    getCellType: (_line) => CellType.Code,
    getCellText: getCellText,
    newCell: () => '\n\n#+',
    cellDecorationSetting: () => CellDecorationSetting.All,
    };

  2. Cold folding does not seem to work (it does in python). I'm not sure how this test is passing. When I copy the text to mine, it does not offer folding.

    const content = `#+
    testing1
    #+
    testing2
    #+
    testing3`;

  3. Pyright is creating errors for a markdown cell.

  4. knitr has markdown support via the #' syntax, but is not being recognized

  5. Also, # %% is supported by VSCode, knitr::spin(), and quarto. Would love to add that option for R: https://www.rdocumentation.org/packages/knitr/versions/1.46/topics/spin

Were there any error messages in the output or Developer Tools console?

There were not any error messages.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: code cellsIssues related to the Code Cells extensionbugSomething isn't workingsupport

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions