Improve code chunk handling in base .R files#1454
Merged
renkun-ken merged 6 commits intoREditorSupport:masterfrom Nov 26, 2023
kylebutts:master
Merged
Improve code chunk handling in base .R files#1454renkun-ken merged 6 commits intoREditorSupport:masterfrom kylebutts:master
.R files#1454renkun-ken merged 6 commits intoREditorSupport:masterfrom
kylebutts:master
Conversation
- isChunkEndLine was selecting line with the *next* `# %%`, but needs to select the previous line - The last chunk was not selected because there is not another `# %%` after the last one. Instead, add a check for the last line of the file and close out the last chunk.
- Loop through chunks and grab the first one where the `chunk.endLine >= line` - Fix bug with `runPreviousChunk` when line is below last chunk
section header is used, e.g. `# Header ----`
renkun-ken
approved these changes
Nov 26, 2023
Member
renkun-ken
left a comment
There was a problem hiding this comment.
LGTM Thanks for working on this!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR fixes #1453 and fixes some bugs in handling of code chunks in
.Rand.Rmdfiles.The first change is with

getChunks(). Previously, for.Rfiles, the scan would find the first# %%and mark it as the start line. Then, it would go until it found the next# %%and incorrectly mark this as the end line. The line just before the next# %%needs to be the end line (see #1453). This PR fixes this:The second change is with
getCurrentChunk(). I have simplified this code greatly and do much less work. Basically, I check for three edge cases (no chunks, line < first chunk, line < last chunk) and return early. Otherwise, I select the first chunk with.endLine > line. This works both for cursor within chunk and cursor between chunks.There is one change worth noting. Before,
getCurrentChunk()would return undefined whenlinewas after the last chunk. I instead return the last chunk and fix bugs with any commands this impacted.Testing
To test this, I created these two files (
temp.Randtemp.Rmd) and tried out the commands for running chunks, selecting current chunk, and going to next and previous chunk.