-
Notifications
You must be signed in to change notification settings - Fork 120
Conversation
b6c79a0
to
491a6b6
Compare
@rsese Like with others - ready for review ;) |
Hey @KapitanOczywisty! Thanks again for the contribution - we looked at this one today and I made a bad assumption that 7.4 was already released, sorry about that. We poked around and see the release date seems to be end of November 2019. For the language packages we usually wait till the language features are generally available so this isn't something that would be reviewed before then. Additionally, with a change as large as this there was a concern about maintenance since there's currently not a lot of PHP expertise on the team right now. If this was merged, would you be around to help with followup issues related to this PR? |
@rsese PHP 7.4 is in the Release Candidate stage, so features are fixed by now and only bug fixes will be deployed before full 7.4.0 release. Also there aren't any backward incompatible changes in this patch, no existing test was harmed. Moreover, I've skipped more messy changes for this PR (e.g. constants are a bit outdated and in wrong groups). In my opinion it's safe to merge this PR sooner. If you (team) can merge other two PR before this I would solve conflicts which will probably arise.
Of course, I'm following this repo, but you can also dm me on slack. |
@rsese PHP 7.4 is now live :) |
Thanks for the reminder! ⚡ I'll share this with the maintainers for you. |
Since this is a huge PR and there are conflicts, would you mind closing this PR and breaking it up into a series of smaller PRs to make it more manageable for our team? |
@lee-dohm I can split this PR, but this can take me a while. Conflicts are now resolved if meanwhile you would want to go with this anyway. I'm using this in vscode since a few months without any problems. |
Thanks for the work you've put in on this! I've added the four related PRs to the queue to be reviewed. Since this PR isn't going to be merged in its current form, I'm going to go ahead and close it. |
Updates for PHP 7.4
New PRs with parts of this.
All functions are now implemented, you can test and give feedback ;)
For testing I've merged my other pull requests in: KapitanOczywisty:merge-all
For
vscode
you can get preview extension here:(Use
Inspect TM Scopes
to check if extension works correctly).Description of the Change
Syntax
Definitions
changes prior PHP 7.4 (not updated before)
iterable
pseudo-type rfcCURL - update constants current / proposed regexGD - add constantsLDAP - add constantsPGSQL - add constantsPCNTL - add constants sourceNo more definitions in this pull-request, I'will provide proposition for major update in separate issue
To think about
C
syntax inside FFI functions rfcAlternate Designs
fn
got scopestorage.type.function.php
alternative:storage.type.fn.php
=>
got scopepunctuation.definition.arrow.php
alternative: ??_
did not get own scope in numbers, if necessarypunctuation.separator.literal.underscore.php
or similar could be addedCurrent scopes
Arrow functions
Test code:
fn($x) => $x;
0:
scopes:
scopes:
fn
scopes:source.php
meta.function.closure.php
storage.type.function.php
1:
(
scopes:source.php
meta.function.closure.php
punctuation.definition.parameters.begin.bracket.round.php
2:
$
scopes:source.php
meta.function.closure.php
meta.function.parameters.php
meta.function.parameter.no-default.php
variable.other.php
punctuation.definition.variable.php
3:
x
scopes:source.php
meta.function.closure.php
meta.function.parameters.php
meta.function.parameter.no-default.php
variable.other.php
4:
)
scopes:source.php
meta.function.closure.php
punctuation.definition.parameters.end.bracket.round.php
5:
source.php
meta.function.closure.php
6:
=>
scopes:source.php
meta.function.closure.php
punctuation.definition.arrow.php
7:
source.php
8:
$
scopes:source.php
variable.other.php
punctuation.definition.variable.php
9:
x
scopes:source.php
variable.other.php
10:
;
scopes:source.php
punctuation.terminator.expression.php
Anonymous classes
Test code:
$a = new class {};
0:
scopes:
scopes:
scopes:
scopes:
$
scopes:source.php
variable.other.php
punctuation.definition.variable.php
1:
a
scopes:source.php
variable.other.php
2:
source.php
3:
=
scopes:source.php
keyword.operator.assignment.php
4:
source.php
5:
new
scopes:source.php
meta.class.php
keyword.other.new.php
6:
source.php
meta.class.php
7:
class
scopes:source.php
meta.class.php
storage.type.class.php
8:
source.php
meta.class.php
9:
{
scopes:source.php
meta.class.php
punctuation.definition.class.begin.bracket.curly.php
10:
}
scopes:source.php
meta.class.php
punctuation.definition.class.end.bracket.curly.php
11:
;
scopes:source.php
punctuation.terminator.expression.php
Benefits
Compatibility with php 7.4
Possible Drawbacks
none
Applicable Issues
none