-
Notifications
You must be signed in to change notification settings - Fork 296
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
Is it possible to access internal PSReadline functionality? Specificially "Paste"? #233
Comments
@andrewducker I like your idea, thank you. I implemented it in this way. In my profile I added binding to Set-PSReadlineKeyHandler -Key F7 -BriefDescription History -LongDescription 'Show history' -ScriptBlock {
$r = [System.Collections.ArrayList](Get-Content (Get-PSReadlineOption).HistorySavePath)
$r.Reverse()
$r = $r | Out-GridView -PassThru
if (!$r) {return}
[PSConsoleUtilities.PSConsoleReadLine]::RevertLine()
[PSConsoleUtilities.PSConsoleReadLine]::Insert($r)
} I hope you may find this useful. |
Thank you! That's exactly what I wanted, and a massive improvement over the previous F7 functionality! |
Improvement - this will refine the search based on whatever is on the current console line (the buffer): Set-PSReadlineKeyHandler -Key F7 -BriefDescription History -LongDescription 'Show history' -ScriptBlock {
$line = $null
$cursor = $null
[PSConsoleUtilities.PSConsoleReadline]::GetBufferState([ref]$line, [ref]$cursor)
if($line){
$r = [System.Collections.ArrayList](Get-Content (Get-PSReadlineOption).HistorySavePath | sls $line)
}
else{
$r = [System.Collections.ArrayList](Get-Content (Get-PSReadlineOption).HistorySavePath)
}
$r.Reverse()
$r = $r | Out-GridView -PassThru
if (!$r) {return}
[PSConsoleUtilities.PSConsoleReadLine]::RevertLine()
[PSConsoleUtilities.PSConsoleReadLine]::Insert($r)
} |
Yes, now it is even better. I used this as well and also added $history = [System.Collections.ArrayList]([System.IO.File]::ReadAllLines((Get-PSReadlineOption).HistorySavePath))
$history.Reverse()
$line = $null
[PSConsoleUtilities.PSConsoleReadline]::GetBufferState([ref]$line, [ref]$null)
if ($line) {
$history = $history -match [regex]::Escape($line)
}
$command = $history | Get-Unique | Out-GridView -Title "History $line" -PassThru
if ($command) {
[PSConsoleUtilities.PSConsoleReadLine]::RevertLine()
[PSConsoleUtilities.PSConsoleReadLine]::Insert(($command -join '; '))
} |
Very cool - this should go in SamplePSReadlineProfile.ps1 - feel free to submit a pull request. |
I don't have the latest PSReadLine module (1.0.0.12 on my system right now I think), but this had some issues with commands that span multiple lines in the tests that I ran. There were also some challenges with how it |
Hmm, yeah - there is some minimal processing done on the file history file for multiple lines. Maybe I should just add a api to get the history. |
I have a solution which handles multiple lines. It is being tested. When it is done I will propose a PR. |
On the other hand, if the API for getting history is expected relatively soon then this solution is somewhat a hack. @lzybkr please let me know if such a hack is still fine for now. |
@lzybkr Any remarks? Is a hacky PR which handles multiple lines needed? |
It's just a sample, so if you implemented, sure, I'll take it, and when I add a proper api, I'll update the sample. |
Here it is, #255 |
This imports the PSReadLine project to `src/Microsoft.PowerShell.PSReadLine`. The commits are squashed so that we don't unnecessarily combine the histories. Squashed commit of the following: commit 1fe251f7681ffa9d5598e830a115c0700fe978df Author: Sergei Vorobev <sevoroby@microsoft.com> Date: Thu Feb 11 12:43:03 2016 -0800 Generate help from platyPS markdown commit 52cef9e493cec5e642c938c0e6a64cce232fa813 Merge: 68b9161b4 c1499bd29 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jan 21 08:23:54 2016 -0800 Merge pull request #337 from srdubya/master Fixing #334. commit 68b9161b4a8027f8cab908134b198a121295ee8a Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Wed Jan 20 15:58:05 2016 -0800 Update Changes.txt commit c66ccee060ffafcf174fe5f333620d987a113fdf Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Wed Jan 20 15:57:47 2016 -0800 Fix formatting commit 2965e31d2b18c99041193d6e031872a8f1acef0d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Wed Jan 20 15:30:20 2016 -0800 Update version number commit c1499bd2924d1f85c1390cd4ded644d7f971bbf8 Author: srdubya <stevewy@gmail.com> Date: Mon Jan 18 10:45:03 2016 -0700 Fixing #334. commit fba34371a1a62ef077b08a7e07aa3333c9a4774e Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 09:44:42 2016 -0800 Fix build commit d428a19feba06f6c4188df64605883bec0c460b0 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 09:39:59 2016 -0800 Fix sample for strict mode+better custom handler error msg Fixes #304 commit 2897f6ed3d74b0e69be197a6de7ce765c747692a Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 09:04:35 2016 -0800 Handle abandoned mutex exception commit d1fc73e731d8d0a609850d3fed24632e8fa0951d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 09:01:02 2016 -0800 Update xmldoc comments commit 3fc3007f83d7d0cc587aca42a7565a67e385375b Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 08:58:07 2016 -0800 Startup improvements - Delay loading resources until they are used - Delay creating vi mode key handler tables - Remove format.ps1xml file commit 57843aacb68c39da7815f8c06825f965737e7a14 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 08:52:40 2016 -0800 Move some apis to be internal commit 26752f508c8ac8e1f9ec6fb6306bc086c220600f Author: srdubya <stevewy@gmail.com> Date: Sat Jan 2 08:51:06 2016 -0700 Addressed this feedback: 1 _normalBackground (keybindings.vi.cs) unused 2 copyright notice in *.vi.cs files? 3 ReadLine.vi.cs - InsertCharacter unreferenced 4 SearchBackward - change fn name to ViSearchHistoryBackward? commit 38eebac9d03c9a189bed7aad2b97bf98d484c2ef Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 30 22:42:32 2015 -0800 Better error for history file access issues When there is an IO error trying to create the directory for the history file, or some other sort of error trying to read or write the history file, we shouldn't tell the user to report a bug. Instead, the error will just report the exception message, and if it happens twice, suggest some solutions. The error will not be reported more than twice, because that would be too annoying. Fixes #322 commit 3a9584206fe8ef5ee0171282fab93a0be7e727ad Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Dec 24 21:06:48 2015 -0800 Cleanup resources commit 720855d9232973ca4b70a983c378dd798e3e5c8d Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 16 22:56:25 2015 -0800 Finish refactoring so unit tests run in VS2015 The mock of the console api is complete enough so unit tests run. It's still a hack, not exactly factored nicely to support other hosts, but at least some of the real interface is in one place, not scattered about. commit fb3b178e66f378e68aebe7deb9a18419f9613212 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 16 09:53:44 2015 -0800 Fix off by 1 error in BeginningOfLine Home on first line of multi-line went to the second character, not the first. commit 5c627fb3eaa80a3d07cbd52922a9abc34c9668b9 Merge: e0de45980 34e4e2fd9 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 16 09:41:00 2015 -0800 Merge branch 'master' of https://github.com/rkeithhill/PSReadLine into rkeithhill-master Conflicts: PSReadLine/PSReadLine.csproj PSReadLine/PSReadLineResources.Designer.cs PSReadLine/PSReadLineResources.resx PSReadLine/ReadLine.cs commit e0de4598069e3d4bd8568eb9f9bcf1334ac697a3 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Sun Dec 13 17:52:33 2015 -0800 CaptureScreen: scroll buffer with selection, add alternate movement keys. commit cf3471afdfe707f3a9b530dce9ed7cabad3c6768 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Fri Dec 11 18:31:59 2015 -0800 ScrollDisplayToCursor bug: don't try to scroll to before the buffer. commit 7b135909b99187bd3c42c0fc5472f3b8cbb31e72 Merge: 9c97f5459 dac7ec2ff Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Dec 13 09:28:09 2015 -0800 Merge branch 'master' of https://github.com/PowerShell/PSReadLine commit 9c97f5459605c75d2787168cca7f394a5a034ec5 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Dec 13 09:23:31 2015 -0800 Use nuget packages for PowerShell SDK. commit dac7ec2ffac1bbc3c97a4e0a2335ab5193a42564 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Thu Dec 10 07:26:03 2015 -0800 Feedback: Rename ChangePSReadlineKeyHandlerCommandBase, remove assert. commit f44943b0895b3454236ac41bdacc81d03f352111 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Wed Dec 9 22:48:35 2015 -0800 Add the ability to change Vi cmd mode dispatch tables. commit 0190001e864c0566d10e1483829c687d4295624b Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 9 17:27:02 2015 -0800 Fix coloring of bareword token w/ nested token at start Fixes #204. commit 461e14c8acda8c79c20a41a7b2daea34e6af504b Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Dec 6 09:05:37 2015 -0800 Initial refactor console api usage To get the unit tests passing in VS2015, and to help w/ possible future hosts, I've moved most of the console api usage to a class, which is then mocked in the unit tests. commit f9b4c98a00656c3deb720f80392c8eaa042f65b2 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Nov 29 21:43:20 2015 -0800 CaptureScreen tried to set clipboard on a MTA thread Fix is to use ExecuteOnSTAThread. commit 1d85624cc7f40b4df89d63a1435857a092538082 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Nov 29 10:44:25 2015 -0800 Build against CLR 4 to support PowerShell V3 commit bf0de4e840a180754fa6e01552a47ae37419761b Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Nov 29 10:40:37 2015 -0800 Fix indentation. commit 3bb4520664bfb263890b8550334386db0133a7ca Merge: 914101597 513a93a4f Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Nov 14 20:11:50 2015 -0800 Merge branch 'master' of https://github.com/srdubya/PSReadLine into vimode commit 91410159765d38d10af2cd1a24f03a769c57780e Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Nov 14 19:27:23 2015 -0800 Avoid exception when $ExecutionContext is $null commit b754d709624941ca6e42a8caf22d87d710f9c468 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Nov 14 19:15:41 2015 -0800 Fix formatting of error message commit 24a9848483695a343ab37db8ddabad21631c1e1a Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Nov 14 19:14:28 2015 -0800 Get the real colors when copying the screen commit 513a93a4f07aef05bb9a2e532ad531a92bc62811 Author: srdubya <stevewy@gmail.com> Date: Sat Aug 29 06:58:17 2015 -0600 Tab now does the same as Enter on command line search ('/'). commit bde626cee27e3d54132a8f4fd9e58f3d5322ee58 Author: srdubya <stevewy@gmail.com> Date: Wed Aug 5 07:33:55 2015 -0600 Fixed tests and reformatted some code to fix a reported exception. commit 36f0bf739be5551e7ef4c6da4179b5790430d07a Merge: 363e552bf 788f57339 Author: srdubya <srdubya@users.noreply.github.com> Date: Wed Aug 5 07:27:50 2015 -0600 Merge pull request #2 from ecsousa/fix_cimplete_redo Fix exception for use completion when a edit group is already started. Merging into master, where a failing unit test awaits. commit 363e552bffd9a65b28620aea3b973737ffbdd53a Merge: 6e1412e23 3c7e5ce5b Author: srdubya <stevewy@gmail.com> Date: Tue Aug 4 12:54:33 2015 -0600 Merging in Eduardo's fFrT for c and d changes, along with my tests and fixes. commit 3c7e5ce5bfc3e9be37e426c20b5495bf33b01fa5 Author: srdubya <stevewy@gmail.com> Date: Sun Aug 2 13:05:20 2015 -0600 Added unit tests and fixed a few issues found as a result. commit 6e1412e23c4ee94c86431ba7c3a420fbafc49026 Author: srdubya <stevewy@gmail.com> Date: Sat Aug 1 05:32:53 2015 -0600 Increased framework version to 4.5 to accomodate System.Management.Automation dependency version change. commit 788f5733936717c1830e6253d6a71056698ece53 Author: Eduardo Antunes C. de Sousa <ecsousa@gmail.com> Date: Thu Jul 30 15:34:54 2015 -0300 Fix exception for use completion when a edit group is already started. commit f133b9af1de597345e0482b76e0f586acbe376a8 Author: Eduardo Antunes C. de Sousa <ecsousa@gmail.com> Date: Thu Jul 30 14:51:31 2015 -0300 Adding 'f', 'F', 't', 'T' movements to 'd' and 'c' command. commit 34e4e2fd94f6653e69711fb18a3a768826c11023 Author: Keith Hill <r_keith_hill@hotmail.com> Date: Mon Jul 20 19:54:33 2015 -0600 Added InsertLineAbove and InsertLineBelow functions and set them up to key bind to Ctrl+Enter and Ctrl+Shift+Enter in Windows mode. Not being an emacs person, I'm not sure what key bindings these two functions would bind to. I also added unit tests for the two functions as well as a unit test for what I believe is a bug in the BeginningOfLine (home) function when in multiline mode. I also updated the project to have the appropriate default namespace so that the resource file gets re-generated with the correct resource name without having to resort to hacking the csproj file. There was also an issue with trying to run unit tests because the unit test setup of PSReadline sets engineInstrincs to null and that caused a null reference exception which I worked-around by testing for null first. commit 6ffc6f0f9bf7579b388762506e75f1514eedfce2 Author: srdubya <stevewy@gmail.com> Date: Mon Jul 20 07:03:13 2015 -0600 Move cursor to position 0 on history movement. commit 847cce49e4a47e4923c815d16604c3a2257940bd Author: srdubya <stevewy@gmail.com> Date: Tue Jul 7 07:16:03 2015 -0600 Fixing defect #263. commit 14cf3912ac68054516ecc815ebc78aa50ab2b29b Author: srdubya <stevewy@gmail.com> Date: Sun Jun 28 10:54:03 2015 -0600 Adding documentation for 'o', 'O', and 'J''s key handling methods. commit 687983a9d788336d4e15a390b9ad04ee6b93b4f8 Author: srdubya <stevewy@gmail.com> Date: Sun Jun 28 07:13:52 2015 -0600 Fixed cursor placement issues with 'o' & 'O'. commit 81c41ca72ba84907385cc4f944bf44118dd498b1 Author: srdubya <stevewy@gmail.com> Date: Sat Jun 27 13:44:56 2015 -0600 Adding 'o', 'O', and 'J' in Vi-Mode. commit 42fe350fa0f16c61ecbd392a3cda652c93b4091a Merge: b5db5e2e4 9a1ad952a Author: srdubya <stevewy@gmail.com> Date: Fri Jun 26 07:11:12 2015 -0600 Merge branch 'upstream' commit 9a1ad952a0b033b4ac053c73bef3171c1db812fd Author: Roman Kuzmin <nightroman@gmail.com> Date: Thu Jun 25 20:18:54 2015 +0100 Set-PSReadlineKeyHandler -Key F7 - two minor tweaks - Clearer output of the result $line. - $ -> @, just in case if there is the only history command. commit 8be638271b376e36d856dec4d233820fe55b886d Author: Roman Kuzmin <nightroman@gmail.com> Date: Thu Jun 25 02:01:36 2015 +0100 Set-PSReadlineKeyHandler -Key F7: command history using Out-GridView. - Properly reads multiline commands from the history file. - Allows selection and insertion of several commands. commit b5db5e2e43152916199f5ae715477490f23a1941 Author: srdubya <stevewy@gmail.com> Date: Sun Jun 21 07:47:36 2015 -0600 Fixed merge problems, plus fixed broken tests. commit f5bdb3fe5787d44565fe524b5ff0f12a7a37d98d Merge: 5c999b15f ccfe2a3fa Author: srdubya <stevewy@gmail.com> Date: Sat Jun 20 16:47:33 2015 -0600 1st attempt at merge with #251. commit ccfe2a3fad320ec7be621d37fc7beb314eb9a0b2 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Fri Jun 19 17:07:39 2015 -0700 Change resource name to match in-box version commit 8e7665e9e24dd4df2cc13e029edd13a076323655 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Fri Jun 19 11:00:32 2015 -0700 Fix InvokePrompt for remote sessions commit 70195b3e95a5d4f080f614c1c98f0d50fb4f79c9 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 20:01:49 2015 -0700 Move one-time initialization out of psm1 commit 1a2e9f54600b6c19b324f2bc1db03dc3653a75ca Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:55:38 2015 -0700 Better handling of exception after exception commit 55150a225dc60a553de6d1213060d096e6dce209 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:43:59 2015 -0700 Update module manifest commit fb1ecc49258c0d7d3353b523714bed7ae58cf797 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:43:03 2015 -0700 Use full namespace commit dc1847bdebb2c1e27b0e2b7fa9bb0fe5ee848432 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:38:54 2015 -0700 Remove unreferenced/old code commit 1309e1eb63ee169d9776ab525e8be4945fae26b7 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:38:26 2015 -0700 Formatting cleanup commit f7615088467affafc9635ad67970d6c771864b0b Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:28:46 2015 -0700 Change default continuation prompt commit 0f41d433d86944fd52afc7694f62f0a4e60c9a7d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:10:18 2015 -0700 Change default location for history file commit b54f7f11c73f9eb22e2514ced6e6b627bbdfb50d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:01:59 2015 -0700 Mouse wheel doesn't work with powershell console Fix is to clear the flag for capturing mouse events while in PSReadline because we would ignore them anyway. commit 8e86f7289476c58c8c9dadfb70d5d1ec82908177 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 18:57:07 2015 -0700 Right click w/ multiple lines pasted as a one line This problem only happened in ValidateAndAcceptLine It also only happened if validation failed for any reason. The fix is to insert a newline even if validation failed if we still have pending input. If there is no pending input, we don't want to insert the newline, as this is the common case and people will not want to delete the blank line from the inserted newline. commit 95184cedbe947e7be61d2cf877f2419a7e9dcbba Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 18:54:13 2015 -0700 Switch to WinForms for clipboard Some windows skus don't have WPF but do include winforms, so switch to winforms to access the clipboard. commit 7ce3eaabb3892b8c55ee4d9fbba3cdc43f69096a Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 18:50:48 2015 -0700 Change Enter back to AcceptLine AcceptAndValidateLine still has some problems, so the default has been changed back to AcceptLine. commit 1a538e78212ee3c1f378212b2e21fee0b0a8bc79 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 18:24:23 2015 -0700 Fix/suppress various FxCop errors commit 365da0c6628e438610fc4841f8909ef042b1ce6d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 15:44:56 2015 -0700 Add a HelpUri for each cmdlet commit 02eb13d7557faa759990aa6bad425a5347bdc095 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 15:32:20 2015 -0700 Rename namespace PSConsoleUtilities to Microsoft.PowerShell commit e6e46de26b5717d0ed379f36e96dcb9a4ae535b1 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 15:14:08 2015 -0700 Use absolute path for HintPath on reference assembly. commit e47cb0f7aa0c4e0434acb63aa9716f9e3bf0c594 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 15:04:49 2015 -0700 Add copyright header commit ade70a13b0420a62a6ecaf433c6b9ab7e64b667b Merge: d81b1ea72 2d78cac3d Author: Jason Shirk <jason@truewheels.net> Date: Wed Jun 17 14:24:12 2015 -0700 Merge pull request #235 from andrewducker/master Adding in an F7 handler to bring up command history in a grid. commit 5c999b15f587bb0a85ae45156eebc4818fb2bcb8 Author: srdubya <stevewy@gmail.com> Date: Sat Jun 6 13:15:58 2015 -0600 Fixed missing newline before "Oops". commit a86fbe9fd41e8b3df384804af746629538fda59a Author: srdubya <stevewy@gmail.com> Date: Sat Jun 6 13:05:05 2015 -0600 Corrected a few uncessary file differences, mostly indentation issues. commit 22916e8b10031383a82dcc1e0e7f1610ea3a39e7 Author: srdubya <stevewy@gmail.com> Date: Sat Jun 6 05:33:55 2015 -0600 Merged CJK language support from Jason's upstream (#243). commit 7e9bb96db3c67c2f0cac3115ce1c5a65c7d0f1ef Merge: 5228456b1 d81b1ea72 Author: srdubya <stevewy@gmail.com> Date: Fri Jun 5 19:09:45 2015 -0600 Merge branch 'upstream' commit 5228456b1e642f2bd27379fd4c01da323c04a8e8 Author: srdubya <stevewy@gmail.com> Date: Tue May 19 20:29:43 2015 -0600 Adding Prompt option for ViModeIndicator. Fixing #227 - indicator returns back to None after any other set option. commit d81b1ea721e36f5353c639bd5df0c26ae20fe3e7 Author: Yanbing Wang <yawang@microsoft.com> Date: Mon May 18 22:08:36 2015 -0700 support CJK with truetype font commit bcf72c642e7da61a533deea88c77a70c11b65550 Author: Yanbing Wang <yawang@microsoft.com> Date: Mon May 18 22:04:08 2015 -0700 support CJK with truetype font commit d70398b0edf5ffce8cbcf0fab31a5dc63662b283 Author: Yanbing Wang <yawang@microsoft.com> Date: Mon May 18 12:18:15 2015 -0700 update based on code review commit 3b2973bacdd6de722e70f694af9c71a270a29c36 Author: Yanbing Wang <yawang@microsoft.com> Date: Mon May 18 10:23:40 2015 -0700 add CJK support commit 2d78cac3d51875608797d506ebda8041f11d9674 Author: andrewducker <andrew@ducker.org.uk> Date: Thu May 14 20:40:54 2015 +0100 Adding missing backticks My fault for editing the file in Github in the first place... commit 0189d6ed6b504c4f420f832d97d2824ff9193f27 Author: andrewducker <andrew@ducker.org.uk> Date: Thu May 14 17:21:03 2015 +0100 Adding in an F7 handler to bring up command history in a grid. See issue at https://github.com/lzybkr/PSReadLine/issues/233 commit 66db8bed41d3e01d12925af87105219470587e88 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 21 06:39:49 2015 -0600 Made the default -ViModeIndicator None. commit f6be29dbf12f547e547750e2437d89dccd6112c7 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 21 06:34:20 2015 -0600 Switched from -ChangeCursor to -ViModeIndicator[Cursor|StatusLine|None]. StatusLine does not work yet. commit 3a2b0bed2c26ecf0bf652219d0be79a2cec4917c Author: srdubya <stevewy@gmail.com> Date: Sun Mar 15 13:56:48 2015 -0600 Added the changing of the console cursor size when in command/insert mode. Use the -ChangeCursor option to control. commit 58104d1b732dc21ec4d10ef98cdf854cf627aa43 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 14 10:16:54 2015 -0600 Added single-quote and double-quote to the list of word delimiters. Addressed bugs involving change-word and delete-word when word delimiters and special characters are involved. commit 09d4821e11ead411a78b70202883461fe0e7c9ff Author: srdubya <stevewy@gmail.com> Date: Fri Mar 13 07:05:08 2015 -0600 Switched visual editing temporary file from double quotes to single. Rounded out a test a bit. commit 8156ee51af35544100f3efb2fc5d4373921e9900 Author: srdubya <stevewy@gmail.com> Date: Wed Mar 11 04:17:34 2015 -0600 Fixed defect #218 -- <esc> cw now works properly with non-space word separators. commit 717bfb679a151391ba899538b04f6aa97c931802 Author: srdubya <stevewy@gmail.com> Date: Tue Mar 10 21:05:11 2015 -0600 Enclosing visual edit temporary filename in quotes to handle special characters in user names. commit 15f36c751e00a23a5010eba3bacfd60456144aaf Author: srdubya <stevewy@gmail.com> Date: Tue Mar 10 07:15:36 2015 -0600 Fixed "$i$" bug, #214. commit 3372bf45e6700fd58c393702695c61c3cc255461 Author: srdubya <stevewy@gmail.com> Date: Tue Mar 10 07:00:30 2015 -0600 Fixed <esc> r <space> bug. commit 74a501777a7f9a32df193ddeb02ec3df11c327fb Author: srdubya <stevewy@gmail.com> Date: Sun Mar 8 16:35:55 2015 -0600 Enabled VIM syntax highlighting during visual editing by giving the temporary file a .ps1 extension. commit d0f797c1cc33d427d25d78f8d3f807704fd5035d Author: srdubya <stevewy@gmail.com> Date: Sun Mar 8 15:42:07 2015 -0600 Adding visual editing via <esc> v. Set either the EDITOR or VISUAL environment variable to your in-console editor command of choice. When entering visual editing mode, the shell will execute the command specified by EDITOR/VISUAL with a temporary file as the single parameter. VISUAL has precidence over EDITOR. Environment variable are search first in machine, then process, and finally user targets. commit f0295550278f57492bcd23ef30b415183be1b255 Merge: 07ce10733 a3258ed85 Author: srdubya <stevewy@gmail.com> Date: Sun Mar 8 07:58:49 2015 -0600 Sync'd with upstream. commit 07ce10733a67bbe1efd1da79cc720b0f7c82abb2 Author: srdubya <stevewy@gmail.com> Date: Tue Mar 3 20:32:57 2015 -0700 Fixed "<esc>h<space>ih" bug. commit a3258ed85a232e042e6fcd8030f126e1c838d040 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 18 09:02:09 2015 -0800 Remove call to SetOptions which was unnecessary Fixes #206 commit f2fe25c7b2a83e8b1a452b4fb6f6ec5ccc450004 Merge: 8480f36bb 4035d5dbd Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Feb 17 22:09:50 2015 -0800 Merge branch 'master' of https://github.com/lzybkr/PSReadLine commit 8480f36bbe8330f07b8cdcb7596082314357dfae Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Feb 17 22:09:29 2015 -0800 Update version number to 14. commit 4035d5dbd8369ab729789c2946173d5bfe843ada Author: Roman Kuzmin <nightroman@gmail.com> Date: Wed Feb 18 03:47:46 2015 +0000 Spelling in about_PSReadline.help.txt commit a28fc3f73de205e52af34b0f45927d8a14089e07 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Feb 7 22:59:04 2015 -0800 Recognize debugger pseudo-commands ValidateAndAcceptLine was rejecting debugger commands like 's' or 'k'. Now we check if we are debugging and accept these fake commands. Fixes #199 commit b753e6be014e5f09fc4ab4eeb31ede37fbf685be Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Feb 7 11:54:13 2015 -0800 Fix ScrollDisplayToCursor to work better Fixes #190 commit 84c38795635fa2f3296583b392c53044ed76804e Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Jan 26 19:35:12 2015 -0800 Remove demo mode Demo mode doesn't work right now, and I found a better alternative here: https://github.com/Code52/carnac Fixes #192 commit 234f5ac9d27f7a56c85b9af11880044ece6836cc Author: srdubya <stevewy@gmail.com> Date: Sun Jan 25 10:33:46 2015 -0700 Fixex cursor positioning after history change bug. commit ac09623ca35368b43fb7ca0a774491a76674386c Merge: 4a2e7bb72 f730b8abc Author: srdubya <stevewy@gmail.com> Date: Sat Jan 24 10:03:16 2015 -0700 Merged Upstream commit b77ec226dc6c7ab958410f8a5962323abc8ee607 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Jan 22 19:27:30 2015 -0800 Honor $MaximumHistoryCount This history count was being ignored, and the default in PSReadline was 1024 instead of 4096 that PowerShell defaults to. The fix is to up the default, and safely set MaximumHistoryCount in PSReadline based on the variable when initializing the first time PSReadlne is called. Fixes #135 commit b1fcc751d56c61d9108b83605d19af6353cb553b Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 22:16:00 2015 -0800 Fix ClearScreen to properly scroll The previous change scrolled the wrong test, losing the bottom instead of the top of the buffer. commit 75bdf63d98e9f579ab77b31387a604ba997d99ef Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 16:12:06 2015 -0800 Fix HistorySearch* when line is empty The commit 49a4c4c1e62a00dc9fda357b0182a0d76d0d3bd9 broke arrow keys working when the line was empty and you wanted to go back more than one command. commit b8f2348945c844c6620b740a6f762de795090b83 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:28:51 2015 -0800 Color any prompt character when there is an error cmder uses lambda as the prompt character which is a regular character, so I just removed the test and will color any random non-whitespace character that is used in the prompt. Fixes #180 commit 32b7fc91ae2cab01ec0a1394ce47863ad4109942 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:24:34 2015 -0800 Update CaptureScreen description Fixes #185 commit 7cbb0a858f4041b5cf4f46c22ded4cec228a7e63 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:19:26 2015 -0800 Clear status message in CancelLine Fixes #189 commit c239364c24560087f452708bf47b816670c30420 Merge: 9914838d3 f730b8abc Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:14:47 2015 -0800 Merge remote-tracking branch 'origin/master' commit 9914838d3eb1cf05331f903b079113c3e276dc6d Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:13:29 2015 -0800 History recall should ignore other sesions When using UpArrow, people prefer not recalling commands from other currently running sessions. It's still useful to avoid entering commands that have might have been entered in another currently running session, so those commands can still be found when *searching* history, either interactively, or if the search string is not empty when using HistorySearch[Backward|Forward]. Also fixed in this change - an obscure bug where HistoryNoDuplicates did not work well with a DigitArgument when recalling history. Fixes #179 commit 4a2e7bb7221086ecd56cb53192301c3986f211a6 Author: srdubya <stevewy@gmail.com> Date: Sun Jan 18 06:43:49 2015 -0700 Fixing problem with tab completion after 'c' in command mode. commit b0b7241d32184527283d8f5bed7e63d7c7d43e02 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Jan 16 09:05:32 2015 -0800 Support Cancel/Abort DigitArgument There was an exception with input like: a Alt+1 Ctrl+C CancelLine was clearing the buffer, but didn't reset _current. That fixes the exception, but it still clears the input line when called to terminate DigitArgument, so instead we do something similar to how interactive history search is terminated. Fixes #184 commit 299aea82680b337c8658aaaeb2307ffa068e31db Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Jan 15 17:22:15 2015 -0800 Fix bug with undo after possible completions repro is something like: [ArrayL <Ctrl+Space> <Ctrl+Z> <Ctrl+Space> <Ctrl+Z> commit b6573377152e3b1bfce7659381c9adcede1c9271 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Jan 15 09:19:09 2015 -0800 ValidateAndAcceptLine improvements Script block arguments are now only validated as arguments to specific cmdlets (which are in a user modifiable whitelist.) A custom validation handler must now throw an exception to report an error, returning an object is now ignored. A sample custom validation handler was added to demonstrate typo correction. Fixes #162 commit ae8b2f8dbc959a0eeee9fc0299f9cd54cc8bd270 Author: srdubya <stevewy@gmail.com> Date: Tue Dec 30 07:18:10 2014 -0700 Surrounding Get-PSReadlineKeyHandler vi command mode keys in "<>". commit 37d884a1a4a251f4ca1e5a67ca4964e6ca1c7bcd Author: srdubya <stevewy@gmail.com> Date: Sat Dec 27 11:58:56 2014 -0700 Added support for mid-chord numberic arguments. commit 07186ba50e8ce24615338230f25274f11392bdbb Author: srdubya <stevewy@gmail.com> Date: Wed Dec 24 12:58:57 2014 -0700 Added ctrl-D handling (accept in insert mode, exit in cmd mode). commit 7dc200af75e1a8536368db70496d8ba5d07df01f Author: srdubya <stevewy@gmail.com> Date: Wed Dec 24 12:43:26 2014 -0700 Cleaned a couple duplicate functions. commit 73b8e0276104bf6c49503f83edb131ac07fa6d74 Author: srdubya <stevewy@gmail.com> Date: Mon Dec 22 18:27:22 2014 -0700 Sync'd with Upstream. commit dd7fc31ac7c42ec6a8684a6196b5a96cb27dfe65 Author: srdubya <stevewy@gmail.com> Date: Sun Dec 21 16:23:45 2014 -0700 Fixed minor formatting. Ready for Sync. commit 9a926f2df4e048d330d2d0185b944730fe94b11e Author: srdubya <stevewy@gmail.com> Date: Sun Dec 21 16:20:20 2014 -0700 Fixed Delete and Change so the work for Globs. commit eb5e5e02f9b6b4ed9246aed5808e9ef4949f5918 Author: srdubya <stevewy@gmail.com> Date: Sat Dec 20 11:27:18 2014 -0700 Added Yank commands. commit 7c2ccd7365eda624cf5e9608e81734a66a90b0cc Author: srdubya <stevewy@gmail.com> Date: Fri Dec 19 10:57:18 2014 -0700 Removed mode, in preparation for merge with GitHub. commit e09b1ec92947e9563b5650750771fa08f6829af9 Author: srdubya <stevewy@gmail.com> Date: Thu Dec 18 09:02:14 2014 -0700 Fixed word movement for B,E,&W. commit f730b8abc8221536091524655e84bf3f48fcbbb9 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Mon Dec 15 20:24:52 2014 -0800 Allow for clean exit on AppDomain unload. In a "hosted" scenario, the shell might be hosted in an alternate AppDomain so that it can be loaded/unloaded independent of the process. This change allows the unload to happen cleanly (without a rude threadabort tearing through stuff). commit ba540e34f4d94e26f39307818be4695be5e07844 Author: srdubya <stevewy@gmail.com> Date: Sat Dec 13 10:06:01 2014 -0700 Getting ready to fix dot word movement problem. commit eaf4f0b155013a7ecc30dda1747aa39a47dda1f7 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Dec 2 09:35:11 2014 -0800 Fix exception after certain keywords Rendering in PSReadline assumed all input had corresponding tokens, but the PowerShell parser doesn't return any tokens after in at least one case - after input like 'process foo'. The fix is to gracefully handle running out of tokens. Fixes #148. commit 74659cbb3189c3d925ed4b602f377d8167674f73 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Nov 25 19:35:22 2014 -0800 Bind Alt+F7 to ClearHistory cmd/PowerShell Windows mode supports clearing history with Alt+F7, so PSReadline will too. commit 69b083764203fa0f7194f0c16a96109b38cf1081 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Nov 19 13:33:11 2014 -0800 Better documentation for custom key bindings Fixes #170 commit b94c7d6827b65215e03aae1c3ee6430826ba4b19 Merge: 1cdcf9d2a ffedd7980 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Oct 28 21:13:27 2014 -0700 Merge branch 'master' of https://github.com/lzybkr/PSReadLine Conflicts: PSReadLine/Changes.txt commit 1cdcf9d2a50cd0a7ce433f84c78e2caeabbe43b7 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Oct 16 18:33:01 2014 -0700 Add bindings to scroll the screen up/down by line New functions: ScrollDisplayUpLine ScrollDisplayDownLine And corresponding key bindings Ctrl+PageUp/Ctrl+PageDown These functions accept a numeric argument, but the DigitArgument implementation isn't compatible with scrolling the screen, so it's not that useful unless a custom binding wants to do something interesting, like scroll half a screen. commit 23f584e11dece2c882e6c23c4bf8844d3af85a72 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Oct 16 17:42:21 2014 -0700 ClearScreen now clears the screen, not the buffer ClearScreen is meant to just clear the screen, not the full buffer. The command cls (or Clear-host) will clear the full buffer. commit eaf14629477fceb980d39c31a15da962e2978007 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Oct 14 19:29:35 2014 -0700 Raise PowerShell.OnIdle if needed If there are any registered handlers for the engine event PowerShell.OnIdle, raise the event that PowerShell would have raised so the event handler can do it's work. Fixes #169 commit c728a939da4f990e0a797289461a6ba642ce3a21 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Oct 14 09:43:42 2014 -0700 Add Remove-PSReadlineKeyHandler Sometimes you just don't want a key binding for whatever reason, so now you can remove a binding. Note that unbound keys won't fall back to what happens in "cooked" editing mode. In raw editing mode (which is what PSReadline uses), conhost only handles a very small set of key bindings and those bindings weren't available to PSReadline anyway. Fixes #154 commit cc2de256504b078df2c3ec3686ac6425eef0d364 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Oct 8 09:24:12 2014 -0700 Fix null reference exception in AcceptAndValidate commit ffedd7980d75dae94a218515c8c4819222bdf87b Author: Jason Shirk <jason@truewheels.net> Date: Mon Oct 6 11:32:48 2014 -0700 Bind Ctrl+P/Ctrl+N like Up/Down arrow in Emacs mode commit cddcef8f309eba2d375620d9072de5eefe6a2328 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Oct 1 23:23:22 2014 -0700 Support exit process with Ctrl+D in Emacs mode Added new function DeleteCharOrExit bound to Ctrl+D in emacs mode. Fixes #121. commit 9b76b08399a2424af900f7b85857a9e5bd9a547b Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Sep 26 18:22:44 2014 -0700 Stop using static parameter binder The static parameter binder is causing too many false errors so I'm removing the checks it was doing. commit b5d5634e7cc1fe949cb593299e174e0e873e89d3 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Sep 26 18:15:19 2014 -0700 Fix exception after AcceptAndGetNext The "current" line cleared after accepting via AcceptAndGetNext and we would crash trying to recall this current line. I've changed how history search works after AcceptAndGetNext to work in a more natural way so that arrow keys can be used to recall commands near the accepted command instead of searching for other commands with the same prefix. Fixes #152. commit 0dca3aac9595963c3697d0cdb93f429dda5d3e4d Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 23 19:34:51 2014 -0700 Rethrow exceptions during unit tests The error reporting message that was added gets in the way of ensuring tests fail in a more reasonable way. So if I can tell the unit tests are running, just rethrow the exception. commit a48127b4dd9b7ff05ec55831d4310e2e0b6db7e8 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Sep 19 08:34:40 2014 -0700 Fix MTA bug with Cut commit c53d4b06ed27d0e2c2b4c9012e36c59677b2dbbc Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Sep 11 09:08:04 2014 -0700 Add -ValidationHandler for ValidateAndAcceptLine To support custom validation, for e.g. to allow someone to reject command lines where arguments are not valid, you can now specify a custom validation handler script block. commit a29f1f553be339337646b09a048b5e20f794ff6b Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 9 23:09:15 2014 -0700 Update changes.txt commit faed5680e4e27a5cdf93c75731710012c82ebef8 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 9 23:08:50 2014 -0700 Make Enter default to ValidateAndAcceptLine commit 400bf05c3ae438bdb34a8c1f8e91c4be0ccaf238 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 9 17:36:59 2014 -0700 Add ValidateAndAcceptLine function To avoid cluttering the screen and history with command lines that don't work because of stupid errors like "command not found", you can bind enter to ValidateAndAcceptLine. commit 0da7ec8c995132c0f40c836cc74d75574ed1da82 Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Sep 8 10:16:16 2014 -0700 Add color support for an error status message commit 85064bf226a1b1c7032bbe1b2096b38e703376be Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 9 17:39:40 2014 -0700 Update version number to 13 commit 67b63c5265ea54f2db1f2817ddb2dc977b285894 Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Sep 8 09:27:31 2014 -0700 Make PowerShell ExecutionContext available to C# commit 417c94a926e8dcd7a8e0347c09a840d89076dd62 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Aug 26 07:43:25 2014 -0700 Update version # commit 2fd3840589a19d51943c17489006e2c436bc2b32 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Aug 13 19:13:14 2014 -0700 Fix MenuComplete to properly clear the menu commit 4e3dd6f63fb9c95a19ce8ccbb68f0f5080ffd87d Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Aug 13 09:56:10 2014 -0700 Update changes.txt commit 480b3fda7290d41c49eae43513e387b014623dd0 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Aug 13 09:01:44 2014 -0700 Clear emphasis if any before accepting a line. commit ba9bdba7f4ccd8a8878be16625381fa1dac669cf Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Aug 6 19:44:23 2014 -0700 Better multi-line editing These changes provide a more seemless editing experience when the command input has multiple lines. The history recall functions now avoid recalling history if the input has multiple lines _and_ we aren't in the middle of recalling history. If you do want to edit a recalled multi-line line (ugh) then you can first use something like LeftArrow then UpArrow will work like you would want. BeginningOfLine/EndOfLine have been changed as well. If you're already at the start/end of a line, you'll go to the start/end of the input, otherwise you'll go to the start/end of the line. Two new functions have been added for moving up/down lines in case somebody wants to bind those independently of history, but I don't see those being used much. Fixes #47 commit f5647cbcabdf140b6937b81cf299eb4fa00e93fe Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Jul 17 08:51:43 2014 -0700 Reset console mode for calls to external code For an unknown reason - SetConsoleMode calls fail when setting certain modes. One such case is when PowerShell calls SetConsoleMode in it's implementation of PSHostRawUserInterface.ReadKey. PowerTab calls this method - and it's possible that other custom key handlers might want to use that api, so I will reset the console mode to what it was before calling PSReadline for the duration of the external code (tab completion or custom handlers) and reset it when the external code completes. Fixes #125. commit d91401ac37363e871ee5ac57a370b231cf838c77 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jul 16 20:43:19 2014 -0700 Tweak yielding for event processing slightly Based on feedback from Lee, the conditions under which we need to pulse the pipeline can be even more restrictive and a more minimal "useless bit of script" can be used. commit 901adece353ac15031151bd6ff17a3d474aa35f3 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jul 16 08:28:27 2014 -0700 Remember script block for custom key bindings For various reasons, we may need to know that a key binding came from a script block so that is now saved in the key binding. commit 31cfbc1689f9ad0d03e0d02991da7d0330fae969 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jul 16 07:22:58 2014 -0700 Add timeout in ReadKey for event processing The pipeline thread is blocked when PSReadline is running. When the pipeline thread is blocked, PowerShell won't process any events. I added a timeout of 300ms and check for event subscribers, if there are any, then run a bit of useless PowerShell so that the PowerShell engine will get a chance to process events. Fixes #133. commit 601cf56505b8424c25aedb31e0c8c6feabd530c1 Author: jazzdelightsme <dan_j_thompson@hotmail.com> Date: Sun Jul 13 21:13:52 2014 -0700 Bind F8 to HistorySearch*, similar to cmd.exe. It's not /exactly/ the same as cmd.exe. For instance, it doesn't cycle through results, but since you can use Shift+F8, to go the other way, it still gets the job done. commit 550215264fefe2b99f4735d6975190006350de56 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Jun 28 12:16:19 2014 -0700 Fix undo bug When recalling a line from history multiple times and making edits to that line, the undo stack was incorrect. The fix was to make a copy of the undo stack when recalling from history. Example repro: ls Enter UpArrow Escape dir Enter UpArrow UpArrow Escape commit e56368d5d2e020a9006cc2549046e252fe554a7b Merge: 693318de6 8c602017f Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Jun 27 23:26:51 2014 -0700 Merge branch 'master' of https://github.com/lzybkr/PSReadLine commit 693318de6d175fbc8457cce9df556feb89dc4199 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Jun 27 21:05:59 2014 -0700 Correct enums in history save option Fixes #123 commit d7f4471f1904d112f2618ad13fcfb1fd76668fd3 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Jun 27 20:58:57 2014 -0700 Fix prompt error highlight characters When deciding what character to color red for errors, we were using IsSymbol - that was a bit too restrictive so it was changed to be any non-whitespace and non-alphanumeric characters. Fixes #127 commit 8c602017fb80e422658e36c648b8f70e631763a0 Author: Jason Shirk <jason@truewheels.net> Date: Fri Jun 13 14:38:58 2014 -0700 Update version # and change log for 1.0.0.11 commit 7630913270f3ee2026d32ad5e13916c55cd1f9d9 Author: Jason Shirk <jason@truewheels.net> Date: Fri Jun 13 13:57:31 2014 -0700 Fix MenuComplete to not use nested edit groups I didn't feel like properly solving how to handle nested edit groups when forgetting edits after an undo, but I forget that MenuComplete was actually using nested edit groups. MenuComplete doesn't really need nested edit groups, it was just convenient. I switched to just remembering the edits to remove and saving a single edit group for the final selection or removing them all if cancelled. commit bd211ea4f705dc9f527fab27aeb575b09fe19caa Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 14:11:32 2014 -0700 Update version # and change log for 1.0.0.10 commit 1cc4d37ea7899eb34ccc1b7ad185bf4b172d400e Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 18:32:35 2014 -0700 Fix undo bug There was a bug in undo code where if you undid some stuff, made an edit, then started a grouped edit, the undo state was incorrect. A simple repro was something like (in Windows mode) a b c d Ctrl+z Ctrl+z Ctrl+z Shift+LeftArrow Ctrl+x commit c4508fd0d5f256124b94bb58ffeac049202fa272 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 18:51:11 2014 -0700 Fix tests for recent changes commit 73fdd14911f73a4f133ab03f32a3abe3585da729 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 18:31:05 2014 -0700 Change parenthesize sample to honor selection commit 53807405054fd9680205ac146b1e54b19f864b45 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 14:09:17 2014 -0700 Attempt better recovery from an exception If an exception occurs when editing the command line, display some diagnostic information so that I might get a bug report. Also attempt to restore the command line so they can continue editing. commit 436216f44d3b5c1cdef605eb06ded4eb49d4fa42 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 13:22:15 2014 -0700 Change a couple key bindings Bind MenuComplete to Ctrl+Space in Windows and Emacs mode Bind YankLastArg to Alt+. in Windows mode commit cd3d5a6230490f0fd207e1c72e18059e283b7e38 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:59:45 2014 -0700 Fix exception when setting history save path commit 413b9eb5ff84fa35b4c26bcab3664f7a57fe1a69 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:57:36 2014 -0700 Fix ShowKeyBindings to not write blank lines commit dfc12e906f7cf35790c091de2d15766a9dcf4c2b Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:17:20 2014 -0700 Fix a typo commit 4c5cc57bf9f55bff44a9905b739f3e014a19ed53 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:16:39 2014 -0700 Update help for history saving options commit f7161ae2f155f34d4f892603cd27d7bb89a3b25a Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:14:58 2014 -0700 Fix initial creation of directory for history file. commit 3aa00c46c1e75dc868a9206f2e3fff30fde1ef98 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:35:05 2014 -0700 Update changes commit a7e98ce07d261f612d72622ec41b2b195ae704fd Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:34:38 2014 -0700 Update help for Ctrl+r/Ctrl+s commit 8d02b0f870957b3c1f4924ef606a3fa0c25cb80a Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:25:06 2014 -0700 Small fix to MenuComplete The cursor was placed incorrectly when showing the menu at the bottom of the screen if you hadn't reached the end of buffer yet. commit 61891b41c9ca96d9dde08f8a1889a7b9cf4d6e53 Merge: 75b2d9a9b dcd09566f Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:02:58 2014 -0700 Merge branch 'SaveHistory' commit dcd09566fcaaf492d0e13a2f7cf5590e75cf65fa Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:01:28 2014 -0700 Auto-save history Added options to save history automatically - either at exit or incrementally so that history can be shared across sessions. Default is current to save incrementally. Also added an option to not save history - useful for those importing history in their profile. commit 0ff6a3ed24f851fd3cf391a68facde9942df4452 Merge: 24f3b0079 b495d2400 Author: srdubya <stevewy@gmail.com> Date: Sun May 18 06:57:26 2014 -0600 Merge remote-tracking branch 'upstream/master' Conflicts: PSReadLine/PSReadLineResources.Designer.cs PSReadLine/PSReadLineResources.resx PSReadLine/UndoRedo.cs Signed-off-by: srdubya <stevewy@gmail.com> commit 75b2d9a9b9dc1688f8ee3d4573bc5c556a600f5a Merge: 80b04250b b495d2400 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat May 17 23:07:57 2014 -0700 Merge branch 'master' of https://github.com/lzybkr/PSReadLine commit b495d2400d8e41bfa7bfb798f208044c0efdd9fa Author: Jason Shirk <jason@truewheels.net> Date: Fri May 16 18:16:35 2014 -0700 Add samples for marking/jumping to directories For quick navigation, these examples let you mark a directory and jump back to a directory with a couple of keys, all without affecting the current command line. commit 80b04250b181cef3fd63c472794674d77e316027 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed May 14 07:43:23 2014 -0700 Update Changes.txt commit 34f63bf8fb50c5306c9c97358b693ca6eeb79849 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue May 13 17:44:31 2014 -0700 Recall the saved current line after end of history When starting a search through history, we saved the current line. A refactoring broke recalling this saved line in one case (the default) so I added some tests to make sure it doesn't regress again. commit 06654dcb75a1e62177f18710a2f6b0c48f5accc7 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue May 13 09:03:02 2014 -0700 Ensure completion menu is visible When displaying the completion menu, it might be rendered in a non-visible area and needs to be made visible. commit 96f235668887575aabfc07e07bcbc9304d35c68b Author: jason@truewheels.net <jason@truewheels.net> Date: Mon May 12 07:41:42 2014 -0700 Add MenuComplete function Some folks won't like the way menu complete works and the cleanest way to invoke it is as a bindable function, so I'm adding that. I considered emulating zsh more closely, but zsh is a little weird in when it removes the possible completions. commit 230476cc365515aa9a7fb974d634f77fb89517c2 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun May 11 13:33:22 2014 -0700 Fix menu completion for scrolling and wrapping Menu completion would crash PowerShell when invoked from the end of the buffer. The display also got messed up when the selected completion caused the line length to exceed the buffer width and hence required wrapping. commit 44fe1fe2a669419e7060bf414dd8d7585dfefccb Author: jason@truewheels.net <jason@truewheels.net> Date: Tue May 6 11:20:28 2014 -0700 Support menu completion If completion is ambiguous, we will support interactively selecting the completion using tabs and/or arrow keys after displaying the possible completions. This menu style completion can be cancelled with Ctrl+G or Escape. Menu completion should be optional as not everybody will like it, I will add an option and/or a function that makes this something folks can customize. Also fixed: * Tooltips that contain newlines now look much better * Undo groups handled a little better (maybe a non-issue before menu completion.) commit 77dea1787b614ea3bcf9aefb289997cfbe9dc6ec Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Apr 28 11:31:13 2014 -0700 Fix small bug with history no duplicates Up/Down arrow with "no duplicates" would cause an exception if you tried to go beyond the start/end of history. commit 24f3b00797a3973bf1693920bb98ccbc36f01d24 Author: srdubya <stevewy@gmail.com> Date: Mon Apr 21 19:20:25 2014 -0600 Improved Undo for 'c' commands. commit 7e54ab29be5f3e4ed075c09f3bbeebbe554fa0d5 Author: srdubya <stevewy@gmail.com> Date: Sat Apr 19 19:14:56 2014 -0600 Making UndoAll a non-VI specific key handler. commit d6dd9b87d56cd02611f0e8b4fe3cb99f13b0c036 Merge: 5debc1cf5 25b79bf13 Author: srdubya <stevewy@gmail.com> Date: Sat Apr 19 18:06:06 2014 -0600 Merge remote-tracking branch 'upstream/master' Conflicts: PSReadLine/History.cs PSReadLine/Movement.cs PSReadLine/PSReadLineResources.resx PSReadLine/UndoRedo.cs commit 5debc1cf5648fa12d223ed39ce6240887d8a58ed Author: srdubya <stevewy@gmail.com> Date: Sat Apr 19 08:59:33 2014 -0600 Moving many Vi* commands to more generic names. commit b92952d778d46e2476f556df4d2ae048948100f5 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Apr 17 09:38:16 2014 -0700 Reset current history index when done w/ recall After a series of UpArrow/DownArrow (or whatever keys are bound to the history search/recall), I am reseting the current history index. This avoids a problem where the current line might not match the line saved in history for that history index. There is a small change in behavior that some might notice. Say you are searching for some command, but you can't think of something unique to search for in that exact command, but you do remember something you can search for in a command entered near that command actual command you want. Before this change, you could use Ctrl+R to find the command near the one you want, then use up/down arrows to get to the exact command. This will no longer work after this fix. Any other fix will likely be more complicated, so if folks ever noticed the previous behavior and complain that it no longer works. Fixes #97 commit 48c66090199b1f15af7a238721f09c44a3955d66 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Apr 17 09:21:01 2014 -0700 *SearchHistory to recall current line Like ordinary recall history, when you use the down arrow, you eventually recall the current line (which is typically empty but not always.) SearchHistory was stopping at the first match instead of getting back to the current line (which will be exactly the search string.) commit ad636239dd1fbe6ef30a2196873b7a897b709420 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 18:06:48 2014 -0700 Move Ctrl+V entry for Get-PSReadlineKeyHandler output commit 4bad9b07f66a9872c964a889386495f25c766083 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 18:05:35 2014 -0700 Support RevertLine for lines from previous sessions commit 25b79bf1340aa0ccc033a7a6cc0a79a093b6a4d6 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 11:03:36 2014 -0700 Update for release commit 3934046f69d4544c1c54b3057347b47d78ae8022 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 10:58:03 2014 -0700 Revert "Use runtime check to allow other console-based hosts to use PSReadline." This reverts commit f5c94f7fe2da695190cc2584c32695f0eb7d8de7. Conflicts: PSReadLine/PublicAPI.cs commit 97bfc27146ce692b645ea71a42aec96fc95ef161 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 09:14:47 2014 -0700 Add api to get selection state. commit 79905c0974f16d212595fcf5ce265c7eb746788a Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 09:00:30 2014 -0700 HistorySearch changed to use emphasis Like interactive search, history search now uses emphasis to make it obvious what is being searched. With this change, the cursor will also always move to the end as it's much less useful to have the cursor near the start of the line. commit 800860c51ee3c40f38f289cb48b8a09b375ba375 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 08:39:32 2014 -0700 Change eol behavior for NextWord/ForwardWord Cmd and bash place the cursor at the end of the last word instead of one past the end of the word when moving by word. PSReadline emulated that behavior, but it's inconsistent with word movement on the rest of the line and it's inconvenient because you typically need to use the right arrow or end to edit at the end of the line. I've removed the emulated behavior, the cursor will now move to the end of the line. commit b6c9584703d1233c47257436410bb2f10f366882 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 08:33:35 2014 -0700 HistoryNoDupes - Search/InteractiveSearch History commit a985c974cfd74cc18342198f7e591a54a257fba6 Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Apr 14 14:51:24 2014 -0700 HistoryNoDupes to store but not recall dupes HistorySearch and InteractiveSearch still need work though commit c703edae0831c8cb23bd27bdb7ffbda4697c1fc1 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Apr 13 11:21:30 2014 -0700 Cleanup some Resharper issues commit cdd50113f18e8a434189808f09e586ab0df822b4 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Apr 13 10:43:57 2014 -0700 Support digit args for word/character movement commit 816cd6cf8b86e1c7e918ea105d77f1b2a6ab6fc0 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Apr 12 10:16:11 2014 -0700 Add key bindings in Windows mode Windows mode now has by default: * Interactive history search (Ctrl+R/Ctrl+S) * DigitArgument (Alt+Num) commit abef5c2dc9d34e702144a35307671933816227ec Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Apr 4 13:02:25 2014 -0700 Fix #99 - completion in remote sessions When powershell has entered a remote session via Enter-PSSession, completion was completing against the local session. The fix is to use the remote runspace when calling the completion api. The remote runspace isn't exactly exposed in a clean way from the host, so the fix is mixed between a bit of PowerShell and C#. commit 67d0936cd81b12fd03d9da5d87ac13cd3ec843b0 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 29 10:23:03 2014 -0600 Attempting to comply with Jason's preferred formatting. commit b3dc32c0bad29e07b363a1a235ea7a151bf60536 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 29 10:16:02 2014 -0600 Added ShowKeyBindings cnt-alt-? key binding. Fixing missed inadvertant formatting change. commit fa40af83b74055819ded1f737db4c7f59a75bf35 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 29 09:39:24 2014 -0600 Attempting to improve Get-PSReadlineKeyHandler for vi mode. commit f308df0f8b45c9d62ad6f413c4477cfed27a2586 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 29 07:00:30 2014 -0600 Cleaned up formatting changes in common files. Further minimized changes to originals. commit ebcdf029f0ef081d3764f9f78b5090914f956af3 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 22 08:16:03 2014 -0600 Adding VI edit mode, along with unit tests. Note, these items need work: - No support for Yank/Paste yet. - No support for 'G' history goto yet. - Undo works, but not as desired in some cases. commit 7471399ad4c198c742c2f9b9da4cc0cd444b16b4 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Mar 8 16:25:12 2014 -0800 More cleanup from removing Fakes commit c5cd2f03b486face037d3494b6ea475e0869fae2 Merge: 24cf00ed2 906de61b3 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Mar 8 16:15:27 2014 -0800 Merge branch 'master' of https://github.com/lzybkr/PSReadLine Conflicts: PSReadLine/PublicAPI.cs commit 24cf00ed234837caf59df63b7680cb8595e141f6 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Mar 8 15:52:44 2014 -0800 Replace Fakes with simple mock object Fakes are handy, but require Visual Studio Professional. To enable folks using Express, I added a mock interface for the bits that need mocking. commit 906de61b3b031ea44ddbbbd7fb918a800152d986 Author: jazzdelightsme <dan_j_thompson@hotmail.com> Date: Tue Mar 4 18:12:42 2014 -0800 Use runtime check to allow other console-based hosts to use PSReadline. The host check in the .psd1 only allows you to specify one host. To allow other hosts to use PSReadline, but still try to give a helpful error to people trying to use PSReadline in other, non-console hosts (like the ISE), we instead do a runtime check using IModuleAssemblyInitializer, wherein we check to see if the current process has a non-hidden console window, and emit an error if not. commit 366cf077623d43c23cc22f9e1fa350fb25ebba8d Author: Jason Shirk <jason@truewheels.net> Date: Wed Feb 26 18:53:34 2014 -0800 Add post-mortem debugging aid commit 8eb4c0c64ebf0a543fe6b5e25eacfa88a4816871 Author: Jason Shirk <jason@truewheels.net> Date: Wed Feb 26 17:18:34 2014 -0800 Generate Function param + ValidateSet dynamically It was annoying to always update the ValidateSet attribute each time I added a new Function to support. Dynamically generating the parameter with ValidateSet works nicely. commit 553e9ad4424f85b145a8dfffc9de0938a219caad Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Sat Feb 22 21:15:49 2014 -0800 Mark ReadKeyThreadProc thread as background to prevent hang on exit. PowerShell.exe does not exhibit the hang because it hosts the CLR and does some teardown differently, but pure-managed hosts will get stuck waiting for this thread unless it is marked as a "background" thread. commit c45b1a930a9f18ccb0d04175140ca5b02b0dac86 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Sat Feb 22 21:45:19 2014 -0800 Replace slow DateTime.Now calls with Stopwatch (QueryPerformanceCounter) It's an order of magnitude faster. We don't need all the fancy time info given by DateTime.Now anyway; we just need an accurate timestamp. There's also a correctness issue: when dealing with TimeSpans (what you get when subtracting DateTimes), the Milliseconds property is not the same as the TotalMilliseconds property. commit 66ece9630d9a446e2c65377014410942f34b87ae Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Feb 23 23:50:13 2014 -0800 Copy all module files to build dir commit 59049ab174d38a27a229108f31049dbf05ac5ff4 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Feb 23 23:31:37 2014 -0800 Add function CopyOrCancelLine Ctrl+C should copy selected text if any is selected. Otherwise it will cancel editing. On the off chance somebody prefers the old behavior, CancelLine is unchanged, but it is no longer bound. Fixes #87 commit fc5983782a3c2184418bad1aa7e3279b58fa50de Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Feb 23 23:08:13 2014 -0800 Add SelectAll function (Ctrl+A) Fixes #84 commit 3d1cc6a2cd35e3394c814163f15bafbe07ef1c32 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Feb 23 20:27:30 2014 -0800 Fix #89 Backspace after a failed history search made searching always fail until starting a new interactive history search. commit 22ded640722349ed23b0cf2a5d9a502e259f3131 Author: Jason Shirk <jason@truewheels.net> Date: Fri Feb 14 14:39:29 2014 -0800 Add missing default arguments commit 63c00d30ebe710e08c576c2ebe9fd27714ab2ccf Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Feb 6 08:24:12 2014 -0800 Add new functions to select to start/end of line Function SelectBackwardsLine is bound to Shift+Home Function SelectLine is bound to Shift+End commit e4bce53095f64cd33a0da1b5ecb0541a6b2dfae8 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 23:42:05 2014 -0800 Update version number commit 1305a5a8f4f7139dcfd185f9cfca3af838ebd82c Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 23:38:37 2014 -0800 Update ValidateSet for key handler functions commit 274368daa733ca9345e67ff1d18366be145d03ad Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 23:38:10 2014 -0800 Fix colors in CaptureScreen commit 81ea49455285327a2d52b888e6c66e29e5208f3c Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 23:11:37 2014 -0800 Add screen scrolling support New functions: * ScrollScreenUp * ScrollScreenDown * ScrollScreenTop * ScrollScreenToCursor commit 31e98dd6b634b7b689dfa476cc7dcfc26ce14e81 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 22:41:35 2014 -0800 Ensure token state matches buffer There was a small bug where typing very quickly could cause random errors - incorrect edits or null references. commit ff99d190f593101a3a1edf6a6ceea55a4dfbe933 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 15:53:53 2014 -0800 Tests for directory completion When completing a directory, we want to always add a trailing backslash, and if the directory is quoted, make sure the backslash is inside the quotes _and_ the cursor is placed inside the quotes so it's quicker to type more of the path. commit c6a4de2174d906f426a4411c6e26b76d543fcc93 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Feb 4 19:18:49 2014 -0800 Add ShellNextWord ShellForwardWord was behaving like *NextWord or *ForwardWord depending on the edit mode. Instead, we should have 2 functions so people can bind as they choose regardless of the edit mode. commit cfbd44dfb3a276cb390e64cdd28fc30bf29553dc Author: jason@truewheels.net <jason@tr…
This imports the PSReadLine project to `src/Microsoft.PowerShell.PSReadLine`. The commits are squashed so that we don't unnecessarily combine the histories. Squashed commit of the following: commit 1fe251f7681ffa9d5598e830a115c0700fe978df Author: Sergei Vorobev <sevoroby@microsoft.com> Date: Thu Feb 11 12:43:03 2016 -0800 Generate help from platyPS markdown commit 52cef9e493cec5e642c938c0e6a64cce232fa813 Merge: 68b9161b4 c1499bd29 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jan 21 08:23:54 2016 -0800 Merge pull request #337 from srdubya/master Fixing #334. commit 68b9161b4a8027f8cab908134b198a121295ee8a Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Wed Jan 20 15:58:05 2016 -0800 Update Changes.txt commit c66ccee060ffafcf174fe5f333620d987a113fdf Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Wed Jan 20 15:57:47 2016 -0800 Fix formatting commit 2965e31d2b18c99041193d6e031872a8f1acef0d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Wed Jan 20 15:30:20 2016 -0800 Update version number commit c1499bd2924d1f85c1390cd4ded644d7f971bbf8 Author: srdubya <stevewy@gmail.com> Date: Mon Jan 18 10:45:03 2016 -0700 Fixing #334. commit fba34371a1a62ef077b08a7e07aa3333c9a4774e Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 09:44:42 2016 -0800 Fix build commit d428a19feba06f6c4188df64605883bec0c460b0 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 09:39:59 2016 -0800 Fix sample for strict mode+better custom handler error msg Fixes #304 commit 2897f6ed3d74b0e69be197a6de7ce765c747692a Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 09:04:35 2016 -0800 Handle abandoned mutex exception commit d1fc73e731d8d0a609850d3fed24632e8fa0951d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 09:01:02 2016 -0800 Update xmldoc comments commit 3fc3007f83d7d0cc587aca42a7565a67e385375b Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 08:58:07 2016 -0800 Startup improvements - Delay loading resources until they are used - Delay creating vi mode key handler tables - Remove format.ps1xml file commit 57843aacb68c39da7815f8c06825f965737e7a14 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Sun Jan 17 08:52:40 2016 -0800 Move some apis to be internal commit 26752f508c8ac8e1f9ec6fb6306bc086c220600f Author: srdubya <stevewy@gmail.com> Date: Sat Jan 2 08:51:06 2016 -0700 Addressed this feedback: 1 _normalBackground (keybindings.vi.cs) unused 2 copyright notice in *.vi.cs files? 3 ReadLine.vi.cs - InsertCharacter unreferenced 4 SearchBackward - change fn name to ViSearchHistoryBackward? commit 38eebac9d03c9a189bed7aad2b97bf98d484c2ef Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 30 22:42:32 2015 -0800 Better error for history file access issues When there is an IO error trying to create the directory for the history file, or some other sort of error trying to read or write the history file, we shouldn't tell the user to report a bug. Instead, the error will just report the exception message, and if it happens twice, suggest some solutions. The error will not be reported more than twice, because that would be too annoying. Fixes #322 commit 3a9584206fe8ef5ee0171282fab93a0be7e727ad Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Dec 24 21:06:48 2015 -0800 Cleanup resources commit 720855d9232973ca4b70a983c378dd798e3e5c8d Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 16 22:56:25 2015 -0800 Finish refactoring so unit tests run in VS2015 The mock of the console api is complete enough so unit tests run. It's still a hack, not exactly factored nicely to support other hosts, but at least some of the real interface is in one place, not scattered about. commit fb3b178e66f378e68aebe7deb9a18419f9613212 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 16 09:53:44 2015 -0800 Fix off by 1 error in BeginningOfLine Home on first line of multi-line went to the second character, not the first. commit 5c627fb3eaa80a3d07cbd52922a9abc34c9668b9 Merge: e0de45980 34e4e2fd9 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 16 09:41:00 2015 -0800 Merge branch 'master' of https://github.com/rkeithhill/PSReadLine into rkeithhill-master Conflicts: PSReadLine/PSReadLine.csproj PSReadLine/PSReadLineResources.Designer.cs PSReadLine/PSReadLineResources.resx PSReadLine/ReadLine.cs commit e0de4598069e3d4bd8568eb9f9bcf1334ac697a3 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Sun Dec 13 17:52:33 2015 -0800 CaptureScreen: scroll buffer with selection, add alternate movement keys. commit cf3471afdfe707f3a9b530dce9ed7cabad3c6768 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Fri Dec 11 18:31:59 2015 -0800 ScrollDisplayToCursor bug: don't try to scroll to before the buffer. commit 7b135909b99187bd3c42c0fc5472f3b8cbb31e72 Merge: 9c97f5459 dac7ec2ff Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Dec 13 09:28:09 2015 -0800 Merge branch 'master' of https://github.com/PowerShell/PSReadLine commit 9c97f5459605c75d2787168cca7f394a5a034ec5 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Dec 13 09:23:31 2015 -0800 Use nuget packages for PowerShell SDK. commit dac7ec2ffac1bbc3c97a4e0a2335ab5193a42564 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Thu Dec 10 07:26:03 2015 -0800 Feedback: Rename ChangePSReadlineKeyHandlerCommandBase, remove assert. commit f44943b0895b3454236ac41bdacc81d03f352111 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Wed Dec 9 22:48:35 2015 -0800 Add the ability to change Vi cmd mode dispatch tables. commit 0190001e864c0566d10e1483829c687d4295624b Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Dec 9 17:27:02 2015 -0800 Fix coloring of bareword token w/ nested token at start Fixes #204. commit 461e14c8acda8c79c20a41a7b2daea34e6af504b Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Dec 6 09:05:37 2015 -0800 Initial refactor console api usage To get the unit tests passing in VS2015, and to help w/ possible future hosts, I've moved most of the console api usage to a class, which is then mocked in the unit tests. commit f9b4c98a00656c3deb720f80392c8eaa042f65b2 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Nov 29 21:43:20 2015 -0800 CaptureScreen tried to set clipboard on a MTA thread Fix is to use ExecuteOnSTAThread. commit 1d85624cc7f40b4df89d63a1435857a092538082 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Nov 29 10:44:25 2015 -0800 Build against CLR 4 to support PowerShell V3 commit bf0de4e840a180754fa6e01552a47ae37419761b Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Nov 29 10:40:37 2015 -0800 Fix indentation. commit 3bb4520664bfb263890b8550334386db0133a7ca Merge: 914101597 513a93a4f Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Nov 14 20:11:50 2015 -0800 Merge branch 'master' of https://github.com/srdubya/PSReadLine into vimode commit 91410159765d38d10af2cd1a24f03a769c57780e Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Nov 14 19:27:23 2015 -0800 Avoid exception when $ExecutionContext is $null commit b754d709624941ca6e42a8caf22d87d710f9c468 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Nov 14 19:15:41 2015 -0800 Fix formatting of error message commit 24a9848483695a343ab37db8ddabad21631c1e1a Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Nov 14 19:14:28 2015 -0800 Get the real colors when copying the screen commit 513a93a4f07aef05bb9a2e532ad531a92bc62811 Author: srdubya <stevewy@gmail.com> Date: Sat Aug 29 06:58:17 2015 -0600 Tab now does the same as Enter on command line search ('/'). commit bde626cee27e3d54132a8f4fd9e58f3d5322ee58 Author: srdubya <stevewy@gmail.com> Date: Wed Aug 5 07:33:55 2015 -0600 Fixed tests and reformatted some code to fix a reported exception. commit 36f0bf739be5551e7ef4c6da4179b5790430d07a Merge: 363e552bf 788f57339 Author: srdubya <srdubya@users.noreply.github.com> Date: Wed Aug 5 07:27:50 2015 -0600 Merge pull request #2 from ecsousa/fix_cimplete_redo Fix exception for use completion when a edit group is already started. Merging into master, where a failing unit test awaits. commit 363e552bffd9a65b28620aea3b973737ffbdd53a Merge: 6e1412e23 3c7e5ce5b Author: srdubya <stevewy@gmail.com> Date: Tue Aug 4 12:54:33 2015 -0600 Merging in Eduardo's fFrT for c and d changes, along with my tests and fixes. commit 3c7e5ce5bfc3e9be37e426c20b5495bf33b01fa5 Author: srdubya <stevewy@gmail.com> Date: Sun Aug 2 13:05:20 2015 -0600 Added unit tests and fixed a few issues found as a result. commit 6e1412e23c4ee94c86431ba7c3a420fbafc49026 Author: srdubya <stevewy@gmail.com> Date: Sat Aug 1 05:32:53 2015 -0600 Increased framework version to 4.5 to accomodate System.Management.Automation dependency version change. commit 788f5733936717c1830e6253d6a71056698ece53 Author: Eduardo Antunes C. de Sousa <ecsousa@gmail.com> Date: Thu Jul 30 15:34:54 2015 -0300 Fix exception for use completion when a edit group is already started. commit f133b9af1de597345e0482b76e0f586acbe376a8 Author: Eduardo Antunes C. de Sousa <ecsousa@gmail.com> Date: Thu Jul 30 14:51:31 2015 -0300 Adding 'f', 'F', 't', 'T' movements to 'd' and 'c' command. commit 34e4e2fd94f6653e69711fb18a3a768826c11023 Author: Keith Hill <r_keith_hill@hotmail.com> Date: Mon Jul 20 19:54:33 2015 -0600 Added InsertLineAbove and InsertLineBelow functions and set them up to key bind to Ctrl+Enter and Ctrl+Shift+Enter in Windows mode. Not being an emacs person, I'm not sure what key bindings these two functions would bind to. I also added unit tests for the two functions as well as a unit test for what I believe is a bug in the BeginningOfLine (home) function when in multiline mode. I also updated the project to have the appropriate default namespace so that the resource file gets re-generated with the correct resource name without having to resort to hacking the csproj file. There was also an issue with trying to run unit tests because the unit test setup of PSReadline sets engineInstrincs to null and that caused a null reference exception which I worked-around by testing for null first. commit 6ffc6f0f9bf7579b388762506e75f1514eedfce2 Author: srdubya <stevewy@gmail.com> Date: Mon Jul 20 07:03:13 2015 -0600 Move cursor to position 0 on history movement. commit 847cce49e4a47e4923c815d16604c3a2257940bd Author: srdubya <stevewy@gmail.com> Date: Tue Jul 7 07:16:03 2015 -0600 Fixing defect #263. commit 14cf3912ac68054516ecc815ebc78aa50ab2b29b Author: srdubya <stevewy@gmail.com> Date: Sun Jun 28 10:54:03 2015 -0600 Adding documentation for 'o', 'O', and 'J''s key handling methods. commit 687983a9d788336d4e15a390b9ad04ee6b93b4f8 Author: srdubya <stevewy@gmail.com> Date: Sun Jun 28 07:13:52 2015 -0600 Fixed cursor placement issues with 'o' & 'O'. commit 81c41ca72ba84907385cc4f944bf44118dd498b1 Author: srdubya <stevewy@gmail.com> Date: Sat Jun 27 13:44:56 2015 -0600 Adding 'o', 'O', and 'J' in Vi-Mode. commit 42fe350fa0f16c61ecbd392a3cda652c93b4091a Merge: b5db5e2e4 9a1ad952a Author: srdubya <stevewy@gmail.com> Date: Fri Jun 26 07:11:12 2015 -0600 Merge branch 'upstream' commit 9a1ad952a0b033b4ac053c73bef3171c1db812fd Author: Roman Kuzmin <nightroman@gmail.com> Date: Thu Jun 25 20:18:54 2015 +0100 Set-PSReadlineKeyHandler -Key F7 - two minor tweaks - Clearer output of the result $line. - $ -> @, just in case if there is the only history command. commit 8be638271b376e36d856dec4d233820fe55b886d Author: Roman Kuzmin <nightroman@gmail.com> Date: Thu Jun 25 02:01:36 2015 +0100 Set-PSReadlineKeyHandler -Key F7: command history using Out-GridView. - Properly reads multiline commands from the history file. - Allows selection and insertion of several commands. commit b5db5e2e43152916199f5ae715477490f23a1941 Author: srdubya <stevewy@gmail.com> Date: Sun Jun 21 07:47:36 2015 -0600 Fixed merge problems, plus fixed broken tests. commit f5bdb3fe5787d44565fe524b5ff0f12a7a37d98d Merge: 5c999b15f ccfe2a3fa Author: srdubya <stevewy@gmail.com> Date: Sat Jun 20 16:47:33 2015 -0600 1st attempt at merge with #251. commit ccfe2a3fad320ec7be621d37fc7beb314eb9a0b2 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Fri Jun 19 17:07:39 2015 -0700 Change resource name to match in-box version commit 8e7665e9e24dd4df2cc13e029edd13a076323655 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Fri Jun 19 11:00:32 2015 -0700 Fix InvokePrompt for remote sessions commit 70195b3e95a5d4f080f614c1c98f0d50fb4f79c9 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 20:01:49 2015 -0700 Move one-time initialization out of psm1 commit 1a2e9f54600b6c19b324f2bc1db03dc3653a75ca Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:55:38 2015 -0700 Better handling of exception after exception commit 55150a225dc60a553de6d1213060d096e6dce209 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:43:59 2015 -0700 Update module manifest commit fb1ecc49258c0d7d3353b523714bed7ae58cf797 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:43:03 2015 -0700 Use full namespace commit dc1847bdebb2c1e27b0e2b7fa9bb0fe5ee848432 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:38:54 2015 -0700 Remove unreferenced/old code commit 1309e1eb63ee169d9776ab525e8be4945fae26b7 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:38:26 2015 -0700 Formatting cleanup commit f7615088467affafc9635ad67970d6c771864b0b Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:28:46 2015 -0700 Change default continuation prompt commit 0f41d433d86944fd52afc7694f62f0a4e60c9a7d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:10:18 2015 -0700 Change default location for history file commit b54f7f11c73f9eb22e2514ced6e6b627bbdfb50d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 19:01:59 2015 -0700 Mouse wheel doesn't work with powershell console Fix is to clear the flag for capturing mouse events while in PSReadline because we would ignore them anyway. commit 8e86f7289476c58c8c9dadfb70d5d1ec82908177 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 18:57:07 2015 -0700 Right click w/ multiple lines pasted as a one line This problem only happened in ValidateAndAcceptLine It also only happened if validation failed for any reason. The fix is to insert a newline even if validation failed if we still have pending input. If there is no pending input, we don't want to insert the newline, as this is the common case and people will not want to delete the blank line from the inserted newline. commit 95184cedbe947e7be61d2cf877f2419a7e9dcbba Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 18:54:13 2015 -0700 Switch to WinForms for clipboard Some windows skus don't have WPF but do include winforms, so switch to winforms to access the clipboard. commit 7ce3eaabb3892b8c55ee4d9fbba3cdc43f69096a Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 18:50:48 2015 -0700 Change Enter back to AcceptLine AcceptAndValidateLine still has some problems, so the default has been changed back to AcceptLine. commit 1a538e78212ee3c1f378212b2e21fee0b0a8bc79 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 18:24:23 2015 -0700 Fix/suppress various FxCop errors commit 365da0c6628e438610fc4841f8909ef042b1ce6d Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 15:44:56 2015 -0700 Add a HelpUri for each cmdlet commit 02eb13d7557faa759990aa6bad425a5347bdc095 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 15:32:20 2015 -0700 Rename namespace PSConsoleUtilities to Microsoft.PowerShell commit e6e46de26b5717d0ed379f36e96dcb9a4ae535b1 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 15:14:08 2015 -0700 Use absolute path for HintPath on reference assembly. commit e47cb0f7aa0c4e0434acb63aa9716f9e3bf0c594 Author: Jason Shirk (POWERSHELL) <jasonsh@microsoft.com> Date: Thu Jun 18 15:04:49 2015 -0700 Add copyright header commit ade70a13b0420a62a6ecaf433c6b9ab7e64b667b Merge: d81b1ea72 2d78cac3d Author: Jason Shirk <jason@truewheels.net> Date: Wed Jun 17 14:24:12 2015 -0700 Merge pull request #235 from andrewducker/master Adding in an F7 handler to bring up command history in a grid. commit 5c999b15f587bb0a85ae45156eebc4818fb2bcb8 Author: srdubya <stevewy@gmail.com> Date: Sat Jun 6 13:15:58 2015 -0600 Fixed missing newline before "Oops". commit a86fbe9fd41e8b3df384804af746629538fda59a Author: srdubya <stevewy@gmail.com> Date: Sat Jun 6 13:05:05 2015 -0600 Corrected a few uncessary file differences, mostly indentation issues. commit 22916e8b10031383a82dcc1e0e7f1610ea3a39e7 Author: srdubya <stevewy@gmail.com> Date: Sat Jun 6 05:33:55 2015 -0600 Merged CJK language support from Jason's upstream (#243). commit 7e9bb96db3c67c2f0cac3115ce1c5a65c7d0f1ef Merge: 5228456b1 d81b1ea72 Author: srdubya <stevewy@gmail.com> Date: Fri Jun 5 19:09:45 2015 -0600 Merge branch 'upstream' commit 5228456b1e642f2bd27379fd4c01da323c04a8e8 Author: srdubya <stevewy@gmail.com> Date: Tue May 19 20:29:43 2015 -0600 Adding Prompt option for ViModeIndicator. Fixing #227 - indicator returns back to None after any other set option. commit d81b1ea721e36f5353c639bd5df0c26ae20fe3e7 Author: Yanbing Wang <yawang@microsoft.com> Date: Mon May 18 22:08:36 2015 -0700 support CJK with truetype font commit bcf72c642e7da61a533deea88c77a70c11b65550 Author: Yanbing Wang <yawang@microsoft.com> Date: Mon May 18 22:04:08 2015 -0700 support CJK with truetype font commit d70398b0edf5ffce8cbcf0fab31a5dc63662b283 Author: Yanbing Wang <yawang@microsoft.com> Date: Mon May 18 12:18:15 2015 -0700 update based on code review commit 3b2973bacdd6de722e70f694af9c71a270a29c36 Author: Yanbing Wang <yawang@microsoft.com> Date: Mon May 18 10:23:40 2015 -0700 add CJK support commit 2d78cac3d51875608797d506ebda8041f11d9674 Author: andrewducker <andrew@ducker.org.uk> Date: Thu May 14 20:40:54 2015 +0100 Adding missing backticks My fault for editing the file in Github in the first place... commit 0189d6ed6b504c4f420f832d97d2824ff9193f27 Author: andrewducker <andrew@ducker.org.uk> Date: Thu May 14 17:21:03 2015 +0100 Adding in an F7 handler to bring up command history in a grid. See issue at https://github.com/lzybkr/PSReadLine/issues/233 commit 66db8bed41d3e01d12925af87105219470587e88 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 21 06:39:49 2015 -0600 Made the default -ViModeIndicator None. commit f6be29dbf12f547e547750e2437d89dccd6112c7 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 21 06:34:20 2015 -0600 Switched from -ChangeCursor to -ViModeIndicator[Cursor|StatusLine|None]. StatusLine does not work yet. commit 3a2b0bed2c26ecf0bf652219d0be79a2cec4917c Author: srdubya <stevewy@gmail.com> Date: Sun Mar 15 13:56:48 2015 -0600 Added the changing of the console cursor size when in command/insert mode. Use the -ChangeCursor option to control. commit 58104d1b732dc21ec4d10ef98cdf854cf627aa43 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 14 10:16:54 2015 -0600 Added single-quote and double-quote to the list of word delimiters. Addressed bugs involving change-word and delete-word when word delimiters and special characters are involved. commit 09d4821e11ead411a78b70202883461fe0e7c9ff Author: srdubya <stevewy@gmail.com> Date: Fri Mar 13 07:05:08 2015 -0600 Switched visual editing temporary file from double quotes to single. Rounded out a test a bit. commit 8156ee51af35544100f3efb2fc5d4373921e9900 Author: srdubya <stevewy@gmail.com> Date: Wed Mar 11 04:17:34 2015 -0600 Fixed defect #218 -- <esc> cw now works properly with non-space word separators. commit 717bfb679a151391ba899538b04f6aa97c931802 Author: srdubya <stevewy@gmail.com> Date: Tue Mar 10 21:05:11 2015 -0600 Enclosing visual edit temporary filename in quotes to handle special characters in user names. commit 15f36c751e00a23a5010eba3bacfd60456144aaf Author: srdubya <stevewy@gmail.com> Date: Tue Mar 10 07:15:36 2015 -0600 Fixed "$i$" bug, #214. commit 3372bf45e6700fd58c393702695c61c3cc255461 Author: srdubya <stevewy@gmail.com> Date: Tue Mar 10 07:00:30 2015 -0600 Fixed <esc> r <space> bug. commit 74a501777a7f9a32df193ddeb02ec3df11c327fb Author: srdubya <stevewy@gmail.com> Date: Sun Mar 8 16:35:55 2015 -0600 Enabled VIM syntax highlighting during visual editing by giving the temporary file a .ps1 extension. commit d0f797c1cc33d427d25d78f8d3f807704fd5035d Author: srdubya <stevewy@gmail.com> Date: Sun Mar 8 15:42:07 2015 -0600 Adding visual editing via <esc> v. Set either the EDITOR or VISUAL environment variable to your in-console editor command of choice. When entering visual editing mode, the shell will execute the command specified by EDITOR/VISUAL with a temporary file as the single parameter. VISUAL has precidence over EDITOR. Environment variable are search first in machine, then process, and finally user targets. commit f0295550278f57492bcd23ef30b415183be1b255 Merge: 07ce10733 a3258ed85 Author: srdubya <stevewy@gmail.com> Date: Sun Mar 8 07:58:49 2015 -0600 Sync'd with upstream. commit 07ce10733a67bbe1efd1da79cc720b0f7c82abb2 Author: srdubya <stevewy@gmail.com> Date: Tue Mar 3 20:32:57 2015 -0700 Fixed "<esc>h<space>ih" bug. commit a3258ed85a232e042e6fcd8030f126e1c838d040 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 18 09:02:09 2015 -0800 Remove call to SetOptions which was unnecessary Fixes #206 commit f2fe25c7b2a83e8b1a452b4fb6f6ec5ccc450004 Merge: 8480f36bb 4035d5dbd Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Feb 17 22:09:50 2015 -0800 Merge branch 'master' of https://github.com/lzybkr/PSReadLine commit 8480f36bbe8330f07b8cdcb7596082314357dfae Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Feb 17 22:09:29 2015 -0800 Update version number to 14. commit 4035d5dbd8369ab729789c2946173d5bfe843ada Author: Roman Kuzmin <nightroman@gmail.com> Date: Wed Feb 18 03:47:46 2015 +0000 Spelling in about_PSReadline.help.txt commit a28fc3f73de205e52af34b0f45927d8a14089e07 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Feb 7 22:59:04 2015 -0800 Recognize debugger pseudo-commands ValidateAndAcceptLine was rejecting debugger commands like 's' or 'k'. Now we check if we are debugging and accept these fake commands. Fixes #199 commit b753e6be014e5f09fc4ab4eeb31ede37fbf685be Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Feb 7 11:54:13 2015 -0800 Fix ScrollDisplayToCursor to work better Fixes #190 commit 84c38795635fa2f3296583b392c53044ed76804e Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Jan 26 19:35:12 2015 -0800 Remove demo mode Demo mode doesn't work right now, and I found a better alternative here: https://github.com/Code52/carnac Fixes #192 commit 234f5ac9d27f7a56c85b9af11880044ece6836cc Author: srdubya <stevewy@gmail.com> Date: Sun Jan 25 10:33:46 2015 -0700 Fixex cursor positioning after history change bug. commit ac09623ca35368b43fb7ca0a774491a76674386c Merge: 4a2e7bb72 f730b8abc Author: srdubya <stevewy@gmail.com> Date: Sat Jan 24 10:03:16 2015 -0700 Merged Upstream commit b77ec226dc6c7ab958410f8a5962323abc8ee607 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Jan 22 19:27:30 2015 -0800 Honor $MaximumHistoryCount This history count was being ignored, and the default in PSReadline was 1024 instead of 4096 that PowerShell defaults to. The fix is to up the default, and safely set MaximumHistoryCount in PSReadline based on the variable when initializing the first time PSReadlne is called. Fixes #135 commit b1fcc751d56c61d9108b83605d19af6353cb553b Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 22:16:00 2015 -0800 Fix ClearScreen to properly scroll The previous change scrolled the wrong test, losing the bottom instead of the top of the buffer. commit 75bdf63d98e9f579ab77b31387a604ba997d99ef Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 16:12:06 2015 -0800 Fix HistorySearch* when line is empty The commit 49a4c4c1e62a00dc9fda357b0182a0d76d0d3bd9 broke arrow keys working when the line was empty and you wanted to go back more than one command. commit b8f2348945c844c6620b740a6f762de795090b83 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:28:51 2015 -0800 Color any prompt character when there is an error cmder uses lambda as the prompt character which is a regular character, so I just removed the test and will color any random non-whitespace character that is used in the prompt. Fixes #180 commit 32b7fc91ae2cab01ec0a1394ce47863ad4109942 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:24:34 2015 -0800 Update CaptureScreen description Fixes #185 commit 7cbb0a858f4041b5cf4f46c22ded4cec228a7e63 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:19:26 2015 -0800 Clear status message in CancelLine Fixes #189 commit c239364c24560087f452708bf47b816670c30420 Merge: 9914838d3 f730b8abc Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:14:47 2015 -0800 Merge remote-tracking branch 'origin/master' commit 9914838d3eb1cf05331f903b079113c3e276dc6d Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jan 21 09:13:29 2015 -0800 History recall should ignore other sesions When using UpArrow, people prefer not recalling commands from other currently running sessions. It's still useful to avoid entering commands that have might have been entered in another currently running session, so those commands can still be found when *searching* history, either interactively, or if the search string is not empty when using HistorySearch[Backward|Forward]. Also fixed in this change - an obscure bug where HistoryNoDuplicates did not work well with a DigitArgument when recalling history. Fixes #179 commit 4a2e7bb7221086ecd56cb53192301c3986f211a6 Author: srdubya <stevewy@gmail.com> Date: Sun Jan 18 06:43:49 2015 -0700 Fixing problem with tab completion after 'c' in command mode. commit b0b7241d32184527283d8f5bed7e63d7c7d43e02 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Jan 16 09:05:32 2015 -0800 Support Cancel/Abort DigitArgument There was an exception with input like: a Alt+1 Ctrl+C CancelLine was clearing the buffer, but didn't reset _current. That fixes the exception, but it still clears the input line when called to terminate DigitArgument, so instead we do something similar to how interactive history search is terminated. Fixes #184 commit 299aea82680b337c8658aaaeb2307ffa068e31db Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Jan 15 17:22:15 2015 -0800 Fix bug with undo after possible completions repro is something like: [ArrayL <Ctrl+Space> <Ctrl+Z> <Ctrl+Space> <Ctrl+Z> commit b6573377152e3b1bfce7659381c9adcede1c9271 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Jan 15 09:19:09 2015 -0800 ValidateAndAcceptLine improvements Script block arguments are now only validated as arguments to specific cmdlets (which are in a user modifiable whitelist.) A custom validation handler must now throw an exception to report an error, returning an object is now ignored. A sample custom validation handler was added to demonstrate typo correction. Fixes #162 commit ae8b2f8dbc959a0eeee9fc0299f9cd54cc8bd270 Author: srdubya <stevewy@gmail.com> Date: Tue Dec 30 07:18:10 2014 -0700 Surrounding Get-PSReadlineKeyHandler vi command mode keys in "<>". commit 37d884a1a4a251f4ca1e5a67ca4964e6ca1c7bcd Author: srdubya <stevewy@gmail.com> Date: Sat Dec 27 11:58:56 2014 -0700 Added support for mid-chord numberic arguments. commit 07186ba50e8ce24615338230f25274f11392bdbb Author: srdubya <stevewy@gmail.com> Date: Wed Dec 24 12:58:57 2014 -0700 Added ctrl-D handling (accept in insert mode, exit in cmd mode). commit 7dc200af75e1a8536368db70496d8ba5d07df01f Author: srdubya <stevewy@gmail.com> Date: Wed Dec 24 12:43:26 2014 -0700 Cleaned a couple duplicate functions. commit 73b8e0276104bf6c49503f83edb131ac07fa6d74 Author: srdubya <stevewy@gmail.com> Date: Mon Dec 22 18:27:22 2014 -0700 Sync'd with Upstream. commit dd7fc31ac7c42ec6a8684a6196b5a96cb27dfe65 Author: srdubya <stevewy@gmail.com> Date: Sun Dec 21 16:23:45 2014 -0700 Fixed minor formatting. Ready for Sync. commit 9a926f2df4e048d330d2d0185b944730fe94b11e Author: srdubya <stevewy@gmail.com> Date: Sun Dec 21 16:20:20 2014 -0700 Fixed Delete and Change so the work for Globs. commit eb5e5e02f9b6b4ed9246aed5808e9ef4949f5918 Author: srdubya <stevewy@gmail.com> Date: Sat Dec 20 11:27:18 2014 -0700 Added Yank commands. commit 7c2ccd7365eda624cf5e9608e81734a66a90b0cc Author: srdubya <stevewy@gmail.com> Date: Fri Dec 19 10:57:18 2014 -0700 Removed mode, in preparation for merge with GitHub. commit e09b1ec92947e9563b5650750771fa08f6829af9 Author: srdubya <stevewy@gmail.com> Date: Thu Dec 18 09:02:14 2014 -0700 Fixed word movement for B,E,&W. commit f730b8abc8221536091524655e84bf3f48fcbbb9 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Mon Dec 15 20:24:52 2014 -0800 Allow for clean exit on AppDomain unload. In a "hosted" scenario, the shell might be hosted in an alternate AppDomain so that it can be loaded/unloaded independent of the process. This change allows the unload to happen cleanly (without a rude threadabort tearing through stuff). commit ba540e34f4d94e26f39307818be4695be5e07844 Author: srdubya <stevewy@gmail.com> Date: Sat Dec 13 10:06:01 2014 -0700 Getting ready to fix dot word movement problem. commit eaf4f0b155013a7ecc30dda1747aa39a47dda1f7 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Dec 2 09:35:11 2014 -0800 Fix exception after certain keywords Rendering in PSReadline assumed all input had corresponding tokens, but the PowerShell parser doesn't return any tokens after in at least one case - after input like 'process foo'. The fix is to gracefully handle running out of tokens. Fixes #148. commit 74659cbb3189c3d925ed4b602f377d8167674f73 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Nov 25 19:35:22 2014 -0800 Bind Alt+F7 to ClearHistory cmd/PowerShell Windows mode supports clearing history with Alt+F7, so PSReadline will too. commit 69b083764203fa0f7194f0c16a96109b38cf1081 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Nov 19 13:33:11 2014 -0800 Better documentation for custom key bindings Fixes #170 commit b94c7d6827b65215e03aae1c3ee6430826ba4b19 Merge: 1cdcf9d2a ffedd7980 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Oct 28 21:13:27 2014 -0700 Merge branch 'master' of https://github.com/lzybkr/PSReadLine Conflicts: PSReadLine/Changes.txt commit 1cdcf9d2a50cd0a7ce433f84c78e2caeabbe43b7 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Oct 16 18:33:01 2014 -0700 Add bindings to scroll the screen up/down by line New functions: ScrollDisplayUpLine ScrollDisplayDownLine And corresponding key bindings Ctrl+PageUp/Ctrl+PageDown These functions accept a numeric argument, but the DigitArgument implementation isn't compatible with scrolling the screen, so it's not that useful unless a custom binding wants to do something interesting, like scroll half a screen. commit 23f584e11dece2c882e6c23c4bf8844d3af85a72 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Oct 16 17:42:21 2014 -0700 ClearScreen now clears the screen, not the buffer ClearScreen is meant to just clear the screen, not the full buffer. The command cls (or Clear-host) will clear the full buffer. commit eaf14629477fceb980d39c31a15da962e2978007 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Oct 14 19:29:35 2014 -0700 Raise PowerShell.OnIdle if needed If there are any registered handlers for the engine event PowerShell.OnIdle, raise the event that PowerShell would have raised so the event handler can do it's work. Fixes #169 commit c728a939da4f990e0a797289461a6ba642ce3a21 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Oct 14 09:43:42 2014 -0700 Add Remove-PSReadlineKeyHandler Sometimes you just don't want a key binding for whatever reason, so now you can remove a binding. Note that unbound keys won't fall back to what happens in "cooked" editing mode. In raw editing mode (which is what PSReadline uses), conhost only handles a very small set of key bindings and those bindings weren't available to PSReadline anyway. Fixes #154 commit cc2de256504b078df2c3ec3686ac6425eef0d364 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Oct 8 09:24:12 2014 -0700 Fix null reference exception in AcceptAndValidate commit ffedd7980d75dae94a218515c8c4819222bdf87b Author: Jason Shirk <jason@truewheels.net> Date: Mon Oct 6 11:32:48 2014 -0700 Bind Ctrl+P/Ctrl+N like Up/Down arrow in Emacs mode commit cddcef8f309eba2d375620d9072de5eefe6a2328 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Oct 1 23:23:22 2014 -0700 Support exit process with Ctrl+D in Emacs mode Added new function DeleteCharOrExit bound to Ctrl+D in emacs mode. Fixes #121. commit 9b76b08399a2424af900f7b85857a9e5bd9a547b Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Sep 26 18:22:44 2014 -0700 Stop using static parameter binder The static parameter binder is causing too many false errors so I'm removing the checks it was doing. commit b5d5634e7cc1fe949cb593299e174e0e873e89d3 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Sep 26 18:15:19 2014 -0700 Fix exception after AcceptAndGetNext The "current" line cleared after accepting via AcceptAndGetNext and we would crash trying to recall this current line. I've changed how history search works after AcceptAndGetNext to work in a more natural way so that arrow keys can be used to recall commands near the accepted command instead of searching for other commands with the same prefix. Fixes #152. commit 0dca3aac9595963c3697d0cdb93f429dda5d3e4d Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 23 19:34:51 2014 -0700 Rethrow exceptions during unit tests The error reporting message that was added gets in the way of ensuring tests fail in a more reasonable way. So if I can tell the unit tests are running, just rethrow the exception. commit a48127b4dd9b7ff05ec55831d4310e2e0b6db7e8 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Sep 19 08:34:40 2014 -0700 Fix MTA bug with Cut commit c53d4b06ed27d0e2c2b4c9012e36c59677b2dbbc Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Sep 11 09:08:04 2014 -0700 Add -ValidationHandler for ValidateAndAcceptLine To support custom validation, for e.g. to allow someone to reject command lines where arguments are not valid, you can now specify a custom validation handler script block. commit a29f1f553be339337646b09a048b5e20f794ff6b Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 9 23:09:15 2014 -0700 Update changes.txt commit faed5680e4e27a5cdf93c75731710012c82ebef8 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 9 23:08:50 2014 -0700 Make Enter default to ValidateAndAcceptLine commit 400bf05c3ae438bdb34a8c1f8e91c4be0ccaf238 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 9 17:36:59 2014 -0700 Add ValidateAndAcceptLine function To avoid cluttering the screen and history with command lines that don't work because of stupid errors like "command not found", you can bind enter to ValidateAndAcceptLine. commit 0da7ec8c995132c0f40c836cc74d75574ed1da82 Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Sep 8 10:16:16 2014 -0700 Add color support for an error status message commit 85064bf226a1b1c7032bbe1b2096b38e703376be Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Sep 9 17:39:40 2014 -0700 Update version number to 13 commit 67b63c5265ea54f2db1f2817ddb2dc977b285894 Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Sep 8 09:27:31 2014 -0700 Make PowerShell ExecutionContext available to C# commit 417c94a926e8dcd7a8e0347c09a840d89076dd62 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Aug 26 07:43:25 2014 -0700 Update version # commit 2fd3840589a19d51943c17489006e2c436bc2b32 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Aug 13 19:13:14 2014 -0700 Fix MenuComplete to properly clear the menu commit 4e3dd6f63fb9c95a19ce8ccbb68f0f5080ffd87d Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Aug 13 09:56:10 2014 -0700 Update changes.txt commit 480b3fda7290d41c49eae43513e387b014623dd0 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Aug 13 09:01:44 2014 -0700 Clear emphasis if any before accepting a line. commit ba9bdba7f4ccd8a8878be16625381fa1dac669cf Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Aug 6 19:44:23 2014 -0700 Better multi-line editing These changes provide a more seemless editing experience when the command input has multiple lines. The history recall functions now avoid recalling history if the input has multiple lines _and_ we aren't in the middle of recalling history. If you do want to edit a recalled multi-line line (ugh) then you can first use something like LeftArrow then UpArrow will work like you would want. BeginningOfLine/EndOfLine have been changed as well. If you're already at the start/end of a line, you'll go to the start/end of the input, otherwise you'll go to the start/end of the line. Two new functions have been added for moving up/down lines in case somebody wants to bind those independently of history, but I don't see those being used much. Fixes #47 commit f5647cbcabdf140b6937b81cf299eb4fa00e93fe Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Jul 17 08:51:43 2014 -0700 Reset console mode for calls to external code For an unknown reason - SetConsoleMode calls fail when setting certain modes. One such case is when PowerShell calls SetConsoleMode in it's implementation of PSHostRawUserInterface.ReadKey. PowerTab calls this method - and it's possible that other custom key handlers might want to use that api, so I will reset the console mode to what it was before calling PSReadline for the duration of the external code (tab completion or custom handlers) and reset it when the external code completes. Fixes #125. commit d91401ac37363e871ee5ac57a370b231cf838c77 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jul 16 20:43:19 2014 -0700 Tweak yielding for event processing slightly Based on feedback from Lee, the conditions under which we need to pulse the pipeline can be even more restrictive and a more minimal "useless bit of script" can be used. commit 901adece353ac15031151bd6ff17a3d474aa35f3 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jul 16 08:28:27 2014 -0700 Remember script block for custom key bindings For various reasons, we may need to know that a key binding came from a script block so that is now saved in the key binding. commit 31cfbc1689f9ad0d03e0d02991da7d0330fae969 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jul 16 07:22:58 2014 -0700 Add timeout in ReadKey for event processing The pipeline thread is blocked when PSReadline is running. When the pipeline thread is blocked, PowerShell won't process any events. I added a timeout of 300ms and check for event subscribers, if there are any, then run a bit of useless PowerShell so that the PowerShell engine will get a chance to process events. Fixes #133. commit 601cf56505b8424c25aedb31e0c8c6feabd530c1 Author: jazzdelightsme <dan_j_thompson@hotmail.com> Date: Sun Jul 13 21:13:52 2014 -0700 Bind F8 to HistorySearch*, similar to cmd.exe. It's not /exactly/ the same as cmd.exe. For instance, it doesn't cycle through results, but since you can use Shift+F8, to go the other way, it still gets the job done. commit 550215264fefe2b99f4735d6975190006350de56 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Jun 28 12:16:19 2014 -0700 Fix undo bug When recalling a line from history multiple times and making edits to that line, the undo stack was incorrect. The fix was to make a copy of the undo stack when recalling from history. Example repro: ls Enter UpArrow Escape dir Enter UpArrow UpArrow Escape commit e56368d5d2e020a9006cc2549046e252fe554a7b Merge: 693318de6 8c602017f Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Jun 27 23:26:51 2014 -0700 Merge branch 'master' of https://github.com/lzybkr/PSReadLine commit 693318de6d175fbc8457cce9df556feb89dc4199 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Jun 27 21:05:59 2014 -0700 Correct enums in history save option Fixes #123 commit d7f4471f1904d112f2618ad13fcfb1fd76668fd3 Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Jun 27 20:58:57 2014 -0700 Fix prompt error highlight characters When deciding what character to color red for errors, we were using IsSymbol - that was a bit too restrictive so it was changed to be any non-whitespace and non-alphanumeric characters. Fixes #127 commit 8c602017fb80e422658e36c648b8f70e631763a0 Author: Jason Shirk <jason@truewheels.net> Date: Fri Jun 13 14:38:58 2014 -0700 Update version # and change log for 1.0.0.11 commit 7630913270f3ee2026d32ad5e13916c55cd1f9d9 Author: Jason Shirk <jason@truewheels.net> Date: Fri Jun 13 13:57:31 2014 -0700 Fix MenuComplete to not use nested edit groups I didn't feel like properly solving how to handle nested edit groups when forgetting edits after an undo, but I forget that MenuComplete was actually using nested edit groups. MenuComplete doesn't really need nested edit groups, it was just convenient. I switched to just remembering the edits to remove and saving a single edit group for the final selection or removing them all if cancelled. commit bd211ea4f705dc9f527fab27aeb575b09fe19caa Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 14:11:32 2014 -0700 Update version # and change log for 1.0.0.10 commit 1cc4d37ea7899eb34ccc1b7ad185bf4b172d400e Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 18:32:35 2014 -0700 Fix undo bug There was a bug in undo code where if you undid some stuff, made an edit, then started a grouped edit, the undo state was incorrect. A simple repro was something like (in Windows mode) a b c d Ctrl+z Ctrl+z Ctrl+z Shift+LeftArrow Ctrl+x commit c4508fd0d5f256124b94bb58ffeac049202fa272 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 18:51:11 2014 -0700 Fix tests for recent changes commit 73fdd14911f73a4f133ab03f32a3abe3585da729 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 18:31:05 2014 -0700 Change parenthesize sample to honor selection commit 53807405054fd9680205ac146b1e54b19f864b45 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 14:09:17 2014 -0700 Attempt better recovery from an exception If an exception occurs when editing the command line, display some diagnostic information so that I might get a bug report. Also attempt to restore the command line so they can continue editing. commit 436216f44d3b5c1cdef605eb06ded4eb49d4fa42 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 13:22:15 2014 -0700 Change a couple key bindings Bind MenuComplete to Ctrl+Space in Windows and Emacs mode Bind YankLastArg to Alt+. in Windows mode commit cd3d5a6230490f0fd207e1c72e18059e283b7e38 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:59:45 2014 -0700 Fix exception when setting history save path commit 413b9eb5ff84fa35b4c26bcab3664f7a57fe1a69 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:57:36 2014 -0700 Fix ShowKeyBindings to not write blank lines commit dfc12e906f7cf35790c091de2d15766a9dcf4c2b Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:17:20 2014 -0700 Fix a typo commit 4c5cc57bf9f55bff44a9905b739f3e014a19ed53 Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:16:39 2014 -0700 Update help for history saving options commit f7161ae2f155f34d4f892603cd27d7bb89a3b25a Author: Jason Shirk <jason@truewheels.net> Date: Thu Jun 12 12:14:58 2014 -0700 Fix initial creation of directory for history file. commit 3aa00c46c1e75dc868a9206f2e3fff30fde1ef98 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:35:05 2014 -0700 Update changes commit a7e98ce07d261f612d72622ec41b2b195ae704fd Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:34:38 2014 -0700 Update help for Ctrl+r/Ctrl+s commit 8d02b0f870957b3c1f4924ef606a3fa0c25cb80a Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:25:06 2014 -0700 Small fix to MenuComplete The cursor was placed incorrectly when showing the menu at the bottom of the screen if you hadn't reached the end of buffer yet. commit 61891b41c9ca96d9dde08f8a1889a7b9cf4d6e53 Merge: 75b2d9a9b dcd09566f Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:02:58 2014 -0700 Merge branch 'SaveHistory' commit dcd09566fcaaf492d0e13a2f7cf5590e75cf65fa Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Jun 11 09:01:28 2014 -0700 Auto-save history Added options to save history automatically - either at exit or incrementally so that history can be shared across sessions. Default is current to save incrementally. Also added an option to not save history - useful for those importing history in their profile. commit 0ff6a3ed24f851fd3cf391a68facde9942df4452 Merge: 24f3b0079 b495d2400 Author: srdubya <stevewy@gmail.com> Date: Sun May 18 06:57:26 2014 -0600 Merge remote-tracking branch 'upstream/master' Conflicts: PSReadLine/PSReadLineResources.Designer.cs PSReadLine/PSReadLineResources.resx PSReadLine/UndoRedo.cs Signed-off-by: srdubya <stevewy@gmail.com> commit 75b2d9a9b9dc1688f8ee3d4573bc5c556a600f5a Merge: 80b04250b b495d2400 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat May 17 23:07:57 2014 -0700 Merge branch 'master' of https://github.com/lzybkr/PSReadLine commit b495d2400d8e41bfa7bfb798f208044c0efdd9fa Author: Jason Shirk <jason@truewheels.net> Date: Fri May 16 18:16:35 2014 -0700 Add samples for marking/jumping to directories For quick navigation, these examples let you mark a directory and jump back to a directory with a couple of keys, all without affecting the current command line. commit 80b04250b181cef3fd63c472794674d77e316027 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed May 14 07:43:23 2014 -0700 Update Changes.txt commit 34f63bf8fb50c5306c9c97358b693ca6eeb79849 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue May 13 17:44:31 2014 -0700 Recall the saved current line after end of history When starting a search through history, we saved the current line. A refactoring broke recalling this saved line in one case (the default) so I added some tests to make sure it doesn't regress again. commit 06654dcb75a1e62177f18710a2f6b0c48f5accc7 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue May 13 09:03:02 2014 -0700 Ensure completion menu is visible When displaying the completion menu, it might be rendered in a non-visible area and needs to be made visible. commit 96f235668887575aabfc07e07bcbc9304d35c68b Author: jason@truewheels.net <jason@truewheels.net> Date: Mon May 12 07:41:42 2014 -0700 Add MenuComplete function Some folks won't like the way menu complete works and the cleanest way to invoke it is as a bindable function, so I'm adding that. I considered emulating zsh more closely, but zsh is a little weird in when it removes the possible completions. commit 230476cc365515aa9a7fb974d634f77fb89517c2 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun May 11 13:33:22 2014 -0700 Fix menu completion for scrolling and wrapping Menu completion would crash PowerShell when invoked from the end of the buffer. The display also got messed up when the selected completion caused the line length to exceed the buffer width and hence required wrapping. commit 44fe1fe2a669419e7060bf414dd8d7585dfefccb Author: jason@truewheels.net <jason@truewheels.net> Date: Tue May 6 11:20:28 2014 -0700 Support menu completion If completion is ambiguous, we will support interactively selecting the completion using tabs and/or arrow keys after displaying the possible completions. This menu style completion can be cancelled with Ctrl+G or Escape. Menu completion should be optional as not everybody will like it, I will add an option and/or a function that makes this something folks can customize. Also fixed: * Tooltips that contain newlines now look much better * Undo groups handled a little better (maybe a non-issue before menu completion.) commit 77dea1787b614ea3bcf9aefb289997cfbe9dc6ec Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Apr 28 11:31:13 2014 -0700 Fix small bug with history no duplicates Up/Down arrow with "no duplicates" would cause an exception if you tried to go beyond the start/end of history. commit 24f3b00797a3973bf1693920bb98ccbc36f01d24 Author: srdubya <stevewy@gmail.com> Date: Mon Apr 21 19:20:25 2014 -0600 Improved Undo for 'c' commands. commit 7e54ab29be5f3e4ed075c09f3bbeebbe554fa0d5 Author: srdubya <stevewy@gmail.com> Date: Sat Apr 19 19:14:56 2014 -0600 Making UndoAll a non-VI specific key handler. commit d6dd9b87d56cd02611f0e8b4fe3cb99f13b0c036 Merge: 5debc1cf5 25b79bf13 Author: srdubya <stevewy@gmail.com> Date: Sat Apr 19 18:06:06 2014 -0600 Merge remote-tracking branch 'upstream/master' Conflicts: PSReadLine/History.cs PSReadLine/Movement.cs PSReadLine/PSReadLineResources.resx PSReadLine/UndoRedo.cs commit 5debc1cf5648fa12d223ed39ce6240887d8a58ed Author: srdubya <stevewy@gmail.com> Date: Sat Apr 19 08:59:33 2014 -0600 Moving many Vi* commands to more generic names. commit b92952d778d46e2476f556df4d2ae048948100f5 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Apr 17 09:38:16 2014 -0700 Reset current history index when done w/ recall After a series of UpArrow/DownArrow (or whatever keys are bound to the history search/recall), I am reseting the current history index. This avoids a problem where the current line might not match the line saved in history for that history index. There is a small change in behavior that some might notice. Say you are searching for some command, but you can't think of something unique to search for in that exact command, but you do remember something you can search for in a command entered near that command actual command you want. Before this change, you could use Ctrl+R to find the command near the one you want, then use up/down arrows to get to the exact command. This will no longer work after this fix. Any other fix will likely be more complicated, so if folks ever noticed the previous behavior and complain that it no longer works. Fixes #97 commit 48c66090199b1f15af7a238721f09c44a3955d66 Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Apr 17 09:21:01 2014 -0700 *SearchHistory to recall current line Like ordinary recall history, when you use the down arrow, you eventually recall the current line (which is typically empty but not always.) SearchHistory was stopping at the first match instead of getting back to the current line (which will be exactly the search string.) commit ad636239dd1fbe6ef30a2196873b7a897b709420 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 18:06:48 2014 -0700 Move Ctrl+V entry for Get-PSReadlineKeyHandler output commit 4bad9b07f66a9872c964a889386495f25c766083 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 18:05:35 2014 -0700 Support RevertLine for lines from previous sessions commit 25b79bf1340aa0ccc033a7a6cc0a79a093b6a4d6 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 11:03:36 2014 -0700 Update for release commit 3934046f69d4544c1c54b3057347b47d78ae8022 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 10:58:03 2014 -0700 Revert "Use runtime check to allow other console-based hosts to use PSReadline." This reverts commit f5c94f7fe2da695190cc2584c32695f0eb7d8de7. Conflicts: PSReadLine/PublicAPI.cs commit 97bfc27146ce692b645ea71a42aec96fc95ef161 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 09:14:47 2014 -0700 Add api to get selection state. commit 79905c0974f16d212595fcf5ce265c7eb746788a Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 09:00:30 2014 -0700 HistorySearch changed to use emphasis Like interactive search, history search now uses emphasis to make it obvious what is being searched. With this change, the cursor will also always move to the end as it's much less useful to have the cursor near the start of the line. commit 800860c51ee3c40f38f289cb48b8a09b375ba375 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 08:39:32 2014 -0700 Change eol behavior for NextWord/ForwardWord Cmd and bash place the cursor at the end of the last word instead of one past the end of the word when moving by word. PSReadline emulated that behavior, but it's inconsistent with word movement on the rest of the line and it's inconvenient because you typically need to use the right arrow or end to edit at the end of the line. I've removed the emulated behavior, the cursor will now move to the end of the line. commit b6c9584703d1233c47257436410bb2f10f366882 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Apr 16 08:33:35 2014 -0700 HistoryNoDupes - Search/InteractiveSearch History commit a985c974cfd74cc18342198f7e591a54a257fba6 Author: jason@truewheels.net <jason@truewheels.net> Date: Mon Apr 14 14:51:24 2014 -0700 HistoryNoDupes to store but not recall dupes HistorySearch and InteractiveSearch still need work though commit c703edae0831c8cb23bd27bdb7ffbda4697c1fc1 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Apr 13 11:21:30 2014 -0700 Cleanup some Resharper issues commit cdd50113f18e8a434189808f09e586ab0df822b4 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Apr 13 10:43:57 2014 -0700 Support digit args for word/character movement commit 816cd6cf8b86e1c7e918ea105d77f1b2a6ab6fc0 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Apr 12 10:16:11 2014 -0700 Add key bindings in Windows mode Windows mode now has by default: * Interactive history search (Ctrl+R/Ctrl+S) * DigitArgument (Alt+Num) commit abef5c2dc9d34e702144a35307671933816227ec Author: jason@truewheels.net <jason@truewheels.net> Date: Fri Apr 4 13:02:25 2014 -0700 Fix #99 - completion in remote sessions When powershell has entered a remote session via Enter-PSSession, completion was completing against the local session. The fix is to use the remote runspace when calling the completion api. The remote runspace isn't exactly exposed in a clean way from the host, so the fix is mixed between a bit of PowerShell and C#. commit 67d0936cd81b12fd03d9da5d87ac13cd3ec843b0 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 29 10:23:03 2014 -0600 Attempting to comply with Jason's preferred formatting. commit b3dc32c0bad29e07b363a1a235ea7a151bf60536 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 29 10:16:02 2014 -0600 Added ShowKeyBindings cnt-alt-? key binding. Fixing missed inadvertant formatting change. commit fa40af83b74055819ded1f737db4c7f59a75bf35 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 29 09:39:24 2014 -0600 Attempting to improve Get-PSReadlineKeyHandler for vi mode. commit f308df0f8b45c9d62ad6f413c4477cfed27a2586 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 29 07:00:30 2014 -0600 Cleaned up formatting changes in common files. Further minimized changes to originals. commit ebcdf029f0ef081d3764f9f78b5090914f956af3 Author: srdubya <stevewy@gmail.com> Date: Sat Mar 22 08:16:03 2014 -0600 Adding VI edit mode, along with unit tests. Note, these items need work: - No support for Yank/Paste yet. - No support for 'G' history goto yet. - Undo works, but not as desired in some cases. commit 7471399ad4c198c742c2f9b9da4cc0cd444b16b4 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Mar 8 16:25:12 2014 -0800 More cleanup from removing Fakes commit c5cd2f03b486face037d3494b6ea475e0869fae2 Merge: 24cf00ed2 906de61b3 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Mar 8 16:15:27 2014 -0800 Merge branch 'master' of https://github.com/lzybkr/PSReadLine Conflicts: PSReadLine/PublicAPI.cs commit 24cf00ed234837caf59df63b7680cb8595e141f6 Author: jason@truewheels.net <jason@truewheels.net> Date: Sat Mar 8 15:52:44 2014 -0800 Replace Fakes with simple mock object Fakes are handy, but require Visual Studio Professional. To enable folks using Express, I added a mock interface for the bits that need mocking. commit 906de61b3b031ea44ddbbbd7fb918a800152d986 Author: jazzdelightsme <dan_j_thompson@hotmail.com> Date: Tue Mar 4 18:12:42 2014 -0800 Use runtime check to allow other console-based hosts to use PSReadline. The host check in the .psd1 only allows you to specify one host. To allow other hosts to use PSReadline, but still try to give a helpful error to people trying to use PSReadline in other, non-console hosts (like the ISE), we instead do a runtime check using IModuleAssemblyInitializer, wherein we check to see if the current process has a non-hidden console window, and emit an error if not. commit 366cf077623d43c23cc22f9e1fa350fb25ebba8d Author: Jason Shirk <jason@truewheels.net> Date: Wed Feb 26 18:53:34 2014 -0800 Add post-mortem debugging aid commit 8eb4c0c64ebf0a543fe6b5e25eacfa88a4816871 Author: Jason Shirk <jason@truewheels.net> Date: Wed Feb 26 17:18:34 2014 -0800 Generate Function param + ValidateSet dynamically It was annoying to always update the ValidateSet attribute each time I added a new Function to support. Dynamically generating the parameter with ValidateSet works nicely. commit 553e9ad4424f85b145a8dfffc9de0938a219caad Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Sat Feb 22 21:15:49 2014 -0800 Mark ReadKeyThreadProc thread as background to prevent hang on exit. PowerShell.exe does not exhibit the hang because it hosts the CLR and does some teardown differently, but pure-managed hosts will get stuck waiting for this thread unless it is marked as a "background" thread. commit c45b1a930a9f18ccb0d04175140ca5b02b0dac86 Author: Dan Thompson <dan_j_thompson@hotmail.com> Date: Sat Feb 22 21:45:19 2014 -0800 Replace slow DateTime.Now calls with Stopwatch (QueryPerformanceCounter) It's an order of magnitude faster. We don't need all the fancy time info given by DateTime.Now anyway; we just need an accurate timestamp. There's also a correctness issue: when dealing with TimeSpans (what you get when subtracting DateTimes), the Milliseconds property is not the same as the TotalMilliseconds property. commit 66ece9630d9a446e2c65377014410942f34b87ae Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Feb 23 23:50:13 2014 -0800 Copy all module files to build dir commit 59049ab174d38a27a229108f31049dbf05ac5ff4 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Feb 23 23:31:37 2014 -0800 Add function CopyOrCancelLine Ctrl+C should copy selected text if any is selected. Otherwise it will cancel editing. On the off chance somebody prefers the old behavior, CancelLine is unchanged, but it is no longer bound. Fixes #87 commit fc5983782a3c2184418bad1aa7e3279b58fa50de Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Feb 23 23:08:13 2014 -0800 Add SelectAll function (Ctrl+A) Fixes #84 commit 3d1cc6a2cd35e3394c814163f15bafbe07ef1c32 Author: jason@truewheels.net <jason@truewheels.net> Date: Sun Feb 23 20:27:30 2014 -0800 Fix #89 Backspace after a failed history search made searching always fail until starting a new interactive history search. commit 22ded640722349ed23b0cf2a5d9a502e259f3131 Author: Jason Shirk <jason@truewheels.net> Date: Fri Feb 14 14:39:29 2014 -0800 Add missing default arguments commit 63c00d30ebe710e08c576c2ebe9fd27714ab2ccf Author: jason@truewheels.net <jason@truewheels.net> Date: Thu Feb 6 08:24:12 2014 -0800 Add new functions to select to start/end of line Function SelectBackwardsLine is bound to Shift+Home Function SelectLine is bound to Shift+End commit e4bce53095f64cd33a0da1b5ecb0541a6b2dfae8 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 23:42:05 2014 -0800 Update version number commit 1305a5a8f4f7139dcfd185f9cfca3af838ebd82c Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 23:38:37 2014 -0800 Update ValidateSet for key handler functions commit 274368daa733ca9345e67ff1d18366be145d03ad Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 23:38:10 2014 -0800 Fix colors in CaptureScreen commit 81ea49455285327a2d52b888e6c66e29e5208f3c Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 23:11:37 2014 -0800 Add screen scrolling support New functions: * ScrollScreenUp * ScrollScreenDown * ScrollScreenTop * ScrollScreenToCursor commit 31e98dd6b634b7b689dfa476cc7dcfc26ce14e81 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 22:41:35 2014 -0800 Ensure token state matches buffer There was a small bug where typing very quickly could cause random errors - incorrect edits or null references. commit ff99d190f593101a3a1edf6a6ceea55a4dfbe933 Author: jason@truewheels.net <jason@truewheels.net> Date: Wed Feb 5 15:53:53 2014 -0800 Tests for directory completion When completing a directory, we want to always add a trailing backslash, and if the directory is quoted, make sure the backslash is inside the quotes _and_ the cursor is placed inside the quotes so it's quicker to type more of the path. commit c6a4de2174d906f426a4411c6e26b76d543fcc93 Author: jason@truewheels.net <jason@truewheels.net> Date: Tue Feb 4 19:18:49 2014 -0800 Add ShellNextWord ShellForwardWord was behaving like *NextWord or *ForwardWord depending on the edit mode. Instead, we should have 2 functions so people can bind as they choose regardless of the edit mode. commit cfbd44dfb3a276cb390e64cdd28fc30bf29553dc Author: jason@truewheels.net <jason@tr…
This is awesome. Any ideas on how to provide similar functionality in PS Core which is missing out-gridview? |
@muzzar78 - @SeeminglyScience hinted that he's working on something that uses fzf. |
You know, I hadn't considered leveraging That demo was using my own implementation. I'm writing that mainly for use in EditorServicesCommandSuite, but if there is interest I could make it a separate project or contribute it to PSRL. Without any changes it does a decent job at searching history: |
Actually Set-PSReadLineKeyHandler -Chord 'F1' -ScriptBlock {
$history = [System.Linq.Enumerable]::Reverse(
[System.Linq.Enumerable]::Distinct(
[string[]]([Microsoft.PowerShell.PSConsoleReadLine]::GetHistoryItems().CommandLine)))
# Enter alternate buffer for history search.
$Host.UI.Write("$([char]27)[?1049h")
try {
$command = $history | fzf --header="PSReadLine History Search"
} finally {
# Leave alternate buffer to return to PSReadLine prompt.
$Host.UI.Write("$([char]27)[?1049l")
}
if ($command) {
[Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
[Microsoft.PowerShell.PSConsoleReadLine]::Insert(($command -join '; '))
}
} |
Thanks, I just tried out fzf. It works ok. @SeeminglyScience Looks like your implementation has more polish with the highlighting |
I've also tried my luck to combine PSReadLine with fzf, but I get strange behavior after exiting fzf: Is there a way to preserve the previous state of the console, or atleast clear the console and get a prompt + the inserted command? I've tried @SeeminglyScience approach with the buffer, but that doesn't work, as it doesn't even show fzf correctly (notice the top right corner): |
@MarkusAmshove, try https://github.com/kelleyma49/PSFzf and let me know if it works better for you. |
I found this issue while looking for something else, but figured I'd post this new info. You can now use https://gist.github.com/tig/cbbeab7f53efd73e329afd6d4b838191 |
The API
|
I want to do something like:
Get-Content (Get-PSReadlineOption).HistorySavePath | out-gridview -passthru | Paste-AtCommandLine
to give me my complete history in a big list, and then stick it into the console window.
I can do all of the bit up to the end - and then stick it in the clipboard instead, but there doesn't seem to be a way of telling PSReadLine that I want this text to be the next command line.
Is this possible?
Thanks!
The text was updated successfully, but these errors were encountered: