Improve R pkg
diff --git a/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/AbstractRJComClientGraphicActions.java b/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/AbstractRJComClientGraphicActions.java
index 264b61a..2856de4 100644
--- a/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/AbstractRJComClientGraphicActions.java
+++ b/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/AbstractRJComClientGraphicActions.java
@@ -58,7 +58,7 @@
public void copy(final int devId, final String toDev, final String toDevFile, final String toDevArgs,
final ProgressMonitor m) throws StatusException {
final StringBuilder sb= new StringBuilder(64);
- sb.append("rj.gd::.rj.copyGD(");
+ sb.append("rj:::gr.copyGraphic(");
sb.append("devNr=").append((devId + 1)).append("L,");
sb.append("device=").append(toDev).append(",");
if (toDevFile != null) {
diff --git a/core/org.eclipse.statet.rj.server.rpkg/.project b/core/org.eclipse.statet.rj.server.rpkg/.project
index a586ff3..e1acb51 100644
--- a/core/org.eclipse.statet.rj.server.rpkg/.project
+++ b/core/org.eclipse.statet.rj.server.rpkg/.project
@@ -24,5 +24,8 @@
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.statet.ide.resourceProjects.Statet</nature>
+ <nature>org.eclipse.statet.r.resourceProjects.R</nature>
+ <nature>org.eclipse.statet.r.resourceProjects.RPkg</nature>
</natures>
</projectDescription>
diff --git a/core/org.eclipse.statet.rj.server.rpkg/pkg/NAMESPACE b/core/org.eclipse.statet.rj.server.rpkg/pkg/NAMESPACE
index da8c282..2c17fda 100644
--- a/core/org.eclipse.statet.rj.server.rpkg/pkg/NAMESPACE
+++ b/core/org.eclipse.statet.rj.server.rpkg/pkg/NAMESPACE
@@ -1,8 +1,21 @@
+ #=============================================================================#
+ # Copyright (c) 2009, 2018 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================#
+
+
export(.rj.config, .rj.tmp)
export(.client.execCommand)
export(.console.loadHistory, .console.saveHistory, .console.addtoHistory)
export(statet.help, statet.help.start, .statet.initDebug, .statet.initHelp)
-S3method(print, "help_files_with_topic")
-export(print.help_files_with_topic)
export(openInEditor, openPackageManager, statet.chooseFile, statet.showHistory)
export(dbg.updateTracepoints)
diff --git a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/console.R b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/console.R
index 7e951b0..9217d39 100644
--- a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/console.R
+++ b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/console.R
@@ -13,20 +13,20 @@
#=============================================================================#
-.console.loadHistory <- function(filename = ".Rhistory") {
+.console.loadHistory <- function(filename= ".Rhistory") {
if (!is.character(filename) || length(filename) != 1) {
stop("Illegal argument: filename");
}
.client.execCommand("console/loadHistory", list(
- filename = filename ), TRUE);
+ filename= filename ), TRUE);
return (invisible());
}
-.console.saveHistory <- function(filename = ".Rhistory") {
+.console.saveHistory <- function(filename= ".Rhistory") {
if (!is.character(filename) || length(filename) != 1) {
stop("Illegal argument: filename");
}
.client.execCommand("console/saveHistory", list(
- filename = filename ), TRUE);
+ filename= filename ), TRUE);
return (invisible());
}
.console.addtoHistory <- function(line) {
@@ -34,7 +34,7 @@
stop("Illegal argument: line");
}
.client.execCommand("console/addtoHistory", list(
- line = line ), FALSE);
+ line= line ), FALSE);
return (invisible());
}
diff --git a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/dataaccess.R b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/dataaccess.R
index 871f44b..222c363 100644
--- a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/dataaccess.R
+++ b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/dataaccess.R
@@ -138,7 +138,7 @@
}
-.getDataLevelValues <- function(x, max = 1000) {
+.getDataLevelValues <- function(x, max= 1000) {
if (is.factor(x)) {
values <- levels(x)
if (any(is.na(x))) {
@@ -159,7 +159,7 @@
return (values)
}
-.searchDataTextValues <- function(x, type, pattern, max = 1000) {
+.searchDataTextValues <- function(x, type, pattern, max= 1000) {
if (type == 0L) { # Eclipse
values <- grep(pattern, x, ignore.case= TRUE, value= TRUE)
}
diff --git a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ext_commands.R b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ext_commands.R
index 3f5072c..0f16c99 100644
--- a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ext_commands.R
+++ b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ext_commands.R
@@ -23,7 +23,7 @@
#' @param wait if R must wait until the command is executed
#' (necessary if you need a return value)
#' @returnType char
-.client.execCommand <- function(commandId, args = list(), wait = TRUE) {
+.client.execCommand <- function(commandId, args= list(), wait= TRUE) {
if (missing(commandId)) {
stop("Missing param: commandId");
}
@@ -41,7 +41,7 @@
if (wait) {
options <- options + 1L;
}
- .Call("Re_ExecJCommand", paste("ext", commandId, sep=":"), args, options,
+ .Call("Re_ExecJCommand", paste("ext", commandId, sep= ":"), args, options,
PACKAGE= "(embedding)" );
}
diff --git a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ide.R b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ide.R
index 4b19b4c..93307aa 100644
--- a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ide.R
+++ b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ide.R
@@ -77,7 +77,7 @@
#'
#' @param new if the choosen file can be new (does not yet exits)
#' @export
-statet.chooseFile <- function(new = FALSE) {
+statet.chooseFile <- function(new= FALSE) {
if (!is.logical(new) || length(new) != 1) {
stop("Illegal argument: new")
}
diff --git a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ide_internal.R b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ide_internal.R
index 620d92e..3d251cf 100644
--- a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ide_internal.R
+++ b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/ide_internal.R
@@ -24,8 +24,8 @@
#' @returnType integer
#' @return a value for max.level
#' @export
-estimateStrDepth <- function(x, max.elements = 2000L, max.levels = 10L) {
- deeplength <- function(x, level = 0L) {
+estimateStrDepth <- function(x, max.elements= 2000L, max.levels= 10L) {
+ deeplength <- function(x, level= 0L) {
if (isS4(x)) {
xslots <- slotNames(class(x))
xlen <- length(xslots)
@@ -35,7 +35,7 @@
else {
s <- 0L
for (xslot in xslots) {
- s <- s + deeplength(slot(x, xslot), level = level-1L)
+ s <- s + deeplength(slot(x, xslot), level= level-1L)
}
return (s)
}
@@ -46,7 +46,7 @@
return (xlen)
}
else {
- return (sum(sapply(x, deeplength, level = level-1L, USE.NAMES=FALSE)))
+ return (sum(sapply(x, deeplength, level= level-1L, USE.NAMES= FALSE)))
}
}
return (0L)
@@ -73,15 +73,15 @@
#' @returnType character
#' @return output of \code{str}
#' @export
-.statet.captureStr <- function(x, limit = 2000L) {
- savedOptions <- options(width = 10000L)
+.statet.captureStr <- function(x, limit= 2000L) {
+ savedOptions <- options(width= 10000L)
on.exit(options(savedOptions))
- levels <- estimateStrDepth(x, max.elements = limit)
+ levels <- estimateStrDepth(x, max.elements= limit)
if (!is.na(levels) && levels <= 1L && getRversion() >= "2.11.0") {
- output <- capture.output(str(x, max.level = 1L, list.len = limit - 1L))
+ output <- capture.output(str(x, max.level= 1L, list.len= limit - 1L))
}
else {
- output <- capture.output(str(x, max.level = levels))
+ output <- capture.output(str(x, max.level= levels))
}
return (output)
}
@@ -129,13 +129,13 @@
if (!is.na(names[i])) {
path <- elementIds[[i]]
tryCatch(attr(expr[[path]], "statet.ElementId") <- names[i],
- error = .rj.errorHandler )
+ error= .rj.errorHandler )
}
}
return (expr)
}
-.statet.prepareCommand <- function(lines, filename = "<text>",
+.statet.prepareCommand <- function(lines, filename= "<text>",
srcfileAttributes, elementIds) {
# create srcfile object
srcfile <- srcfilecopy(filename, lines)
diff --git a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/rgd.R b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/rgd.R
new file mode 100644
index 0000000..ff18044
--- /dev/null
+++ b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/rgd.R
@@ -0,0 +1,25 @@
+ #=============================================================================#
+ # Copyright (c) 2018 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================#
+
+
+#' Copies an R graphic from specified device to a new device.
+gr.copyGraphic <- function(devNr= dev.cur(), device= pdf, ...) {
+ prevDevNr <- dev.cur();
+ on.exit(dev.set(prevDevNr));
+ dev.set(devNr);
+ din <- par("din");
+ dev.copy(device, width= din[1], height= din[2], ...);
+ dev.off();
+ invisible(devNr)
+}
diff --git a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/utils.R b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/utils.R
index 08c7f70..5d94848 100644
--- a/core/org.eclipse.statet.rj.server.rpkg/pkg/R/utils.R
+++ b/core/org.eclipse.statet.rj.server.rpkg/pkg/R/utils.R
@@ -89,7 +89,7 @@
return (invisible());
}
-tmp.getFilteredCount <- function(index, filter, envir =.rj.tmp) {
+tmp.getFilteredCount <- function(index, filter, envir= .rj.tmp) {
filter <- get(filter, envir= envir, inherits= FALSE);
if (missing(index)) {
return (sum(filter));