Releases: phpactor/phpactor
Releases · phpactor/phpactor
14
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:
- [code-transform] Cannot rename variable from anonymous function variable
(#829) - @dantleech - [code-transform] Complete constructor does not take into account aliased
imports (#886) - @dantleech - [code-builder] New aliased class imports alias not added (#860) - @dantleech
- [worse-reflection] instanceof returns negative if class implements
interface but extends another class - @dantleech - [worse-reflection] foreach key variable resolves as symbol type "unknown"
- [text-document] Word splitting includes commas, and other non-word chars
(#851) - @Einenlum - [worse-reflection] Functions wrongly memonized as classes - @dantleech
- [class-new-cli] response shows source code instead of path (#792)
- [class-new] Wrong file path when destination shares the same namespace as source (#795).
Improvements:
- [vim-plugin] Better handling of
json_decode
errors - [vim-plugin] Add option to switch to open windows
g:phpactorUseOpenWindows
- @przepompownia - [vim-plugin] Stable context menu shortcuts - @dantleech (#896)
0.13
Features:
- [vim-plugin] Add new
GotoDefinition[Vsplit|Hsplit|Tab]
functions. - [code-builder] Initial support for nullable types - @Einenlum
- [vim-plugin] FZF integration for list inputs (#769) - @elythyr
- [vim-plugin] FZF multiple selection (#773). @elythyr
- [vim-plugin] Maintain correct cursor position after certain text diffs (#770) - @elythyr
- [code-transform|rpc] Generate multiple accessors for a class - @elythyr
- [code-tranform] Generate static methods if the call was static (#25) - @Einenlum
- [completion] Use declared classes as completion source
- [import-class] Import declared classes (as long as they can be statically
resolved). - [rpc] Class import uses offset to determine type to import
- [class-mover] Possiblity to move related any files whose relations are
defined innavigator.destinations
(for both command and rpc) - [worse-reflection] Support virtual class properties (in addition to
methods).
Bug fixes:
- [completion] Signature helper does not work on interfaces (#752) - @Taluu
- [code-builder] Class import doesn't work with single element namespace
#760 - [code-builder] Variant is not passed to class generator (#766)
- [phpactor|cli] response shows source code instead of path (#792)
- [class-mover|rpc] Fix order of open/close operations, prevent VIM crashing
BC Break:
- [rpc] Import class no longer requires name parameter. RPC version changed
to version 2. - [code-transform] Generate accessors is now a class action and allows
generation of multiple accessors.
0.12.0
BC Break:
- [completion] Comletion API changed to accept the new
TextDocument.
Features:
- [goto-definition] Goto definition extracted from core into separate
packages including extension
point. - [goto-definition] Support for "plain text" goto class definition, works
for docblocks, and non-PHP files. - [completion] Do not suggest non-static method on static calls.
- [completion] Suggest ::class constant, fixes #673
- [completion] Docblock type injection allow name to be omitted #618
- [application] Log errors in command error handler (for logging async
completion errors using the complete command) - [worse-reflection] Support variadic arguments #621
- [worse-reflection] Support for virtual methods #682
- [worse-reflection] Support for evaluating
clone()
- [worse-reflection] Support for registering custom virtual class member
providers. - [vim-plugin] Find references shows context line #706
- [code-builder] Trait support, thanks @dshoreman
Improvements:
- [code-transform] Support extracting expressions to methods #666
- [code-transform] Extract method adds return statement to calling code if
extracted code contained a return #704 - [worse-reflection] Support union catch #711
Bug fixes:
- [completion] Fix type resolution immediately following docblock #678
- [completion] Include
$
on static properties #677 - [extension-manager] Do not install dev dependencies for extensions #674
- [class-to-file] sort candidates by path length #712 thanks @greg0ire
- [code-transform] Rename variable includes anonumous function use #713
- [worse-reflection] Do not downcast union types in named docblocks #711
- [code-transform] Extract method sometimes creates method in new class in
same file #730 - [code-transform]n Add Missing Properties added trait props in new class #726
0.11.0
BC Break:
- [rpc] All handlers must now be registered with the "name" attribute.
Features:
- [worse-reflection-extension] Allows new framewalkers to be registered
(i.e. new ways to infer types). - [config] Support loading config from JSON files
Improvements:
- [rpc] Handlers are lazy loaded, improving the RPC baseline latency
0.10.0
BC Break:
- [php] Bumped minimum PHP version to 7.1
- [config] Renamed
reflection.enable_cache
=>worse_reflection.enable_cache
- [config] Renamed
reflection.stub_directory
=>worse_reflection.stub_directory
- [config] Renamed
autoload
=>composer.autoloader_path
- [config] Renamed
autoload.deregister
=>composer.autoload_deregister
Features:
- [ExtensionManager] Facility to dynamically add extensions to Phpactor
- [RPC]
extension_list
,extension_remove
andextension_install
handlers. - [Completion] Class alias completor, #592
- [CodeTransform] Cycle class member visiblity #521
- [RPC] Adds
hover
handler which shows the synopsis of the symbol
underneath the cursor. - [Completion] Introduction of a type-specific completion registry, to allow
registration of completors for different sources, e.g. cucumber.
Improvements:
- [Application] Do not eagerly load commands (~20% baseline improvement)
- [Transform] Complete constructor will work work on ! interfaces #597
- [Transform] Import missing types on generate method
- [Transform] Adds return types on generate method
- [CodeBuilder] Do not add additional spaces when importing classes
- [Completion] Completion qualifiers to allow reusable way to determine
candidate completors. - [Vim Plugin] The "label" for omni complete suggestions is now truncated to
a specified length.
Other:
- [Console] Config dump now only shows JSON format
- [Completion] Completors now
yield
suggestions and problems are no longer
returned. Theissues
key returned from suggestions is now deprecated. - [Vim Plugin] The "omni error" feature has been removed (as completion no
longer returns them).
0.9.0
BC Breaks:
- [RPC Plugins] a new
update_file_source
method is now returned by most
code-transforming RPC handlers (e.g. import class, complete constructors).
this is used in place ofreplace_file_source
.
See https://github.com/phpactor/phpactor/issues/550 for details
Deprecations:
- [Completion|Completion Plugins] Serialized key
info
is deprecated in favour of
short_description
and could be removed, at least, in 0.10.0.
Features:
- [RPC]
open_file
command now has aforce_reload
flag - [Completion|Vim Plugin] Auto-import class names (thanks @kermorgant for
improvements) - [Completion] Suggestion types now have more explicit types (e.g.
method
,
constant
,class
, rather than the VIM-centric kind characters). - [WorseReflection] Fallback to inferring property types from constructor assignments.
- [RPC|Vim Plugin] RPC handler for file class info (e.g. namespace, class
FQN) and VIM functions newphpactor#getNamespace()
and
phpactir#getClassFullName()
. Thanks @voronkovich - [WorseReflection] Reflect any user-defined functions parsed when including
the Composer autoloader. #562 - [WorseReflection] Support trait alias maps. #540
- [RPC] Return semantic RPC protocol version in response (starting at
1.0.0
). - [Completion] Complete constructor parameters.
Improvements:
- [Rpc|VIM Plugin] Source code is now updated (by way of a diff algorithm)
not replaced. The cursor position and undo history are maintained. - [VIM Plugin] Regression test for Transform RPC call.
- [Application] Make class completion candidate limit configurable.
- [WorseReflection] Foreach Frame walker: inject keys in foreach loop, #578
- [RPC] find references: Do not return files with no concrete references,
#581 - [CodeBuilder] Tracks which nodes have been modified after factory
creation. - [ClassToFile] Composer class-to-file strategy no longer discards inferior
prefix lengths from consideration, fixes #576
Bug fixes:
- [Completion] Fixed multi-byte issue with class completor.
- [VIM Plugin] Allow duplicate name suggestions (e.g. same class short-name
different FQNs) in omni-complete results. - [CodeBuilder] Builder attempts to act on a string (when return type is f.e.
self). #529 - [WorseReflection] Fix fatal error when
Parameter#getName()
returns NULL in
SymbolContextResolver. #533 - [CodeBuilder] Fix for unrelated methods being updated, #583
0.8.0
Improvements:
- [WorseReflectoin] Smoke test for find parsing errors.
- [WorseReflection] Improved efficiency for frame building.
non-variable. - [Completion] Improved multi-byte performance, fixes #537 thanks
@weirdan
Bug fixes:
- [WorseReflection] Handle fatal error on incomplete extends.
- [WorseReflection] Handle fatal error on instanceof coercion.
- [Completion] Fixed class member container resolution accuracy.
- [SourceCodeFilesystem] Quote regular expressions in file list filter, fixes #543
Misc
- [RPC] Refactored handlers to define input requirements more explicitly.
0.7.0
Features:
- [CodeTransforn] Extract expression
- [Application] Changed behavior of Transform command: accepts globs, shows diffs and writes to files (rather than just dumping them to stdout if they changed).
- [Completion] Support constant completion.
Improvements:
- [Application] Use version from composer instead of hard-coded version. Thanks @weirdan
- [Completion] Support namespaced functions, fixes #473
- [Completion] Sort completion results alphabetically.
- [Docs] Added section on completion.
- [WorseReflection] Explicitly do not support anonymous classes when resolving nodes, fixes #505
Bug fixes:
- [WorseReflection] Do not parse non-PHP files when building stub cache, fixes #510
- [Completion] Fixed last non-whitespace char detection, fixes #504
Misc
- Downgraded composer to 1.x as 2.x-dev now requires PHP 7.2
0.6.0
2018-06-16 0.6.0 0.6.0
Features:
- [CodeTransform] Transformer to fix namesapce / class name #474
Improvements:
- [WorseReflection] Resolve UseNameVariables (e.g. context menu
use ($f<>oo)
). #466 - [Application] Improved status (show current version) #481
- [CodeTransform] Better handling of new file generation
- [Docs] Added Development section
Bug fixes:
- [WorseReflection] access property on null error when resolving incomplete
function variable use. - [CodeTransform] Generate method does can use pseudo type for return type #486
- [Vim Plugin] Goto reference in a modified file causes warning #477.
- [Application] Overridden CWD not being passed to
Paths
(affected config
file resolution). - [Application] Fixed find references regression (only the current class
wasn't being checked for references..)
2018-05-20 0.5.0
Features:
- [Completion] Parameter completion, suggests variables that are valid for
the parameter position.
Refactoring:
- [SourceCodeFilesystem] Public API accepts scalar paths in addition to
value objects.
Improvements:
- [Documentation] Updated VIM completion plugin docs including
phpactor/ncm-phpactor
fork (mainline is not maintained currently).