mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-06 22:10:54 +03:00
Theme Editor: added auto-completion for "amount" and "options" parameters of color functions
This commit is contained in:
@@ -34,6 +34,7 @@ import org.fife.ui.autocomplete.CompletionProvider;
|
|||||||
import org.fife.ui.autocomplete.CompletionProviderBase;
|
import org.fife.ui.autocomplete.CompletionProviderBase;
|
||||||
import org.fife.ui.autocomplete.DefaultCompletionProvider;
|
import org.fife.ui.autocomplete.DefaultCompletionProvider;
|
||||||
import org.fife.ui.autocomplete.FunctionCompletion;
|
import org.fife.ui.autocomplete.FunctionCompletion;
|
||||||
|
import org.fife.ui.autocomplete.ParameterChoicesProvider;
|
||||||
import org.fife.ui.autocomplete.ParameterizedCompletion;
|
import org.fife.ui.autocomplete.ParameterizedCompletion;
|
||||||
import org.fife.ui.autocomplete.ParameterizedCompletion.Parameter;
|
import org.fife.ui.autocomplete.ParameterizedCompletion.Parameter;
|
||||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
||||||
@@ -304,10 +305,12 @@ class FlatCompletionProvider
|
|||||||
*/
|
*/
|
||||||
private static class ValueCompletionProvider
|
private static class ValueCompletionProvider
|
||||||
extends BaseCompletionProvider
|
extends BaseCompletionProvider
|
||||||
|
implements ParameterChoicesProvider
|
||||||
{
|
{
|
||||||
ValueCompletionProvider() {
|
ValueCompletionProvider() {
|
||||||
setAutoActivationRules( true, null );
|
setAutoActivationRules( true, null );
|
||||||
setParameterizedCompletionParams( '(', ",", ')' );
|
setParameterizedCompletionParams( '(', ",", ')' );
|
||||||
|
setParameterChoicesProvider( this );
|
||||||
|
|
||||||
addFunction( "rgb",
|
addFunction( "rgb",
|
||||||
"red", "0-255 or 0-100%",
|
"red", "0-255 or 0-100%",
|
||||||
@@ -343,7 +346,8 @@ class FlatCompletionProvider
|
|||||||
private void addFunction( String name, String... paramNamesAndDescs ) {
|
private void addFunction( String name, String... paramNamesAndDescs ) {
|
||||||
List<Parameter> params = new ArrayList<>();
|
List<Parameter> params = new ArrayList<>();
|
||||||
for( int i = 0; i < paramNamesAndDescs.length; i += 2 ) {
|
for( int i = 0; i < paramNamesAndDescs.length; i += 2 ) {
|
||||||
boolean endParam = i + 2 >= paramNamesAndDescs.length;
|
// boolean endParam = i + 2 >= paramNamesAndDescs.length;
|
||||||
|
boolean endParam = false;
|
||||||
Parameter param = new Parameter( null, paramNamesAndDescs[i], endParam );
|
Parameter param = new Parameter( null, paramNamesAndDescs[i], endParam );
|
||||||
param.setDescription( paramNamesAndDescs[i + 1] );
|
param.setDescription( paramNamesAndDescs[i + 1] );
|
||||||
params.add( param );
|
params.add( param );
|
||||||
@@ -359,5 +363,25 @@ class FlatCompletionProvider
|
|||||||
f.setParams( params );
|
f.setParams( params );
|
||||||
addCompletion( f );
|
addCompletion( f );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Completion> getParameterChoices( JTextComponent tc, Parameter param ) {
|
||||||
|
switch( param.getName() ) {
|
||||||
|
case "amount":
|
||||||
|
return createParameterChoices( "5%", "10%", "15%", "20%", "25%" );
|
||||||
|
|
||||||
|
case "options":
|
||||||
|
return createParameterChoices( "relative", "autoInverse", "noAutoInverse", "lazy", "derived" );
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Completion> createParameterChoices( String... values ) {
|
||||||
|
List<Completion> result = new ArrayList<>();
|
||||||
|
for( String value : values )
|
||||||
|
result.add( new BasicCompletion( this, value ) );
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user