199199
200200(defvar elixir-mode--eval-filename " elixir-mode-tmp-eval-file.exs" )
201201
202+ (defvar elixir-quoted--buffer-name " *elixir-quoted*" )
203+
202204(defvar elixir-basic-offset 2 )
203205(defvar elixir-key-label-offset 0 )
204206(defvar elixir-match-label-offset 2 )
@@ -492,6 +494,19 @@ Argument FILE-NAME ."
492494 (when (string= compiler-output " " )
493495 (message " Compiled and saved as %s " (elixir-mode-compiled-file-name)))))
494496
497+ (defun elixir-quoted--initialize-buffer (quoted )
498+ (pop-to-buffer elixir-quoted--buffer-name)
499+ (setq buffer-undo-list nil ) ; Get rid of undo information from
500+ ; previous expansions
501+ (let ((inhibit-read-only t )
502+ (buffer-undo-list t )) ; Ignore undo information
503+ (erase-buffer )
504+ (insert quoted)
505+ (goto-char (point-min ))
506+ (elixir-mode)
507+ (elixir-quoted-minor-mode 1 )
508+ (font-lock-ensure )))
509+
495510;;;### autoload
496511(defun elixir-mode-iex (&optional args-p )
497512 " Elixir mode interactive REPL.
@@ -542,7 +557,7 @@ Optional argument ARGS-P ."
542557 file))
543558
544559(defun elixir-mode--code-string-to-quoted-command (file )
545- (format " %s -e 'IO.puts inspect(elem(Code.string_to_quoted(File.read!(\" %s \" )), 1))'"
560+ (format " %s -e 'IO.puts inspect(elem(Code.string_to_quoted(File.read!(\" %s \" )), 1), pretty: true )'"
546561 elixir-mode-command
547562 file))
548563
@@ -566,7 +581,7 @@ Optional argument ARGS-P ."
566581
567582(defun elixir-mode--string-to-quoted (string )
568583 (let* ((output (elixir-mode--execute-elixir-with-code-string-to-quoted string)))
569- (message output)))
584+ (elixir-quoted--initialize-buffer output)))
570585
571586(defun elixir-mode-eval-on-region (beg end )
572587 " Evaluate the Elixir code on the marked region.
@@ -646,6 +661,12 @@ Argument END End of the region."
646661 (t
647662 (remove-hook 'after-save-hook 'elixir-mode-compile-file t ))))
648663
664+ (define-minor-mode elixir-quoted-minor-mode
665+ " Minor mode for displaying elixir quoted expressions"
666+ :group 'elixir-quoted :lighter " quoted"
667+ :keymap '((" q" . quit-window))
668+ (setq buffer-read-only t ))
669+
649670;;;### autoload
650671(defun elixir-mode-run-tests ()
651672 " Run ERT test for `elixir-mode' ."
0 commit comments