Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How we decide on which scopes to use. #138

Open
omniomi opened this issue Aug 16, 2018 · 1 comment
Open

How we decide on which scopes to use. #138

omniomi opened this issue Aug 16, 2018 · 1 comment

Comments

@omniomi
Copy link
Contributor

omniomi commented Aug 16, 2018

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

@jrsconfitto
Copy link

I think I'm seeing a similar issue brought up in jrsconfitto/language-powershell#67. Am I correct about that issue feeding into the concern this discussion wants to address?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants