• niksaz's avatar
    Greater customization of GHCi prompt · 533037cc
    niksaz authored
    This patch is trying to redesign the :set prompt option to take not a
    String but a Haskell function, like [String] -> Int -> IO String, where
    [String] is the list of the names of the currently loaded modules and
    Int is the line number. Currently you may set prompt function with
    **:set promt-function [String] -> Int -> IO String** option and old
    version is also available - :set prompt String.
    
    So, it looks like I've almost completed this patch:
    
    1) Now we have a lot of escape sequences - 13 to be exact. Most of them
       are similar to bash prompt escape sequences. Thus they are quite handy.
    
    2) We may use the special escape sequence to call shell functions, for
       example "%call(ls -l -a)".
    
    3) We may use :set prompt-function to set PFunction to handle prompt.
       It is just [String] -> Int -> IO String.
    
    Reviewers: erikd, austin, mpickering, bgamari
    
    Reviewed By: mpickering, bgamari
    
    Subscribers: mpickering, thomie
    
    Differential Revision: https://phabricator.haskell.org/D2084
    
    GHC Trac Issues: #5850
    533037cc
UI.hs 144 KB