/*
* CodeSearchServerOperations.java
*
* Copyright (C) 2009-12 by RStudio, Inc.
*
* Unless you have received this program directly from RStudio pursuant
* to the terms of a commercial license agreement with RStudio, then
* this program is licensed to you under the terms of version 3 of the
* GNU Affero General Public License. This program is distributed WITHOUT
* ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
* AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
*
*/
package org.rstudio.studio.client.workbench.codesearch.model;
import org.rstudio.studio.client.server.ServerRequestCallback;
public interface CodeSearchServerOperations
{
/*
* Search all currently managed code (project or open source docs
* for a file or function matching the specified term)
*/
void searchCode(
String term,
int maxResults,
ServerRequestCallback<CodeSearchResults> requestCallback);
/**
* Get the definition of the specified object (if known).
* We pass a line and pos rather than a function name because that is
* the level of fidelity we have in the editor -- we use R on the server
* to sort out the name of the token to lookup. Possible return types
* include functions defined on the search path, functions in the source
* index, and data frames.
*/
void getObjectDefinition(
String line,
int pos,
ServerRequestCallback<ObjectDefinition> requestCallback);
/*
* Find the passed function in the search path (searching starting
* at the environment specified by fromWhere, or the global env
* if fromWhere is null). SearchPathFunctionDefinition will be as
* follows on return:
* - getName -- the parsed token from line/pos or null if no
* token could be parsed
*
* - getNamespace -- if the name was found in a namespace on the
* search path then this is the namespace, else null
*
* - getCode -- printed variation of the function if it was
* found within a namespace
*/
void findFunctionInSearchPath(
String line,
int pos,
String fromWhere,
ServerRequestCallback<SearchPathFunctionDefinition> requestCallback);
/*
* Get the function identified by the following name/namespace.
* SearchPathFunctionDefinition will be as follows on return:
* - getName -- the passed name
*
* - getNamespace -- the passed namespace
*
* - getCode -- printed variation of the function (or error
* message if it wasn't found
*/
void getSearchPathFunctionDefinition(
String name,
String namespace,
ServerRequestCallback<SearchPathFunctionDefinition> requestCallback);
/*
* Get a function which is known to be an S3 or S4 method. returns null
* if no such method could be located
*/
void getMethodDefinition(
String name,
ServerRequestCallback<SearchPathFunctionDefinition> requestCallback);
}