[Sciviews-commits] r51 - in komodo: . SciViews-K SciViews-K/components SciViews-K/content SciViews-K/content/js SciViews-K/templates SciViews-K/udl
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sun Aug 31 21:02:37 CEST 2008
Author: phgrosjean
Date: 2008-08-31 21:02:37 +0200 (Sun, 31 Aug 2008)
New Revision: 51
Added:
komodo/SciViews-K/components/
komodo/SciViews-K/components/koR_UDL_Language.py
komodo/SciViews-K/content/pref-R.js
komodo/SciViews-K/content/pref-R.xul
komodo/SciViews-K/content/prefsOverlay.xul
komodo/SciViews-K/sciviewsk-0.6.4-ko.xpi
komodo/SciViews-K/udl/
komodo/SciViews-K/udl/R-mainlex.udl
komodo/SciViews-K/udl/Rlex.udl
Removed:
komodo/SciViews-K/sciviewsk-0.6.3-ko.xpi
Modified:
komodo/SciViews-K/.DS_Store
komodo/SciViews-K/chrome.manifest
komodo/SciViews-K/content/js/r.js
komodo/SciViews-K/content/js/sciviews.js
komodo/SciViews-K/content/js/socket.js
komodo/SciViews-K/install.rdf
komodo/SciViews-K/templates/.Rprofile
komodo/TODO
Log:
Added R highlighting (UDL), vignettes and history/workspace save/load
Modified: komodo/SciViews-K/.DS_Store
===================================================================
(Binary files differ)
Modified: komodo/SciViews-K/chrome.manifest
===================================================================
--- komodo/SciViews-K/chrome.manifest 2008-08-31 17:18:13 UTC (rev 50)
+++ komodo/SciViews-K/chrome.manifest 2008-08-31 19:02:37 UTC (rev 51)
@@ -1,6 +1,8 @@
content sciviewsk jar:sciviewsk.jar!/content/ xpcnativewrappers=yes
overlay chrome://komodo/content/komodo.xul chrome://sciviewsk/content/overlay.xul
-overlay chrome://komodo/content/komodo.xul chrome://sciviewsk/content/rconsole.xul
+# Those two items are not finished yet, and are thus commented out
+#overlay chrome://komodo/content/komodo.xul chrome://sciviewsk/content/rconsole.xul
+#overlay chrome://komodo/content/pref/pref.xul chrome://sciviewsk/content/prefsOverlay.xul
locale sciviewsk en-GB jar:sciviewsk.jar!/locale/en-GB/
locale sciviewsk fr-FR jar:sciviewsk.jar!/locale/fr-FR/
Added: komodo/SciViews-K/components/koR_UDL_Language.py
===================================================================
--- komodo/SciViews-K/components/koR_UDL_Language.py (rev 0)
+++ komodo/SciViews-K/components/koR_UDL_Language.py 2008-08-31 19:02:37 UTC (rev 51)
@@ -0,0 +1,220 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License
+# Version 1.1 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+# License for the specific language governing rights and limitations
+# under the License.
+#
+# The Original Code is SciViews-K by Philippe Grosjean & Romain Francois.
+#
+# Portions created by ActiveState Software Inc are Copyright (C) 2000-2008
+# ActiveState Software Inc. All Rights Reserved.
+#
+# Contributor(s):
+# Philippe Grosjean
+# ActiveState Software Inc (code inspired from)
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+# Komodo R language service.
+# TODO: we still need to build a decent linter for R. Currently, this is code
+# adapted from ActionScript, but it does not work because no linter is found!
+#
+
+import logging
+from koLanguageServiceBase import *
+from koUDLLanguageBase import KoUDLLanguage
+
+log = logging.getLogger("koRLanguage")
+#log.setLevel(logging.DEBUG)
+
+def registerLanguage(registry):
+ log.debug("Registering language R")
+ registry.registerLanguage(KoRLanguage())
+
+
+class KoRLanguage(KoUDLLanguage):
+ name = "R"
+ lexresLangName = "R"
+ _reg_desc_ = "%s Language" % name
+ _reg_contractid_ = "@activestate.com/koLanguage?language=%s;1" % name
+ _reg_clsid_ = "{4cc23d3b-52e2-426d-8a22-6d7eb2ba81ae}"
+ defaultExtension = '.R'
+
+ # ??? I don't understand this... could someone explain me?
+ lang_from_udl_family = {'SSL': 'R', 'M': 'HTML'}
+
+ # Code from koJavaScriptLanguage.py
+
+ # Only line comments in R
+ commentDelimiterInfo = {
+ "line": [ "#" ]
+ }
+ # TODO: we probably have to rework and complete these lists!
+ _dedenting_statements = [u'return', u'break']
+ _indenting_statements = [u'switch']
+ searchURL = "http://wiki.r-project.org/rwiki/rhelp.php?id=%W"
+ namedBlockDescription = 'R functions and classes'
+ # TODO: I need to change this!
+ namedBlockRE = r'^[ |\t]*?(?:([\w|\.|_]*?)\s*=\s*function|function\s*([\w|\_]*?)|([\w|\_]*?)\s*:\s*function).*?$'
+ supportsSmartIndent = "brace"
+
+ # Bypass KoUDLLanguage.get_linter, which doesn't know how to find
+ # the R linter. The base class does.
+ ### What should I do with this???
+ get_linter = KoLanguageBase.get_linter
+
+ sample = """`cube`<- function(x, na.rm = FALSE) {
+ if (na.rm) x <- x[!is.na(x)]
+ return(x^3)
+} # A comment
+a <- data.frame(x = 1:10, y = rnorm(10))
+cube(a$x)
+plot(y ~ x, data = a, col = 'blue', main = "Plot of \\"a\\"")
+a$y <- NULL; a"""
+
+from xpcom import components, nsError, ServerException
+from koLintResult import *
+from koLintResults import koLintResults
+import os, re, sys, string
+import os.path
+import tempfile
+import process
+import koprocessutils
+
+# TODO: all this should be reworked when a R linter will be ready
+def RWarnsToLintResults(warns, filename, code, status):
+ defaultSeverity = ((status == 0 and KoLintResult.SEV_WARNING)
+ or KoLintResult.SEV_ERROR)
+ lintResults = koLintResults()
+ warnRe = re.compile(r'(?P<fileName>.*?):(?P<lineNum>\d+): (?:characters (?P<rangeStart>\d+)-(?P<rangeEnd>\d+))\s*:\s*(?P<message>.*)')
+ for warn in warns:
+ match = warnRe.search(warn)
+ if match and match.group('fileName') == filename:
+ lineNum = int(match.group('lineNum'))
+ rangeStart = match.groupdict().get('rangeStart', None)
+ rangeEnd = match.groupdict().get('rangeEnd', None)
+ lr = KoLintResult()
+ lr.description = match.group('message')
+ lr.lineStart = lineNum
+ lr.lineEnd = lineNum
+ if rangeStart and rangeEnd:
+ lr.columnStart = int(rangeStart) + 1
+ lr.columnEnd = int(rangeEnd) + 1
+ else:
+ lr.columnStart = 1
+ lr.columnEnd = len(lines[lr.lineStart - 1]) + 1
+ lr.severity = defaultSeverity
+ lintResults.addResult(lr)
+ else:
+ log.debug("%s: no match", warn)
+ log.debug("returning %d lint results", lintResults.getNumResults())
+ return lintResults
+
+# TODO: rework when the R linter is done
+class koRLinter:
+ _com_interfaces_ = [components.interfaces.koILinter]
+ _reg_desc_ = "Komodo R Linter"
+ _reg_clsid_ = "{49af7a6c-850e-4f34-8c7a-294324a42g85}"
+ _reg_contractid_ = "@activestate.com/koLinter?language=R;1"
+ _reg_categories_ = [ ("komodo-linter", "R Linter"), ]
+
+ def __init__(self):
+ log.debug("Created the R Linter object")
+ # Copied and pasted from KoPerlCompileLinter
+ self.sysUtils = components.classes["@activestate.com/koSysUtils;1"].\
+ getService(components.interfaces.koISysUtils)
+ self.infoSvc = components.classes["@activestate.com/koInfoService;1"].\
+ getService()
+ self._lastErrorSvc = components.classes["@activestate.com/koLastErrorService;1"].\
+ getService(components.interfaces.koILastErrorService)
+ self._koVer = self.infoSvc.version
+
+ def _getInterpreter(self, prefset):
+ if prefset.hasStringPref("RDefaultInterpreter") and\
+ prefset.getStringPref("RDefaultInterpreter"):
+ return prefset.getStringPref("RDefaultInterpreter")
+ return None
+
+ def lint(self, request):
+ text = request.content.encode(request.encoding.python_encoding_name)
+ cwd = request.cwd
+ prefset = request.document.getEffectivePrefs()
+ ascExe = self._getInterpreter(prefset)
+ if ascExe is None:
+ log.debug('no interpreter')
+ return
+ tmpFileName = None
+ if cwd:
+ tmpFileName = os.path.join(cwd,
+ "tmp_ko_Rlint_ko%s.R" % (self._koVer.replace(".","_").replace("-","_")))
+ try:
+ fout = open(tmpFileName, 'wb')
+ fout.write(text)
+ fout.close()
+ except (OSError, IOError), ex:
+ tmpFileName = None
+ if not tmpFileName:
+ # Fallback to using a tmp dir if cannot write in cwd.
+ try:
+ tmpFileName = tempfile.mktemp()
+ cwd = os.path.dirname(tmpFileName)
+ except OSError, ex:
+ # Sometimes get this error but don't know why:
+ # OSError: [Errno 13] Permission denied: 'C:\\DOCUME~1\\trentm\\LOCALS~1\\Temp\\~1324-test'
+ errmsg = "error determining temporary filename for "\
+ "R content: %s" % ex
+ self._lastErrorSvc.setLastError(3, errmsg)
+ raise ServerException(nsError.NS_ERROR_UNEXPECTED)
+ fout = open(tmpFileName, 'wb')
+ fout.write(text)
+ fout.close()
+
+ try:
+ argv = [ascExe, "-strict"]
+ # mtasc gets confused by pathnames
+ R_filename = os.path.basename(tmpFileName)
+ argv += [R_filename]
+ cwd = cwd or None # convert '' to None (cwd=='' for new files)
+ log.debug("Run cmd %s in dir %s", " ".join(argv), cwd)
+ env = koprocessutils.getUserEnv()
+ p = process.ProcessOpen(argv, cwd=cwd, env=env)
+ results = p.stderr.readlines()
+ log.debug("results: %s", "\n".join(results))
+ p.close()
+ status = None
+ try:
+ raw_status = p.wait(timeout=3.0)
+ if sys.platform.startswith("win"):
+ status = raw_status
+ else:
+ status = raw_status >> 8
+
+ lintResults = RWarnsToLintResults(results, R_filename, text, status)
+ except process.ProcessError:
+ # Don't do anything with this exception right now.
+ lintResults = None
+ log.debug("Waiting for R linter, got a ProcessError")
+
+ finally:
+ os.unlink(tmpFileName)
+
+ return lintResults
Modified: komodo/SciViews-K/content/js/r.js
===================================================================
--- komodo/SciViews-K/content/js/r.js 2008-08-31 17:18:13 UTC (rev 50)
+++ komodo/SciViews-K/content/js/r.js 2008-08-31 19:02:37 UTC (rev 51)
@@ -28,6 +28,11 @@
// sv.r.dataList(loaded); // List R datasets in "loaded" or "all" packages
// sv.r.data(); // Select one dataset to load
// sv.r.data_select(data); // Callback function for sv.r.data()
+// sv.r.browseVignettes(); // Open a web page listing all installed vignettes
+// sv.r.saveWorkspace(file, title); // Save data in a .Rdata file
+// sv.r.loadWorkspace(file, title); // Load data from a .RData file
+// sv.r.saveHistory(file, title); // Save the history in a file
+// sv.r.loadHistory(file, title); // Load the history from a file
// sv.r.saveGraph(type, file, title, height, width, method);
// // Save the current R graph in different formats
// sv.r.quit(save); // Quit R (ask to save in save in not defined)
@@ -449,6 +454,57 @@
return(res);
}
+// Open a menu with all installed vignettes in the default web browser
+sv.r.browseVignettes = function() {
+ var res = sv.r.eval('browseVignettes()');
+ return(res);
+}
+
+// Save the content of the workspace in a file
+sv.r.saveWorkspace = function(file, title) {
+ // Ask for the filename if not provided
+ if (typeof(file) == "undefined") {
+ if (typeof(title) == "undefined") { title = 'Save the R workspace in a file'; }
+ file = ko.filepicker.saveFile("", ".RData", title);
+ if (file == null) return; // User clicked cancel
+ }
+ sv.r.eval('save.image("' + file + '")');
+}
+
+// Load the content of a .RData file in the workspace
+sv.r.loadWorkspace = function(file, title) {
+ // Ask for the filename if not provided
+ if (typeof(file) == "undefined") {
+ if (typeof(title) == "undefined") { title = 'Load an .RData file'; }
+ file = ko.filepicker.openFile("", ".RData", title);
+ if (file == null) return; // User clicked cancel
+ }
+ sv.r.eval('load("' + file + '")');
+}
+
+// Save the history in a file
+sv.r.saveHistory = function(file, title) {
+ // Ask for the filename if not provided
+ if (typeof(file) == "undefined") {
+ if (typeof(title) == "undefined") { title = 'Save the command history in a file'; }
+ file = ko.filepicker.saveFile("", ".Rhistory", title);
+ if (file == null) return; // User clicked cancel
+ }
+ sv.r.eval('savehistory("' + file + '")');
+}
+
+// Load the history from a file
+sv.r.loadHistory = function(file, title) {
+ // Ask for the filename if not provided
+ if (typeof(file) == "undefined") {
+ if (typeof(title) == "undefined") { title = 'Load the history from a file'; }
+ file = ko.filepicker.openFile("", ".Rhistory", title);
+ if (file == null) return; // User clicked cancel
+ }
+ sv.r.eval('loadhistory("' + file + '")');
+}
+
+
// There is also dev.copy2pdf() copy2eps() + savePlot windows and X11(type = "Cairo")
sv.r.saveGraph = function(type, file, title, height, width, method) {
if (typeof(type) == "undefined") { type = "png256"; }
Modified: komodo/SciViews-K/content/js/sciviews.js
===================================================================
--- komodo/SciViews-K/content/js/sciviews.js 2008-08-31 17:18:13 UTC (rev 50)
+++ komodo/SciViews-K/content/js/sciviews.js 2008-08-31 19:02:37 UTC (rev 51)
@@ -35,7 +35,7 @@
sv = {
// TODO: set this automatically according to the plugin version
version: 0.6,
- release: 3,
+ release: 4,
showVersion: true,
checkVersion: function(version) {
if (this.version < version) {
Modified: komodo/SciViews-K/content/js/socket.js
===================================================================
--- komodo/SciViews-K/content/js/socket.js 2008-08-31 17:18:13 UTC (rev 50)
+++ komodo/SciViews-K/content/js/socket.js 2008-08-31 19:02:37 UTC (rev 51)
@@ -10,7 +10,7 @@
// Parameters:
// sv.socket.host; // The address of the R server host (local only for now)
// sv.socket.cmdout // Do we echo exchange to the Output Command pane?
-// sv.socket.promt // Look at this to know if we are in multiline mode
+// sv.socket.prompt // Look at this to know if we are in multiline mode
// sv.socket.cmd // In case of multiline mode, the partial command so far
//
// sv.socket.rClient(host, port, outputData, listener, echo); // Main client fct
@@ -38,7 +38,7 @@
/////// Socket client //////////////////////////////////////////////////////////
sv.socket.host = "127.0.0.1"; // Host to connect to (local host only, currently)
sv.socket.cmdout = true; // Do we write to 'Command Output'?
-sv.socket.prompt = ":> "; // The prompt, could be changed o continue prompt
+sv.socket.prompt = ":> "; // The prompt, could be changed to continue prompt
sv.socket.cmd = ""; // The command to send to R
// The main socket client function to connect to R socket server
@@ -58,7 +58,7 @@
classes["@mozilla.org/scriptableinputstream;1"]
.createInstance(Components.interfaces.nsIScriptableInputStream);
instream.init(stream);
-
+
var dataListener = {
data: "",
onStartRequest: function(request, context) { this.data = ""; },
@@ -97,7 +97,7 @@
chunk = chunk.replace(/ \r?\n?$/, " ");
}
this.data += chunk;
- // Do we "echo" these results somewhere?
+ // Do we "echo" these results somewhere?
if (echo) {
if (echofun == null) {
// Use default echo function (to the Command Output)
@@ -148,7 +148,7 @@
// Core function for the SciViews-K socket server: create the serverSocket object
sv.socket.serverStart = function() {
- var listener = {
+ var listener = {
onSocketAccepted : function(socket, transport) {
try {
// Make sure to clean input and output strings before use
@@ -159,7 +159,7 @@
sv.cmdout.append("#--# SciViews-K socket client: " +
transport.host + " on port " + transport.port + "\n");
}
-
+
// Then, read data from the client
var inputStream = transport.openInputStream(nsITransport.
OPEN_BLOCKING, 0, 0);
@@ -168,20 +168,20 @@
.createInstance(Components.interfaces.
nsIScriptableInputStream);
sin.init(inputStream);
-
+
// Wait for input up to 10 sec max, with synchroneous com only)
var millis = 10000;
var date = new Date();
var curDate = null;
do {
curDate = new Date();
- inputString = sin.read(512);
+ inputString = sin.read(512);
} while(inputString == "" & curDate - date < millis)
-
+
// Read the complete data
while (sin.available() > 0)
inputString += sin.read(512);
-
+
// Is there data send?
if (inputString == "") {
outputString += "Error: no command send!\n"
@@ -203,7 +203,7 @@
sv.cmdout.append("#--# Result:\n" + outputString);
}
}
-
+
// And finally, return the result to the socket client
// (append \n at the end)
outputString += "\n";
Added: komodo/SciViews-K/content/pref-R.js
===================================================================
--- komodo/SciViews-K/content/pref-R.js (rev 0)
+++ komodo/SciViews-K/content/pref-R.js 2008-08-31 19:02:37 UTC (rev 51)
@@ -0,0 +1,91 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * The Original Code is SciViews-K by Philippe Grosjean & Romain Francois.
+ *
+ * Portions created by ActiveState Software Inc are Copyright (C) 2000-2008
+ * ActiveState Software Inc. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Philippe Grosjean
+ * ActiveState Software Inc (code inspired from)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+//---- globals
+
+var RPrefLog = getLoggingMgr().getLogger("R");
+RPrefLog.setLevel(LOG_DEBUG);
+
+function OnPreferencePageOK(prefset)
+{
+ var ok = true;
+
+ // ensure that the interpreter is valid
+ var defaultInterp = prefset.getStringPref("RDefaultInterpreter");
+ if (defaultInterp != "") {
+ var koSysUtils = Components.classes["@activestate.com/koSysUtils;1"].
+ getService(Components.interfaces.koISysUtils);
+ if (! koSysUtils.IsFile(defaultInterp)) {
+ dialog_alert("No R interpreter could be found at '" + defaultInterp +
+ "'. You must make another selection for the default " +
+ "R interpreter.\n");
+ ok = false;
+ document.getElementById("RDefaultInterpreter").focus();
+ }
+ }
+ return ok;
+}
+
+function PrefR_OnLoad()
+{
+ var prefExecutable;
+ var prefName = 'RDefaultInterpreter';
+ // If there is no pref, create it
+ // Otherwise trying to save a new pref will fail, because
+ // it tries to get an existing one to see if the
+ // pref needs updating.
+ if (!parent.hPrefWindow.prefset.hasStringPref(prefName)) {
+ parent.hPrefWindow.prefset.setStringPref(prefName, "");
+ prefExecutable = '';
+ } else {
+ prefExecutable = parent.hPrefWindow.prefset.getStringPref(prefName);
+ if (prefExecutable == null) {
+ prefExecutable = '';
+ }
+ }
+ _finishSpecifyingExecutable(prefExecutable);
+}
+
+function loadRExecutable()
+{
+ _finishSpecifyingExecutable(filepicker_openExeFile());
+}
+
+function _finishSpecifyingExecutable(path) {
+ if (path != null) {
+ document.getElementById("R_interpreterPath").value = path;
+ }
+}
\ No newline at end of file
Added: komodo/SciViews-K/content/pref-R.xul
===================================================================
--- komodo/SciViews-K/content/pref-R.xul (rev 0)
+++ komodo/SciViews-K/content/pref-R.xul 2008-08-31 19:02:37 UTC (rev 51)
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!-- ***** BEGIN LICENSE BLOCK *****
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+ The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+
+ The Original Code is SciViews-K by Philippe Grosjean & Romain Francois.
+
+ Portions created by ActiveState Software Inc are Copyright (C) 2000-2008
+ ActiveState Software Inc. All Rights Reserved.
+
+ Contributor(s):
+ Philippe Grosjean
+ ActiveState Software Inc (code inspired from)
+
+ Alternatively, the contents of this file may be used under the terms of
+ either the GNU General Public License Version 2 or later (the "GPL"), or
+ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ in which case the provisions of the GPL or the LGPL are applicable instead
+ of those above. If you wish to allow use of your version of this file only
+ under the terms of either the GPL or the LGPL, and not to allow others to
+ use your version of this file under the terms of the MPL, indicate your
+ decision by deleting the provisions above and replace them with the notice
+ and other provisions required by the GPL or the LGPL. If you do not delete
+ the provisions above, a recipient may use your version of this file under
+ the terms of any one of the MPL, the GPL or the LGPL.
+
+ ***** END LICENSE BLOCK ***** -->
+
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+<?xml-stylesheet href="chrome://komodo/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://komodo/skin/global/global.css" type="text/css"?>
+<?xml-stylesheet href="chrome://komodo/skin/bindings/buttons.css" type="text/css"?>
+<?xml-stylesheet href="chrome://komodo/skin/bindings/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://komodo/skin/bindings/listbox.css" type="text/css"?>
+
+<window xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ class="kodialog"
+ orient="vertical"
+ onload="PrefR_OnLoad();">
+
+ <script src="chrome://komodo/content/library/trace.js" type="application/x-javascript"/>
+ <script src="chrome://komodo/content/library/logging.js" type="application/x-javascript"/>
+ <script src="chrome://komodo/content/library/dialogs.js" type="application/x-javascript"/>
+ <script src="chrome://komodo/content/library/filepickers.js" type="application/x-javascript"/>
+ <script src="chrome://komodo/content/library/windowManager.js" type="application/x-javascript"/>
+ <script src="chrome://sciviewsk/content/js/prefs.js" type="application/x-javascript"/>
+
+ <groupbox orient="vertical">
+ <caption label="Default R Interpreter"/>
+ <text value="Use this interpreter:" style="padding: 2px 6px 2px 6px"/>
+ <hbox align="center">
+ <textbox id="R_interpreterPath" pref="true" prefstring="RDefaultInterpreter" flex="1"/>
+ <button label="Browse..." oncommand="loadRExecutable();"/>
+ </hbox>
+ <vbox flex="1" align="center">
+ <description>
+ SciViews-K currently needs a valid R installation on the
+ local machine. If you have not installed R yet, you can
+ find it at the CRAN website:
+ </description>
+ <button label="<http://cran.r-project.org/>;"
+ class="button-link"
+ style="margin: -10px; color: #b82619;"
+ onclick="parent.opener.ko.browse.openUrlInDefaultBrowser('http://cran.r-project.org/');"/>
+ <separator class="thin"/>
+ </vbox>
+ </groupbox>
+</window>
Added: komodo/SciViews-K/content/prefsOverlay.xul
===================================================================
--- komodo/SciViews-K/content/prefsOverlay.xul (rev 0)
+++ komodo/SciViews-K/content/prefsOverlay.xul 2008-08-31 19:02:37 UTC (rev 51)
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<!-- ***** BEGIN LICENSE BLOCK *****
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
+
+ The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+
+ The Original Code is SciViews-K by Philippe Grosjean & Romain Francois.
+
+ Portions created by ActiveState Software Inc are Copyright (C) 2000-2008
+ ActiveState Software Inc. All Rights Reserved.
+
+ Contributor(s):
+ Philippe Grosjean
+ ActiveState Software Inc (code inspired from)
+
+ Alternatively, the contents of this file may be used under the terms of
+ either the GNU General Public License Version 2 or later (the "GPL"), or
+ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ in which case the provisions of the GPL or the LGPL are applicable instead
+ of those above. If you wish to allow use of your version of this file only
+ under the terms of either the GPL or the LGPL, and not to allow others to
+ use your version of this file under the terms of the MPL, indicate your
+ decision by deleting the provisions above and replace them with the notice
+ and other provisions required by the GPL or the LGPL. If you do not delete
+ the provisions above, a recipient may use your version of this file under
+ the terms of any one of the MPL, the GPL or the LGPL.
+
+ ***** END LICENSE BLOCK ***** -->
+
+<!DOCTYPE overlay PUBLIC "-//MOZILLA//DTD XUL V1.0//EN" "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+<?xml-stylesheet href="chrome://komodo/skin/global/global.css" type="text/css"?>
+<?xml-stylesheet href="chrome://komodo/skin/bindings/buttons.css" type="text/css"?>
+<?xml-stylesheet href="chrome://komodo/skin/bindings/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://komodo/skin/bindings/listbox.css" type="text/css"?>
+
+<overlay id="SciViewsPrefsOverlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <treechildren container="false" id="languagesChildren">
+ <treeitem container="false" id="RItem">
+ <treerow>
+ <treecell class="treecell-indent"
+ url="chrome://sciviewsk/content/pref-R.xul"
+ label="R"/>
+ </treerow>
+ </treeitem>
+ </treechildren>
+</overlay>
Modified: komodo/SciViews-K/install.rdf
===================================================================
--- komodo/SciViews-K/install.rdf 2008-08-31 17:18:13 UTC (rev 50)
+++ komodo/SciViews-K/install.rdf 2008-08-31 19:02:37 UTC (rev 51)
@@ -41,7 +41,7 @@
<Description about="urn:mozilla:install-manifest">
<em:id>sciviewsk at sciviews.org</em:id>
<em:name>SciViews-K</em:name>
- <em:version>0.6.3</em:version>
+ <em:version>0.6.4</em:version>
<em:description>SciViews-K - Edit R (http://www.r-project.org) code in Komodo</em:description>
<em:creator>Philippe Grosjean and Romain Francois</em:creator>
<em:homepageURL>http://sciviews.org/SciViews-K</em:homepageURL>
Deleted: komodo/SciViews-K/sciviewsk-0.6.3-ko.xpi
===================================================================
(Binary files differ)
Added: komodo/SciViews-K/sciviewsk-0.6.4-ko.xpi
===================================================================
(Binary files differ)
Property changes on: komodo/SciViews-K/sciviewsk-0.6.4-ko.xpi
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: komodo/SciViews-K/templates/.Rprofile
===================================================================
--- komodo/SciViews-K/templates/.Rprofile 2008-08-31 17:18:13 UTC (rev 50)
+++ komodo/SciViews-K/templates/.Rprofile 2008-08-31 19:02:37 UTC (rev 51)
@@ -1,6 +1,6 @@
### SciViews install begin ###
# SciViews-R installation and startup for running R with Komodo/SciViews-K
-# Version 0.6.3, 2008-07-06 Ph. Grosjean (phgrosjean at sciviews.org)
+# Version 0.6.4, 2008-08-18 Ph. Grosjean (phgrosjean at sciviews.org)
# Make sure we don't process this twice in case of duplicate items in .Rprofile
if (!exists(".SciViewsReady", envir = .GlobalEnv)) {
@@ -10,6 +10,8 @@
# Get environment variables
args <- commandArgs()
+ ## TODO: also check environment variables like:
+ #par <- Sys.getenv("ko.serve") (returns "" if not set)
# Configure socket client/server
par <- args[grep("^--ko.serve=", args)]
if (length(par) == 0) par <- 8888 else par <- as.integer(sub("^--ko.serve=", "", par))
@@ -25,6 +27,8 @@
options(ko.id = par) # The id used for this R kernel in Komodo
rm(par)
+### If started --quiet, display a simplified message
+
# Load main R packages
res <- require(methods, quietly = TRUE)
if (res) res <- require(datasets, quietly = TRUE)
Added: komodo/SciViews-K/udl/R-mainlex.udl
===================================================================
--- komodo/SciViews-K/udl/R-mainlex.udl (rev 0)
+++ komodo/SciViews-K/udl/R-mainlex.udl 2008-08-31 19:02:37 UTC (rev 51)
@@ -0,0 +1,54 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License
+# Version 1.1 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+# License for the specific language governing rights and limitations
+# under the License.
+#
+# The Original Code is SciViews-K by Philippe Grosjean & Romain Francois.
+#
+# Portions created by ActiveState Software Inc are Copyright (C) 2000-2008
+# ActiveState Software Inc. All Rights Reserved.
+#
+# Contributor(s):
+# Philippe Grosjean
+# ActiveState Software Inc (code inspired from)
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+# UDL for R files
+# To build:
+# python luddite.py compile udl/R-mainlex.udl -f --ext=.R [--guid, --skel needed]
+# python luddite.py package R -f
+# Open R_language-1.0.0-ko.xpi in Komodo, install, restart
+
+language R
+
+include "Rlex.udl"
+
+# Shouldn't I change this?
+family markup
+sublanguage html
+
+initial IN_M_DEFAULT
+
+state IN_M_DEFAULT:
+/./ : redo, => IN_CSL_DEFAULT
Added: komodo/SciViews-K/udl/Rlex.udl
===================================================================
--- komodo/SciViews-K/udl/Rlex.udl (rev 0)
+++ komodo/SciViews-K/udl/Rlex.udl 2008-08-31 19:02:37 UTC (rev 51)
@@ -0,0 +1,2772 @@
+# R UDL definition
+#
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License
+# Version 1.1 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+# License for the specific language governing rights and limitations
+# under the License.
+#
+# The Original Code is SciViews-K by Philippe Grosjean & Romain Francois.
+#
+# Portions created by ActiveState Software Inc are Copyright (C) 2000-2008
+# ActiveState Software Inc. All Rights Reserved.
+#
+# Contributor(s):
+# Philippe Grosjean
+# ActiveState Software Inc (code inspired from)
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+# Lexer description for R
+family ssl # server-side language... not really, but what's best?
+sublanguage R
+
+# Define keywords
+keywords [
+# Reserved keywords
+"..."
+"break"
+"else"
+"FALSE"
+"for"
+"function"
+"if"
+"in"
+"Inf"
+"NA"
+"NaN"
+"next"
+"NULL"
+"repeat"
+"TRUE"
+"while"
+# Non reserved keywords
+".Alias"
+".ArgsEnv"
+".AutoloadEnv"
+".BaseNamespaceEnv"
+".C"
+".Call"
+".Call.graphics"
+".Defunct"
+".Deprecated"
+".Device"
+".Devices"
+".Export"
+".External"
+".External.graphics"
+".First.lib"
+".First.sys"
+".Fortran"
+".GenericArgsEnv"
+".GlobalEnv"
+".Import"
+".ImportFrom"
+".Internal"
+".Last.lib"
+".Last.value"
+".Library"
+".Library.site"
+".MFclass"
+".Machine"
+".NotYetImplemented"
+".NotYetUsed"
+".OptRequireMethods"
+".Options"
+".Platform"
+".Primitive"
+".S3PrimitiveGenerics"
+".S3method"
+".Script"
+".TAOCP1997init"
+".Tcl"
+".Tcl.args"
+".Tcl.args.objv"
+".Tcl.callback"
+".Tcl.objv"
+".Tk.ID"
+".Tk.newwin"
+".Tk.subwin"
+".TraceWithMethods"
+".Traceback"
+".checkMFClasses"
+".decode_numeric_version"
+".deparseOpts"
+".doTrace"
+".doTracePrint"
+".dynLibs"
+".encode_numeric_version"
+".expand_R_libs_env_var"
+".find.package"
+".getRequiredPackages"
+".getRequiredPackages2"
+".getXlevels"
+".guiCmd"
+".guiObjBrowse"
+".guiObjCallback"
+".guiObjInfo"
+".guiObjMenu"
+".handleSimpleError"
+".isMethodsDispatchOn"
+".isOpen"
+".knownS3Generics"
+".koCmd"
+".leap.seconds"
+".libPaths"
+".makeMessage"
+".make_numeric_version"
+".mergeExportMethods"
+".mergeImportMethods"
+".noGenerics"
+".packageStartupMessage"
+".packages"
+".path.package"
+".primTrace"
+".primUntrace"
+".readRDS"
+".row_names_info"
+".saveRDS"
+".set_row_names"
+".signalSimpleWarning"
+".slotNames"
+".standard_regexps"
+".subset"
+".subset2"
+".untracedFunction"
+".userHooksEnv"
+".valueClassTest"
+"AIC"
+"ARMAacf"
+"ARMAtoMA"
+"Arg"
+"Args"
+"Arith"
+"Axis"
+"Box.test"
+"C"
+"CIDFont"
+"CRAN.packages"
+"CallTip"
+"Compare"
+"Complete"
+"CompletePlus"
+"Complex"
+"Conj"
+"Cstack_info"
+"D"
+"Encoding"
+"F"
+"Filter"
+"Find"
+"Gamma"
+"HoltWinters"
+"I"
+"IQR"
+"ISOdate"
+"ISOdatetime"
+"Im"
+"KalmanForecast"
+"KalmanLike"
+"KalmanRun"
+"KalmanSmooth"
+"LETTERS"
+"La.chol"
+"La.chol2inv"
+"La.eigen"
+"La.svd"
+"Logic"
+"Machine"
+"Map"
+"Math"
+"Math.Date"
+"Math.POSIXt"
+"Math.data.frame"
+"Math.difftime"
+"Math.factor"
+"Math2"
+"MethodAddCoerce"
+"MethodsList"
+"MethodsListSelect"
+"Mod"
+"NCOL"
+"NLSstAsymptotic"
+"NLSstClosestX"
+"NLSstLfAsymptote"
+"NLSstRtAsymptote"
+"NROW"
+"Negate"
+"NextMethod"
+"Null"
+"Ops"
+"Ops.Date"
+"Ops.POSIXt"
+"Ops.data.frame"
+"Ops.difftime"
+"Ops.factor"
+"Ops.numeric_version"
+"Ops.ordered"
+"PP.test"
+"Parse"
+"Platform"
+"Position"
+"Quote"
+"R.Version"
+"R.home"
+"R.version"
+"R.version.string"
+"RNGkind"
+"RNGversion"
+"RShowDoc"
+"RSiteSearch"
+"R_system_version"
+"Rapp.updates"
+"Rd_db"
+"Rd_parse"
+"Rdindex"
+"Re"
+"Recall"
+"Reduce"
+"Rprof"
+"Rprofmem"
+"Rtangle"
+"RtangleSetup"
+"RtangleWritedoc"
+"RweaveChunkPrefix"
+"RweaveEvalWithOpt"
+"RweaveLatex"
+"RweaveLatexFinish"
+"RweaveLatexOptions"
+"RweaveLatexSetup"
+"RweaveLatexWritedoc"
+"RweaveTryStop"
+"SSD"
+"SSasymp"
+"SSasympOff"
+"SSasympOrig"
+"SSbiexp"
+"SSfol"
+"SSfpl"
+"SSgompertz"
+"SSlogis"
+"SSmicmen"
+"SSweibull"
+"Shepard"
+"SignatureMethod"
+"SocketServerProc_8888"
+"Source"
+"Stangle"
+"StructTS"
+"Summary"
+"Summary.Date"
+"Summary.POSIXct"
+"Summary.POSIXlt"
+"Summary.data.frame"
+"Summary.difftime"
+"Summary.factor"
+"Summary.numeric_version"
+"Sweave"
+"SweaveHooks"
+"SweaveSyntConv"
+"Sys.Date"
+"Sys.chmod"
+"Sys.getenv"
+"Sys.getlocale"
+"Sys.getpid"
+"Sys.glob"
+"Sys.info"
+"Sys.localeconv"
+"Sys.putenv"
+"Sys.setenv"
+"Sys.setlocale"
+"Sys.sleep"
+"Sys.tempdir"
+"Sys.time"
+"Sys.timezone"
+"Sys.umask"
+"Sys.unsetenv"
+"Sys.userdir"
+"Sys.which"
+"T"
+"TempEnv"
+"TukeyHSD"
+"TukeyHSD.aov"
+"Type1Font"
+"URLdecode"
+"URLencode"
+"UseMethod"
+"Vectorize"
+"Version"
+"View"
+"X11"
+"X11.options"
+"X11Font"
+"X11Fonts"
+"abbreviate"
+"abline"
+"abs"
+"acf"
+"acf2AR"
+"acos"
+"acosh"
+"add.scope"
+"add1"
+"addActions"
+"addIcons"
+"addItems"
+"addMethods"
+"addNextMethod"
+"addTaskCallback"
+"addTclPath"
+"addTemp"
+"addmargins"
+"addterm"
+"aggregate"
+"aggregate.data.frame"
+"aggregate.default"
+"aggregate.ts"
+"agrep"
+"alarm"
+"alias"
+"alist"
+"all"
+"all.equal"
+"all.equal.POSIXct"
+"all.equal.character"
+"all.equal.default"
+"all.equal.factor"
+"all.equal.formula"
+"all.equal.language"
+"all.equal.list"
+"all.equal.numeric"
+"all.equal.raw"
+"all.names"
+"all.vars"
+"allGenerics"
+"allNames"
+"anova"
+"anova.glm"
+"anova.glmlist"
+"anova.lm"
+"anova.lmlist"
+"anova.mlm"
+"anovalist.lm"
+"ansari.test"
+"any"
+"aov"
+"aperm"
+"append"
+"apply"
+"approx"
+"approxfun"
+"apropos"
+"ar"
+"ar.burg"
+"ar.mle"
+"ar.ols"
+"ar.yw"
+"area"
+"args"
+"argsAnywhere"
+"arima"
+"arima.sim"
+"arima0"
+"arima0.diag"
+"array"
+"arrows"
+"as"
+"as.Date"
+"as.Date.POSIXct"
+"as.Date.POSIXlt"
+"as.Date.character"
+"as.Date.date"
+"as.Date.dates"
+"as.Date.default"
+"as.Date.factor"
+"as.Date.numeric"
+"as.POSIXct"
+"as.POSIXct.Date"
+"as.POSIXct.POSIXlt"
+"as.POSIXct.date"
+"as.POSIXct.dates"
+"as.POSIXct.default"
+"as.POSIXct.numeric"
+"as.POSIXlt"
+"as.POSIXlt.Date"
+"as.POSIXlt.POSIXct"
+"as.POSIXlt.character"
+"as.POSIXlt.date"
+"as.POSIXlt.dates"
+"as.POSIXlt.default"
+"as.POSIXlt.factor"
+"as.POSIXlt.numeric"
+"as.array"
+"as.call"
+"as.character"
+"as.character.Date"
+"as.character.POSIXt"
+"as.character.condition"
+"as.character.default"
+"as.character.error"
+"as.character.factor"
+"as.character.hexmode"
+"as.character.numeric_version"
+"as.character.octmode"
+"as.character.srcref"
+"as.complex"
+"as.data.frame"
+"as.data.frame.AsIs"
+"as.data.frame.Date"
+"as.data.frame.POSIXct"
+"as.data.frame.POSIXlt"
+"as.data.frame.array"
+"as.data.frame.character"
+"as.data.frame.complex"
+"as.data.frame.data.frame"
+"as.data.frame.default"
+"as.data.frame.difftime"
+"as.data.frame.factor"
+"as.data.frame.integer"
+"as.data.frame.list"
+"as.data.frame.logical"
+"as.data.frame.matrix"
+"as.data.frame.model.matrix"
+"as.data.frame.numeric"
+"as.data.frame.numeric_version"
+"as.data.frame.ordered"
+"as.data.frame.raw"
+"as.data.frame.table"
+"as.data.frame.ts"
+"as.data.frame.vector"
+"as.dendrogram"
+"as.difftime"
+"as.dist"
+"as.double"
+"as.double.POSIXlt"
+"as.double.difftime"
+"as.environment"
+"as.expression"
+"as.expression.default"
+"as.factor"
+"as.formula"
+"as.fractions"
+"as.function"
+"as.function.default"
+"as.graphicsAnnot"
+"as.hclust"
+"as.integer"
+"as.list"
+"as.list.data.frame"
+"as.list.default"
+"as.list.environment"
+"as.list.factor"
+"as.list.numeric_version"
+"as.logical"
+"as.matrix"
+"as.matrix.POSIXlt"
+"as.matrix.data.frame"
+"as.matrix.default"
+"as.matrix.noquote"
+"as.name"
+"as.null"
+"as.null.default"
+"as.numeric"
+"as.numeric_version"
+"as.octmode"
+"as.ordered"
+"as.package_version"
+"as.pairlist"
+"as.person"
+"as.personList"
+"as.qr"
+"as.raw"
+"as.real"
+"as.relistable"
+"as.roman"
+"as.single"
+"as.single.default"
+"as.stepfun"
+"as.symbol"
+"as.table"
+"as.table.default"
+"as.tclObj"
+"as.ts"
+"as.vector"
+"as.vector.factor"
+"asMethodDefinition"
+"asNamespace"
+"asOneSidedFormula"
+"asS4"
+"asin"
+"asinh"
+"assign"
+"assignClassDef"
+"assignInNamespace"
+"assignMethodsMetaData"
+"assignTemp"
+"assocplot"
+"atan"
+"atan2"
+"atanh"
+"attach"
+"attachNamespace"
+"attr"
+"attr.all.equal"
+"attributes"
+"autoload"
+"autoloader"
+"available.packages"
+"ave"
+"axTicks"
+"axis"
+"axis.Date"
+"axis.POSIXct"
+"backsolve"
+"balanceMethodsList"
+"bandwidth.kernel"
+"bandwidth.nrd"
+"barplot"
+"barplot.default"
+"bartlett.test"
+"baseenv"
+"basename"
+"bcv"
+"besselI"
+"besselJ"
+"besselK"
+"besselY"
+"beta"
+"bindingIsActive"
+"bindingIsLocked"
+"bindtextdomain"
+"binom.test"
+"binomial"
+"biplot"
+"bitmap"
+"bmp"
+"body"
+"box"
+"boxcox"
+"boxplot"
+"boxplot.default"
+"boxplot.stats"
+"bquote"
+"browse.pkgs"
+"browseEnv"
+"browseURL"
+"browseVignettes"
+"browser"
+"bug.report"
+"buildVignettes"
+"builtins"
+"bw.SJ"
+"bw.bcv"
+"bw.nrd"
+"bw.nrd0"
+"bw.ucv"
+"bxp"
+"by"
+"by.data.frame"
+"by.default"
+"bzfile"
+"c"
+"c.Date"
+"c.POSIXct"
+"c.POSIXlt"
+"c.noquote"
+"c.numeric_version"
+"cacheGenericsMetaData"
+"cacheMetaData"
+"cacheMethod"
+"cairo_pdf"
+"cairo_ps"
+"call"
+"callCC"
+"callGeneric"
+"callNextMethod"
+"canCoerce"
+"cancor"
+"capabilities"
+"capture.output"
+"captureAll"
+"case.names"
+"casefold"
+"cat"
+"category"
+"cbind"
+"cbind.data.frame"
+"cbind2"
+"ccf"
+"cdplot"
+"ceiling"
+"changeTemp"
+"char.expand"
+"charToRaw"
+"character"
+"charmatch"
+"chartr"
+"check.options"
+"checkCRAN"
+"checkDocFiles"
+"checkDocStyle"
+"checkFF"
+"checkMD5sums"
+"checkNEWS"
+"checkReplaceFuns"
+"checkS3methods"
+"checkSlotAssignment"
+"checkTnF"
+"checkVignettes"
+"check_tzones"
+"chisq.test"
+"chol"
+"chol.default"
+"chol2inv"
+"choose"
+"chooseCRANmirror"
+"chull"
+"citEntry"
+"citFooter"
+"citHeader"
+"citation"
+"class"
+"classMetaName"
+"clearNames"
+"clip"
+"clipsource"
+"close"
+"close.connection"
+"close.screen"
+"close.socket"
+"close.srcfile"
+"closeAllConnections"
+"closeSocketClients"
+"cm"
+"cm.colors"
+"cmdscale"
+"co.intervals"
+"codes"
+"codes.factor"
+"codes.ordered"
+"codoc"
+"codocClasses"
+"codocData"
+"coef"
+"coefficients"
+"coerce"
+"col"
+"col2rgb"
+"colMeans"
+"colSums"
+"colnames"
+"colorConverter"
+"colorRamp"
+"colorRampPalette"
+"colors"
+"colours"
+"combn"
+"commandArgs"
+"comment"
+"compareRVersion"
+"compareVersion"
+"complete.cases"
+"completeClassDefinition"
+"completeExtends"
+"completeSubclasses"
+"complex"
+"computeRestarts"
+"con2tr"
+"conditionCall"
+"conditionCall.condition"
+"conditionMessage"
+"conditionMessage.condition"
+"confint"
+"confint.default"
+"conflicts"
+"conformMethod"
+"constrOptim"
+"contour"
+"contour.default"
+"contourLines"
+"contr.SAS"
+"contr.helmert"
+"contr.poly"
+"contr.sdif"
+"contr.sum"
+"contr.treatment"
+"contrasts"
+"contrib.url"
+"contributors"
+"convertColor"
+"convolve"
+"cooks.distance"
+"cophenetic"
+"coplot"
+"cor"
+"cor.test"
+"corresp"
+"cos"
+"cosh"
+"count.fields"
+"cov"
+"cov.mcd"
+"cov.mve"
+"cov.rob"
+"cov.trob"
+"cov.wt"
+"cov2cor"
+"covratio"
+"cpgram"
+"createCallTipFile"
+"createSyntaxFile"
+"crossprod"
+"cummax"
+"cummin"
+"cumprod"
+"cumsum"
+"curve"
+"cut"
+"cut.Date"
+"cut.POSIXt"
+"cut.default"
+"cutree"
+"cycle"
+"dQuote"
+"data"
+"data.class"
+"data.entry"
+"data.frame"
+"data.manager"
+"data.matrix"
+"dataentry"
+"date"
+"dbeta"
+"dbinom"
+"dcauchy"
+"dchisq"
+"de"
+"de.ncols"
+"de.restore"
+"de.setup"
+"debug"
+"debugger"
+"decompose"
+"def"
+"default.stringsAsFactors"
+"defaultDumpName"
+"defaultPrototype"
+"delay"
+"delayedAssign"
+"delete.response"
+"delimMatch"
+"deltat"
+"demo"
+"dendrapply"
+"density"
+"density.default"
+"denumerate"
+"denumerate.formula"
+"deparse"
+"deriv"
+"deriv.default"
+"deriv.formula"
+"deriv3"
+"deriv3.default"
+"deriv3.formula"
+"descArgs"
+"descFun"
+"det"
+"detach"
+"determinant"
+"determinant.matrix"
+"dev.control"
+"dev.copy"
+"dev.copy2eps"
+"dev.copy2pdf"
+"dev.cur"
+"dev.interactive"
+"dev.list"
+"dev.new"
+"dev.next"
+"dev.off"
+"dev.prev"
+"dev.print"
+"dev.set"
+"dev.size"
+"dev2bitmap"
+"devAskNewPage"
+"deviance"
+"deviceIsInteractive"
+"dexp"
+"df"
+"df.kernel"
+"df.residual"
+"dfbeta"
+"dfbetas"
+"dffits"
+"dgamma"
+"dgeom"
+"dget"
+"dhyper"
+"diag"
+"diff"
+"diff.Date"
+"diff.POSIXt"
+"diff.default"
+"diff.ts"
+"diffinv"
+"difftime"
+"digamma"
+"dim"
+"dim.data.frame"
+"dimnames"
+"dimnames.data.frame"
+"dir"
+"dir.create"
+"dirname"
+"dist"
+"dlnorm"
+"dlogis"
+"dmultinom"
+"dnbinom"
+"dnorm"
+"do.call"
+"doPrimitiveMethod"
+"dose.p"
+"dotchart"
+"double"
+"download.file"
+"download.packages"
+"dpois"
+"dput"
+"drop"
+"drop.scope"
+"drop.terms"
+"drop1"
+"dropterm"
+"dsignrank"
+"dt"
+"dummy.coef"
+"dump"
+"dump.frames"
+"dumpMethod"
+"dumpMethods"
+"dunif"
+"duplicated"
+"duplicated.POSIXlt"
+"duplicated.array"
+"duplicated.data.frame"
+"duplicated.default"
+"duplicated.matrix"
+"dweibull"
+"dwilcox"
+"dyn.load"
+"dyn.unload"
+"eapply"
+"ecdf"
+"edit"
+"eff.aovlist"
+"effects"
+"eigen"
+"el"
+"elNamed"
+"emacs"
+"embed"
+"embedFonts"
+"empty.dump"
+"emptyMethodsList"
+"emptyenv"
+"encodeString"
+"encoded_text_to_latex"
+"end"
+"enlist"
+"env.profile"
+"environment"
+"environmentIsLocked"
+"environmentName"
+"eqscplot"
+"erase.screen"
+"estVar"
+"eval"
+"eval.parent"
+"evalq"
+"example"
+"exists"
+"existsFunction"
+"existsMethod"
+"existsTemp"
+"exp"
+"expand.grid"
+"expand.model.frame"
+"expm1"
+"expression"
+"extendrange"
+"extends"
+"extractAIC"
+"factanal"
+"factor"
+"factor.scope"
+"factorial"
+"family"
+"fbeta"
+"fft"
+"fifo"
+"file"
+"file.access"
+"file.append"
+"file.choose"
+"file.copy"
+"file.create"
+"file.edit"
+"file.exists"
+"file.info"
+"file.path"
+"file.remove"
+"file.rename"
+"file.show"
+"file.symlink"
+"file_path_as_absolute"
+"file_path_sans_ext"
+"file_test"
+"filled.contour"
+"filter"
+"finalDefaultMethod"
+"find"
+"findClass"
+"findFunction"
+"findInterval"
+"findMethod"
+"findMethodSignatures"
+"findMethods"
+"findPackageEnv"
+"findRestart"
+"findUnique"
+"fisher.test"
+"fitdistr"
+"fitted"
+"fitted.values"
+"fivenum"
+"fix"
+"fixInNamespace"
+"fixPre1.8"
+"fligner.test"
+"floor"
+"flush"
+"flush.connection"
+"flush.console"
+"force"
+"formalArgs"
+"formals"
+"format"
+"format.AsIs"
+"format.Date"
+"format.POSIXct"
+"format.POSIXlt"
+"format.char"
+"format.data.frame"
+"format.default"
+"format.difftime"
+"format.factor"
+"format.hexmode"
+"format.info"
+"format.octmode"
+"format.pval"
+"formatC"
+"formatDL"
+"formatOL"
+"formatUL"
+"formula"
+"forwardsolve"
+"fourfoldplot"
+"fractions"
+"frame"
+"frequency"
+"frequency.polygon"
+"friedman.test"
+"ftable"
+"functionBody"
+"gamma"
+"gamma.dispersion"
+"gamma.shape"
+"gammaCody"
+"gaussian"
+"gc"
+"gc.time"
+"gcinfo"
+"gctorture"
+"generic.skeleton"
+"get"
+"getAccess"
+"getAllConnections"
+"getAllMethods"
+"getAllSuperClasses"
+"getAnywhere"
+"getCConverterDescriptions"
+"getCConverterStatus"
+"getCRANmirrors"
+"getCallingDLL"
+"getCallingDLLe"
+"getClass"
+"getClassDef"
+"getClassName"
+"getClassPackage"
+"getClasses"
+"getConnection"
+"getDLLRegisteredRoutines"
+"getDLLRegisteredRoutines.DLLInfo"
+"getDLLRegisteredRoutines.character"
+"getDataPart"
+"getDepList"
+"getEnvironment"
+"getExportedValue"
+"getExtends"
+"getFromNamespace"
+"getFunction"
+"getFunctions"
+"getGeneric"
+"getGenerics"
+"getGraphicsEvent"
+"getGroup"
+"getGroupMembers"
+"getHook"
+"getInitial"
+"getKeywords"
+"getLoadedDLLs"
+"getMethod"
+"getMethods"
+"getMethodsForDispatch"
+"getMethodsMetaData"
+"getNamespace"
+"getNamespaceExports"
+"getNamespaceImports"
+"getNamespaceInfo"
+"getNamespaceName"
+"getNamespaceUsers"
+"getNamespaceVersion"
+"getNativeSymbolInfo"
+"getNumCConverters"
+"getOption"
+"getPackageName"
+"getProperties"
+"getPrototype"
+"getRversion"
+"getS3method"
+"getSlots"
+"getSocketClients"
+"getSocketClientsNames"
+"getSocketServerName"
+"getSocketServers"
+"getSrcLines"
+"getSubclasses"
+"getTaskCallbackNames"
+"getTemp"
+"getTkProgressBar"
+"getTxtProgressBar"
+"getValidity"
+"getVirtual"
+"get_all_vars"
+"getenv"
+"geterrmessage"
+"gettext"
+"gettextf"
+"getwd"
+"ginv"
+"gl"
+"glm"
+"glm.control"
+"glm.convert"
+"glm.fit"
+"glm.fit.null"
+"glm.nb"
+"glmmPQL"
+"glob2rx"
+"globalenv"
+"graphics.off"
+"gray"
+"gray.colors"
+"grconvertX"
+"grconvertY"
+"gregexpr"
+"grep"
+"grey"
+"grey.colors"
+"grid"
+"gsub"
+"guiCallTip"
+"guiCmd"
+"guiComplete"
+"guiDDEInstall"
+"guiExport"
+"guiImport"
+"guiInstall"
+"guiLoad"
+"guiReport"
+"guiSave"
+"guiSetwd"
+"guiSource"
+"guiUninstall"
+"gzcon"
+"gzfile"
+"hasArg"
+"hasMethod"
+"hasMethods"
+"hasTsp"
+"hat"
+"hatvalues"
+"hatvalues.lm"
+"hcl"
+"hclust"
+"head"
+"head.matrix"
+"heat.colors"
+"heatmap"
+"help"
+"help.search"
+"help.start"
+"helpSearchWeb"
+"hist"
+"hist.FD"
+"hist.default"
+"hist.scott"
+"history"
+"hsv"
+"httpclient"
+"huber"
+"hubers"
+"iconv"
+"iconvlist"
+"identical"
+"identify"
+"identity"
+"ifelse"
+"image"
+"image.default"
+"implicitGeneric"
+"importIntoEnv"
+"index.search"
+"influence"
+"influence.measures"
+"inherits"
+"initialize"
+"insertMethod"
+"install.packages"
+"installFoundDepends"
+"installed.packages"
+"intToBits"
+"intToUtf8"
+"integer"
+"integrate"
+"interaction"
+"interaction.plot"
+"interactive"
+"intersect"
+"inverse.gaussian"
+"inverse.rle"
+"invisible"
+"invokeRestart"
+"invokeRestartInteractively"
+"is"
+"is.R"
+"is.array"
+"is.atomic"
+"is.call"
+"is.character"
+"is.complex"
+"is.data.frame"
+"is.double"
+"is.element"
+"is.empty.model"
+"is.environment"
+"is.expression"
+"is.factor"
+"is.finite"
+"is.fractions"
+"is.function"
+"is.infinite"
+"is.integer"
+"is.language"
+"is.leaf"
+"is.list"
+"is.loaded"
+"is.logical"
+"is.matrix"
+"is.mts"
+"is.na"
+"is.na.POSIXlt"
+"is.na.data.frame"
+"is.name"
+"is.nan"
+"is.null"
+"is.numeric"
+"is.numeric.Date"
+"is.numeric.POSIXt"
+"is.numeric_version"
+"is.object"
+"is.ordered"
+"is.package_version"
+"is.pairlist"
+"is.primitive"
+"is.qr"
+"is.raw"
+"is.real"
+"is.recursive"
+"is.relistable"
+"is.single"
+"is.stepfun"
+"is.symbol"
+"is.table"
+"is.tclObj"
+"is.tkwin"
+"is.ts"
+"is.tskernel"
+"is.unsorted"
+"is.vector"
+"isAqua"
+"isBaseNamespace"
+"isClass"
+"isClassDef"
+"isClassUnion"
+"isGeneric"
+"isGrammarSymbol"
+"isGroup"
+"isHelp"
+"isIncomplete"
+"isMac"
+"isNamespace"
+"isOpen"
+"isRestart"
+"isRgui"
+"isS4"
+"isSDI"
+"isSealedClass"
+"isSealedMethod"
+"isSeekable"
+"isSymmetric"
+"isSymmetric.matrix"
+"isTRUE"
+"isVirtualClass"
+"isWin"
+"isoMDS"
+"isoreg"
+"jitter"
+"jpeg"
+"julian"
+"julian.Date"
+"julian.POSIXt"
+"kappa"
+"kappa.default"
+"kappa.lm"
+"kappa.qr"
+"kappa.tri"
+"kde2d"
+"kernapply"
+"kernel"
+"kmeans"
+"knots"
+"koCmd"
+"kronecker"
+"kruskal.test"
+"ks.test"
+"ksmooth"
+"l10n_info"
+"labels"
+"labels.default"
+"lag"
+"lag.plot"
+"languageEl"
+"lapply"
+"layout"
+"layout.show"
+"lazyLoad"
+"lazyLoadDBfetch"
+"lbeta"
+"lchoose"
+"lcm"
+"lda"
+"ldahist"
+"legend"
+"length"
+"letters"
+"levels"
+"levels.default"
+"lfactorial"
+"lgamma"
+"library"
+"library.dynam"
+"library.dynam.unload"
+"licence"
+"license"
+"limitedLabels"
+"line"
+"linearizeMlist"
+"lines"
+"lines.default"
+"lines.ts"
+"list"
+"list.files"
+"listFromMethods"
+"listFromMlist"
+"listMethods"
+"listTypes"
+"list_files_with_exts"
+"list_files_with_type"
+"lm"
+"lm.fit"
+"lm.fit.null"
+"lm.gls"
+"lm.influence"
+"lm.ridge"
+"lm.wfit"
+"lm.wfit.null"
+"lmsreg"
+"lmwork"
+"load"
+"loadMethod"
+"loadNamespace"
+"loadURL"
+"loadedNamespaces"
+"loadhistory"
+"loadingNamespaceInfo"
+"loadings"
+"local"
+"localeToCharset"
+"locator"
+"lockBinding"
+"lockEnvironment"
+"loess"
+"loess.control"
+"loess.smooth"
+"log"
+"log10"
+"log1p"
+"log2"
+"logLik"
+"logb"
+"logical"
+"loglin"
+"loglm"
+"loglm1"
+"logtrans"
+"lower.tri"
+"lowess"
+"lqs"
+"lqs.formula"
+"ls"
+"ls.diag"
+"ls.print"
+"ls.str"
+"lsf.str"
+"lsfit"
+"ltsreg"
+"machine"
+"mad"
+"mahalanobis"
+"main.help.url"
+"make.link"
+"make.names"
+"make.packages.html"
+"make.rgb"
+"make.socket"
+"make.unique"
+"makeARIMA"
+"makeActiveBinding"
+"makeClassRepresentation"
+"makeExtends"
+"makeGeneric"
+"makeMethodsList"
+"makePrototypeFromClassDef"
+"makeRweaveLatexCodeRunner"
+"makeStandardGeneric"
+"makepredictcall"
+"manglePackageName"
+"manova"
+"mantelhaen.test"
+"mapply"
+"margin.table"
+"mat.or.vec"
+"match"
+"match.arg"
+"match.call"
+"match.fun"
+"matchSignature"
+"matlines"
+"matplot"
+"matpoints"
+"matrix"
+"mauchley.test"
+"mauchly.test"
+"max"
+"max.col"
+"mca"
+"mcnemar.test"
+"md5sum"
+"mean"
+"mean.Date"
+"mean.POSIXct"
+"mean.POSIXlt"
+"mean.data.frame"
+"mean.default"
+"mean.difftime"
+"median"
+"median.default"
+"medpolish"
+"mem.limits"
+"memory.limit"
+"memory.profile"
+"memory.size"
+"menu"
+"merge"
+"merge.data.frame"
+"merge.default"
+"mergeMethods"
+"message"
+"metaNameUndo"
+"method.skeleton"
+"methodSignatureMatrix"
+"methods"
+"methodsPackageMetaName"
+"mget"
+"min"
+"mirror2html"
+"missing"
+"missingArg"
+"mlistMetaName"
+"mode"
+"model.extract"
+"model.frame"
+"model.frame.aovlist"
+"model.frame.default"
+"model.frame.glm"
+"model.frame.lm"
+"model.matrix"
+"model.matrix.default"
+"model.matrix.lm"
+"model.offset"
+"model.response"
+"model.tables"
+"model.weights"
+"modifyList"
+"month.abb"
+"month.name"
+"monthplot"
+"months"
+"months.Date"
+"months.POSIXt"
+"mood.test"
+"mosaicplot"
+"mtext"
+"mvfft"
+"mvrnorm"
+"n2mfrow"
+"na.action"
+"na.contiguous"
+"na.exclude"
+"na.fail"
+"na.omit"
+"na.pass"
+"names"
+"namespaceExport"
+"namespaceImport"
+"namespaceImportClasses"
+"namespaceImportFrom"
+"namespaceImportMethods"
+"napredict"
+"naprint"
+"naresid"
+"nargs"
+"nchar"
+"nclass.FD"
+"nclass.Sturges"
+"nclass.freq"
+"nclass.scott"
+"ncol"
+"neg.bin"
+"negative.binomial"
+"negexp.SSival"
+"new"
+"new.env"
+"new.packages"
+"newBasic"
+"newClassRepresentation"
+"newEmptyObject"
+"nextn"
+"ngettext"
+"nlevels"
+"nlm"
+"nlminb"
+"nls"
+"nls.control"
+"noquote"
+"normalizePath"
+"nrow"
+"nsl"
+"numeric"
+"numericDeriv"
+"numeric_version"
+"nzchar"
+"objBrowse"
+"objClear"
+"objDir"
+"objInfo"
+"objList"
+"objMenu"
+"objSearch"
+"object.size"
+"objects"
+"offset"
+"old.packages"
+"oldClass"
+"on.exit"
+"oneway.test"
+"open"
+"open.connection"
+"open.srcfile"
+"open.srcfilecopy"
+"optim"
+"optimise"
+"optimize"
+"options"
+"order"
+"order.dendrogram"
+"ordered"
+"outer"
+"p.adjust"
+"pacf"
+"packBits"
+"package.contents"
+"package.dependencies"
+"package.description"
+"package.manager"
+"package.skeleton"
+"packageDescription"
+"packageEvent"
+"packageHasNamespace"
+"packageSlot"
+"packageStartupMessage"
+"packageStatus"
+"package_version"
+"page"
+"pairlist"
+"pairs"
+"pairs.default"
+"pairwise.prop.test"
+"pairwise.t.test"
+"pairwise.table"
+"pairwise.wilcox.test"
+"palette"
+"panel.smooth"
+"par"
+"parSocket"
+"parcoord"
+"parent.env"
+"parent.frame"
+"parse"
+"parse.dcf"
+"parseNamespaceFile"
+"paste"
+"path.expand"
+"pbeta"
+"pbinom"
+"pbirthday"
+"pcauchy"
+"pchisq"
+"pdf"
+"pdf.options"
+"pdfFonts"
+"pentagamma"
+"person"
+"personList"
+"persp"
+"pexp"
+"pf"
+"pgamma"
+"pgeom"
+"phyper"
+"pi"
+"pico"
+"pictex"
+"pie"
+"piechart"
+"pipe"
+"pkgDepends"
+"pkgVignettes"
+"plclust"
+"plnorm"
+"plogis"
+"plot"
+"plot.TukeyHSD"
+"plot.default"
+"plot.density"
+"plot.design"
+"plot.ecdf"
+"plot.lm"
+"plot.mlm"
+"plot.new"
+"plot.spec"
+"plot.spec.coherency"
+"plot.spec.phase"
+"plot.stepfun"
+"plot.ts"
+"plot.window"
+"plot.xy"
+"pmatch"
+"pmax"
+"pmax.int"
+"pmin"
+"pmin.int"
+"pnbinom"
+"png"
+"pnorm"
+"points"
+"points.default"
+"poisson"
+"polr"
+"poly"
+"polygon"
+"polym"
+"polyroot"
+"pos.to.env"
+"possibleExtends"
+"postscript"
+"postscriptFont"
+"postscriptFonts"
+"power"
+"power.anova.test"
+"power.prop.test"
+"power.t.test"
+"ppoints"
+"ppois"
+"ppr"
+"prcomp"
+"predict"
+"predict.glm"
+"predict.lm"
+"predict.mlm"
+"predict.poly"
+"preplot"
+"pretty"
+"prettyNum"
+"princomp"
+"print"
+"print.AsIs"
+"print.DLLInfo"
+"print.DLLInfoList"
+"print.DLLRegisteredRoutines"
+"print.Date"
+"print.NativeRoutineList"
+"print.POSIXct"
+"print.POSIXlt"
+"print.anova"
+"print.atomic"
+"print.by"
+"print.coefmat"
+"print.condition"
+"print.connection"
+"print.data.frame"
+"print.default"
+"print.density"
+"print.difftime"
+"print.factor"
+"print.family"
+"print.formula"
+"print.ftable"
+"print.glm"
+"print.hexmode"
+"print.infl"
+"print.integrate"
+"print.libraryIQR"
+"print.listof"
+"print.lm"
+"print.logLik"
+"print.noquote"
+"print.numeric_version"
+"print.octmode"
+"print.packageInfo"
+"print.proc_time"
+"print.restart"
+"print.rle"
+"print.simple.list"
+"print.srcfile"
+"print.srcref"
+"print.summary.table"
+"print.table"
+"print.terms"
+"print.ts"
+"print.warnings"
+"printCoefmat"
+"printNoClass"
+"prmatrix"
+"proc.time"
+"processSocket"
+"prod"
+"profile"
+"progress"
+"prohibitGeneric"
+"proj"
+"promax"
+"prompt"
+"promptClass"
+"promptData"
+"promptMethods"
+"promptPackage"
+"prop.table"
+"prop.test"
+"prop.trend.test"
+"prototype"
+"provide"
+"ps.options"
+"psi.bisquare"
+"psi.hampel"
+"psi.huber"
+"psigamma"
+"psignrank"
+"pt"
+"ptukey"
+"punif"
+"pushBack"
+"pushBackLength"
+"pweibull"
+"pwilcox"
+"q"
+"qbeta"
+"qbinom"
+"qbirthday"
+"qcauchy"
+"qchisq"
+"qda"
+"qexp"
+"qf"
+"qgamma"
+"qgeom"
+"qhyper"
+"qlnorm"
+"qlogis"
+"qnbinom"
+"qnorm"
+"qpois"
+"qqline"
+"qqnorm"
+"qqnorm.default"
+"qqplot"
+"qr"
+"qr.Q"
+"qr.R"
+"qr.X"
+"qr.coef"
+"qr.default"
+"qr.fitted"
+"qr.qty"
+"qr.qy"
+"qr.resid"
+"qr.solve"
+"qsignrank"
+"qt"
+"qtukey"
+"quade.test"
+"quantile"
+"quantile.default"
+"quarters"
+"quarters.Date"
+"quarters.POSIXt"
+"quartz"
+"quartz.options"
+"quartz.save"
+"quartzFont"
+"quartzFonts"
+"quasi"
+"quasibinomial"
+"quasipoisson"
+"quit"
+"qunif"
+"quote"
+"qweibull"
+"qwilcox"
+"r"
+"r2dtable"
+"rainbow"
+"range"
+"range.default"
+"rank"
+"rapply"
+"rational"
+"raw"
+"rawShift"
+"rawToBits"
+"rawToChar"
+"rbeta"
+"rbind"
+"rbind.data.frame"
+"rbind2"
+"rbinom"
+"rc.getOption"
+"rc.options"
+"rc.settings"
+"rc.status"
+"rcauchy"
+"rchisq"
+"rcond"
+"read.00Index"
+"read.DIF"
+"read.csv"
+"read.csv2"
+"read.dcf"
+"read.delim"
+"read.delim2"
+"read.fortran"
+"read.ftable"
+"read.fwf"
+"read.socket"
+"read.table"
+"read.table.url"
+"readBin"
+"readChar"
+"readCitationFile"
+"readLines"
+"readNEWS"
+"readline"
+"real"
+"reconcilePropertiesAndPrototype"
+"recordGraphics"
+"recordPlot"
+"recover"
+"rect"
+"rect.hclust"
+"reformulate"
+"reg.finalizer"
+"regexpr"
+"registerImplicitGenerics"
+"registerS3method"
+"registerS3methods"
+"relevel"
+"relist"
+"rematchDefinition"
+"remove"
+"remove.packages"
+"removeCConverter"
+"removeClass"
+"removeGeneric"
+"removeMethod"
+"removeMethods"
+"removeMethodsObject"
+"removeTaskCallback"
+"renumerate"
+"renumerate.formula"
+"reorder"
+"rep"
+"rep.Date"
+"rep.POSIXct"
+"rep.POSIXlt"
+"rep.factor"
+"rep.int"
+"replace"
+"replayPlot"
+"replicate"
+"replications"
+"representation"
+"require"
+"requireMethods"
+"resetClass"
+"resetGeneric"
+"reshape"
+"reshapeLong"
+"reshapeWide"
+"resid"
+"residuals"
+"residuals.default"
+"residuals.glm"
+"residuals.lm"
+"restart"
+"restartDescription"
+"restartFormals"
+"retracemem"
+"return"
+"rev"
+"rev.default"
+"rexp"
+"rf"
+"rgamma"
+"rgb"
+"rgb2hsv"
+"rgeom"
+"rhyper"
+"rle"
+"rlm"
+"rlnorm"
+"rlogis"
+"rm"
+"rmTemp"
+"rms.curv"
+"rmultinom"
+"rnbinom"
+"rnegbin"
+"rnorm"
+"round"
+"round.Date"
+"round.POSIXt"
+"round.difftime"
+"row"
+"row.names"
+"row.names.data.frame"
+"row.names.default"
+"rowMeans"
+"rowSums"
+"rownames"
+"rowsum"
+"rowsum.data.frame"
+"rowsum.default"
+"rpois"
+"rsignrank"
+"rstandard"
+"rstandard.glm"
+"rstandard.lm"
+"rstudent"
+"rstudent.glm"
+"rstudent.lm"
+"rt"
+"rug"
+"runif"
+"runmed"
+"rweibull"
+"rwilcox"
+"sQuote"
+"sammon"
+"sample"
+"sapply"
+"save"
+"save.image"
+"saveNamespaceImage"
+"savePlot"
+"savehistory"
+"scale"
+"scale.default"
+"scan"
+"scan.url"
+"scatter.smooth"
+"screen"
+"screeplot"
+"sd"
+"se.contrast"
+"sealClass"
+"search"
+"searchpaths"
+"seek"
+"seek.connection"
+"seemsS4Object"
+"segments"
+"select"
+"select.list"
+"selectMethod"
+"selfStart"
+"sendSocketClients"
+"seq"
+"seq.Date"
+"seq.POSIXt"
+"seq.default"
+"seq.int"
+"seq_along"
+"seq_len"
+"sequence"
+"serialize"
+"sessionData"
+"sessionInfo"
+"set.seed"
+"setAs"
+"setCConverterStatus"
+"setClass"
+"setClassUnion"
+"setDataPart"
+"setEPS"
+"setGeneric"
+"setGenericImplicit"
+"setGroupGeneric"
+"setHook"
+"setIs"
+"setMethod"
+"setNames"
+"setNamespaceInfo"
+"setOldClass"
+"setPS"
+"setPackageName"
+"setPrimitiveMethods"
+"setReplaceMethod"
+"setRepositories"
+"setTkProgressBar"
+"setTxtProgressBar"
+"setValidity"
+"setdiff"
+"setequal"
+"setwd"
+"shQuote"
+"shapiro.test"
+"show"
+"showClass"
+"showConnections"
+"showDefault"
+"showExtends"
+"showMethods"
+"showMlist"
+"showNonASCII"
+"sigToEnv"
+"sign"
+"signalCondition"
+"signature"
+"signif"
+"simpleCondition"
+"simpleError"
+"simpleMessage"
+"simpleWarning"
+"simulate"
+"sin"
+"single"
+"sinh"
+"sink"
+"sink.number"
+"slice.index"
+"slot"
+"slotNames"
+"smooth"
+"smooth.spline"
+"smoothEnds"
+"socketConnection"
+"socketSelect"
+"solve"
+"solve.default"
+"solve.qr"
+"sort"
+"sort.POSIXlt"
+"sort.default"
+"sort.int"
+"sort.list"
+"sortedXyData"
+"source"
+"source.url"
+"spec.ar"
+"spec.pgram"
+"spec.taper"
+"spectrum"
+"spineplot"
+"spline"
+"splinefun"
+"split"
+"split.data.frame"
+"split.default"
+"split.screen"
+"sprintf"
+"sqrt"
+"srcfile"
+"srcfilecopy"
+"srcref"
+"stack"
+"standardGeneric"
+"stars"
+"start"
+"startSocketServer"
+"stat.anova"
+"stderr"
+"stdin"
+"stdout"
+"stdres"
+"stem"
+"step"
+"stepAIC"
+"stepfun"
+"stl"
+"stop"
+"stopSocketServer"
+"stopifnot"
+"storage.mode"
+"str"
+"strOptions"
+"strftime"
+"strheight"
+"stripchart"
+"strptime"
+"strsplit"
+"strtrim"
+"structure"
+"strwidth"
+"strwrap"
+"studres"
+"sub"
+"subset"
+"subset.data.frame"
+"subset.default"
+"subset.matrix"
+"substitute"
+"substituteDirect"
+"substituteFunctionArgs"
+"substr"
+"substring"
+"sum"
+"summary"
+"summary.Date"
+"summary.POSIXct"
+"summary.POSIXlt"
+"summary.aov"
+"summary.aovlist"
+"summary.connection"
+"summary.data.frame"
+"summary.default"
+"summary.factor"
+"summary.glm"
+"summary.infl"
+"summary.lm"
+"summary.manova"
+"summary.matrix"
+"summary.mlm"
+"summary.stepfun"
+"summary.table"
+"summaryRprof"
+"sunflowerplot"
+"superClassDepth"
+"suppressMessages"
+"suppressPackageStartupMessages"
+"suppressWarnings"
+"supsmu"
+"svd"
+"svg"
+"sweep"
+"switch"
+"symbol.C"
+"symbol.For"
+"symbols"
+"symnum"
+"sys.call"
+"sys.calls"
+"sys.frame"
+"sys.frames"
+"sys.function"
+"sys.load.image"
+"sys.nframe"
+"sys.on.exit"
+"sys.parent"
+"sys.parents"
+"sys.save.image"
+"sys.source"
+"sys.status"
+"system"
+"system.file"
+"system.time"
+"t"
+"t.data.frame"
+"t.default"
+"t.test"
+"table"
+"tabulate"
+"tail"
+"tail.matrix"
+"tan"
+"tanh"
+"tapply"
+"taskCallbackManager"
+"tcl"
+"tclArray"
+"tclObj"
+"tclRequire"
+"tclServiceMode"
+"tclVar"
+"tclclose"
+"tclfile.dir"
+"tclfile.tail"
+"tclopen"
+"tclputs"
+"tclread"
+"tclvalue"
+"tcrossprod"
+"tempdir"
+"tempfile"
+"tempvar"
+"termplot"
+"terms"
+"terms.aovlist"
+"terms.default"
+"terms.formula"
+"terms.terms"
+"terrain.colors"
+"testPlatformEquivalence"
+"testVirtual"
+"tetragamma"
+"texi2dvi"
+"text"
+"text.default"
+"textConnection"
+"textConnectionValue"
+"theta.md"
+"theta.ml"
+"theta.mm"
+"tiff"
+"time"
+"timestamp"
+"title"
+"tkProgressBar"
+"tkStartGUI"
+"tkXselection.clear"
+"tkXselection.get"
+"tkXselection.handle"
+"tkXselection.own"
+"tk_select.list"
+"tkactivate"
+"tkadd"
+"tkaddtag"
+"tkbbox"
+"tkbell"
+"tkbind"
+"tkbindtags"
+"tkbutton"
+"tkcanvas"
+"tkcanvasx"
+"tkcanvasy"
+"tkcget"
+"tkcheckbutton"
+"tkchooseDirectory"
+"tkclipboard.append"
+"tkclipboard.clear"
+"tkclose"
+"tkcmd"
+"tkcompare"
+"tkconfigure"
+"tkcoords"
+"tkcreate"
+"tkcurselection"
+"tkdchars"
+"tkdebug"
+"tkdelete"
+"tkdelta"
+"tkdeselect"
+"tkdestroy"
+"tkdialog"
+"tkdlineinfo"
+"tkdtag"
+"tkdump"
+"tkentry"
+"tkentrycget"
+"tkentryconfigure"
+"tkevent.add"
+"tkevent.delete"
+"tkevent.generate"
+"tkevent.info"
+"tkfile.dir"
+"tkfile.tail"
+"tkfind"
+"tkflash"
+"tkfocus"
+"tkfont.actual"
+"tkfont.configure"
+"tkfont.create"
+"tkfont.delete"
+"tkfont.families"
+"tkfont.measure"
+"tkfont.metrics"
+"tkfont.names"
+"tkfraction"
+"tkframe"
+"tkget"
+"tkgetOpenFile"
+"tkgetSaveFile"
+"tkgettags"
+"tkgrab"
+"tkgrab.current"
+"tkgrab.release"
+"tkgrab.set"
+"tkgrab.status"
+"tkgrid"
+"tkgrid.bbox"
+"tkgrid.columnconfigure"
+"tkgrid.configure"
+"tkgrid.forget"
+"tkgrid.info"
+"tkgrid.location"
+"tkgrid.propagate"
+"tkgrid.remove"
+"tkgrid.rowconfigure"
+"tkgrid.size"
+"tkgrid.slaves"
+"tkicursor"
+"tkidentify"
+"tkimage.cget"
+"tkimage.configure"
+"tkimage.create"
+"tkimage.names"
+"tkindex"
+"tkinsert"
+"tkinvoke"
+"tkitembind"
+"tkitemcget"
+"tkitemconfigure"
+"tkitemfocus"
+"tkitemlower"
+"tkitemraise"
+"tkitemscale"
+"tklabel"
+"tklistbox"
+"tklower"
+"tkmark.gravity"
+"tkmark.names"
+"tkmark.next"
+"tkmark.previous"
+"tkmark.set"
+"tkmark.unset"
+"tkmenu"
+"tkmenubutton"
+"tkmessage"
+"tkmessageBox"
+"tkmove"
+"tknearest"
+"tkopen"
+"tkpack"
+"tkpack.configure"
+"tkpack.forget"
+"tkpack.info"
+"tkpack.propagate"
+"tkpack.slaves"
+"tkpager"
+"tkplace"
+"tkplace.configure"
+"tkplace.forget"
+"tkplace.info"
+"tkplace.slaves"
+"tkpopup"
+"tkpost"
+"tkpostcascade"
+"tkpostscript"
+"tkputs"
+"tkradiobutton"
+"tkraise"
+"tkread"
+"tkscale"
+"tkscan.dragto"
+"tkscan.mark"
+"tkscrollbar"
+"tksearch"
+"tksee"
+"tkselect"
+"tkselection.adjust"
+"tkselection.anchor"
+"tkselection.clear"
+"tkselection.from"
+"tkselection.includes"
+"tkselection.present"
+"tkselection.range"
+"tkselection.set"
+"tkselection.to"
+"tkset"
+"tksize"
+"tktag.add"
+"tktag.bind"
+"tktag.cget"
+"tktag.configure"
+"tktag.delete"
+"tktag.lower"
+"tktag.names"
+"tktag.nextrange"
+"tktag.prevrange"
+"tktag.raise"
+"tktag.ranges"
+"tktag.remove"
+"tktext"
+"tktitle"
+"tktoggle"
+"tktoplevel"
+"tktype"
+"tkunpost"
+"tkwait.variable"
+"tkwait.visibility"
+"tkwait.window"
+"tkwidget"
+"tkwindow.cget"
+"tkwindow.configure"
+"tkwindow.create"
+"tkwindow.names"
+"tkwinfo"
+"tkwm.aspect"
+"tkwm.client"
+"tkwm.colormapwindows"
+"tkwm.command"
+"tkwm.deiconify"
+"tkwm.focusmodel"
+"tkwm.frame"
+"tkwm.geometry"
+"tkwm.grid"
+"tkwm.group"
+"tkwm.iconbitmap"
+"tkwm.iconify"
+"tkwm.iconmask"
+"tkwm.iconname"
+"tkwm.iconposition"
+"tkwm.iconwindow"
+"tkwm.maxsize"
+"tkwm.minsize"
+"tkwm.overrideredirect"
+"tkwm.positionfrom"
+"tkwm.protocol"
+"tkwm.resizable"
+"tkwm.sizefrom"
+"tkwm.state"
+"tkwm.title"
+"tkwm.transient"
+"tkwm.withdraw"
+"tkxview"
+"tkxview.moveto"
+"tkxview.scroll"
+"tkyposition"
+"tkyview"
+"tkyview.moveto"
+"tkyview.scroll"
+"toBibtex"
+"toLatex"
+"toString"
+"toString.default"
+"toeplitz"
+"tolower"
+"topenv"
+"topo.colors"
+"toupper"
+"trObjList"
+"trObjSearch"
+"trace"
+"traceOff"
+"traceOn"
+"traceback"
+"tracemem"
+"tracingState"
+"trans3d"
+"transform"
+"transform.data.frame"
+"transform.default"
+"trigamma"
+"truehist"
+"trunc"
+"trunc.Date"
+"trunc.POSIXt"
+"truncate"
+"truncate.connection"
+"try"
+"tryCatch"
+"tryNew"
+"trySilent"
+"ts"
+"ts.intersect"
+"ts.plot"
+"ts.union"
+"tsSmooth"
+"tsdiag"
+"tsp"
+"ttkbutton"
+"ttkcheckbutton"
+"ttkcombobox"
+"ttkentry"
+"ttkframe"
+"ttkimage"
+"ttklabel"
+"ttklabelframe"
+"ttkmenubutton"
+"ttknotebook"
+"ttkpanedwindow"
+"ttkprogressbar"
+"ttkradiobutton"
+"ttkscrollbar"
+"ttkseparator"
+"ttksizegrip"
+"ttktreeview"
+"txtProgressBar"
+"type.convert"
+"typeof"
+"ucv"
+"unRematchDefinition"
+"unclass"
+"undebug"
+"undoc"
+"union"
+"unique"
+"unique.POSIXlt"
+"unique.array"
+"unique.data.frame"
+"unique.default"
+"unique.matrix"
+"uniroot"
+"units"
+"units.difftime"
+"unix"
+"unix.time"
+"unlink"
+"unlist"
+"unloadNamespace"
+"unlockBinding"
+"unname"
+"unserialize"
+"unsplit"
+"unstack"
+"untrace"
+"untracemem"
+"unz"
+"update"
+"update.default"
+"update.formula"
+"update.packageStatus"
+"update.packages"
+"upgrade"
+"upper.tri"
+"url"
+"url.show"
+"utf8ToInt"
+"validObject"
+"validSlotNames"
+"var"
+"var.test"
+"variable.names"
+"varimax"
+"vcov"
+"vector"
+"version"
+"vi"
+"vignette"
+"vignetteDepends"
+"warning"
+"warnings"
+"weekdays"
+"weekdays.Date"
+"weekdays.POSIXt"
+"weighted.mean"
+"weighted.residuals"
+"weights"
+"which"
+"which.max"
+"which.min"
+"width.SJ"
+"wilcox.test"
+"window"
+"with"
+"with.default"
+"withCallingHandlers"
+"withRestarts"
+"withVisible"
+"within"
+"within.data.frame"
+"within.list"
+"write"
+"write.csv"
+"write.csv2"
+"write.dcf"
+"write.ftable"
+"write.matrix"
+"write.socket"
+"write.table"
+"write.table0"
+"writeBin"
+"writeChar"
+"writeLines"
+"write_PACKAGES"
+"wsbrowser"
+"x11"
+"xedit"
+"xemacs"
+"xfig"
+"xgettext"
+"xgettext2pot"
+"xinch"
+"xngettext"
+"xor"
+"xpdrows.data.frame"
+"xspline"
+"xtabs"
+"xy.coords"
+"xyTable"
+"xyinch"
+"xyz.coords"
+"yinch"
+"zapsmall"
+"zip.file.extract"
+]
+
+start_style CSL_DEFAULT
+end_style CSL_OPERATOR
+
+keyword_style CSL_IDENTIFIER => CSL_WORD
+
+pattern NMSTART = '$\w\.\x80-\xff' # inside cset
+pattern CS = '$NMSTART\d_' # inside cset
+pattern WS = '\s\t\r\n' # inside cset
+pattern OP = '!\%&\(\)\*\+,-\/:;<=>\?@\[\]\^\{\}~|'
+pattern NAMESEQ = '[$NMSTART][$CS]*'
+
+initial IN_CSL_DEFAULT
+
+state IN_CSL_DEFAULT:
+
+# The #! is used in R Wiki to denote R output... colorize it differently!
+'#!' : paint(upto, CSL_DEFAULT), => IN_CSL_COMMENT_1
+
+'#' : paint(upto, CSL_DEFAULT), => IN_CSL_COMMENT_LINE_1
+
+/[$WS]+/ : #stay
+
+# We have to lex numbers in states in case we reach EOF right after the
+# "e" in a floating pt constant, for example
+# TODO: check this against the way to specify numbers in R!
+/0[Xx][0-9a-fA-F]+/ : paint(upto, CSL_DEFAULT), paint(include, CSL_NUMBER)
+/[-+]?[0-9]/ : paint(upto, CSL_DEFAULT), => IN_CSL_NUMBER_1
+
+# A "." can start a number only if it doesn't follow a
+# name, many keywords, string, regex, number, or a few
+# closing operators.
+
+/\.\d/ : paint(upto, CSL_DEFAULT), => IN_CSL_NUMBER_2
+/[-+]\./ : paint(upto, CSL_DEFAULT), => IN_CSL_NUMBER_2
+
+'"' : paint(upto, CSL_DEFAULT), => IN_CSL_DSTRING
+'\'' : paint(upto, CSL_DEFAULT), => IN_CSL_SSTRING
+'`' : paint(upto, CSL_DEFAULT), => IN_CSL_BSTRING
+
+/$NAMESEQ/ : paint(upto, CSL_DEFAULT), paint(include, CSL_IDENTIFIER)
+
+# Now a bunch of operators
+# Multi-char operators first
+
+/[$OP]/ : paint(upto, CSL_DEFAULT), redo, => IN_CSL_OP1
+
+################ Comments ################
+# We have only line comments in R => return to default on next line
+state IN_CSL_COMMENT_1 :
+/[\r\n]/ : paint(include, CSL_COMMENTBLOCK), => IN_CSL_DEFAULT
+
+state IN_CSL_COMMENT_LINE_1:
+/[\r\n]/ : paint(upto, CSL_COMMENT), => IN_CSL_DEFAULT
+
+################ Strings ################
+
+state IN_CSL_DSTRING:
+'"' : paint(include, CSL_STRING), => IN_CSL_DEFAULT
+/[\r\n]/ : paint(include, CSL_STRING), => IN_CSL_DSTRING_LINECONT
+/\\./ : #stay, Don't miscount backslash at end
+
+# Work around the single-line match limit.
+state IN_CSL_DSTRING_LINECONT:
+/[\r\n]/ : #stay
+/\\./ : => IN_CSL_DSTRING
+'"' : paint(include, CSL_STRING), => IN_CSL_DEFAULT
+/./ : => IN_CSL_DSTRING
+
+state IN_CSL_SSTRING:
+'\'' : paint(include, CSL_STRING), => IN_CSL_DEFAULT
+/[\r\n]/ : paint(include, CSL_STRING), => IN_CSL_SSTRING_LINECONT
+/\\./ : #stay
+
+state IN_CSL_SSTRING_LINECONT:
+/[\r\n]/ : #stay
+/\\./ : => IN_CSL_SSTRING
+"'" : paint(include, CSL_STRING), => IN_CSL_DEFAULT
+/./ : => IN_CSL_SSTRING
+
+state IN_CSL_BSTRING:
+'`' : paint(include, CSL_STRING), => IN_CSL_DEFAULT
+/[\r\n]/ : paint(include, CSL_STRING), => IN_CSL_BSTRING_LINECONT
+
+# Work around the single-line match limit.
+state IN_CSL_BSTRING_LINECONT:
+/[\r\n]/ : #stay
+'`' : paint(include, CSL_STRING), => IN_CSL_DEFAULT
+/./ : => IN_CSL_BSTRING
+
+################ Numbers ################
+# TODO: check against all number styles in R!
+state IN_CSL_NUMBER_1 :
+'.' : => IN_CSL_NUMBER_2
+/[\d]/ : #stay
+/[Ee][-+]?/ : => IN_CSL_NUMBER_3
+/./ : paint(upto, CSL_NUMBER), redo, => IN_CSL_DEFAULT
+
+state IN_CSL_NUMBER_2:
+/[\d]/ : #stay
+/[Ee][-+]?/ : => IN_CSL_NUMBER_3
+'.' : paint(upto, CSL_NUMBER), paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+/./ : paint(upto, CSL_NUMBER), redo, => IN_CSL_DEFAULT
+
+state IN_CSL_NUMBER_3:
+/[^\d]/ : paint(upto, CSL_NUMBER), redo, => IN_CSL_DEFAULT
+
+# If we're here, we've painted the previous part, and
+# just need to figure out which operator we have, doing
+# greedy left-to-right matching ('+++' parses as /++/, /+/)
+
+state IN_CSL_OP1:
+# Single-char operator -- all ops work as standalone chars
+
+/[$OP](?:(?![$OP])|$)/ : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+
+# Otherwise look from longest to smallest
+/%.+%/ : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'%in%' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'%*%' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'%/%' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'%o%' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'%x%' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+':::' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'<<-' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'->>' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'%%' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'::' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'<-' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'<=' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'==' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'!=' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'->' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'>=' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'&&' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+'||' : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+# The fallback
+/[$OP]/ : paint(include, CSL_OPERATOR), => IN_CSL_DEFAULT
+
+################ End States ################
+
+# We might want to generalize this... by allowing named tokens.
+# Currently we just wrap things with a token-check
+
+# How to avoid specifying too much:
+
+# Only reject list: accept all others
+# Only accept list: reject everything else
+# Only skip list: reject everything else, but
+# having only a set of skip items is redundant, as we'll end up rejecting
+
+# If a style has two of the lists, the missing one is the default
+
+# If a style has all three lists, anything else is rejected
+
+token_check:
+CSL_OPERATOR: reject [")", "]", "}"]
+
+# Should we use this???
+CSL_WORD: reject [FALSE TRUE NA NaN Inf NULL function return]
+
+# All other keywords prefer an RE
+
+CSL_DEFAULT: skip all
+CSL_COMMENT: skip all
+CSL_COMMENTBLOCK: skip all
+
+# Fold info tokens
+
+# Sometimes this should line up, when we're initializing an object.
+# Hard to get this right without doing the same thing we do with
+# Perl's notion of "variable indexer" vs. "operator".
+
+fold "{" CSL_OPERATOR +
+fold "}" CSL_OPERATOR -
Modified: komodo/TODO
===================================================================
--- komodo/TODO 2008-08-31 17:18:13 UTC (rev 50)
+++ komodo/TODO 2008-08-31 19:02:37 UTC (rev 51)
@@ -2,17 +2,32 @@
* Object explorer: refresh content, tooltip, menu, changer fonction refresh
-* sv.r.source() is buggy + add in menus/toolbars
+* svIO and svViews in relation to objects explorer
-* Package help, vignettes, demos, packages management
+* sv.r.source("all") is buggy + add in menus/toolbars
-* doBraceMatch
+* A more convenient Help page + rework R Help/R Help Search (external)
-* setwd() with GUI
+* GUI for vignettes and demos
-* Finalize the R starting functions and place them in extensions; eliminate
-"R kernels"
+* doBraceMatch()
+* Tidy R code tool
+
+* Use JSON to transport objects between R and Komodo
+
+* Avoid restarting a second time when the toolbox is installed + extract dir box
+
+* R does not find Komodo (on Windows, and Linux) + way to reactivate Komodo window
+
+* Problem installing a .xpi file from R in Windows
+
+* setwd() with GUI, allow choosing starting dir for R kernels started from Komodo
+
+* Configuration of R when started from .RData files.
+
+* Button for loading/saving workspace and history
+
* R reference cards
* R completion
@@ -25,7 +40,7 @@
* Make R and Rd syntax highlighting; sweave later on
-* Allow for projects in packages (developments and binaries)
+* Projects in packages (developments and binaries) + SciViews-K Unit features
* Make the User's and Developer's manuals
More information about the Sciviews-commits
mailing list