Skip to content

0.14.0 Release#899

Merged
dantleech merged 58 commits intomasterfrom
0.14.0
Mar 1, 2020
Merged

0.14.0 Release#899
dantleech merged 58 commits intomasterfrom
0.14.0

Conversation

@dantleech
Copy link
Copy Markdown
Collaborator

Features:

  • [vim-plugin] Introduces Commands for user actions (instead of having to
    call the functions)
  • [vim-plugin] Generate the VIM help from the plugin's code documentation
  • [code-builder] Support for nullable types - @elythyr / @dantleech
  • [code-builder] Generates typed property for PHP 7.4 - @elythyr
  • [worse-reflection] Support for PHP 7.4 property types - @dantleech / @elythyr
  • [phpactor|code-builder] Allow to override the templates by PHP version - @elythyr
  • [phpactor] Auto-detection of project PHP version - @dantleech
  • [code-transform|rpc] Import missing classes - @dantleech
  • [context-menu] Invoke menu for the nearest actionable node (i.e. you can
    invoke the context menu on whitespace now) - @elythyr
  • [vim-plugin] Extract functions handles motions @elythyr
  • [vim-plugin] Jumping to another file preserves the jumplist @elythyr
  • [class-mover] Jump to implementation - @dantleech

Bug fix:

Improvements:

dantleech and others added 30 commits August 25, 2019 22:26
* Find implementations

* Updated docs and plugin
* Validate composer file in CI

* Use stable stability

* Fixed import-class menu entry regression #816

Updated CHANGELOG

* Fixes version in changelog

* Fixes import-class attempt #2 #816

* Updates composer.lock

* Fix #816 via. text-document update
* ContextMenuHandler looks for the closest resolvable node

* Updates the handler for worse-reflection changes

* ContextMenuHandler uses InterestingOffsetFinder

* Updates ContextMenuHandlerTest.php

* Updated composer.lock

  jetbrains/phpstorm-stubs 4c8579a5..40d569b2

    [2018-10-05 19:47:32] 98b5d94b sjlehn Add docs for mysqli_result close and free_result
    [2019-09-12 18:26:49] 4cf0ab5b web-flow password_hash can return null
    [2019-09-17 15:47:17] a7554468 <???> Add mysqli extension to the reference Docker image + fix all failures
    [2019-09-17 15:49:43] 8f55cf5a <???> Provide an updated map
    [2019-09-17 16:40:05] 4bd6fa12 <???> Enable all easy to install extensions + fix stubs according to new tests
    [2019-09-17 16:49:02] 0828e8e1 <???> Update libraries
    [2019-09-18 11:59:28] ad0b31e2 <???> Fix parsing of constants with negative value, add missing constants, fix constant values
    [2019-09-18 14:17:14] 49c41666 <???> Fix test for parent interfaces + fix all mongodb interfaces
    [2019-09-18 14:17:37] 42746516 <???> Fix stubs according to new tests
    [2019-09-18 14:39:59] f3a010af <???> Add new extensions + fixes for them
    [2019-09-20 11:31:20] 485c2da9 web-flow Add missing Rdkafka\Message::$len property  Source code that proves that this prope...
    [2019-09-24 16:34:56] 8e545a4c web-flow sha1/md5 default values  value of `$raw_output` is `false` by default    https://gi...
    [2019-09-25 08:06:40] f2912734 zonuexe round(), floor() and ceil() return float or false  These functions return `FALSE` va...
    [2019-10-01 09:37:10] 263786eb web-flow Update stubs for PHP 7.2 (#662)  * WI-37330 Update stubs for PHP 7.2    https://git...
    [2019-10-01 18:46:04] cb148bd0 web-flow Updating default value of intval 2nd parameter  The default of the second parameter...
    [2019-10-02 10:11:55] 08ea0a36 web-flow add @throws to the mongodb  adding @throws to the mongodb/Manager::executeBulkWrite...
    [2019-10-02 13:14:57] ed0b51f9 SvetlanaZem Don't use bugfix number in deprecation tag
    [2019-10-08 12:42:03] a2aef047 andrey-sokolov Non-recurrect true and false constants declaration
    [2019-10-11 20:32:41] e1273310 sjlehn Add since and link tags to session_create_id
    [2019-10-14 10:53:43] 9b3b8398 luzat Fix mb_ereg and mb_eregi reference parameters  Closes #WI-30806.
    [2019-10-14 11:19:43] cdb92e37 <???> Add deprecation for inheritor of `Reflector` interface Fixes WI-48755
    [2019-10-14 13:29:38] 161bbd95 terdia Fixes incorrect signature of preg_split in pcre.php
    [2019-10-14 17:01:15] d1ea83ed <???> Fix indentation
    [2019-10-14 19:57:33] 3ff179fc alister Update - Stubs: Out of date definition for E_ALL.  Closes WI-39737
    [2019-10-14 20:15:19] debaf802 alister DATE_COOKIE-definition-is-incorrect  DateTime::COOKIE is the same value.  Closes WI-...
    [2019-10-14 20:22:50] d9aafe9b alister Value has been fixed.
    [2019-10-14 20:27:40] e6b69b34 alister Value has been fixed, do not mute.
    [2019-10-14 23:10:02] 9cdd45e8 web-flow Fix docblock alignment in SPL_c1
    [2019-10-15 08:58:11] 4df66729 maciejlew Fix SplFileObject::fwrite docs
    [2019-10-15 13:19:09] 84d306ab luzat Replace mixed return types in Core.  Part of WI-32359. Also allows null parameter for ...

  phpactor/code-transform 0cf4f200..f50f1563

    [2019-10-13 16:39:24] 0420e6fb web-flow Use existing version of worse reflection
    [2019-10-14 08:01:54] 69ab60fb dantleech Failing test for finding interesting method call
    [2019-10-14 17:50:10] 3c61923a dantleech Use the original offset if it's interesting

  phpactor/map-resolver 6c467a07..21ef588c

    [2019-08-24 14:04:06] 80ca04e6 dantleech Update LICENSE
    [2019-09-29 10:27:43] c9a8d6fb dantleech Merge required
    [2019-09-29 10:30:30] 21ef588c dantleech Adds test
* Added link to phpactor-mappings package

* Update vim-plugin.md

* Update vim-plugin.md
The original offset should be used in the callback from the
context menu, not the resolved one.

Actually not sure why it makes a difference if the offset used
is the resolved one, and not the original.
* Refactor _selectionStart and _selectionEnd

The goal is to be able to reuse the logic with any mark. So I extracted
the logic inside to private function and refactor the two already
existing.

* Adds a function to extract a constant

* Rework ExtractExpression() to handle motions

* Rework ExtractMethod() to handle motions
* Add keepjumps when using "goto"

Make a better user experience by preserving je jumplist

* Updates the changelog
* Adds a function to get the relative path from an absolute path

* Uses fzf to open refernces if available

* Only search within the filename (exclude line and column numbers)

* Makes some optimization

The flow is now:
1) Check if only one reference to the current file -> stop
2) If fzf.vim not available -> use the quickfix list
3) Otherwise format what will be show
    -> More readable
    -> Allow to filter on filename and on the line of the reference
4) Open fzf with preview in fullwidth
    -> Allow to see filename + line with ease
    -> Don't need to see the current buffer when filtering

* Jumps to the position of the reference when opening a file from fzf

* Updates the doc to talk about fzf&bat

* Extract the quickfix building threw zfz in a separate file

* Adds an option to disable the use of fzf to build the quickfix

* Removes trailing spaces in phpactor.vim

* Adds an header in the fzf windows to tell about CTRL-Q

* Removes the header `fzf &fzf.vim` in the doc

* Rework the quickfix feature to include strategies

* Updates the doc after the feedbacks
* Refactored JSONs to make version a variable

* bugfix: Worse Reflection - key resolves to unknown fixes #841
* Import Unresolvable Classes

Refactoring to import all unresolvable classes

* Updates composer lock

* Adds doc and rename to => missing classes

* Add closing underscore

* Updates lock

* Revert erronous changes to configs

* Always use inputlist strategy for collections

* Moves decision to use inputlist strategy to dedicated function
* Reorder the template paths

Reorder the templates path by priority so we can override phpactor's
templates.
For information it didn't seem to be the case before, we could add new
templates but not override an existing one.

* Add php.version_id as parameter

* Update CodeTransformExtraExtension to register extra template paths

For each defined template path we will look for directories which name
is a number of 5 digit and consider this name as a PHP version ID.
For each of these directory which corresponds to a version under or
equal to the current PHP version ID we will add them as a loader to
Twig, ordered by ascendant version.

This way we will have something like:
<project_root>/.phpactor/templates
<xdg_config>/phpactor/templates
<app>/templates/70400
<app>/templates/70200
<app>/templates

Which represent the priority in which the templates will be looked for.

Easy to tests, I added `70400/Property.php.twig` in the `code-builder`
packages.
Override the `php.version_id` to 70200 and try to complete a constructor
parameters: the properies added will have a phpdoc block if they had a
type
Do the same thing with `php.verion_id` to 70400: the propery will have a
type and no phpdoc block

* Update CHANGELOG.md

* Move the logic to resolve templates paths in code-transform package

* Use PHP_VERSION format instead of PHP_VERSION_ID

* Update TemplatePathsResolver use statement after moving it into
code-builder

* Rename TemplatePathResolver to PhpVersionPathResolver

* Use phpversion as default

* Updated config

* Updated lock file

* Rename constants and php version key

Co-authored-by: Camille Dejoye <[email protected]>
* Only import unique names (class import all)

* Fix unit tests and update worse reflection
* Add desciption for Expand Class in doc

* Fix: Expand class missing leading \ for FQN

Definition for fully qualified name should begin with \
See: https://www.php.net/manual/en/language.namespaces.rules.php

* Revert "Fix: Expand class missing leading \ for FQN"

This reverts commit 93d99db.
See #871 (review)

* Fix typo

* Make the sentences more acceptable
* Integrate fixer PR

* Adds smoke test for fix code style command

* Updates composer and changelog

* Use new code transform fixer

* Updated changelog

* Updated composer

* Fix plugin expectation
dantleech and others added 28 commits January 18, 2020 16:14
* Improved CS fixer

- Better indentation
- Better CS intersection

* Updated test
* Remove fix code style command

* Revert the style fixer changes

This approach turned out to be too complicated and took far too much
time. Reverting to the previous, more stable, behavior.

* Rebased and updated composer.lock

* Only 1 file is actually affected here

* Revert cs-fixed test change
* Remove FZF strategy and auto detection

Use standard inputlist by default

* Remove quickfix strategy auto-detection

* Remove the documentation

* Re-add the FZF as experimental

* Restructured documentation

* Updated wording
removes some features which are now removed
the ClassNew class can accept either an FQN or a file path, prior to
this fix if it was given a file path, it converted it to a class name,
but then used the class name to convert it back to the file path - which
is not 100% reliable, as it's possible for a class to exist at multiple
locations.

This fix preserves the file location if given.
* Updating VIM plugin

* Adds commands and documentation

* Added documentation for mappings

* Removed duplicated doc in MD file

* Use setting reference

* Updated vimdoc

* Removed functions from autoload

* Reverted deletion of plugin functions

* Adding explicit completion docs

* Removes TOC for plugin as there isn't much doc left

* Moved vim tests

* Added CHANGELOG

* Added documentation on generating the vimdoc

* Use wildcard to run vim tests
it also removes syntax error that revealed after running with '--exit-0'
* Allow to reuse open window when go to definition

* Add help text

* Do not use <SID> without a necessity
* Bump rpc extension version

* Refactored menu

* Bumps minimum version to 7.2

* Refactored handler to use richer model

* Adds stable shortcuts

* Remove 7.1 from travis

* Fix cs:

* Use stable version

* Updateed changelog

* Add shortcut at end if not present in label

* Make fromArray static

* Remove unnecessary variable

* Added comment about empty keyMap check
The implementation isn't yet stable or included by default
It's there because we can't test on PHP 7.2 otherwise due to
dev-dependency conflicts:

```
ocramius/package-versions 1.5.1 requires php ^7.3.0 -> your PHP version (7.2.15) does not satisfy that requirement.
```
@dantleech dantleech merged commit 021fe71 into master Mar 1, 2020
@dantleech dantleech deleted the 0.14.0 branch March 1, 2020 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants