diff --git a/core/modules/ckeditor/src/CKEditorPluginConfigurableInterface.php b/core/modules/ckeditor/src/CKEditorPluginConfigurableInterface.php
index a5084fd..0ced0c1 100644
--- a/core/modules/ckeditor/src/CKEditorPluginConfigurableInterface.php
+++ b/core/modules/ckeditor/src/CKEditorPluginConfigurableInterface.php
@@ -42,8 +42,8 @@
    * @param \Drupal\editor\Entity\Editor $editor
    *   A configured text editor object.
    *
-   * @return array|FALSE
-   *   A render array for the settings form, or FALSE if there is none.
+   * @return array
+   *   A render array for the settings form.
    */
   public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor);
 
diff --git a/core/modules/ckeditor/src/CKEditorPluginManager.php b/core/modules/ckeditor/src/CKEditorPluginManager.php
index 07d811f..e862070 100644
--- a/core/modules/ckeditor/src/CKEditorPluginManager.php
+++ b/core/modules/ckeditor/src/CKEditorPluginManager.php
@@ -159,26 +159,29 @@ public function injectPluginSettingsForm(array &$form, FormStateInterface $form_
     foreach (array_keys($definitions) as $plugin_id) {
       $plugin = $this->createInstance($plugin_id);
       if ($plugin instanceof CKEditorPluginConfigurableInterface) {
-        $plugin_settings_form = array();
-        $form['plugins'][$plugin_id] = array(
-          '#type' => 'details',
-          '#title' => $definitions[$plugin_id]['label'],
-          '#open' => TRUE,
-          '#group' => 'editor][settings][plugin_settings',
-          '#attributes' => array(
-            'data-ckeditor-plugin-id' => $plugin_id,
-          ),
-        );
-        // Provide enough metadata for the drupal.ckeditor.admin library to
-        // allow it to automatically show/hide the vertical tab containing the
-        // settings for this plugin. Only do this if it's a CKEditor plugin that
-        // just provides buttons, don't do this if it's a contextually enabled
-        // CKEditor plugin. After all, in the latter case, we can't know when
-        // its settings should be shown!
-        if ($plugin instanceof CKEditorPluginButtonsInterface && !$plugin instanceof CKEditorPluginContextualInterface) {
-          $form['plugins'][$plugin_id]['#attributes']['data-ckeditor-buttons'] = implode(' ', array_keys($plugin->getButtons()));
+        $plugin_settings_form = $plugin->settingsForm(array(), $form_state, $editor);
+
+        if (!empty($plugin_settings_form)) {
+          $form['plugins'][$plugin_id] = array(
+            '#type' => 'details',
+            '#title' => $definitions[$plugin_id]['label'],
+            '#open' => TRUE,
+            '#group' => 'editor][settings][plugin_settings',
+            '#attributes' => array(
+              'data-ckeditor-plugin-id' => $plugin_id,
+            ),
+          );
+          // Provide enough metadata for the drupal.ckeditor.admin library to
+          // allow it to automatically show/hide the vertical tab containing the
+          // settings for this plugin. Only do this if it's a CKEditor plugin that
+          // just provides buttons, don't do this if it's a contextually enabled
+          // CKEditor plugin. After all, in the latter case, we can't know when
+          // its settings should be shown!
+          if ($plugin instanceof CKEditorPluginButtonsInterface && !$plugin instanceof CKEditorPluginContextualInterface) {
+            $form['plugins'][$plugin_id]['#attributes']['data-ckeditor-buttons'] = implode(' ', array_keys($plugin->getButtons()));
+          }
+          $form['plugins'][$plugin_id] += $plugin_settings_form;
         }
-        $form['plugins'][$plugin_id] += $plugin->settingsForm($plugin_settings_form, $form_state, $editor);
       }
     }
   }
