* 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.).
public interface LanguageSupport {
// * Client property set on <code>RSyntaxTextArea</code>s referencing the
// * <code>AutoCompletion</code> instance providing its completion choices.
// public static final String PROPERTY_AUTO_COMPLETION =
// "org.fife.rsta.ac.AutoCompletion";
* Client property set on <code>RSyntaxTextArea</code>s referencing the
* <code>Parser</code> instance parsing its source code. This will be
* <code>null</code> 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 <code>true</code>.
* @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 <code>null</code>.
* @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 <code>false</code>, then <code>ctrl+space</code> will
* @return Whether auto-completion is enabled.
* @see #setAutoCompleteEnabled(boolean)
public boolean isAutoCompleteEnabled();
* @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
* @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 <code>true</code>.
* @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 <code>false</code>, then <code>ctrl+space</code> will
* @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
* @param r The renderer. If this is <code>null</code>, a default will
* @see #getDefaultCompletionCellRenderer()
public void setDefaultCompletionCellRenderer(ListCellRenderer r);
* Toggles whether parameter assistance is enabled for editors of this
* @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);