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
This commit is contained in:
Karl Tauber
2020-07-11 13:35:59 +02:00
parent 6b148a59da
commit 8603ca827e

View File

@@ -144,7 +144,7 @@ class FlatCompletionProvider
private CompletionProvider getValueProvider() { private CompletionProvider getValueProvider() {
if( valueProvider == null ) if( valueProvider == null )
valueProvider = new ValueCompletionProvider(); valueProvider = new ValueCompletionProvider( getReferenceProvider() );
return valueProvider; return valueProvider;
} }
@@ -286,13 +286,16 @@ class FlatCompletionProvider
completions.clear(); completions.clear();
for( String key : keys ) { for( String key : keys ) {
if( key.startsWith( "*." ) ) if( key.startsWith( "*." ) || key.startsWith( "[" ) )
continue; continue;
if( !key.startsWith( "@" ) ) if( !key.startsWith( "@" ) )
key = "$".concat( key ); 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); Collections.sort(completions);
} }
@@ -307,7 +310,8 @@ class FlatCompletionProvider
extends BaseCompletionProvider extends BaseCompletionProvider
implements ParameterChoicesProvider implements ParameterChoicesProvider
{ {
ValueCompletionProvider() { ValueCompletionProvider( CompletionProvider parent ) {
setParent( parent );
setAutoActivationRules( true, null ); setAutoActivationRules( true, null );
setParameterizedCompletionParams( '(', ",", ')' ); setParameterizedCompletionParams( '(', ",", ')' );
setParameterChoicesProvider( this ); setParameterChoicesProvider( this );
@@ -361,6 +365,7 @@ class FlatCompletionProvider
}; };
f.setParams( params ); f.setParams( params );
f.setRelevance( 10 );
addCompletion( f ); addCompletion( f );
} }