                    (forward-line (1- (plist-get suggestion :line)))
                    (move-to-column (- (plist-get suggestion :column) 1))
                    (delete-char (length (plist-get suggestion :typo)))
-                   (insert (plist-get suggestion :replacement))))))
+                   (insert (plist-get suggestion :replacement))))
+                (add-missing-fields
+                 (save-excursion
+                   (goto-char (point-min))
+                   (forward-line (1- (plist-get suggestion :line)))
+                   (move-to-column (- (plist-get suggestion :column) 1))
+                   (search-forward "{")
+                   (let ((first t))
+                     (mapc (lambda (field)
+                             (insert (if first "" ", ") field " = _" )
+                             (setq first nil))
+                           (plist-get suggestion :fields)))))))
           ;; # Changes that do increase/decrease line numbers
           ;;
           ;; Remove redundant constraints

     (list :buffer (current-buffer) :cont cont)
     (lambda (state reply)
       (if (or (string-match "^Couldn't guess" reply)
                   (string-match "^Unable to " reply)
                   (intero-parse-error reply))
           (funcall (plist-get state :cont) (list))
         (with-current-buffer (plist-get state :buffer)
           (let ((candidates

                   (intero-make-temp-file
                    "intero" nil
                    (concat "-STAGING." (if (buffer-file-name)
                                            (file-name-extension (buffer-file-name))
                                          "hs"))))))
      (with-temp-file fname
        (insert contents))
      fname)))
