Commit Graph
74 Commits
Author SHA1 Message Date
Steve Lee ee45650660 Enable PSReadline to work on NanoServer (#3815)
NanoServer is missing some console APIs that PSReadline uses which causes PSReadline to not be usable on NanoServer docker images.

For the missing font/display APIs, the fix is to assume all characters use 1 cell which is not always correct for some languages.

For the missing keymap APIs - there is no workaround in this change and a small number of key bindings don't work, there is an open issue to track those.

Fixes #3463
2017-05-31 10:26:41 -07:00
Dongbo Wang e75cff662a Make PSReadline render correct portion of prompt on Unix when it's a multi-line string (#3867)
Check whether the prompt is multi-line or not. If it is, then only use the part that is shown in the input line.
2017-05-25 17:26:39 -07:00
Dongbo Wang 7a55bf98b2 Move powershell to .NET Core 2.0 (#3556)
This change moves powershell to .NET Core 2.0. Major changes are:
1. PowerShell assemblies are now targeting `netcoreapp2.0`. We are using `microsoft.netcore.app-2.0.0-preview1-001913-00`, which is from dotnet-core build 4/4/17. We cannot target `netstandard2.0` because the packages `System.Reflection.Emit` and `System.Reflection.Emit.Lightweight`, which are needed for powershell class, cannot be referenced when targeting `netstandard2.0`.
2. Refactor code to remove most CLR stub types and extension types.
3. Update build scripts to enable CI builds. The `-cache` section is specified to depend on `appveyor.yml`, so the cache will be invalidated if `appveyor.yml` is changed.
4. Ship `netcoreapp` reference assemblies with powershell to fix the issues in `Add-Type` (#2764). By default `Add-Type` will reference all those reference assemblies when compiling C# code. If `-ReferenceAssembly` is specified, then we search reference assemblies first, then the framework runtime assemblies, and lastly the loaded assemblies (possibly a third-party one that was already loaded).
5. `dotnet publish` generates executable on Unix platforms, but doesn't set "x" permission and thus it cannot execute. Currently, the "x" permission is set in the build script, `dotnet/cli` issue [#6286](https://github.com/dotnet/cli/issues/6286) is tracking this.
6. Replace the use of some APIs with the ones that take `SecureString`.
7. osx.10.12 is required to update to `netcoreapp2.0` because `dotnet-cli` 2.0.0-preview only works on osx.10.12.
8. Add dependency to `System.ValueTuple` to work around a ambiguous type identity issue in coreclr. The issue is tracked by `dotnet/corefx` [#17797](https://github.com/dotnet/corefx/issues/17797). When moving to newer version of `netcoreapp2.0`, we need to verify if this dependency is still needed.
2017-04-17 11:52:38 -07:00
Travis Plunk 737058f62e Add markdown lint test (#3420)
* Fix markdown syntax and spelling issues
* update spelling dictionary
2017-03-27 16:44:28 -07:00
Dongbo Wang 54fa658e31 Migrate from project.json to MSBuild (#3398)
- FullCLR build is disabled in this change.
- FullCLR build related functionalities in `build.psm1` and `AppVeyor.psm1` are disabled. They are not cleaned up from `build.psm1` and `AppVeyor.psm1` yet. We need to adopt .NET Core 2.0 to verify the portable module concept, and if that works well, we will remove the Windows PowerShell source code and clean up our scripts.
- `dnxcore50` and `portable-net5+win8` target framework monikers are removed.
- Dependency on `Microsoft.NETCore.Portable.Compatibility` is removed. It's not necessary, but it may come back when we work on supporting the `portable module`. Its necessity can be reviewed at that time.
- I didn't spend the time to try building powershell in Visual Studio 2017. We should have a separate issue for that. It's tracked by #3400

The `TypeCatalogParser` project is replaced by a MSBuild target to gather the dependency information.
Due to .NET Core SDK issue [#1021](https://github.com/dotnet/sdk/issues/1021), our meta-package project `Microsoft.PowerShell.SDK` starts to generate an empty assembly during the build and that results in an empty assembly `Microsoft.PowerShell.SDK.dll` appear in `publish` folder and in `.deps.json` file. We cannot simply remove the assembly because it's now part of the TPA, and removing it will cause powershell to crash at startup. We have to live with this empty assembly until that .NET Core SDK issue is fixed.  It's tracked by #3401.
2017-03-23 13:04:52 -07:00
Christopher Ubben b2259f8f70 Update all W3 links in the resource files to use HTTPS instead of HTTP (#3331) 2017-03-17 11:04:00 -07:00
Jason Shirk 02b5f357a2 Remove trailing whitespace (#3001) 2017-01-16 13:31:14 -08:00
iSazonov d543195bd4 Fix Verbs<> class strings #2716 (#2762)
* Fix Verbs
* Replace `-runspace` with `-Session`
2016-11-23 09:19:15 -08:00
Aditya Patwardhan b18adb85d4 Add OpenCover PS Module to collect code coverage (#2585)
* Add OpenCover PS Module to collect code coverage

OpenCover PS Module helps is collecting Code Coverage using the OpenCover
toolset. The module helps in comparing two code coverage runs as well.

* Change OpenCover.psd1 to ASCII

* Fix an error in path for OpenCover

Fixed an error on path for OpenCover. Also used ZipFile class instead of
cmdlet as it might not be available on CI system.

* Convert module to be Powershell v4 compliant

Changed implementation from classes to PSObjects and implemented
Expand-ZipArchive.

* Added CodeCoverage as a configuration to project.json files

Added CodeCoverage as the new configuration for all the project.json
files. When Start-PSBuild is executed with configuration as CodeCoverage,
we change the degubType to 'full' as required by OpenCover toolset.

Also made changes to appveyor.psm1 to build a CodeCoverage package on
daily builds and publish it as a zip.

* Addressed code review comments

Changed from Add-Member to use pscustomobject type accelator. Removed
[gc]::collect.

* Added explicit garbage collection

* Addressed code review comments

- Make sure that the build Start-PSPackage gets is not a code coverage
  build
- Add debugType = full for FullCLR
- Remove configurations from PackageManagement files as it is not needed.
- Build CodeCoverage build first in AppVeyor.

* Resolve merge conflict

* Fix indentation

* Fix newline at end of file

* Added command discovery for locating OpenCover.console.exe
2016-11-11 11:12:07 -08:00
Dongbo Wang f96dcbb016 Update project version to 6.0.0 to match our release version 2016-11-04 16:33:35 -07:00
Dongbo Wang 9ec8baea79 Add '<Link>' tag to '<Compile>', '<None>' and '<EmbeddedResource>' tags to make those items look similar as when the *.csproj files were in the original project folders. (#2519) 2016-10-21 17:04:05 -07:00
Dongbo Wang 54cb65bbf2 Move *.csproj files to PowerShell/src/vs-csproj and PowerShell/test/vs-csproj to avoid confusing the latest dotnet.exe.
If a *.csproj file is in a project directory, the latest dotnet.exe will use it, instead of the project.json file, to build the project.
2016-10-21 14:12:10 -07:00
Josh Soref 552640506e grammar: may be
maybe be -- does not really make sense, it should almost always be
written as simply: may be.
2016-09-16 02:40:19 +00:00
Paul Higinbotham 79ddafcc85 Fix for Linux remote script debugging hang (#2213)
* Fix for Linux remote debugging hang bug.

* Removing dependency in PSReadLine on new engine helper API since it needs to be compatible with V3.
2016-09-13 11:31:48 -07:00
Dongbo Wang 2bff2443ee Merge pull request #2167 from jsoref/spelling-hangul
spelling: Hangul (unify spelling)
2016-09-02 09:38:40 -07:00
Josh Soref 9e30dc64db spelling: Hangul (unify spelling)
Before this commit there were three spellings, one of which was a typo,
one was a variant spelling, and one was the dominant spelling.

Microsoft generally uses Hangul for its enums:
https://msdn.microsoft.com/en-us/library/cc250412.aspx
And this is the dominant spelling in general and as used in web browsers.
2016-09-02 15:14:45 +00:00
Josh Soref 544aa3fa50 add space to switch-case statement in CommandValidationVisitor.UnresolvedCommandCouldSucceed 2016-09-02 14:48:08 +00:00
Dongbo Wang 58a2ba730d Merge pull request #2046 from xiaoyinl/use-https-links
Use HTTPS links for go.microsoft.com
2016-09-01 17:23:09 -07:00
Josh Soref ceda3cfac4 spelling: debug... 2016-08-28 06:47:18 +00:00
Josh Soref eb3fd7ae6c Spelling comments (#2066)
* spelling: comments in src/Microsoft.Management.Infrastructure.CimCmdlets

* spelling: comments in src/Microsoft.PackageManagement.ArchiverProviders

* spelling: comments in src/Microsoft.PackageManagement.CoreProviders

* spelling: comments in src/Microsoft.PackageManagement.MetaProvider.PowerShell

* spelling: comments in src/Microsoft.PackageManagement.MsiProvider

* spelling: comments in src/Microsoft.PackageManagement.MsuProvider

* spelling: comments in src/Microsoft.PackageManagement.NuGetProvider

* spelling: comments in src/Microsoft.PackageManagement.PackageSourceListProvider

* spelling: comments in src/Microsoft.PackageManagement

* spelling: comments in src/Microsoft.PowerShell.Activities

* spelling: comments in src/Microsoft.PowerShell.Commands.Diagnostics

* spelling: comments in src/Microsoft.PowerShell.Commands.Management

* spelling: comments in src/Microsoft.PowerShell.Commands.Utility

* spelling: comments in src/Microsoft.PowerShell.ConsoleHost

* spelling: comments in src/Microsoft.PowerShell.Core.Activities

* spelling: comments in src/Microsoft.PowerShell.CoreCLR.AssemblyLoadContext

* spelling: comments in src/Microsoft.PowerShell.CoreCLR.Eventing

* spelling: comments in src/Microsoft.PowerShell.Diagnostics.Activities

* spelling: comments in src/Microsoft.PowerShell.GraphicalHost

* spelling: comments in src/Microsoft.PowerShell.LocalAccounts

* spelling: comments in src/Microsoft.PowerShell.Management.Activities

* spelling: comments in src/Microsoft.PowerShell.PSReadLine

* spelling: comments in src/Microsoft.PowerShell.PackageManagement

* spelling: comments in src/Microsoft.PowerShell.ScheduledJob

* spelling: comments in src/Microsoft.PowerShell.Security.Activities

* spelling: comments in src/Microsoft.PowerShell.Security

* spelling: comments in src/Microsoft.PowerShell.Utility.Activities

* spelling: comments in src/Microsoft.PowerShell.Workflow.ServiceCore

* spelling: comments in src/Microsoft.WSMan.Management.Activities

* spelling: comments in src/Modules

* spelling: comments in src/Schemas

* spelling: comments in src/libpsl-native

* spelling: comments in src/powershell-native

* spelling: comments in build.psm1

* spelling: comments in src/System.Management.Automation/CoreCLR

* spelling: comments in src/System.Management.Automation/DscSupport

* spelling: comments in src/System.Management.Automation/cimSupport

* spelling: comments in src/System.Management.Automation/commands

* spelling: comments in src/System.Management.Automation/engine/Modules
2016-08-26 13:46:03 -07:00
xiaoyinl f538eeb416 Use HTTPS links for go.microsoft.com
I replace all occurrences of http://go.microsoft.com with https://go.microsoft.com in text files.
2016-08-23 21:21:31 -04:00
Adam Driscoll c829d9e915 Adding debugType portable to project.json. (#1959)
* Adding debugType portable to project.json.

* Move debugType.

* Update project.json

* Update project.json

* Update project.json

* Update project.json

* Update project.json

* Update project.json

* Update project.json

* Update project.json

* Moving debugType into correct places. Removing from non-core builds.

* Added missed files.

* Fixing project.json debugType placement.
2016-08-23 10:38:25 -07:00
Alex Jordan fb0e218eb1 Fix crash on file name being too long in prompt 2016-08-10 15:40:46 -07:00
Andrew Schwartzmeyer 59624e9b2f Fix comparison for default ConsoleKey 2016-07-28 21:51:03 -07:00
Andrew Schwartzmeyer 554ef0b780 Use GetCharFromConsoleKey on Windows
Due to virtual key codes on Windows, simple chords like Ctrl+] are not
recognized as such. Instead, the ConsoleKey is Oem6, and the KeyChar is
an control code.
2016-07-28 21:51:02 -07:00
Andrew Schwartzmeyer d5b339fb5d Revert changes made to GetGestureString
Given the use of key.KeyChar, the original implementation is now
portable.
2016-07-28 21:35:19 -07:00
Andrew Schwartzmeyer 1facd95f1e Implement TryParseCharLiteral for Linux 2016-07-28 21:35:19 -07:00
Andrew Schwartzmeyer 75b086402a Remove GetCharFromConsoleKey
The ConsoleKey enum does not necessarily cover all possible chars.
Moreover, the times we need to obtain this info, we already have it.
2016-07-28 21:35:19 -07:00
Jason Shirk (POWERSHELL) 673dd2c355 Change preprocessor macro LINUX to UNIX 2016-07-22 10:49:45 -07:00
Andrew Schwartzmeyer 0f04de1e96 Fix some documentation warnings
Mostly low-hanging fruit and Linux additions/changes.
2016-07-18 19:08:28 -07:00
Andrew Schwartzmeyer b6f26ad7cc Enable XML documentation generation
This is enabled for PowerShell projects, but not PackageManagment,
WSMan, Cim, or MMI.
2016-07-18 18:40:42 -07:00
Andrew Schwartzmeyer c6758603ae Set DefaultEditMode to Emacs on Linux / OS X 2016-07-15 13:40:16 -07:00
Andrew Schwartzmeyer b3ef98036d Set bindings based on options
This is instead of hard-coding a call to SetDefaultWindowsBindings().
2016-07-15 13:39:29 -07:00
Andrew Schwartzmeyer ab83e00475 Refactor switch into SetDefaultBindings(EditMode) 2016-07-15 13:38:55 -07:00
Jason Shirk (POWERSHELL) c0b16d7bf5 Skip tone/duration on beep on LINUX 2016-07-07 12:07:52 -07:00
Jason Shirk (POWERSHELL) 372d69583f Only use CHAR_INFO on Windows
CHAR_INFO has 4 bits for ConsoleColor.  On Linux, ConsoleColor is sometimes -1 (unknown),
which is a 17th possible value for ConsoleColor, which can't be represented in CHAR_INFO.

To fix this, I've introduced a bigger type that gets converted to CHAR_INFO when necessary.
2016-07-07 12:07:52 -07:00
Jason Shirk (POWERSHELL) e79c62f9ec Introduce TTYConsole for UNIX 2016-07-07 12:07:52 -07:00
Jason Shirk (POWERSHELL) 8e234322c4 First stab addressing CORECLR vs. LINUX in PSReadLine 2016-07-07 12:07:52 -07:00
Jason Shirk (POWERSHELL) efc83bbaa2 Add csproj files and sln for editing but not building 2016-07-05 10:27:41 -07:00
Andrew Schwartzmeyer c5df728176 Import PSReadLine change to throw when redirected
A similar change was made to the Source Depot fork of PSReadLine, and
the behavior is depended on in the ConsoleHost. The host always attempts
to load PSReadLine, because a future version of PSReadLine will support
redirected input/output, and until then, PSReadLine must throw so that
the host correctly falls back to Console.ReadLine().
2016-07-01 14:36:15 -07:00
Andrew Schwartzmeyer 000206ac90 Bump framework to netstandard1.6
This is required to use the new .NET Core RTM packages, specifically the
`IEnumerable Append` API.
2016-06-27 15:30:47 -07:00
Sergei Vorobev 713ddfdf05 Remove authors section from product project.json 2016-06-16 19:33:19 -07:00
Andrew Schwartzmeyer 8e7c2ca30b Sign all assemblies with key 2016-06-16 15:48:18 -07:00
Andrew Schwartzmeyer e3056303aa Rename compilationOptions to buildOptions in project.json files
This resolves #928. This is a breaking change in that you *must* be
running a recent version of .NET CLI.
2016-06-10 11:03:56 -07:00
Andrew Schwartzmeyer 0e10a51802 Whitespace and formatting cleanups 2016-06-09 09:50:36 -07:00
Andrew Schwartzmeyer 140d452ba2 Fix PSReadLine history path on Windows
Bug introduced in initial port of PSReadLine. `Path.Combine` sees the
initial backslash as an absolute path, thus discarding `AppData`.
2016-06-09 09:50:36 -07:00
v-alexjo f46aa8d195 configdefault missed in refactoring 2016-06-09 09:50:36 -07:00
v-alexjo 42c0b9a5f7 Style changes and psreadline path change 2016-06-09 09:50:36 -07:00
v-alexjo caa4c3f163 Changing history to cache, removed redundant code 2016-06-09 09:50:36 -07:00
v-alexjo c2527199a6 Further code review changes 2016-06-09 09:50:36 -07:00