org.fife.rsta.ac.LanguageSupport Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of languagesupport Show documentation
Show all versions of languagesupport Show documentation
A library adding code completion and other advanced features for Java, JavaScript, Perl, and other languages to RSyntaxTextArea.
/*
* 03/21/2010
*
* Copyright (C) 2010 Robert Futrell
* robert_futrell at users.sourceforge.net
* http://fifesoft.com/rsyntaxtextarea
*
* This library is distributed under a modified BSD license. See the included
* RSTALanguageSupport.License.txt file for details.
*/
package org.fife.rsta.ac;
import javax.swing.ListCellRenderer;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
/**
* "Extra" support for a programming language (code completion, parser, etc.).
*
* @author Robert Futrell
* @version 1.0
*/
public interface LanguageSupport {
// /**
// * Client property set on RSyntaxTextArea
s referencing the
// * AutoCompletion
instance providing its completion choices.
// */
// public static final String PROPERTY_AUTO_COMPLETION =
// "org.fife.rsta.ac.AutoCompletion";
/**
* Client property set on RSyntaxTextArea
s referencing the
* Parser
instance parsing its source code. This will be
* null
if a language support does not install such a parser.
*/
public static final String PROPERTY_LANGUAGE_PARSER =
"org.fife.rsta.ac.LanguageSupport.LanguageParser";
/**
* Returns the delay between when the user types a character and when the
* code completion popup should automatically appear (if applicable).
* This parameter is only honored if {@link #isAutoActivationEnabled()}
* returns true
.
*
* @return The delay, in milliseconds.
* @see #setAutoActivationDelay(int)
*/
public int getAutoActivationDelay();
/**
* Returns the default list cell renderer to install for all text areas
* with this language support installed.
*
* @return The renderer. This will never be null
.
* @see #setDefaultCompletionCellRenderer(ListCellRenderer)
*/
public ListCellRenderer getDefaultCompletionCellRenderer();
/**
* REturns whether the description window is also shown when the
* completion list is displayed, for editors of this language.
*
* @return Whether the description window is shown.
* @see #setShowDescWindow(boolean)
*/
public boolean getShowDescWindow();
/**
* Returns whether auto-activation is enabled (that is, whether the
* completion popup will automatically appear after a delay when the user
* types an appropriate character). Note that this parameter will be
* ignored if auto-completion is disabled.
*
* @return Whether auto-activation is enabled.
* @see #setAutoActivationEnabled(boolean)
* @see #getAutoActivationDelay()
* @see #isAutoCompleteEnabled()
*/
public boolean isAutoActivationEnabled();
/**
* Returns whether auto-completion is enabled for this language. If
* this value is false
, then ctrl+space
will
* do nothing.
*
* @return Whether auto-completion is enabled.
* @see #setAutoCompleteEnabled(boolean)
*/
public boolean isAutoCompleteEnabled();
/**
* Installs this support.
*
* @param textArea The text area to install onto.
* @see #uninstall(RSyntaxTextArea)
*/
public void install(RSyntaxTextArea textArea);
/**
* Returns whether parameter assistance is enabled for editors of this
* language. Note that some language do not support parameter assistance
* at all; in those cases, this parameter does nothing.
*
* @return Whether parameter assistance is enabled for editors of this
* language.
* @see #setParameterAssistanceEnabled(boolean)
*/
public boolean isParameterAssistanceEnabled();
/**
* Sets the delay between when the user types a character and when the
* code completion popup should automatically appear (if applicable).
* This parameter is only honored if {@link #isAutoActivationEnabled()}
* returns true
.
*
* @param ms The delay, in milliseconds. This should be greater than zero.
* @see #getAutoActivationDelay()
*/
public void setAutoActivationDelay(int ms);
/**
* Toggles whether auto-activation is enabled. Note that auto-activation
* also depends on auto-completion itself being enabled.
*
* @param enabled Whether auto-activation is enabled.
* @see #isAutoActivationEnabled()
* @see #setAutoActivationDelay(int)
*/
public void setAutoActivationEnabled(boolean enabled);
/**
* Toggles whether auto-completion is enabled for this language. If
* this is set to false
, then ctrl+space
will
* do nothing.
*
* @param enabled Whether auto-completion should be enabled.
* @see #isAutoCompleteEnabled()
*/
public void setAutoCompleteEnabled(boolean enabled);
/**
* Sets the default list cell renderer to install for all text areas with
* this language support installed. This renderer will be shared amongst
* all text areas.
*
* @param r The renderer. If this is null
, a default will
* be used.
* @see #getDefaultCompletionCellRenderer()
*/
public void setDefaultCompletionCellRenderer(ListCellRenderer r);
/**
* Toggles whether parameter assistance is enabled for editors of this
* language.
*
* @param enabled Whether parameter assistance is enabled.
* @see #isParameterAssistanceEnabled()
*/
public void setParameterAssistanceEnabled(boolean enabled);
/**
* Toggles whether the description window should also be shown when the
* completion list is displayed, for editors of this language.
*
* @param show Whether to show the description window.
* @see #getShowDescWindow()
*/
public void setShowDescWindow(boolean show);
/**
* Uninstalls this support.
*
* @param textArea The text area to uninstall from.
* @see #install(RSyntaxTextArea)
*/
public void uninstall(RSyntaxTextArea textArea);
}