Skip to content

rl: disabled auto-completion and command history on Windows #3

Description

@dottspina

For auto-completion, command history and key bindings, DTSh relies on the GNU Readline (libreadline) variant of the standard Python readline API.

On GNU Linux, Python should load libreadline by default.

On non-GNU POSIX systems, where Python might prefer the Editlib (libedit) library, the GNU Readline variant of readline is available as a standalone module (gnureadline): on macOS, it's automatically installed as a dependency, and DTSh will substitute the readline module of the Python standard library with this implementation.

Important

On non-POSIX systems, there's basically no sane and straight forward way to build and distribute the GNU Readline library: on Windows, Python simply gave up and does no longer implement the readline module in the standard library (see e.g. There's no readline module on Windows Python (cmd.Cmd) for some historical context).

As a consequence, on Windows the GNU Readline integration will very likely be disabled, resulting in a degraded user experience, especially the lack of command history and auto-completion.

Alternatives to proper GNU Readline (pyreadline3, Prompt Toolkit) have been investigated, but all introduce other architectural issues.

Although DTSh may eventually work around this limitation, this is clearly not a priority at the moment.

Thanks.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions