Ilya
ffa7e4bac0
Enhance and refactor Add-Type cmdlet ( #6141 )
...
- Can compile a source from strings (TypeDefinition and MemberDefinition).
- Can compile from files.
- Can compile only to a file (without loading the produced assembly).
- Do not recompile and don't reload if the sources have not changed.
- Implement `-IgnoreWarnings` to not treat warnings as errors. By default, the cmdlet considers warnings as errors.
- Add VisualBasic support.
- Add new `-CompilerOptions` parameter to allow setting Roslyn command line parameters including:
- Parser options.
- Compile options.
- Emit options.
**ATTENTION:** The `CompilerOptions` can be specified along with other options like `-OutputAssembly`, `-Language` and `-IgnoreWarnings`. The explicit setting parameters will take precedence over the same settings specified in `-CompileOptions`.
See docs about the compiler options:
https://github.com/dotnet/roslyn/blob/master/docs/compilers/CSharp/CommandLine.md
https://github.com/dotnet/roslyn/blob/master/docs/compilers/Visual%20Basic/CommandLine.md
**ATTENTION:** `-OutputType` default is `Library`. If `-OutputType` is absent the `-OutputType` default overlaps a value in `CompileOptions`. In other words output type ("target" ot "t" in command line) is always ignored in `CompileOptions`. We have to use `-OutputType` to set an output type.
2018-04-25 22:40:26 -07:00
Ilya
a9781dedc2
Add some optimizations in formatting subsystem ( #6678 )
...
Use safe pattern 'columns <= columnsThresHold ? stackalloc int[columns] : new int[columns];'
Remove duplicate code.
Use common 'columnsThresHold' constant.
2018-04-25 13:23:28 +05:00
Ilya
313a8596bb
Pretty print Export-FormatData XML output ( #6691 )
...
Pretty print Export-FormatData XML output by default.
Refactor Export-FormatData tests, remove test duplications.
2018-04-24 10:04:42 +05:00
Ilya
2da7576736
Add tests for Format-Table -Wrap ( #6670 )
2018-04-23 12:45:14 +05:00
Ilya
5a326135ec
Add new reliable tests for Get-Date -UFormat ( #6614 )
2018-04-19 13:58:29 +05:00
Ilya
c05f1ec3f3
Reduce allocations in TableWriter ( #6648 )
...
* [Feature] Reduce allocations in TableWriter
* Revert iterator
ReadOnlySpan is not supported in iterators
* Use columnsThresHold with stackalloc
2018-04-18 19:15:36 +05:00
Ilya
62bb0899ac
Reformat Format-Table tests ( #6657 )
...
* Convert identations to spaces
* Remove alias tests and extra lines
* Remane extra Describe
* Remove extra parentheses and add spaces
2018-04-17 10:06:39 +05:00
Ilya
2457113c80
Formatting: Use cache for dash padding strings ( #6625 )
2018-04-14 16:49:01 -07:00
Ilya
f96a928a42
Re-order UFormat options in Get-Date ( #6627 )
...
Place in alphabetical order the options
2018-04-12 09:33:52 +04:00
Ilya
68b59e3d9b
Improve performance of parsing RegexOption for '-split' by using if branches ( #6605 )
2018-04-10 13:03:41 -07:00
Ilya
6bd70bc2d0
Some fixes in Get-Date -UFormat ( #6542 )
...
* Use UTC datetime in Get-Date -UFormat %s
Fix %l output from 0..11 to 1..12
Fix %V using Gregorian calendar
* Use a workaround for ISO 8601 week of year (uformat %V)
2018-04-10 08:13:19 +04:00
Ilya
31085d5737
Use C# latest language in proj files ( #6559 )
...
Address #6547
We begin using C# 7.2 features (Span) but .Net Core doesn't seem use "Latest" as default for a language.
So we explicitly set the value.
2018-04-05 17:39:20 -07:00
Ilya
24cf020442
Add ported Test-Connection cmdlet ( #5328 )
...
The Test-Connection cmdlet works on Windows and Unix.
Implemented:
Ping
Continues Ping
Traceroute
Detect MTU size (seems don't work on Unix because of .Net Core issue)
Connect to TCP port
Not jet implemented:
I'm putting this off for the future.
Detect blackhole routers
PingPath
Additional considerations
As you can see in the tests .Net Core has issues in API implementation. As a result, some tests are skipped on Unix. There is also one issue on Windows. Related comments added to tests.
I'm going to open an issue(s) in CoreFX repo.
I think we should break the feedback into two parts:
scripting functionality
interactive functionality (display output)
Now I have implemented the output to the screen as the progress bar and as text (without ETS) - we have to decide what is best to use.
2018-04-03 11:59:26 -07:00
Ilya
1b745f6a98
Add Test-Json cmdlet (NJsonSchema) ( #5229 )
...
Resolve #4220 .
The cmdlet is based on NJsonSchema.
It allows to check:
JSON by only parsing
JSON against Schema
implicitly check Schema by parsing (based on previous line check)
NJsonSchema is under MIT (approved see https://github.com/PowerShell/PowerShell/pull/5229#issuecomment-342983215 )
2018-03-26 11:52:48 -07:00
Ilya
a29484051e
Update stale bot message ( #6462 )
...
Fix #6446
Add "Community members are welcome to grab these works."
2018-03-26 11:09:03 -07:00
Ilya
a281853fcb
Correct the '%c', '%l', '%k', '%s' and '%j' formats in 'Get-Date -UFormat' ( #4805 )
2018-03-16 09:44:42 -07:00
Ilya
b8a8e8e247
Set pipeline thread stack size to 10MB ( #6224 )
2018-02-23 18:00:41 -08:00
Ilya
0ad9fc9d70
[breaking-change] Fix range operator ( #5732 )
...
Breaking-change: "0".."9" returns [char] previously in PowerShell Core (6.0.0, 6.0.1), now it returns [int]. After the change, the behavior is the same as in Windows PowerShell.
2018-02-11 14:22:45 +04:00
Ilya
ca4e4798fb
Remove unsupported members from the enum 'Language' in Add-Type ( #5829 )
...
[breaking change]
Remove the unsupported members (various versions of CSharp and `JScript`) from the enum 'Language' in Add-Type. After this change, `Add-Type -Language` only supports `CSharp` and `VisualBasic`.
2018-02-01 09:25:20 -08:00
Ilya
05ca36463a
Build: Update PowerShell to build with .NET Core SDK 2.1.4 ( #6054 )
2018-01-31 14:56:20 -08:00
Ilya
7f2ebd70c9
Resort parameter list in alphabetical order ( #6052 )
...
After #5920 we should reorder parameter list (#4989 )
2018-01-30 07:56:00 +04:00
Ilya
b27c6845b9
Update PowerShell to build with .NET Core 2.0.5 ( #5903 )
2018-01-17 15:11:50 -08:00
Ilya
5674bf37be
Remove 'PSv2' only code from 'Types_Ps1Xml.cs' and 'HostUtilities.cs' ( #5907 )
2018-01-17 09:39:28 -08:00
Ilya
89bdb1796c
Update PowerShell to build with .NET Core 2.0.5 ( #5903 )
2018-01-16 17:36:37 -08:00
Ilya
b6f18e7101
Add a test for IValidateSetValuesGenerator in a module ( #5830 )
...
Add a test that has been skipped in PR #5702
2018-01-10 13:02:33 +04:00
Ilya
6825182a6a
Add ForEach and Where methods to [PSCustomobject] ( #5756 )
2018-01-05 22:54:31 +04:00
Ilya
aaa567cf8c
Show usage (short) help if command line parameter is wrong ( #5780 )
...
Show usage (short) help if command line parameter is wrong
Show extended (full) help message with pwsh -h
Split Help message on Usage and Extended
2018-01-05 15:36:45 +04:00
Ilya
7257404929
Add Count and Length properties to [PSCustomobject] ( #5745 )
...
Related #3671
•Add Count and Length properties to [PSCustomobject].
Now following returns 1:
([pscustomobject] @{ foo = 'bar' }).Count
([pscustomobject] @{ foo = 'bar' }).Length
•Add tests
2017-12-28 10:15:06 +04:00
Ilya
f2f0bcf8ff
Fix the path to 'powershell_xxx.inc' in Start-Build ( #5538 )
2017-11-28 17:53:57 -08:00
Ilya
910c5a4780
Fix PSVersion in PSSessionConfiguration tests ( #5554 )
...
* Fix PSVersion in PSSessionConfiguration tests by getting the expected value from PSVersionTable instead of hardcoded string.
2017-11-28 12:00:49 -08:00
Ilya
d8e1f8dff3
Fix the path to 'powershell_xxx.inc' in Start-Build ( #5538 )
2017-11-24 02:42:41 -08:00
Ilya
7e3a2a23e4
Remove AddTypeCommandBase class ( #5407 )
...
It is technically a breaking change but it is only a public api surface of a cmdlet _implementation_ and don't documented class.
2017-11-17 07:49:32 +04:00
Ilya
c86f243ca0
Make Import-Csv support CR, LF and CRLF as line delimiters ( #5363 )
...
With the fix, `Import-Csv` support CR (\r), LF (\n), CRLF (\r\n) as line delimiters.
2017-11-10 14:02:45 -08:00
Ilya
5fd1b4759c
Don't write an error if file already unblocked (Unblock-File) ( #5362 )
2017-11-10 18:14:08 +04:00
Ilya
c4269cb6be
Make SemanticVersion compatible with SemVer 2.0 ( #5037 )
...
Made 'SemanticVersion' compatible with SymVer 2.0 http://semver.org/ (p.10)
- Fix comparisons
- Refactor and add more tests
2017-11-09 07:44:58 -08:00
Ilya
4140bb2ddb
Revert the breaking change in AddTypeCommandBase.EndProcessing ( #5306 )
2017-11-03 12:44:20 -07:00
Ilya
819f9a3edf
Add help strings in PowerShell banner ( #5275 )
2017-11-03 10:52:06 -07:00
Ilya
1c446c1be4
Fix performance issues in Add-Type ( #5243 )
...
* Exclude ReadAllText from OutputError()
* Exclude double ReadAllText() from EndProcessing
* Remove sourceCode initialization
* Add StringBuilder init size and remove unneeded code.
* Set init size StringBuilder in 8192
2017-10-31 19:00:41 +04:00
Ilya
f604b0e3f0
Merge pull request #4995 from SteveL-MSFT/remove-apartmentstate
...
* wrapped STA code sections in `#if STAMODE` for potential future use
removed -importsystemmodules switch from powershell.exe and related code
removed -consolefile parameter from powershell.exe and related code
* removed font and codepage handling code that is only applicable to Windows PowerShell
replaced LengthInBufferCells() method with Unicode adapted code from PSReadline
* removed `#if CORECLR` statements merging code base
* [feature]
removed code to show a GUI prompt for credentials as PSCore6 prompts in console
* Remove unncessary method 'LengthInBufferCellsFE'
2017-10-17 09:31:49 +04:00
Ilya
50f6667bdb
Cleanup Json cmdlets ( #5001 )
2017-10-06 09:03:53 -07:00
Ilya
87b34fe8cb
Reformat command line help for powershell -Help ( #4989 )
2017-10-05 12:49:29 -07:00
Ilya
ec1106a329
Add links on best practice guidelines in coding guideline ( #4983 )
2017-10-05 12:45:10 -07:00
Ilya
6a68262ba2
Reformat Measure-Object test ( #4972 )
...
Remove multiple tabs and formatting issues.
2017-10-03 07:39:51 +04:00
Ilya
757c6b5f39
Write an error for powershell -version 2 ( #4931 )
...
Write an error for powershell -version <any value>
2017-09-29 23:20:28 +04:00
Ilya
b07f24e3c9
Exclude '-Comobject' parameter of 'New-Object' on unsupported platforms ( #4922 )
2017-09-28 17:29:33 -07:00
Ilya
6e77537181
Get 'PSVersion' and 'GitCommitId' from the 'ProductVersion' attribute of assembly ( #4863 )
2017-09-28 09:27:43 -07:00
Ilya
7c64c0ff25
Enable network Select-String test ( #4921 )
...
* Enable network string test
* Fix typo
* Use Get-Item to add PSDrive property
2017-09-27 07:20:02 +04:00
Ilya
93dc591025
Add 'ArgumentCompletionsAttribute' to support more argument completion scenarios ( #4835 )
...
- Add 'ArgumentCompletionsAttribute' to support argument completion for parameters that cannot have a ValidateSetAttribute.
- Use 'ArgumentCompletionsAttribute' for the '-Format' parameter of 'Get-Date' to enable useful argument compeltions.
2017-09-21 10:52:21 -07:00
Ilya
a4cdb806f4
Exclude directories discovered from '-Path' in Select-String ( #4829 )
...
Select-String can search in files only so we should skip directories.
2017-09-14 14:57:17 -07:00
Ilya
fc9d798b77
Enable use 'Singleline,Multiline' option in split operator ( #4721 )
...
Fix #4712
2017-09-08 09:23:38 -07:00
Ilya
3c597367ba
Replace 'Windows PowerShell' with 'PowerShell' in resx files ( #4758 )
...
Replace 'Windows PowerShell' with 'PowerShell' in '.resx' files where appropriate.
2017-09-07 12:33:56 -07:00
Ilya
e588a18c76
Refactor MSBuild project files to get PowerShell version from git tag ( #4182 )
...
Extract information about the release tag, number of commits since the tag and the hash of the latest commit within a MSBuild target, and bake that information into version properties of the assemblies appropriately.
2017-09-06 15:20:25 -07:00
Ilya
fb67072479
Fix error message in ValidateSetAttribute ValidateElement() ( #4722 )
2017-09-04 09:11:47 -07:00
Ilya
58a296ed49
Ensure GetNetworkCredential() returns null if PSCredential has null or empty user name ( #4697 )
...
* GetNetworkCredential() returns null if PSCredential has empty user name
* Fix test
2017-09-01 11:50:15 -07:00
Ilya
cdbbb7a4bb
Minor formatting commits for Build.psm1 and csproj files ( #4630 )
2017-08-21 15:23:52 -07:00
Ilya
45d1d20500
Merge pull request #4573 from SteveL-MSFT/console-no
...
* Make invalid arg to -File consistent with -Command
Improve error message if ambiguous arg is passed to -File
* Update powershell console exit codes to match Unix standards
* Enable -WindowStyle to work
2017-08-17 07:34:02 +04:00
Ilya
813e4a661a
Fix unblock read only file ( #4395 )
...
Adds a new non-terminating error when a file is read-only
2017-08-14 08:49:38 -07:00
Ilya
47a5a4d8ba
Clean up '#if CORE' in PSUtils.cs ( #4453 )
...
* Cleanup '#if CORE' in PSUtils.cs
* Fix IsRunningOnProcessorArchitectureARM
2017-08-09 09:42:42 -07:00
Ilya
e39966996e
Clean up '#if CORE' in MshHostTraceListener.cs ( #4402 )
2017-08-08 09:33:39 -07:00
Ilya
649ff285ee
Clean up '#if CORE' in ProcessCodeMethods.cs and 'ClrFacade.GetSafeProcessHandle' ( #4428 )
2017-08-08 09:20:57 -07:00
Ilya
0150f65d0c
Clean up '#if CORE' in PSPrincipal.cs ( #4433 )
...
* Use TimeZoneInfo in PSPrincipal.cs
* Use TimeZoneInfo in serverremotesession.cs
* Use TimeZoneInfo in RemoteSessionCapability.cs
* Use TimeZoneInfo in serialization.cs
* Remove private fiield 'clientTimeZone'
* Remove extra line
2017-08-07 14:27:14 -07:00
Ilya
984b85f34d
Clean up '#if CORE' in RunspaceConfiguration*.cs files ( #4448 )
...
* Cleanup '#if CORE' in RunspaceConfigurationTypeException.cs
* Cleanup '#if CORE' in RunspaceConfiguration.cs
* Cleanup '#if CORE' in RunspaceConfigurationEntry.cs
* Cleanup '#if CORE' in RunspaceConfigurationTypeAttribute.cs
2017-08-07 14:25:09 -07:00
Ilya
35a3ecd27b
Cleanup '#if CORE' in Utils.cs ( #4443 )
2017-08-03 15:29:54 -07:00
Ilya
8aa028eae9
Cleanup '#if CORE' in TypeTable.cs ( #4442 )
2017-08-03 15:29:14 -07:00
Ilya
8034dd6dd1
Clean up '#if CORE' in PropertyAccessor.cs ( #4429 )
...
* Cleanup '#if CORE' in PropertyAccessor.cs
* Remove RegistryAccessor class
2017-08-03 08:34:21 -07:00
Ilya
65643e1b5d
Cleanup '#if CORE' in EtwActivity.cs ( #4455 )
2017-08-02 09:59:39 -07:00
Ilya
82ad9da3a7
Cleanup '#if CORE' in SessionStateExceptions.cs ( #4454 )
2017-08-02 09:58:59 -07:00
Ilya
1a835f3382
Cleanup '#if CORE' in ExtensionMethods.cs ( #4451 )
2017-08-01 17:25:51 -07:00
Ilya
f4a13e2e40
Cleanup '#if CORE' in PSTelemetryMethods.cs ( #4452 )
2017-08-01 17:25:37 -07:00
Ilya
a7bfde5794
Cleanup '#if CORE' in PInvokeDllNames.cs ( #4456 )
2017-08-01 17:25:05 -07:00
Ilya
fa8b9006dd
Clean up '#if CORE' in Utils.cs ( #4397 )
2017-07-31 13:09:34 -07:00
Ilya
e13dfc6b4e
Clean up '#if CORE' in CimIndicationWatcher.cs ( #4398 )
2017-07-31 13:09:20 -07:00
Ilya
dd3e7cd1f7
Cleanup '#if CORE' in PdhSafeHandle.cs ( #4399 )
2017-07-31 13:09:04 -07:00
Ilya
df1056d28e
Cleanup '#if CORE' in cimConverter.cs ( #4400 )
2017-07-31 13:08:42 -07:00
Ilya
30cd78a9a7
Cleanup '#if CORE' in GetComputerInfoCommand.cs ( #4401 )
2017-07-31 13:08:27 -07:00
Ilya
3b71bec9f3
Cleanup '#if CORE' in PSUserAgent.cs ( #4403 )
2017-07-31 13:06:51 -07:00
Ilya
38c5bc70e0
Cleanup '#if CORE' in Native.cs ( #4404 )
2017-07-31 13:06:33 -07:00
Ilya
af24581ddd
Cleanup '#if CORE' in PInvokeDllNames.cs ( #4405 )
2017-07-31 13:06:16 -07:00
Ilya
812081e964
Clean up '#if CORE' in Cmdlets.cs ( #4406 )
2017-07-31 13:05:38 -07:00
Ilya
a3d05eb404
Cleanup '#if CORE' in HistoryQueue.cs ( #4407 )
2017-07-31 13:05:24 -07:00
Ilya
8454f99009
Cleanup '#if CORE' in CertificateProvider.cs ( #4408 )
2017-07-31 13:05:07 -07:00
Ilya
a9535030ac
Cleanup '#if CORE' in Set-QuickConfig.cs ( #4410 )
2017-07-31 13:04:23 -07:00
Ilya
f2d507cb0a
Cleanup '#if CORE' in cmdlets-over-objects.objectModel.autogen.cs ( #4411 )
2017-07-31 13:04:12 -07:00
Ilya
3e14daab3b
Cleanup '#if CORE' in ILineOutput.cs ( #4412 )
2017-07-31 13:03:56 -07:00
Ilya
504aac522d
Cleanup '#if CORE' in MshParameter.cs ( #4413 )
2017-07-31 13:03:12 -07:00
Ilya
af6ccd4737
Cleanup '#if CORE' in CorePsExtensions.cs ( #4414 )
2017-07-31 13:02:56 -07:00
Ilya
5890c51e20
Cleanup '#if CORE' in CorePsPlatform.cs ( #4415 )
2017-07-31 13:02:14 -07:00
Ilya
f3b18251cf
Cleanup '#if CORE' in CurrentConfigurations.cs ( #4409 )
2017-07-31 12:58:44 -07:00
Ilya
baa56f9c71
Cleanup '#if CORE' in CorePsStub.cs ( #4416 )
2017-07-31 12:55:28 -07:00
Ilya
86573cf926
Cleanup '#if CORE' in ComAdapter.cs ( #4418 )
2017-07-31 12:55:08 -07:00
Ilya
5bc204f26d
Cleanup '#if CORE' in CompletionCompleters.cs ( #4419 )
2017-07-31 12:54:50 -07:00
Ilya
97e3cc2c35
Cleanup '#if CORE' in ExtensibleCompletion.cs ( #4420 )
2017-07-31 12:54:26 -07:00
Ilya
684ff97e79
Cleanup '#if CORE' in CommandProcessor.cs ( #4421 )
2017-07-31 12:54:13 -07:00
Ilya
5cfbf83447
Clean up '#if CORE' in ConnectionFactory.cs ( #4422 )
2017-07-31 12:54:01 -07:00
Ilya
ea81506232
Cleanup '#if CORE' in DynamicInstructionN.cs ( #4423 )
2017-07-31 12:53:37 -07:00
Ilya
91df98f565
Cleanup '#if CORE' in InstructionFactory.cs ( #4424 )
2017-07-31 12:51:05 -07:00
Ilya
1841682c08
Clean up '#if CORE' in Utilities.cs ( #4425 )
2017-07-31 12:50:44 -07:00
Ilya
ea3c207636
Cleanup '#if CORE' in ModuleIntrinsics.cs ( #4426 )
2017-07-31 12:50:15 -07:00
Ilya
5ce4e03ca5
Cleanup '#if CORE' ParameterBinderBase.cs ( #4427 )
2017-07-31 12:49:32 -07:00
Ilya
2bfe094b12
Cleanup '#if CORE' in PSVersionInfo.cs ( #4430 )
2017-07-31 12:49:11 -07:00