From 8603ca827efa40014b8d66cd5d6cb1c51b58fe35 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sat, 11 Jul 2020 13:35:59 +0200 Subject: [PATCH] Theme Editor: auto-completion improvements: - include reference completions in value completions (if already entered text is empty) - order completions: 1st color functions, 2nd @refs, 3rd $refs - exclude platform specific keys from reference provider --- .../flatlaf/themeeditor/FlatCompletionProvider.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatCompletionProvider.java b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatCompletionProvider.java index 6a55af55..e709bc28 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatCompletionProvider.java +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatCompletionProvider.java @@ -144,7 +144,7 @@ class FlatCompletionProvider private CompletionProvider getValueProvider() { if( valueProvider == null ) - valueProvider = new ValueCompletionProvider(); + valueProvider = new ValueCompletionProvider( getReferenceProvider() ); return valueProvider; } @@ -286,13 +286,16 @@ class FlatCompletionProvider completions.clear(); for( String key : keys ) { - if( key.startsWith( "*." ) ) + if( key.startsWith( "*." ) || key.startsWith( "[" ) ) continue; if( !key.startsWith( "@" ) ) key = "$".concat( key ); - completions.add( new BasicCompletion( this, key ) ); + BasicCompletion completion = new BasicCompletion( this, key ); + if( key.startsWith( "@" ) ) + completion.setRelevance( 1 ); + completions.add( completion ); } Collections.sort(completions); } @@ -307,7 +310,8 @@ class FlatCompletionProvider extends BaseCompletionProvider implements ParameterChoicesProvider { - ValueCompletionProvider() { + ValueCompletionProvider( CompletionProvider parent ) { + setParent( parent ); setAutoActivationRules( true, null ); setParameterizedCompletionParams( '(', ",", ')' ); setParameterChoicesProvider( this ); @@ -361,6 +365,7 @@ class FlatCompletionProvider }; f.setParams( params ); + f.setRelevance( 10 ); addCompletion( f ); }