How we decide on which scopes to use.

Open
#138 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
powershell
Domain
tooling

Research direction

Start by reviewing the scope naming guidance linked in the issue and the related issues #8, #130, and #129. Compare the listed scope-selection and theme-maintenance options, then document an agreed policy covering PowerShell-specific expectations, cross-language consistency, and responsibilities for affected themes.

Written by the indexing model from the issue text.

Description

discussion question

The use of variable.other.member for properties and methods has been incredibly contentious because most themes don't colour it and some people really don't like the lack of distinction. There has been some suggestion that the grammar should take into account user expectation and/or what themes are or are not doing whether that be the VS Code default themes or some majority of all themes. There is also a question of whether or not grammar maintainers should be responsible for updating the default themes (either before or after making changes to the grammar scopes) if that's even feasible (see below.)

As far as scope selection goes there are a few options:

  1. Adhere as strictly as possible to https://sublimetext.com/docs/3/scope_naming.html
  2. Aim for consistency with other languages.
    a. Aim for consistency with one other language such as C#.
    b. Aim for consistency with as many similar languages as possible.
  3. Make decisions based on maintaining the look and feel at a particular point in time in one or more themes.
  4. Make decisions based on reaching a similar delineation of language components to ISE, PowerShell Studio, etc again based on what themes are currently doing.
  5. Use consensus / discussion for each change.
  6. Other?

I personally prefer a mixture of 1 and 2b which leads to the second question: what level of responsibility do we have to maintain user experience be that in the default themes, the ise them, or some majority of all themes?

  • Should we update the default themes to maintain consistency when we make major changes?
    • Does it need to occur before/in parallel with our changes?
  • Should we update the ISE theme to maintain consistency when we make changes?
    • Does it need to occur before/in parallel with our changes?
  • Should we update major third party themes to maintain consistency when we make a change?
    • Does it need to occur before/in parallel with our changes?

NOTE: When I say "should we update" it could also be an issue/request.

Keeping in mind that if we change to a scope used by other languages that changes to the themes to maintain consistency for PowerShell writers could disturb the expectation of other developers. For example the sigil scope applied to the $ in variables is consistent across almost 10 languages. If we added or removed colour support in the default themes to match PowerShell expectations it could negatively impact other language developers. This raises a final question that goes along with the first one:

  1. Should we make choices with PowerShell-only expectations in mind.
  2. Should we make choices with consistency for people who write multiple languages in mind.

Ie, should these look the same between PowerShell and PHP?

$Variable.Property.Method()
$variable->property->method();

Or should the PowerShell one look how it looks in ISE/how it always has looked in VS Code.

Related: #8
Open issues that raise some of these questions: #130 #129

Dominant language
PowerShell
Stars
151
Forks
55
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PowerShell/EditorSyntax

All issues in PowerShell/EditorSyntax

Similar issues

More DevTools issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.