There is a native port of readline to Windows from gnuwi32 here:

http://gnuwin32.sourceforge.net/packages/readline.htm

It is rather flaky but I did some fixes in the C library and now it
works very well. The Haskell binding also just works. You can find the
patch here:

http://sourceforge.net/tracker/index.php?func=detail&aid=1988215&group_id=23617&atid=379173

Regards,
  Krasimir


On Thu, Jul 3, 2008 at 11:53 PM, Claus Reinke <[EMAIL PROTECTED]> wrote:
>>> while undocumented (?), there seems to be a lot of code
>>> in GHCi regarding commandline completion. but in a
>>> default build, i don't get any benefit from that, as editline
>>> doesn't seem available for mingw (?).
>>>
>>> is there a way to get this working on windows? i'm growing
>>> rather tired of typing VeryLongCamelCaseLanguageExtensions
>>> in GHCi sessions, and this would help!-)
>>>
>>> if there really is no working editline for windows, is there a
>>> way of pluggin in Malcolm's System.Console.SimpleLineEditor (currently in
>>> package readline), extended to handle completion?
>>> the completion code itself is in haskell, anyway, just that there's
>>> no editline/readline to call this code on windows, right?
>>
>> Yes, exactly.  I believe at one stage there was a readline C library
>> available for mingw, and we could build the Haskell readline library, but
>> IIRC it was a bit flaky and only worked in some of the console environments
>> (cmd, MSYS, cygwin, xterm).
>
> I noticed various references to rlwrap (readline wrapper) recently,
> so I decided to give it a try. There's a cygwin package for it:
>
>    rlwrap  runs  the  specified  command,  intercepting  user input in order
> to supply
>    readline's line editing, persistent history and completion.  rlwrap tries
> to be  as
>    transparent  as  possible, keeping track of command's terminal settings,
> so that it
>    can do the right thing when command asks for single keypresses or for a
> password.
>
> And it works like a charm!-) Not as specific as the GHCi-builtin
> support for completion, but better than just inheriting the command
> history scrolling and commandline editing from bash. Some helpful
> options:
>
>   -c, --complete-filenames
>   -H, --history-filename file
>   -r, --remember
>      Put all words seen on in- and output on the completion list.
>
> So, with
>
>   $ rlwrap -c -H /cygdrive/c/Documents\ and\ Settings/cr3/Application\
> Data/ghc/rlwrap.log -r ghcii.sh
>
> I get filename completion, I get completion for language options
> that have been suggested in error messages (!-), and I don't have
> to spell things out twice, as the session history gets stored (btw,
> should there be ghc-version-specific Application\ Data/ghc/ dirs?).
> And all the general readline goodies, like incremental history search.
>
> There is probably some more fine-tuning possible, perhaps someone
> finds a way to give the rlwrap's readline on-the-fly access to the
> session-specific GHCi completion info designed for linked readline?
> Even if not, we could probably prep completion in 'rlwrap ghcii.sh'
> with the flag reference, and poor Windows users can get the
> comforts that non-Windows users are used to with GHCi!-)
>
> Anyway, I thought I'd share this early, before doing more
> experimentation.
>
> Enjoy,
> Claus
>
> _______________________________________________
> Cvs-ghc mailing list
> Cvs-ghc@haskell.org
> http://www.haskell.org/mailman/listinfo/cvs-ghc
>

_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to