Thanks for the reply Chet, The completer is being setup in Bash, not directly through readline (sorry if I wasn't detailed enough in my original post). Even though readline might break the completion on the ':', we can use COMP_LINE/COMP_POINT to figure out the URL that needs to be completed (ignoring the ':'). The problem of course is inserting the results. No matter what we return from the completer, readline is going to insert it after the ':' which means we have to strip off everything up to ':' in the completion results. If the completer had a way to tell readline (through Bash) where the completion should be inserted that would allow a workaround for this issue without requiring any actions from the user. (This is probably not the most ideal solution, but I can't think of any other that wouldn't require major changes.)
On Fri Nov 14 2014 at 9:37:32 AM Chet Ramey <chet.ra...@case.edu> wrote: > > I'm working on adding tab completion to an application that deals with > > URLs, among other things. Since readline includes ':' as a delimiting > > character, it causes minor annoyances with tab-completing URLs. There's > the > > known workaround of removing ':' from COMP_WORDBREAKS, but that requires > > every person that installs the application to apply the workaround, which > > is slightly less than ideal. > > If you're integrating readline directly into an application, you can set > the completion word break characters to whatever you like; see > rl_completer_word_break_characters. > > > I'm trying to see if there's a better solution that doesn't require any > > action from the user. One thought I had was what if readline/bash allowed > > control over the insertion point of the completion result? i.e. if there > > was a COMP_INSERT_POINT variable that could get/set the insertion point. > Is > > that feasible? > > I'm not sure how you would use this, since readline breaks the line into > words > for the completion code before the results are generated and inserted. > > -- > ``The lyf so short, the craft so long to lerne.'' - Chaucer > ``Ars longa, vita brevis'' - Hippocrates > Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~ > chet/ >