Dmitry Volodin
dc2e682f3a
Use null-coalescing assignment in /engine ( #17720 )
2022-07-25 22:11:29 +05:00
Eugene Samoylov
735096bcc1
Show optional parameters as such when displaying method definition and overloads ( #13799 )
...
* Extend `GetMethodInfoOverloadDefinition` to show optional parameters as such (#13728 )
* Fix CodeFactor style issue
* Fix review issues
* Add tests for TabExpansion2 `ToolTip`
* Fix tooltip string splitting
* Fix tests
* Bring back the namespace
2022-06-27 12:21:25 -07:00
Shuangchi He
8cc39848bc
Fix some typos in source code ( #17481 )
2022-06-06 10:14:53 -07:00
Dongbo Wang
35ad64e11b
Add a couple fixes to generic method invocation ( #16822 )
2022-02-03 11:58:02 -08:00
Joel Sallow (/u/ta11ow)
8c53252969
Add support to allow invoking method with generic type arguments ( #12412 )
2022-01-27 09:55:54 -08:00
Dongbo Wang
286f12a37c
Update .NET adapter to handle interface static members properly ( #15908 )
2021-08-14 07:56:14 -07:00
xtqqczze
883ca98dd7
Seal private classes ( #15725 )
...
* Seal private classes
* Fix CS0509
* Fix CS0628
2021-07-19 14:09:12 +05:00
Aditya Patwardhan
4a7bea0082
Update .NET to 6.0.0-preview.3 ( #15221 )
2021-04-13 15:45:15 -07:00
Ilya
91e7298fd8
Use static lambda keyword ( #15154 )
2021-04-12 12:44:05 -07:00
xtqqczze
99a49e0eab
Enable SA1131: Use readable conditions ( #14132 )
...
https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1131.md
2020-11-20 17:26:46 +05:00
xtqqczze
f14c76aab9
Enable SA1516: Elements should be separated by blank line ( #14137 )
...
https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1516.md
2020-11-20 16:11:36 +05:00
xtqqczze
b521b858ad
Fix RCS1049: Simplify boolean comparison ( #13994 )
...
* Fix RCS1049: Simplify boolean comparison
https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1049.md
Related https://github.com/dotnet/runtime/pull/44564
2020-11-13 09:39:25 +05:00
xtqqczze
76cef3b299
Fix RCS1221: Use pattern matching instead of combination of 'as' operator and null check ( #13333 )
...
* Autofix RCS1221: Use pattern matching instead of combination of 'as' operator and null check
https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1221.md
* Restore stripped comments
2020-11-05 21:58:48 +05:00
xtqqczze
4ed88dedbc
Fix IDE0044: MakeFieldReadonly part 12 ( #13967 )
...
https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0044
2020-11-05 08:36:23 +05:00
xtqqczze
af8558b065
Enable CA1834: Consider using 'StringBuilder.Append(char)' when applicable ( #13878 )
...
https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1834
2020-10-30 12:07:18 +05:00
Dongbo Wang
4b9b0788ed
Revert "Use is null syntax ( #13277 )" ( #13322 )
...
This reverts commit 6c03776d74 .
2020-07-30 16:06:38 -07:00
xtqqczze
6c03776d74
Use is null syntax ( #13277 )
...
Replace `== null` with `is null`
2020-07-30 18:04:03 +05:00
xtqqczze
bd90f1921f
Code performance fixes ( #12956 )
...
* RCS1080: Use 'Count/Length' property instead of 'Any' method
* RCS1077: Optimize LINQ method call
* RCS1235: Optimize method call
2020-06-25 11:30:40 +05:00
xtqqczze
05cab7fa5a
Formatting: Add empty line between declarations ( #12824 )
...
# PR Summary
Automated fixes:
* RCS0013: Add empty line between single-line declarations of different kind
* RCS010: Add empty line between declarations
## PR Context
## PR Checklist
- [x] [PR has a meaningful title](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission )
- Use the present tense and imperative mood when describing your changes
- [x] [Summarized changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission )
- [x] [Make sure all `.h`, `.cpp`, `.cs`, `.ps1` and `.psm1` files have the correct copyright header](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission )
- [x] This PR is ready to merge and is not [Work in Progress](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---work-in-progress ).
- If the PR is work in progress, please add the prefix `WIP:` or `[ WIP ]` to the beginning of the title (the `WIP` bot will keep its status check at `Pending` while the prefix is present) and remove the prefix when the PR is ready.
- **[Breaking changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#making-breaking-changes )**
- [x] None
- **OR**
- [ ] [Experimental feature(s) needed](https://github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/reference/6/Microsoft.PowerShell.Core/About/about_Experimental_Features.md )
- [ ] Experimental feature name(s): <!-- Experimental feature name(s) here -->
- **User-facing changes**
- [x] Not Applicable
- **OR**
- [ ] [Documentation needed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission )
- [ ] Issue filed: <!-- Number/link of that issue here -->
- **Testing - New and feature**
- [x] N/A or can only be tested interactively
- **OR**
- [ ] [Make sure you've added a new test if existing tests do not effectively test the code changed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#before-submitting )
- **Tooling**
- [x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
- **OR**
- [ ] I have considered the user experience from a tooling perspective and enumerated concerns in the summary. This may include:
- Impact on [PowerShell Editor Services](https://github.com/PowerShell/PowerShellEditorServices ) which is used in the [PowerShell extension](https://github.com/PowerShell/vscode-powershell ) for VSCode (which runs in a different PS Host).
- Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.
- Impact on [PSScriptAnalyzer](https://github.com/PowerShell/PSScriptAnalyzer ) (which provides linting & formatting in the editor extensions).
- Impact on [EditorSyntax](https://github.com/PowerShell/EditorSyntax ) (which provides syntax highlighting with in VSCode, GitHub, and many other editors).
2020-05-29 04:56:33 +00:00
xtqqczze
9212aac0fa
Use nameof operator ( #12716 )
...
# PR Summary
Using *Roslynator Command Line Tool version 0.1.0.4*
* Fix RCS1015:
* `"argument"` → `nameof(argument)`
* `enum.ToString()` → `nameof(enum)`
[RCS1015.log](https://github.com/PowerShell/PowerShell/files/4646102/RCS1015.log )
## PR Context
<!-- Provide a little reasoning as to why this Pull Request helps and why you have opened it. -->
## PR Checklist
- [x] [PR has a meaningful title](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission )
- Use the present tense and imperative mood when describing your changes
- [x] [Summarized changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission )
- [x] [Make sure all `.h`, `.cpp`, `.cs`, `.ps1` and `.psm1` files have the correct copyright header](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission )
- [x] This PR is ready to merge and is not [Work in Progress](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---work-in-progress ).
- If the PR is work in progress, please add the prefix `WIP:` or `[ WIP ]` to the beginning of the title (the `WIP` bot will keep its status check at `Pending` while the prefix is present) and remove the prefix when the PR is ready.
- **[Breaking changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#making-breaking-changes )**
- [x] None
- **OR**
- [ ] [Experimental feature(s) needed](https://github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/reference/6/Microsoft.PowerShell.Core/About/about_Experimental_Features.md )
- [ ] Experimental feature name(s): <!-- Experimental feature name(s) here -->
- **User-facing changes**
- [x] Not Applicable
- **OR**
- [ ] [Documentation needed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission )
- [ ] Issue filed: <!-- Number/link of that issue here -->
- **Testing - New and feature**
- [x] N/A or can only be tested interactively
- **OR**
- [ ] [Make sure you've added a new test if existing tests do not effectively test the code changed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#before-submitting )
- **Tooling**
- [x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
- **OR**
- [ ] I have considered the user experience from a tooling perspective and enumerated concerns in the summary. This may include:
- Impact on [PowerShell Editor Services](https://github.com/PowerShell/PowerShellEditorServices ) which is used in the [PowerShell extension](https://github.com/PowerShell/vscode-powershell ) for VSCode (which runs in a different PS Host).
- Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.
- Impact on [PSScriptAnalyzer](https://github.com/PowerShell/PSScriptAnalyzer ) (which provides linting & formatting in the editor extensions).
- Impact on [EditorSyntax](https://github.com/PowerShell/EditorSyntax ) (which provides syntax highlighting with in VSCode, GitHub, and many other editors).
2020-05-19 18:57:52 +00:00
Steve Lee
b7cb335f03
Update copyright notice to latest guidance ( #12190 )
2020-03-24 11:08:37 -07:00
xtqqczze
a34d0f3e80
Reformat code according to EditorConfig rules ( #11681 )
2020-01-31 14:56:22 -08:00
Dongbo Wang
5605bf4195
Fix a regression in formatting caused by the FirstOrDefault primitive added in 7.0.0-Preview1 ( #11258 )
2019-12-11 15:37:18 -08:00
Ilya
ceed73d737
Run Codeformatter for SMA ( #9402 )
2019-04-24 19:27:22 +05:00
Ilya
cc6540b614
Cleanup style issues in CoreAdapter and MshObject ( #9190 )
2019-03-23 09:52:30 +05:00
Staffan Gustafsson
42c289fc8e
Improve formatting performance by having better primitives on PSObject ( #8785 )
...
By not doing excessive amounts of extra work, formatting can be sped up quite significantly (about 8x faster).
The main change comes from adding new, more efficient, primitive to query an object for the existence of an instance member.
The formatting system has been checking for if an object has properties other than some decorated properties added by PS remoting, and it doesn't this by retrieving all properties which results in heavy allocations and wasted cycles.
By adding `GetFirstOrDefault` to `PSObject` and similar primitives to the underlying Adapters, we are able to return early, without having to get all properties back.
2019-03-20 18:43:52 -07:00
Ilya
759c4abde8
Use Type.EmptyTypes and Array.Empty<T>() to replace our custom code of the same functionality ( #9042 )
2019-03-09 17:53:31 -08:00
Ilya
ff3edaa2e3
Fix lgtm issues ( #8843 )
...
Add some null checks
Remove unused code
2019-02-13 16:51:05 +05:00
Ilya
d80154430d
Style: Change first char to upper in summary comments ( #8597 )
2019-01-09 13:07:40 -08:00
Ilya
233b54ed65
Style: Add a space after "//" in comments and remove unneeded comments after "}" ( #8576 )
2019-01-05 17:51:20 -08:00
Ilya
1be3f4cc0e
Style: Add the ending period to the XML document texts ( #8577 )
2019-01-05 15:40:24 -08:00
Ilya
dfd2f69369
Style: Change 'String.' to 'string.' ( #8568 )
2018-12-31 20:44:16 +05:00
Ilya
56569b9315
Style: Replace String.IsNullOrEmpty with string.IsNullOrEmpty ( #8557 )
2018-12-31 15:10:15 +05:00
Ilya
7207db6360
Style: Convert to upper first char in <param> and <exception> doc tags ( #8556 )
2018-12-29 08:25:49 +05:00
Ilya
479fc64aff
Style: Add period before </param> and </exception> doc tags ( #8553 )
2018-12-28 16:39:06 +05:00
Ilya
767c13fca1
Style: Remove extra spaces after <para> and before </para> docs tags ( #8547 )
2018-12-28 11:05:14 +05:00
Ilya
871ce5696d
Style: Add period before returns doc tag ( #8535 )
...
- add period before "</returns>" doc tag
- remove extra space before "</returns>" doc tag
- convert first char after "<returns>" doc tag to upper case
2018-12-25 21:43:03 +05:00
Steve Lee
4af3068566
Code cleanup: Add space after closing brace where needed ( #8530 )
...
* Update TestService
* Update WebListener
* Update Controllers
* Update ExpTest
* Update MyApp
* Update Logic
* Update Logic
* Update MyApp
* Update Microsoft.Management.Infrastructure.CimCmdlets
* Update Microsoft.PowerShell.Commands.Diagnostics
* Update Microsoft.PowerShell.ScheduledJob
* Update Microsoft.WSMan.Management
* Update Microsoft.WSMan.Runtime
* Update ResGen
* Update TypeCatalogGen
* Update commands
* Update Eventing
* Update Reader
* Update utility
* Update ShowCommand
* Update trace
* Update WebCmdlet
* Update Common
* Update CoreCLR
* Update common
* Update format-object
* Update format-wide
* Update out-file
* Update out-printer
* Update out-string
* Update OutGridView
* Update LocalAccounts
* Update Commands
* Update security
* Update CoreCLR
* Update DscSupport
* Update engine
* Update help
* Update logging
* Update namespaces
* Update security
* Update utils
* Update config
* Update perfCounters
* Update tracing
* Update cmdletization
* Update other
* Update cim
* Update xml
* Update CoreCLR
* Update common
* Update DefaultFormatters
* Update out-console
* Update out-textInterface
* Update DisplayDatabase
* Update Utilities
* Update COM
* Update ComInterop
* Update CommandCompletion
* Update debugger
* Update ExperimentalFeature
* Update hostifaces
* Update interpreter
* Update lang
* Update Modules
* Update parser
* Update runtime
* Update client
* Update commands
* Update common
* Update fanin
* Update server
* Update WireDataFormat
* Update Binding
* Update Operations
* Update interface
* Update cmdletization
* Update cim
* Update management
* Update WindowsTaskbarJumpList
* Update msh
2018-12-24 11:20:06 +05:00
Dongbo Wang
289981a017
Change 'String' to 'string' for simple references ( #8519 )
2018-12-22 14:26:06 +05:00
Meir Blachman
b7b386d209
Remove comments after closing brackets ( #8344 )
2018-12-08 21:53:30 +05:00
Dongbo Wang
720e842c86
Support calling method with ByRef-like type parameters ( #7721 )
...
Support calling methods with ByRef-like type parameters in PowerShell, as long as the argument specified for the parameter can be implicitly/explicitly converted to the ByRef-like type.
We cannot create an instance of a ByRef-like type in PowerShell, but there are types that can be implicitly or explicitly converted to ByRef-like types, such as `T[] -> Span<T>`, `T[] -> ReadOnlySpan<T>`, `String -> ReadOnlySpan<T>`. `ArraySegment<T> -> Span<T>`, `ArraySegment<T> -> ReadOnlySpan<T>`. With changes in this PR, we can call methods with ByRef-like parameter types by providing the arguments of the types that can be cast to the target ByRef-like type.
**What is enabled?**
1. Invoking methods that have ByRef-like parameters, but the return type is not ByRef-like.
2. Invoking constructors with ByRef-like parameters via `[target-type]::new` syntax, but the `target-type` is not ByRef-like.
3. Accessing indexers that have ByRef-like parameters, but the return type is not ByRef-like.
2018-09-11 16:57:35 -07:00
Yuriy Kushnir
165f2c9a42
Use non-virtual call to invoke 'family or assembly' methods on base class from PowerShell class ( #7622 ) ( #7624 )
2018-08-28 22:24:06 -07:00
Dongbo Wang
86469bda33
Handle operations with ByRef-like types gracefully in PowerShell ( #7533 )
...
ByRef-like types are supposed to be used on stack only, so we need to fail gracefully when accessing properties, calling methods, or creating objects related to ByRef-like types.
2018-08-26 12:50:58 -07:00
Ilya
4fc784e840
Bulk update code base to put 'null' on the right-hand-side of a comparison expression ( #6949 )
2018-06-25 14:37:09 -07:00
Dongbo Wang
f591f4d61f
Comment about dynamic members for the DotNetAdapter 'GetMember' and 'GetMembers' ( #7087 )
2018-06-20 00:23:55 -07:00
Dongbo Wang
da40c6efb7
Clean up 'GetTypeInfo()' calls under engine/parser ( #6636 )
...
`GetTypeInfo()` were added when porting PowerShell to early version of .NET Core (prior .NET Core 1.0).
Most properties and methods in `System.Type` were missing at that time. Now the call is not needed anymore and should be removed.
2018-04-13 15:01:41 -07:00
Dongbo Wang
48be625379
Improve PSMethod-to-Delegate conversion ( #6570 )
...
Two small improvements:
1. Avoid unnecessary reflection in `ConvertPSMethodInfoToDelegate`. `PSMethod` already has the `MethodInfo` information with its `adapterData` field.
2. Avoid creating the generic `PSMethod<>` type for `PSMethod` that represents constructors, because constructors cannot be converted to a delegate anyways. In case that the `PSMethod` represents constructors, we use a simple `PSMethod` instance instead.
Also, rename the type `Unit` to `VOID` to make it more readable, since that type represents `typeof(void)`.
2018-04-06 17:01:04 -07:00
Dongbo Wang
6584447025
Engine: Fix several code cleanup issues ( #6552 )
2018-04-04 14:47:44 -07:00
rjmholt
faa21c907b
Change the 'SaveError' method in Parser to use nameof for error ids ( #6498 )
...
Many error messages in PowerShell currently use a LINQ expression to pass both the name of the error and the message through in the error processing. This PR uses the `nameof` feature to carry the error name/ID and gets rid of LINQ expression reflection, hopefully improving performance, especially in editor scenarios.
2018-03-28 16:21:25 -07:00
Dongbo Wang
294def7b11
Fix 'PropertyOnlyAdapter' to allow calling base methods ( #6394 )
...
For a PropertyOnlyAdapter, the property may come from various sources, but methods, including parameterized properties, still come from DotNetAdapter. So, the binder can optimize on method calls for objects that map to a custom PropertyOnlyAdapter.
2018-03-15 15:09:38 -07:00