Skip to content

Commit 54f924c

Browse files
authored
Improvements to .R file chunks: (#1455)
- Add option Run Chunk and Move to Next Chunk - Highlight code chunks differently for base `.R` file. Highlighting the background just highlights the whole entire screen. Instead match `.py` and use border for current cell
1 parent c05d696 commit 54f924c

4 files changed

Lines changed: 625 additions & 461 deletions

File tree

package.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"onCommand:r.runSelectionInActiveTerm",
4848
"onCommand:r.selectCurrentChunk",
4949
"onCommand:r.runCurrentChunk",
50+
"onCommand:r.runCurrentChunkAndMove",
5051
"onCommand:r.runPreviousChunk",
5152
"onCommand:r.runNextChunk",
5253
"onCommand:r.runAboveChunks",
@@ -566,6 +567,11 @@
566567
"category": "R",
567568
"command": "r.runCurrentChunk"
568569
},
570+
{
571+
"title": "Run Current Chunk and Move to Next Chunk",
572+
"category": "R",
573+
"command": "r.runCurrentChunkAndMove"
574+
},
569575
{
570576
"title": "Run Previous Chunk",
571577
"category": "R",
@@ -938,13 +944,13 @@
938944
"command": "r.runCurrentChunk",
939945
"key": "Ctrl+shift+enter",
940946
"mac": "cmd+shift+enter",
941-
"when": "editorTextFocus && editorLangId == 'rmd'"
947+
"when": "editorTextFocus && (editorLangId == 'rmd' || editorLangId == 'r')"
942948
},
943949
{
944950
"command": "r.runAboveChunks",
945951
"key": "Ctrl+alt+p",
946952
"mac": "cmd+alt+p",
947-
"when": "editorTextFocus && editorLangId == 'rmd'"
953+
"when": "editorTextFocus && (editorLangId == 'rmd' || editorLangId == 'r')"
948954
},
949955
{
950956
"command": "r.runSource",
@@ -1523,6 +1529,7 @@
15231529
"enum": [
15241530
"r.selectCurrentChunk",
15251531
"r.runCurrentChunk",
1532+
"r.runCurrentChunkAndMove",
15261533
"r.runAboveChunks",
15271534
"r.runCurrentAndBelowChunks",
15281535
"r.runBelowChunks",

src/extension.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,10 @@ export async function activate(context: vscode.ExtensionContext): Promise<apiImp
8181
'r.runCommand': rTerminal.runCommand,
8282
'r.runSourcewithEcho': () => { void rTerminal.runSource(true); },
8383

84-
// rmd related
85-
'r.knitRmd': () => { void rmdKnitManager?.knitRmd(false, undefined); },
86-
'r.knitRmdToPdf': () => { void rmdKnitManager?.knitRmd(false, 'pdf_document'); },
87-
'r.knitRmdToHtml': () => { void rmdKnitManager?.knitRmd(false, 'html_document'); },
88-
'r.knitRmdToAll': () => { void rmdKnitManager?.knitRmd(false, 'all'); },
84+
// chunk related
8985
'r.selectCurrentChunk': rmarkdown.selectCurrentChunk,
9086
'r.runCurrentChunk': rmarkdown.runCurrentChunk,
87+
'r.runCurrentChunkAndMove': rmarkdown.runCurrentChunkAndMove,
9188
'r.runPreviousChunk': rmarkdown.runPreviousChunk,
9289
'r.runNextChunk': rmarkdown.runNextChunk,
9390
'r.runAboveChunks': rmarkdown.runAboveChunks,
@@ -98,6 +95,12 @@ export async function activate(context: vscode.ExtensionContext): Promise<apiImp
9895
'r.goToNextChunk': rmarkdown.goToNextChunk,
9996
'r.runChunks': rTerminal.runChunksInTerm,
10097

98+
// rmd related
99+
'r.knitRmd': () => { void rmdKnitManager?.knitRmd(false, undefined); },
100+
'r.knitRmdToPdf': () => { void rmdKnitManager?.knitRmd(false, 'pdf_document'); },
101+
'r.knitRmdToHtml': () => { void rmdKnitManager?.knitRmd(false, 'html_document'); },
102+
'r.knitRmdToAll': () => { void rmdKnitManager?.knitRmd(false, 'all'); },
103+
101104
'r.rmarkdown.newDraft': () => rmarkdown.newDraft(),
102105
'r.rmarkdown.setKnitDirectory': () => rmdKnitManager?.setKnitDir(),
103106
'r.rmarkdown.showPreviewToSide': () => rmdPreviewManager?.previewRmd(vscode.ViewColumn.Beside),
@@ -202,10 +205,10 @@ export async function activate(context: vscode.ExtensionContext): Promise<apiImp
202205
// initialize the package/help related functions
203206
globalRHelp = await rHelp.initializeHelp(context, rExtension);
204207

205-
// register codelens and complmetion providers for r markdown
208+
// register codelens and completion providers for r markdown and r files
206209
vscode.languages.registerCodeLensProvider(['r', 'rmd'], new rmarkdown.RMarkdownCodeLensProvider());
207210
vscode.languages.registerCompletionItemProvider('rmd', new rmarkdown.RMarkdownCompletionItemProvider(), ' ', ',');
208-
211+
vscode.languages.registerFoldingRangeProvider('r', new rmarkdown.RChunkFoldingProvider());
209212

210213
// register (session) hover and completion providers
211214
vscode.languages.registerHoverProvider(['r', 'rmd'], new completions.HoverProvider());

0 commit comments

Comments
 (0)