diff --git a/src/Plugin/Field/FieldFormatter/RewriteFieldFormatter.php b/src/Plugin/Field/FieldFormatter/RewriteFieldFormatter.php
index 6e39b48..06d3ffa 100644
--- a/src/Plugin/Field/FieldFormatter/RewriteFieldFormatter.php
+++ b/src/Plugin/Field/FieldFormatter/RewriteFieldFormatter.php
@@ -113,6 +113,15 @@ class RewriteFieldFormatter extends FormatterBase implements ContainerFactoryPlu
       '#default_value' => $this->settings['prefix'],
     );
 
+    if (\Drupal::moduleHandler()->moduleExists('token')) {
+      $element['tokens_prefix'] = array(
+        '#theme' => 'token_tree_link',
+        '#token_types' => ['node'],
+        '#global_types' => TRUE,
+        '#click_insert' => TRUE,
+      );
+    }
+
     $element['suffix'] = array(
       '#title' => $this->t('Suffix'),
       '#type' => 'textfield',
@@ -120,6 +129,15 @@ class RewriteFieldFormatter extends FormatterBase implements ContainerFactoryPlu
       '#default_value' => $this->settings['suffix'],
     );
 
+    if (\Drupal::moduleHandler()->moduleExists('token')) {
+      $element['tokens_suffix'] = array(
+        '#theme' => 'token_tree_link',
+        '#token_types' => ['node'],
+        '#global_types' => TRUE,
+        '#click_insert' => TRUE,
+      );
+    }
+
     $element['custom_text'] = array(
       '#title' => $this->t('Custom Text'),
       '#type' => 'textarea',
@@ -127,6 +145,20 @@ class RewriteFieldFormatter extends FormatterBase implements ContainerFactoryPlu
       '#default_value' => $this->settings['custom_text'],
     );
 
+    if (\Drupal::moduleHandler()->moduleExists('token')) {
+      $element['tokens_custom_text'] = array(
+        '#theme' => 'token_tree_link',
+        '#token_types' => ['node'],
+        '#global_types' => TRUE,
+        '#click_insert' => TRUE,
+      );
+    }
+    else {
+      $element['token']['token_help'] = array(
+        '#markup' => '<p>' . t('Enable the <a href="@drupal-token">Token module</a> to view the available token browser.', array('@drupal-token' => 'http://drupal.org/project/token')) . '</p>',
+      );
+    }
+
     $element['make_link'] = array(
       '#title' => $this->t('Output this field as a custom link'),
       '#type' => 'checkbox',
@@ -208,10 +240,14 @@ class RewriteFieldFormatter extends FormatterBase implements ContainerFactoryPlu
     $custom_text = $this->settings['custom_text'];
     $link_path = strip_tags($this->settings['link_path']);
     $text_case = $this->settings['text_case'];
+
+    $node = $items->getEntity();
+    $token_service = \Drupal::token();
     foreach ($items as $delta => $item) {
       $output = $item->value;
       if (!empty($output) && !empty($custom_text)) {
-        $output = $custom_text;
+        // Token Replacement.
+        $output = $token_service->replace($custom_text, array('node'=>$node),  $options = array());
       }
       if ($text_case != 'none') {
         $plugin = $this->transformCaseManager->getDefinition($text_case);
@@ -221,10 +257,10 @@ class RewriteFieldFormatter extends FormatterBase implements ContainerFactoryPlu
         $output = $this->makeLink($link_path, $output);
       }
       if (!empty($prefix)) {
-        $output = $prefix . $output;
+        $output = $token_service->replace($prefix, array('node'=>$node),  $options = array()) . $output;
       }
       if (!empty($suffix)) {
-        $output = $output . $suffix;
+        $output = $output . $token_service->replace($suffix, array('node'=>$node),  $options = array());
       }
       $elements[$delta] = [
         '#markup' => $output
