Skip to content

PowerShell extension uses PSScriptAnalyzer settings file - Cannot update rules #899

Open

Description

@PowerDBAKlaas

I had this error when doing: <ctrl>+<shift>+P, PSScript...
image
After Uninstall and reinstall the Powershell extension ( version 1.3.2, the same as it was before), there's another issue:
image

System Details

  • Operating system name and version: Windows 10.0.14393
  • VS Code version: 1.13.1
  • PowerShell extension version: 1.3.2
  • Output from $PSVersionTable:
    Name Value

PSVersion 5.1.14393.0
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14393.0
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1


PS C:\scripts> code -v
1.13.1
379d2efb5539b09112c793d3d9a413017d736f89
PS C:\scripts> $pseditor.EditorServicesVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
1      3      2      0


PS C:\scripts> code --list-extensions --show-versions
ms-mssql.mssql@1.0.0
ms-vscode.PowerShell@1.3.2

Issue Description

I am experiencing a problem with PSScriptAnalyzer: cannot update the rules

Attached Logs

1497967294-c7966750-26b9-4c1a-88bf-382515625aa61497967292400.zip

Activity

  1. PowerDBAKlaas commented on Jun 21, 2017

    @PowerDBAKlaas
    Author

    Actually, the thought that something is wrong, started with noticing that the warning and error count ( in the left lower corner) were and are always 0.

  2. PowerDBAKlaas commented on Jun 21, 2017

    @PowerDBAKlaas
    Author

    OK
    "powershell.scriptAnalysis.settingsPath": "bin//PSScriptAnalyzerRules.psd1",
    was set to a non-existing file, so this was my own fault.
    Maybe if the error message could say "file not found" I would realize that sooner than with "cannot update the rules"

  3. daviwil commented on Jun 21, 2017

    @daviwil
    Contributor

    Hey Klass, sorry for the delay in response. I'm glad you figured out the issue! You're right, we should indicate that the settings file is missing, I'll reopen this issue so we can track a fix for that.

  4. added this to the 1.4.1 milestone on Jun 21, 2017
  5. modified the milestones: 1.5.1, on Oct 26, 2017
  6. PorkyProgs commented on Jan 17, 2018

    @PorkyProgs

    Thanks for identifying the bug, as I am not so familiar with the Setup and untill the fix is included, could perhaps be clarified
    i) which file name should be entered into this Setting and
    ii) If the full path or a relative path should be included (and if relative, relative from where)
    That would be a great help to start using this part of teh extension

  7. rjmholt commented on Apr 24, 2018

    @rjmholt
    Contributor

    @tylerl0706, it looks like there's a bug in the extension where we're not persisting PSSA rule file settings, as above.

  8. rkeithhill commented on Apr 24, 2018

    @rkeithhill
    Contributor

    PorkyProgs (@PorkyProgs)

    i) which file name should be entered into this Setting and

    You can use any filename you want but the tyipcal filename is PSScriptAnalyzerSettings.psd1.

    ii) If the full path or a relative path should be included (and if relative, relative from where)

    When using a relative path in a workspace settings file, the path is relative to the workspace root. If you put the setting in your user profile, it should be an absolute path.

  9. rkeithhill commented on Apr 28, 2018

    @rkeithhill
    Contributor

    Rob Holt (@rjmholt) I don't think this feature was designed to persist the set of selected rules between sessions. Another reason I prefer to use a PSSA settings file for the workspace.

  10. bergmeister commented on May 13, 2018

    @bergmeister
    Contributor

    I think it is a minimum viable feature (for the moment) to tell people having to just edit the PSSA setting file themselves but of course, it could be improved. But what is a no go and problem is the fact that when no PSSA settings path is specified, the rules selected via Ctrl+Shift+P are not persisted!
    I suggest that when selecting a rule AND the PSScriptAnalyzerSettingPath setting of VSCode is not set, then the extension should create such a file in the .vscode folder and make the Vscode setting point to it. Without this capability, the Vscode feature of selecting rules via Ctrl+Shift+P is useless and misleading. I myself saw this feature once and thought it would be nice to people who like to use GUIs, so I showed it at psconf.eu but not knowing that it does not persist because I personally use settings files...

    I would also like to complain about the fact that not all rules are turned on by default, especially AvoidPossibleIncorrectComparisonWithNull.

  11. mklement0 commented on Nov 5, 2019

    @mklement0
    Contributor

    Good points, Christoph Bergmeister (@bergmeister).

    There are both older and newer issues that are closely related:

    #823 (David Wilson (@daviwil)) suggests adding support for persisting the existing GUI-based rules selection (>PowerShell: Select PSScriptAnalyzer Rules)

    #1443 (Rob Holt (@rjmholt)) doesn't reference the GUI method, but proposes supporting persistent rule selection via settings.json specifically

    Also, there is another closely related issue that I decided to break out into a separate one:
    If you use a relative path in setting powershell.scriptAnalysis.settingsPath, for per-workspace settings, opening a workspace that doesn't have such a file quietly deactivates all rules - see #2287

    Also related: #2190, where TylerLeonhardt suggests automatically picking up a PSScriptAnalyzerSettings.psd1 file in the workspace root.

  12. removed this from the milestone on Jan 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions