[rkward] packages/rkwarddev: added new functions rk.set.indent()/rk.get.indent()
m.eik michalke
meik.michalke at uni-duesseldorf.de
Tue Nov 10 15:17:44 UTC 2015
Git commit fc163a302213355c6afef5ff2f34eb184c0be80c by m.eik michalke.
Committed on 10/11/2015 at 15:18.
Pushed by meikm into branch 'master'.
added new functions rk.set.indent()/rk.get.indent()
- these new functions control what indentation string should be used in the generated code
- all functions offering "indent.by" have been updated accordingly
M +4 -0 packages/rkwarddev/ChangeLog
M +2 -0 packages/rkwarddev/DESCRIPTION
M +2 -0 packages/rkwarddev/NAMESPACE
M +1 -1 packages/rkwarddev/R/R.comment.R
M +1 -1 packages/rkwarddev/R/js.R
M +11 -11 packages/rkwarddev/R/rk-internal.R
M +1 -1 packages/rkwarddev/R/rk.JS.doc.R
M +2 -2 packages/rkwarddev/R/rk.JS.saveobj.R
M +1 -1 packages/rkwarddev/R/rk.JS.scan.R
A +27 -0 packages/rkwarddev/R/rk.get.indent.R
M +1 -1 packages/rkwarddev/R/rk.paste.JS.R
M +4 -4 packages/rkwarddev/R/rk.paste.JS.graph.R
M +1 -1 packages/rkwarddev/R/rk.plotOptions.R
M +2 -2 packages/rkwarddev/R/rk.plugin.component.R
M +2 -2 packages/rkwarddev/R/rk.plugin.skeleton.R
A +36 -0 packages/rkwarddev/R/rk.set.indent.R
M +1 -1 packages/rkwarddev/R/tf.R
M +4 -0 packages/rkwarddev/inst/NEWS.Rd
M +2 -1 packages/rkwarddev/man/R.comment.Rd
M +1 -1 packages/rkwarddev/man/js.Rd
M +1 -1 packages/rkwarddev/man/rk.JS.doc.Rd
M +1 -1 packages/rkwarddev/man/rk.JS.saveobj.Rd
M +1 -1 packages/rkwarddev/man/rk.JS.scan.Rd
M +1 -1 packages/rkwarddev/man/rk.paste.JS.Rd
M +1 -1 packages/rkwarddev/man/rk.paste.JS.graph.Rd
M +1 -1 packages/rkwarddev/man/rk.plugin.component.Rd
M +2 -2 packages/rkwarddev/man/rk.plugin.skeleton.Rd
A +29 -0 packages/rkwarddev/man/rk.set.indent.Rd
M +1 -1 packages/rkwarddev/man/tf.Rd
http://commits.kde.org/rkward/fc163a302213355c6afef5ff2f34eb184c0be80c
diff --git a/packages/rkwarddev/ChangeLog b/packages/rkwarddev/ChangeLog
index 3b3ba56..be53fe4 100644
--- a/packages/rkwarddev/ChangeLog
+++ b/packages/rkwarddev/ChangeLog
@@ -31,6 +31,8 @@ added:
sections
- new function modifiers() to make checking for valid mdifiers of a given
node easier
+ - new functions rk.get.indent() and rk.set.indent() to globally set indentation
+ string
changed:
- improved error handling in rk.JS.header(), error messages are more
informative now
@@ -38,6 +40,8 @@ changed:
- updated the vignette with information on js() and how to add help pages
- internal function modif.validity() now calls modifiers() to give more
useful feedback
+ - all functions offering "intent.by" as an option now fetch the default value
+ by calling rk.get.indent()
changes in version 0.07-3 (2015-06-29)
fixed:
diff --git a/packages/rkwarddev/DESCRIPTION b/packages/rkwarddev/DESCRIPTION
index 55f7c8e..ba3fef1 100644
--- a/packages/rkwarddev/DESCRIPTION
+++ b/packages/rkwarddev/DESCRIPTION
@@ -111,6 +111,7 @@ Collate:
'rk.XML.wizard.R'
'rk.build.plugin.R'
'rk.get.comp.R'
+ 'rk.get.indent.R'
'rk.get.rkh.prompter.R'
'rk.i18n.comment.R'
'rk.paste.JS.R'
@@ -131,6 +132,7 @@ Collate:
'rk.rkh.title.R'
'rk.rkh.usage.R'
'rk.set.comp.R'
+ 'rk.set.indent.R'
'rk.set.rkh.prompter.R'
'rk.testsuite.doc.R'
'rk.uniqueIDs.R'
diff --git a/packages/rkwarddev/NAMESPACE b/packages/rkwarddev/NAMESPACE
index 5d22c04..9bc0d25 100644
--- a/packages/rkwarddev/NAMESPACE
+++ b/packages/rkwarddev/NAMESPACE
@@ -81,6 +81,7 @@ export(rk.XML.wizard)
export(rk.build.plugin)
export(rk.comment)
export(rk.get.comp)
+export(rk.get.indent)
export(rk.get.rkh.prompter)
export(rk.i18n.comment)
export(rk.paste.JS)
@@ -102,6 +103,7 @@ export(rk.rkh.technical)
export(rk.rkh.title)
export(rk.rkh.usage)
export(rk.set.comp)
+export(rk.set.indent)
export(rk.set.rkh.prompter)
export(rk.testsuite.doc)
export(rkwarddev.required)
diff --git a/packages/rkwarddev/R/R.comment.R b/packages/rkwarddev/R/R.comment.R
index 0038e54..4892176 100644
--- a/packages/rkwarddev/R/R.comment.R
+++ b/packages/rkwarddev/R/R.comment.R
@@ -27,7 +27,7 @@
#' @examples
#' cat(R.comment("This will become an R comment"))
-R.comment <- function(..., indent.by="\\t", level=2, newline=""){
+R.comment <- function(..., indent.by=rk.get.indent(escape=TRUE), level=2, newline=""){
message <- paste0(list(...), collapse=" ")
if(level > 1){
indentation <- paste0(", \"", rep(indent.by, level-1), "\"")
diff --git a/packages/rkwarddev/R/js.R b/packages/rkwarddev/R/js.R
index 5dfe004..97738c2 100644
--- a/packages/rkwarddev/R/js.R
+++ b/packages/rkwarddev/R/js.R
@@ -58,7 +58,7 @@
#' }
#' )))
-js <- function(..., level=2, indent.by="\t", linebreaks=FALSE, empty.e=FALSE){
+js <- function(..., level=2, indent.by=rk.get.indent(), linebreaks=FALSE, empty.e=FALSE){
full.content <- eval(substitute(alist(...)))
if(isTRUE(linebreaks)){
diff --git a/packages/rkwarddev/R/rk-internal.R b/packages/rkwarddev/R/rk-internal.R
index 9b02915..5e16126 100644
--- a/packages/rkwarddev/R/rk-internal.R
+++ b/packages/rkwarddev/R/rk-internal.R
@@ -19,7 +19,7 @@
#' @include rk.comment.R
#' @import XiMpLe rkward
-# set up an internal environment, e.g. for prompter settings
+# set up an internal environment, e.g. for prompter settings or indentation
.rkdev.env <- new.env()
# internal functions for the rk.* functions
@@ -106,7 +106,7 @@ trim <- function(char){
## function indent()
# will create tabs to format the output
-indent <- function(level, by="\t"){
+indent <- function(level, by=rk.get.indent()){
paste(rep(by, max(0, level-1)), collapse="")
} ## end function indent()
@@ -679,7 +679,7 @@ modif.validity <- function(source, modifier, ignore.empty=TRUE, warn.only=TRUE,
if(isTRUE(warn.only)){
warning(paste0("Some modifier you provided is invalid for '", tag.name, "' and was ignored: \"",
paste(modifier[invalid.modif], collapse="\", \""), "\"\n\n",
- "Known modifiers for '", tag.name, "' nodes are:\n\t\"", paste0(unlist(modifiers(obj=tag.name)[[tag.name]]), collapse="\", \""), "\"\n\n",
+ "Known modifiers for '", tag.name, "' nodes are:\n \"", paste0(unlist(modifiers(obj=tag.name)[[tag.name]]), collapse="\", \""), "\"\n\n",
"For a list of all valid modifiers call modifiers(\"", tag.name, "\")"), call.=FALSE)
if(isTRUE(bool)){
return(!invalid.modif)
@@ -814,7 +814,7 @@ clean.name <- function(name, message=TRUE){
## function paste.JS.ite()
-paste.JS.ite <- function(object, level=1, indent.by="\t", recurse=FALSE, empty.e=FALSE){
+paste.JS.ite <- function(object, level=1, indent.by=rk.get.indent(), recurse=FALSE, empty.e=FALSE){
stopifnot(inherits(object, "rk.JS.ite"))
# check indentation
main.indent <- indent(level, by=indent.by)
@@ -864,7 +864,7 @@ paste.JS.ite <- function(object, level=1, indent.by="\t", recurse=FALSE, empty.e
## function paste.JS.array()
# opt.sep: the separator that comes *before* the option that is set, in the resulting code
-paste.JS.array <- function(object, level=2, indent.by="\t", funct=NULL, opt.sep=NULL){
+paste.JS.array <- function(object, level=2, indent.by=rk.get.indent(), funct=NULL, opt.sep=NULL){
stopifnot(inherits(object, "rk.JS.arr"))
# check indentation
main.indent <- indent(level, by=indent.by)
@@ -919,7 +919,7 @@ paste.JS.array <- function(object, level=2, indent.by="\t", funct=NULL, opt.sep=
## function paste.JS.options()
# opt.sep: the separator that comes *before* the option that is set, in the resulting code
-paste.JS.options <- function(object, level=2, indent.by="\t", array=NULL, funct=NULL, opt.sep=NULL){
+paste.JS.options <- function(object, level=2, indent.by=rk.get.indent(), array=NULL, funct=NULL, opt.sep=NULL){
stopifnot(inherits(object, "rk.JS.opt"))
# check indentation
main.indent <- indent(level, by=indent.by)
@@ -1018,7 +1018,7 @@ paste.JS.options <- function(object, level=2, indent.by="\t", array=NULL, funct=
# important for "checkbox", which has "state" as default modifier, but using the checkbox object will not
# notice this. works only for the first modifier given.
# var: if FALSE, the variable is assumed to be already defined (globally?) and "var " will be omitted
-paste.JS.var <- function(object, level=2, indent.by="\t", JS.prefix=NULL, modifiers=NULL, default=NULL, append.modifier=NULL,
+paste.JS.var <- function(object, level=2, indent.by=rk.get.indent(), JS.prefix=NULL, modifiers=NULL, default=NULL, append.modifier=NULL,
join=NULL, getter=NULL, names.only=FALSE, check.modifiers=FALSE, var=TRUE){
# paste several objects
results <- unlist(sapply(slot(object, "vars"), function(this.obj){
@@ -1119,7 +1119,7 @@ paste.JS.var <- function(object, level=2, indent.by="\t", JS.prefix=NULL, modifi
## function paste.JS.optionsset()
-paste.JS.optionsset <- function(object, level=2, indent.by="\t"){
+paste.JS.optionsset <- function(object, level=2, indent.by=rk.get.indent()){
stopifnot(inherits(object, "rk.JS.oset"))
# check indentation
main.indent <- indent(level, by=indent.by)
@@ -1509,7 +1509,7 @@ replaceJSOperators <- function(..., call="id"){
## function uncurl()
# used by js() to fetch calls from then/else segments of if conditions,
# omitting curly brackets that would get in the way with ite()
-uncurl <- function(cond, level=1, indent.by="\t"){
+uncurl <- function(cond, level=1, indent.by=rk.get.indent()){
if(!is.null(cond)){
cond.list <- as.list(cond)
# first check for the bracket
@@ -1537,7 +1537,7 @@ uncurl <- function(cond, level=1, indent.by="\t"){
## function replaceJSIf
-replaceJSIf <- function(cond, level=1, paste=TRUE, indent.by="\t", empty.e=FALSE){
+replaceJSIf <- function(cond, level=1, paste=TRUE, indent.by=rk.get.indent(), empty.e=FALSE){
if(inherits(cond, "if")){
# if condition -- should be save to give to js()
cond.if <- do.call(
@@ -1625,7 +1625,7 @@ replaceJSIf <- function(cond, level=1, paste=TRUE, indent.by="\t", empty.e=FALSE
# }
# )))
#</documentation>
-replaceJSFor <- function(loop, level=1, indent.by="\t"){
+replaceJSFor <- function(loop, level=1, indent.by=rk.get.indent()){
if(inherits(loop, "for")){
# for loops must be handled differently, we need to create an array
# first and then interate through the array to imitate ho R does this
diff --git a/packages/rkwarddev/R/rk.JS.doc.R b/packages/rkwarddev/R/rk.JS.doc.R
index 127d580..3141d4a 100644
--- a/packages/rkwarddev/R/rk.JS.doc.R
+++ b/packages/rkwarddev/R/rk.JS.doc.R
@@ -59,7 +59,7 @@
#' @export
rk.JS.doc <- function(require=c(), variables=NULL, globals=NULL, results.header=NULL, header.add=list(),
- preprocess=NULL, calculate=NULL, printout=NULL, doPrintout=NULL, load.silencer=NULL, gen.info=TRUE, indent.by="\t",
+ preprocess=NULL, calculate=NULL, printout=NULL, doPrintout=NULL, load.silencer=NULL, gen.info=TRUE, indent.by=rk.get.indent(),
guess.getter=FALSE){
# variable to determine whether to add setGlobalVars() to preprocess() later
addSetGlobalVars <- FALSE
diff --git a/packages/rkwarddev/R/rk.JS.saveobj.R b/packages/rkwarddev/R/rk.JS.saveobj.R
index 2a1f63b..09e1def 100644
--- a/packages/rkwarddev/R/rk.JS.saveobj.R
+++ b/packages/rkwarddev/R/rk.JS.saveobj.R
@@ -1,4 +1,4 @@
-# Copyright 2010-2014 Meik Michalke <meik.michalke at hhu.de>
+# Copyright 2010-2015 Meik Michalke <meik.michalke at hhu.de>
#
# This file is part of the R package rkwarddev.
#
@@ -31,7 +31,7 @@
#' @seealso \href{help:rkwardplugins}{Introduction to Writing Plugins for RKWard}
#' @export
-rk.JS.saveobj <- function(pXML, R.objects="initial", vars=TRUE, add.abbrev=FALSE, indent.by="\t"){
+rk.JS.saveobj <- function(pXML, R.objects="initial", vars=TRUE, add.abbrev=FALSE, indent.by=rk.get.indent()){
single.tags <- get.single.tags(XML.obj=pXML, drop=c("comments","cdata", "declarations", "doctype"))
diff --git a/packages/rkwarddev/R/rk.JS.scan.R b/packages/rkwarddev/R/rk.JS.scan.R
index 41e1efa..157d16f 100644
--- a/packages/rkwarddev/R/rk.JS.scan.R
+++ b/packages/rkwarddev/R/rk.JS.scan.R
@@ -32,7 +32,7 @@
#' @seealso \href{help:rkwardplugins}{Introduction to Writing Plugins for RKWard}
#' @export
-rk.JS.scan <- function(pXML, js=TRUE, add.abbrev=FALSE, guess.getter=FALSE, indent.by="\t"){
+rk.JS.scan <- function(pXML, js=TRUE, add.abbrev=FALSE, guess.getter=FALSE, indent.by=rk.get.indent()){
# these are tags to scan normally, no special treatment
JS.relevant.tags.default <- c("browser", "dropdown", "input", "matrix", "optioncolumn",
diff --git a/packages/rkwarddev/R/rk.get.indent.R b/packages/rkwarddev/R/rk.get.indent.R
new file mode 100644
index 0000000..00db075
--- /dev/null
+++ b/packages/rkwarddev/R/rk.get.indent.R
@@ -0,0 +1,27 @@
+# Copyright 2015 Meik Michalke <meik.michalke at hhu.de>
+#
+# This file is part of the R package rkwarddev.
+#
+# rkwarddev is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# rkwarddev is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with rkwarddev. If not, see <http://www.gnu.org/licenses/>.
+
+#' @rdname rk.set.indent
+#' @param escape Logical, if set to \code{TRUE} each occurring "\t" will be escaped by an additional "\".
+#' @export
+rk.get.indent <- function(escape=FALSE){
+ indent.by <- get.rk.env("indent.by", value="\t")
+ if(isTRUE(escape)){
+ indent.by <- gsub("\t", "\\\\t", indent.by)
+ } else {}
+ return(indent.by)
+}
diff --git a/packages/rkwarddev/R/rk.paste.JS.R b/packages/rkwarddev/R/rk.paste.JS.R
index 8f35443..616c9ee 100644
--- a/packages/rkwarddev/R/rk.paste.JS.R
+++ b/packages/rkwarddev/R/rk.paste.JS.R
@@ -64,7 +64,7 @@
#' and the \href{help:rkwardplugins}{Introduction to Writing Plugins for RKWard}
#' @export
-rk.paste.JS <- function(..., level=2, indent.by="\t", funct=NULL, array=NULL,
+rk.paste.JS <- function(..., level=2, indent.by=rk.get.indent(), funct=NULL, array=NULL,
var.prefix=NULL, modifiers=NULL, default=NULL, join=NULL, getter=NULL, var=TRUE, empty.e=FALSE,
opt.sep=NULL){
stopifnot(level > 0)
diff --git a/packages/rkwarddev/R/rk.paste.JS.graph.R b/packages/rkwarddev/R/rk.paste.JS.graph.R
index c744bcc..48a4d78 100644
--- a/packages/rkwarddev/R/rk.paste.JS.graph.R
+++ b/packages/rkwarddev/R/rk.paste.JS.graph.R
@@ -55,9 +55,9 @@
#' plotOpts=tmp.plot.options)
#'
#' cat(js.prnt)
-rk.paste.JS.graph <- function(..., plotOpts=NULL, printoutObj=NULL, level=2, indent.by="\t", empty.e=FALSE){
+rk.paste.JS.graph <- function(..., plotOpts=NULL, printoutObj=NULL, level=2, indent.by=rk.get.indent(), empty.e=FALSE){
- plotOptsIndent <- paste(rep("\\t", level), collapse="")
+ plotOptsIndent <- paste(rep(rk.get.indent(escape=TRUE), level), collapse="")
# define variables
js.prnt <- rk.paste.JS(
@@ -90,7 +90,7 @@ rk.paste.JS.graph <- function(..., plotOpts=NULL, printoutObj=NULL, level=2, ind
# graph.on() & begin try()
js.prnt <- paste(js.prnt, rk.paste.JS(
ite("full", echo("rk.graph.on()\n")),
- echo("\ttry({\n"),
+ echo(paste0(indent(level=level, by=indent.by), "try({\n")),
level=level, indent.by=indent.by, empty.e=empty.e
), sep="\n\n")
@@ -133,7 +133,7 @@ rk.paste.JS.graph <- function(..., plotOpts=NULL, printoutObj=NULL, level=2, ind
# end try() & graph.off()
js.prnt <- paste(js.prnt, rk.paste.JS(
- echo("\n\t})\n"),
+ echo(paste0("\n",indent(level=level, by=indent.by),"})\n")),
ite("full", echo("rk.graph.off()\n")),
level=level, indent.by=indent.by, empty.e=empty.e
), sep="\n\n")
diff --git a/packages/rkwarddev/R/rk.plotOptions.R b/packages/rkwarddev/R/rk.plotOptions.R
index c820ffd..08f011e 100644
--- a/packages/rkwarddev/R/rk.plotOptions.R
+++ b/packages/rkwarddev/R/rk.plotOptions.R
@@ -1,4 +1,4 @@
-# Copyright 2010-2014 Meik Michalke <meik.michalke at hhu.de>
+# Copyright 2010-2015 Meik Michalke <meik.michalke at hhu.de>
#
# This file is part of the R package rkwarddev.
#
diff --git a/packages/rkwarddev/R/rk.plugin.component.R b/packages/rkwarddev/R/rk.plugin.component.R
index 309fd57..b7ed9be 100644
--- a/packages/rkwarddev/R/rk.plugin.component.R
+++ b/packages/rkwarddev/R/rk.plugin.component.R
@@ -1,4 +1,4 @@
-# Copyright 2010-2014 Meik Michalke <meik.michalke at hhu.de>
+# Copyright 2010-2015 Meik Michalke <meik.michalke at hhu.de>
#
# This file is part of the R package rkwarddev.
#
@@ -92,7 +92,7 @@
rk.plugin.component <- function(about, xml=list(), js=list(), rkh=list(),
provides=c("logic", "dialog"), scan=c("var", "saveobj", "settings"), guess.getter=FALSE,
hierarchy="test", include=NULL, create=c("xml", "js", "rkh"), dependencies=NULL,
- hints=TRUE, gen.info=TRUE, indent.by="\t"){
+ hints=TRUE, gen.info=TRUE, indent.by=rk.get.indent()){
if(is.XiMpLe.node(about)){
# check about and dependencies
diff --git a/packages/rkwarddev/R/rk.plugin.skeleton.R b/packages/rkwarddev/R/rk.plugin.skeleton.R
index e462306..75c56f8 100644
--- a/packages/rkwarddev/R/rk.plugin.skeleton.R
+++ b/packages/rkwarddev/R/rk.plugin.skeleton.R
@@ -1,4 +1,4 @@
-# Copyright 2010-2014 Meik Michalke <meik.michalke at hhu.de>
+# Copyright 2010-2015 Meik Michalke <meik.michalke at hhu.de>
#
# This file is part of the R package rkwarddev.
#
@@ -166,7 +166,7 @@ rk.plugin.skeleton <- function(about, path=tempdir(),
overwrite=FALSE, tests=TRUE, lazyLoad=TRUE,
create=c("pmap", "xml", "js", "rkh", "desc", "clog"), suggest.required=TRUE,
components=list(), dependencies=NULL, edit=FALSE, load=FALSE, show=FALSE, gen.info=TRUE,
- hints=TRUE, indent.by="\t", internal=FALSE){
+ hints=TRUE, indent.by=rk.get.indent(), internal=FALSE){
if(is.XiMpLe.node(about)){
# check about and dependencies
diff --git a/packages/rkwarddev/R/rk.set.indent.R b/packages/rkwarddev/R/rk.set.indent.R
new file mode 100644
index 0000000..e5843d4
--- /dev/null
+++ b/packages/rkwarddev/R/rk.set.indent.R
@@ -0,0 +1,36 @@
+# Copyright 2015 Meik Michalke <meik.michalke at hhu.de>
+#
+# This file is part of the R package rkwarddev.
+#
+# rkwarddev is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# rkwarddev is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with rkwarddev. If not, see <http://www.gnu.org/licenses/>.
+
+#' Globally define the indentation string
+#'
+#' Many functions allow to manually set the indentation string that should be used
+#' for code formatting. The default string used can be globally defined with \code{rk.set.indent},
+#' so you don't have to specify it in each function call.
+#'
+#' \code{rk.get.indent} returns the set value, which defaults to a tab character by default.
+#'
+#' @param by Character string, indentation string to be defined globally.
+#' @return \code{rk.set.indent} returns invisible(NULL), \code{rk.get.indent} a character string.
+#' @rdname rk.set.indent
+#' @export
+
+rk.set.indent <- function(by="\t"){
+ indent.by <- rk.get.indent()
+ indent.by <- by
+ set.rk.env("indent.by", value=indent.by)
+ return(invisible(NULL))
+}
diff --git a/packages/rkwarddev/R/tf.R b/packages/rkwarddev/R/tf.R
index 37a539e..491cb78 100644
--- a/packages/rkwarddev/R/tf.R
+++ b/packages/rkwarddev/R/tf.R
@@ -53,7 +53,7 @@
#' cbox1 <- rk.XML.cbox(label="foo", value="foo1", id.name="foo_option")
#' tf(cbox1)
-tf <- function(cbox, true=TRUE, not=FALSE, ifelse=FALSE, false=FALSE, opt=NULL, prefix=",\n", level=3, indent.by="\t"){
+tf <- function(cbox, true=TRUE, not=FALSE, ifelse=FALSE, false=FALSE, opt=NULL, prefix=",\n", level=3, indent.by=rk.get.indent()){
# check if we're given a checkbox, alright...
valid.parent(parent="checkbox", node=cbox, warn=FALSE, see="rk.XML.cbox", arg.name="cbox")
diff --git a/packages/rkwarddev/inst/NEWS.Rd b/packages/rkwarddev/inst/NEWS.Rd
index a139710..68abe89 100644
--- a/packages/rkwarddev/inst/NEWS.Rd
+++ b/packages/rkwarddev/inst/NEWS.Rd
@@ -39,6 +39,8 @@
sections
\item new function \code{modifiers()} to make checking for valid mdifiers of a given
node easier
+ \item new functions \code{rk.get.indent()} and \code{rk.set.indent()} to globally set indentation
+ string
}
}
\subsection{changed}{
@@ -49,6 +51,8 @@
\item updated the vignette with information on \code{js()} and how to add help pages
\item internal function \code{modif.validity()} now calls \code{modifiers()} to give more
useful feedback
+ \item all functions offering \code{"intent.by"} as an option now fetch the default value
+ by calling \code{rk.get.indent()}
}
}
}
diff --git a/packages/rkwarddev/man/R.comment.Rd b/packages/rkwarddev/man/R.comment.Rd
index c2574ad..f211942 100644
--- a/packages/rkwarddev/man/R.comment.Rd
+++ b/packages/rkwarddev/man/R.comment.Rd
@@ -4,7 +4,8 @@
\alias{R.comment}
\title{Create R comment with JavaScript in RKWard plugin code}
\usage{
-R.comment(..., indent.by = "\\\\t", level = 2, newline = "")
+R.comment(..., indent.by = rk.get.indent(escape = TRUE), level = 2,
+ newline = "")
}
\arguments{
\item{...}{Character strings to form a comment.}
diff --git a/packages/rkwarddev/man/js.Rd b/packages/rkwarddev/man/js.Rd
index 5cf76cd..3301fbf 100644
--- a/packages/rkwarddev/man/js.Rd
+++ b/packages/rkwarddev/man/js.Rd
@@ -4,7 +4,7 @@
\alias{js}
\title{R to JavaScript translation}
\usage{
-js(..., level = 2, indent.by = "\\t", linebreaks = FALSE,
+js(..., level = 2, indent.by = rk.get.indent(), linebreaks = FALSE,
empty.e = FALSE)
}
\arguments{
diff --git a/packages/rkwarddev/man/rk.JS.doc.Rd b/packages/rkwarddev/man/rk.JS.doc.Rd
index 06651b9..b741f29 100644
--- a/packages/rkwarddev/man/rk.JS.doc.Rd
+++ b/packages/rkwarddev/man/rk.JS.doc.Rd
@@ -7,7 +7,7 @@
rk.JS.doc(require = c(), variables = NULL, globals = NULL,
results.header = NULL, header.add = list(), preprocess = NULL,
calculate = NULL, printout = NULL, doPrintout = NULL,
- load.silencer = NULL, gen.info = TRUE, indent.by = "\\t",
+ load.silencer = NULL, gen.info = TRUE, indent.by = rk.get.indent(),
guess.getter = FALSE)
}
\arguments{
diff --git a/packages/rkwarddev/man/rk.JS.saveobj.Rd b/packages/rkwarddev/man/rk.JS.saveobj.Rd
index 74976e6..038f2d7 100644
--- a/packages/rkwarddev/man/rk.JS.saveobj.Rd
+++ b/packages/rkwarddev/man/rk.JS.saveobj.Rd
@@ -5,7 +5,7 @@
\title{Create JavaScript saveobject code from plugin XML}
\usage{
rk.JS.saveobj(pXML, R.objects = "initial", vars = TRUE,
- add.abbrev = FALSE, indent.by = "\\t")
+ add.abbrev = FALSE, indent.by = rk.get.indent())
}
\arguments{
\item{pXML}{Either an object of class \code{XiMpLe.doc} or \code{XiMpLe.node},
diff --git a/packages/rkwarddev/man/rk.JS.scan.Rd b/packages/rkwarddev/man/rk.JS.scan.Rd
index 89b576f..f59a471 100644
--- a/packages/rkwarddev/man/rk.JS.scan.Rd
+++ b/packages/rkwarddev/man/rk.JS.scan.Rd
@@ -5,7 +5,7 @@
\title{Create JavaScript variables from plugin XML}
\usage{
rk.JS.scan(pXML, js = TRUE, add.abbrev = FALSE, guess.getter = FALSE,
- indent.by = "\\t")
+ indent.by = rk.get.indent())
}
\arguments{
\item{pXML}{Either an object of class \code{XiMpLe.doc} or \code{XiMpLe.node},
diff --git a/packages/rkwarddev/man/rk.paste.JS.Rd b/packages/rkwarddev/man/rk.paste.JS.Rd
index 6723881..63c1a8b 100644
--- a/packages/rkwarddev/man/rk.paste.JS.Rd
+++ b/packages/rkwarddev/man/rk.paste.JS.Rd
@@ -4,7 +4,7 @@
\alias{rk.paste.JS}
\title{Paste JavaScript objects and character strings}
\usage{
-rk.paste.JS(..., level = 2, indent.by = "\\t", funct = NULL,
+rk.paste.JS(..., level = 2, indent.by = rk.get.indent(), funct = NULL,
array = NULL, var.prefix = NULL, modifiers = NULL, default = NULL,
join = NULL, getter = NULL, var = TRUE, empty.e = FALSE,
opt.sep = NULL)
diff --git a/packages/rkwarddev/man/rk.paste.JS.graph.Rd b/packages/rkwarddev/man/rk.paste.JS.graph.Rd
index 4815fe0..5265532 100644
--- a/packages/rkwarddev/man/rk.paste.JS.graph.Rd
+++ b/packages/rkwarddev/man/rk.paste.JS.graph.Rd
@@ -5,7 +5,7 @@
\title{Paste simple JavaScript plot code}
\usage{
rk.paste.JS.graph(..., plotOpts = NULL, printoutObj = NULL, level = 2,
- indent.by = "\\t", empty.e = FALSE)
+ indent.by = rk.get.indent(), empty.e = FALSE)
}
\arguments{
\item{...}{The actual plot code, passed through to \code{rk.paste.JS}.}
diff --git a/packages/rkwarddev/man/rk.plugin.component.Rd b/packages/rkwarddev/man/rk.plugin.component.Rd
index 8d53102..a981ab4 100644
--- a/packages/rkwarddev/man/rk.plugin.component.Rd
+++ b/packages/rkwarddev/man/rk.plugin.component.Rd
@@ -8,7 +8,7 @@ rk.plugin.component(about, xml = list(), js = list(), rkh = list(),
provides = c("logic", "dialog"), scan = c("var", "saveobj", "settings"),
guess.getter = FALSE, hierarchy = "test", include = NULL,
create = c("xml", "js", "rkh"), dependencies = NULL, hints = TRUE,
- gen.info = TRUE, indent.by = "\\t")
+ gen.info = TRUE, indent.by = rk.get.indent())
}
\arguments{
\item{about}{Either a character string with the name of this plugin component,
diff --git a/packages/rkwarddev/man/rk.plugin.skeleton.Rd b/packages/rkwarddev/man/rk.plugin.skeleton.Rd
index 811b7a6..b22f23d 100644
--- a/packages/rkwarddev/man/rk.plugin.skeleton.Rd
+++ b/packages/rkwarddev/man/rk.plugin.skeleton.Rd
@@ -10,8 +10,8 @@ rk.plugin.skeleton(about, path = tempdir(), provides = c("logic", "dialog"),
overwrite = FALSE, tests = TRUE, lazyLoad = TRUE, create = c("pmap",
"xml", "js", "rkh", "desc", "clog"), suggest.required = TRUE,
components = list(), dependencies = NULL, edit = FALSE, load = FALSE,
- show = FALSE, gen.info = TRUE, hints = TRUE, indent.by = "\\t",
- internal = FALSE)
+ show = FALSE, gen.info = TRUE, hints = TRUE,
+ indent.by = rk.get.indent(), internal = FALSE)
}
\arguments{
\item{about}{Either an object of class \code{XiMpLe.node} with descriptive information on the plugin and its authors
diff --git a/packages/rkwarddev/man/rk.set.indent.Rd b/packages/rkwarddev/man/rk.set.indent.Rd
new file mode 100644
index 0000000..c362c60
--- /dev/null
+++ b/packages/rkwarddev/man/rk.set.indent.Rd
@@ -0,0 +1,29 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/rk.get.indent.R, R/rk.set.indent.R
+\name{rk.get.indent}
+\alias{rk.get.indent}
+\alias{rk.set.indent}
+\title{Globally define the indentation string}
+\usage{
+rk.get.indent(escape = FALSE)
+
+rk.set.indent(by = "\\t")
+}
+\arguments{
+\item{escape}{Logical,
+ if set to \code{TRUE} each occurring "\t" will be escaped by an additional "\".}
+
+\item{by}{Character string, indentation string to be defined globally.}
+}
+\value{
+\code{rk.set.indent} returns invisible(NULL), \code{rk.get.indent} a character string.
+}
+\description{
+Many functions allow to manually set the indentation string that should be used
+for code formatting. The default string used can be globally defined with \code{rk.set.indent},
+so you don't have to specify it in each function call.
+}
+\details{
+\code{rk.get.indent} returns the set value, which defaults to a tab character by default.
+}
+
diff --git a/packages/rkwarddev/man/tf.Rd b/packages/rkwarddev/man/tf.Rd
index 63b2217..29a6b99 100644
--- a/packages/rkwarddev/man/tf.Rd
+++ b/packages/rkwarddev/man/tf.Rd
@@ -5,7 +5,7 @@
\title{Replace checkbox XML objects with JavaScript code}
\usage{
tf(cbox, true = TRUE, not = FALSE, ifelse = FALSE, false = FALSE,
- opt = NULL, prefix = ",\\n", level = 3, indent.by = "\\t")
+ opt = NULL, prefix = ",\\n", level = 3, indent.by = rk.get.indent())
}
\arguments{
\item{cbox}{An object of class \code{XiMpLe.node} containing a \code{<checkbox>} node,
More information about the rkward-tracker
mailing list