PowerShell / PowerShell/PSScriptAnalyzer

Implementing interface in PowerShell class does not warn about non-implemented interface members

Offen
#1,564 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Area - Rules Issue - Enhancement Issue - New Rule
Vorherrschende Sprache
C#
Sterne
2.2k
Forks
414
Ø Merge
13 Std. 1 Min.
Gemergte PRs (30 T.)
2

Beschreibung

System Details

System Details Output

### VSCode version: 1.47.3 91899dcef7b8110878ea59626991a18c8a6a1b3e x64

### VSCode extensions:
DavidAnson.vscode-markdownlint@0.36.2
eamodio.gitlens@10.2.2
Fudge.auto-using@0.7.15
jchannon.csharpextensions@1.3.1
k--kato.docomment@0.1.17
mhutchie.git-graph@1.25.0
ms-azuretools.vscode-docker@1.4.1
ms-dotnettools.csharp@1.22.1
ms-vscode-remote.remote-wsl@0.44.4
ms-vscode.cpptools@0.29.0
ms-vscode.powershell@2020.6.0
ms-vscode.powershell-preview@2020.7.0
redhat.vscode-xml@0.13.0
streetsidesoftware.code-spell-checker@1.9.0
zhuangtongfa.material-theme@3.8.5


### PSES version: 2.3.0.0

### PowerShell version:

Name                           Value
----                           -----
PSVersion                      7.1.0-preview.5
PSEdition                      Core
GitCommitId                    7.1.0-preview.5
OS                             Microsoft Windows 10.0.19041
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Issue Description

PowerShell class implementing an interface does not create an error if required interface members are not present. There is also not a code action to implement interface.

using namespace System.Management.Automation

class test : IArgumentCompleter
{

}
Expected Behaviour

VS code warns about non-implemented interface members like C#. Code action to implement interface.

Actual Behaviour

VS code does not warn about non-implemented interface members or show code action to resolve.

image

Attached Logs

Follow the instructions in the troubleshooting docs
about capturing and sending logs.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit dem PowerShell-Klassenbeispiel, das IArgumentCompleter implementiert, und prüfen Sie, wie PSScriptAnalyzer fehlende Schnittstellenmitglieder meldet. Verwenden Sie die Fehlerbehebungsdokumentation, falls Diagnoselogs erforderlich sind. Als erledigt gilt die Aufgabe, wenn der Editor vor nicht implementierten Schnittstellenmitgliedern warnt und eine Codeaktion zu deren Implementierung anbietet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, powershell
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.