Skip to content
  • Peter Collingbourne's avatar
    Introduce line editor library. · c7d437c1
    Peter Collingbourne authored
    This library will be used by clang-query. I can imagine LLDB becoming another
    client of this library, so I think LLVM is a sensible place for it to live.
    It wraps libedit, and adds tab completion support.
    
    The code is loosely based on the line editor bits in LLDB, with a few
    improvements:
    
     - Polymorphism for retrieving the list of tab completions, based on
       the concept pattern from the new pass manager.
    
     - Tab completion doesn't corrupt terminal output if the input covers
       multiple lines. Unfortunately this can only be done in a truly horrible
       way, as far as I can tell. But since the alternative is to implement our
       own line editor (which I don't think LLVM should be in the business of
       doing, at least for now) I think it may be acceptable.
    
     - Includes a fallback for the case where the user doesn't have libedit
       installed.
    
    Note that this uses C stdio, mainly because libedit also uses C stdio.
    
    Differential Revision: http://llvm-reviews.chandlerc.com/D2200
    
    llvm-svn: 200595
    c7d437c1
Loading