From 6e47c7a62d963e3438cdf08ab70fd57308669219 Mon Sep 17 00:00:00 2001 From: ManuelHentschel <53863351+ManuelHentschel@users.noreply.github.com> Date: Sun, 27 Nov 2022 22:08:14 +0100 Subject: [PATCH 1/3] Work on interactive R tasks --- R/interactiveTask.Rprofile | 11 ++++++++ src/extension.ts | 6 ++--- src/tasks.ts | 54 ++++++++++++++++++++++++++++++-------- 3 files changed, 57 insertions(+), 14 deletions(-) create mode 100644 R/interactiveTask.Rprofile diff --git a/R/interactiveTask.Rprofile b/R/interactiveTask.Rprofile new file mode 100644 index 000000000..171c3507e --- /dev/null +++ b/R/interactiveTask.Rprofile @@ -0,0 +1,11 @@ + +text <- Sys.getenv('VSCODE_EVAL_CODE') + +ret <- try(eval(parse(text=text))) + +status <- 0 +if(inherits(ret, 'try-error')){ + status <- 1 +} + +quit(save='no', status=status) diff --git a/src/extension.ts b/src/extension.ts index d15bf329d..dd5e32065 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -23,7 +23,7 @@ import * as completions from './completions'; import * as rShare from './liveShare'; import * as httpgdViewer from './plotViewer'; import * as languageService from './languageService'; -import { RTaskProvider } from './tasks'; +import * as tasks from './tasks'; // global objects used in other files @@ -214,8 +214,8 @@ export async function activate(context: vscode.ExtensionContext): Promise { const folders = vscode.workspace.workspaceFolders; From 652f967e5b3c113b81f93fd7abcbdf3323a8e25b Mon Sep 17 00:00:00 2001 From: ManuelHentschel <53863351+ManuelHentschel@users.noreply.github.com> Date: Sun, 27 Nov 2022 22:28:58 +0100 Subject: [PATCH 2/3] Slightly safer R code --- R/interactiveTask.Rprofile | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/R/interactiveTask.Rprofile b/R/interactiveTask.Rprofile index 171c3507e..ee4ebfa4c 100644 --- a/R/interactiveTask.Rprofile +++ b/R/interactiveTask.Rprofile @@ -1,11 +1,10 @@ text <- Sys.getenv('VSCODE_EVAL_CODE') -ret <- try(eval(parse(text=text))) - -status <- 0 -if(inherits(ret, 'try-error')){ - status <- 1 -} +status <- 1 +try({ + eval(parse(text=text)) + status <- 0 +}) quit(save='no', status=status) From f161167685462c45ccb40255c7b4cabaa6378023 Mon Sep 17 00:00:00 2001 From: ManuelHentschel <53863351+ManuelHentschel@users.noreply.github.com> Date: Sun, 27 Nov 2022 22:29:36 +0100 Subject: [PATCH 3/3] Linter --- R/interactiveTask.Rprofile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/interactiveTask.Rprofile b/R/interactiveTask.Rprofile index ee4ebfa4c..47345679a 100644 --- a/R/interactiveTask.Rprofile +++ b/R/interactiveTask.Rprofile @@ -1,10 +1,10 @@ -text <- Sys.getenv('VSCODE_EVAL_CODE') +text <- Sys.getenv("VSCODE_EVAL_CODE") status <- 1 try({ - eval(parse(text=text)) + eval(parse(text = text)) status <- 0 }) -quit(save='no', status=status) +quit(save="no", status=status)