Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix set_next_input with prompt_toolkit 1.0.10 #10231

Merged
merged 2 commits into from Feb 21, 2017

Conversation

@takluyver
Copy link
Member

takluyver commented Feb 1, 2017

Closes gh-10229

Please don't merge this just yet.

@jonathanslenders I discovered after updating that we can no longer set text in the buffer with a pre_run function, because pre_run_callables reset the buffer immediately after that. I've worked around this by adding another callable to pre_run_callables which sets the text that I want, but I don't know if this is the right way to do it, or whether it works with previous releases of prompt_toolkit.

@Carreau Carreau changed the title Fix set_next_input with prompt_toolkit 1.0.10 [WIP] Fix set_next_input with prompt_toolkit 1.0.10 Feb 1, 2017
@jonathanslenders
Copy link
Contributor

jonathanslenders commented Feb 1, 2017

Hi @takluyver,
I didn't realize you were relying on this.
This merge request is correct, but it will indeed not work for earlier versions of prompt_toolkit.
You may want to test for hasattr(self.pt_cli, 'pre_run_callables').
What is actually the use case for this? Why are you setting a text?

@takluyver
Copy link
Member Author

takluyver commented Feb 1, 2017

Thanks, I've pushed a fix that only uses pre_run_callables if the attribute is there, and otherwise just sets the document directly.

There are a few features in IPython that put some text at the next prompt; probably the most obvious is the %recall magic - %recall 1-3 will get inputs 1, 2 and 3 from your history, concatenate them and put them at the next prompt. They all go through a method shell.set_next_input().

@takluyver takluyver added this to the 5.3 milestone Feb 13, 2017
@takluyver takluyver changed the title [WIP] Fix set_next_input with prompt_toolkit 1.0.10 Fix set_next_input with prompt_toolkit 1.0.10 Feb 13, 2017
@takluyver
Copy link
Member Author

takluyver commented Feb 16, 2017

We're getting a number of bug reports that I believe this would fix, if someone would like to review it.

@minrk minrk merged commit 5f43012 into ipython:master Feb 21, 2017
2 checks passed
2 checks passed
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@takluyver takluyver deleted the takluyver:set-next-in-ptk-fix branch Feb 21, 2017
@takluyver
Copy link
Member Author

takluyver commented Feb 21, 2017

@meeseeksdev backport to 5.x

meeseeksdev bot pushed a commit that referenced this pull request Feb 21, 2017
Closes gh-10229

Please don't merge this just yet.

 jonathanslenders I discovered after updating that we can no longer set text in the buffer with a `pre_run` function, because `pre_run_callables` reset the buffer immediately after that. I've worked around this by adding another callable to `pre_run_callables` which sets the text that I want, but I don't know if this is the right way to do it, or whether it works with previous releases of prompt_toolkit.
Carreau added a commit that referenced this pull request Feb 21, 2017
Backport PR #10231 on branch 5.x
@Carreau Carreau added the backported label Feb 23, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants
You can’t perform that action at this time.