private void updateCompletions( JTextComponent comp ) {
			FlatSyntaxTextArea fsta = (FlatSyntaxTextArea) comp;
			Set<String> keys = fsta.propertiesSupport.getAllKeys();
			if( Objects.equals( keys, lastKeys ) )
				return;
			lastKeys = keys;

			// get key at current line
			String keyAtCurrentLine = null;
			try {
				int caretPosition = fsta.getCaretPosition();
				int currentLine = fsta.getLineOfOffset( caretPosition );
				int lineStart = fsta.getLineStartOffset( currentLine );
				int lineEnd = fsta.getLineEndOffset( currentLine );
				String line = fsta.getText( lineStart, lineEnd - lineStart );
				Properties properties = new Properties();
				properties.load( new StringReader( line ) );
				if( !properties.isEmpty() )
					keyAtCurrentLine = (String) properties.keys().nextElement();
			} catch( BadLocationException | IOException ex ) {
				ex.printStackTrace();
			}

			Set<String> completionKeys = new HashSet<>( knownKeys );
			for( String key : keys ) {
				if( key.startsWith( "*." ) || key.startsWith( "[" ) )
					continue;

				// ignore key at current line
				if( key.equals( keyAtCurrentLine ) )
					continue;

				completionKeys.add( key );
			}
			setCompletions( completionKeys );
		}
A completion provider for keys, which always uses all known/predefined keys.
flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatCompletionProvider.java