1
0
Fork 0
Commit Graph

219 Commits (cfc8cc781558f789ababe662df75aba9d2e33cc4)

Author SHA1 Message Date
Sara Itani 26152b1de6 Temporary change to expose index to validation tests 2017-04-13 09:13:03 -07:00
Sara Itani 05bccec84d Ensure duplicate ScopedPropertyAccess expressions don't appear 2017-04-13 09:12:30 -07:00
Sara Itani d6d9712134 clarify logic around scoped and member access expressions 2017-04-12 16:53:03 -07:00
Sara Itani 35ce3af324 fix issue where call expression references weren't being properly indexed 2017-04-12 12:51:24 -07:00
Sara Itani 39fe9dc7bc fix issue where vars not being resolved to corresponding parameter definitions, update logging and validation tests 2017-04-11 16:24:35 -07:00
Sara Itani 57ebd58b6c Update validation tests to verify more definition properties, references 2017-04-11 12:54:20 -07:00
Sara Itani 981b74a6db don't get docblock comment for namespace definition nodes 2017-04-11 12:52:24 -07:00
Sara Itani 219c018ab2 Disclude anonymous class members from definitions 2017-04-10 21:58:08 -07:00
Sara Itani 3d5d46d4e7 don't use generator during iteration 2017-04-10 14:18:19 -07:00
Sara Itani b02c164c2b fix property / constant ancestor check 2017-04-10 13:13:47 -07:00
Sara Itani 21cee77624 include traits and interfaces when retrieving fqn 2017-04-10 12:42:49 -07:00
Sara Itani fa52aef28a revert isClass -> canBeInstantiated
- ensures consistency w/ old parser
2017-04-10 12:29:58 -07:00
Jens Hausdorf de6aed608c Show constructors and destructors with right symbol (#346) 2017-04-09 19:44:28 +02:00
Talv 14a6d65832 Fix missing '()' for function definition (#340) 2017-04-02 00:30:10 +02:00
Sara Itani 7d68e3acc3 Only traverse tree 1x for definitions + references 2017-03-29 10:48:53 -07:00
Sara Itani d62bdeac82 revert earlier change to fix tests 2017-03-29 10:45:38 -07:00
Sara Itani a5fec9452b Fix misc. issues in language server 2017-03-28 14:02:26 -07:00
Sara Itani 42dc2c966d Update validation tests
- assert non-null ASTs
- additional submodules
2017-03-28 13:59:24 -07:00
Sara Itani a69c93b28b Print null docs in language server perf log 2017-03-28 13:55:10 -07:00
Sara Itani 4ac56d83a4 Update logging
- add diagnostics for old parser
- include maxRecursion levels
- include option to run functions multiple times to help profile
2017-03-28 13:53:53 -07:00
Sara Itani 946b5b1cdb Fix exception during diagnostics parsing 2017-03-24 10:31:23 -07:00
Sara Itani c84b91de2b Fix exception during definition resolution 2017-03-24 10:30:34 -07:00
Sara Itani 7b633f5e07 minor perf improvements 2017-03-21 15:25:49 -07:00
Jens Hausdorf 4d0a0a2a10 show anything from a doc comment block (#315) 2017-03-19 12:15:39 +01:00
Sara Itani 81ba7df91c fix some crashes, perf issues 2017-03-15 14:10:52 -07:00
Sara Itani 0824e6d9b8 start adding validation tests 2017-03-15 14:10:29 -07:00
Sara Itani 4324530389 Find all references support 2017-03-09 15:57:57 -08:00
Sara Itani 167b6ac6f2 Update getDocBlock to use context information. All Definition tests pass! 2017-03-06 21:31:13 -08:00
Sara Itani e45648daab fix global constant fallback 2017-03-06 16:12:26 -08:00
Sara Itani afca7ea7e0 fix definitions namespaced function calls 2017-03-06 16:08:06 -08:00
Sara Itani d02253c9f6 fix base class logic 2017-03-06 15:34:43 -08:00
Sara Itani 1ff1b38ec2 fix subscript expression resolution 2017-03-06 14:21:36 -08:00
Sara Itani 4653f100a7 fix variableName symbol info, offsets in tests 2017-03-06 13:59:12 -08:00
Sara Itani d21e7e7008 Fix qualified name resolution 2017-03-06 11:07:05 -08:00
Sara Itani 1316761e5e fix scoped expression definition resolution 2017-03-06 11:01:10 -08:00
Sara Itani c18bec0d50 small fixes, add diagnostic mode 2017-03-05 23:23:33 -08:00
Sara Itani d3f2bebb40 Hover and Go-To definition (in progress) 2017-03-05 20:22:13 -08:00
Sara Itani cdf8fc36e1 add getNodeAtPosition, fix definition collector tests 2017-03-05 16:34:01 -08:00
Sara Itani 15eed55158 Symbol support for Microsoft/tolerant-php-parser 2017-03-04 20:56:01 -08:00
Sara Itani 722898f74d refactor 2017-03-04 18:36:17 -08:00
Sara Itani 2280e7889b extract to tree analyzer interface 2017-03-04 17:44:04 -08:00
Sara Itani e7b04f7518 extract symbol information 2017-03-01 16:51:52 -08:00
Sara Itani b1eb43516d update definition resolver interfaces 2017-03-01 16:51:46 -08:00
Sara Itani 591ecbd7d3 Extract static FQN methods to FqnUtilities 2017-03-01 16:51:45 -08:00
Sara Itani df315df04b start refactoring definition resolver 2017-03-01 16:51:43 -08:00
Sara Itani 13241a7be9 initialize tolerant-php-parser 2017-03-01 16:51:16 -08:00
Sara Itani 0de7ba8335 Ensure diagnostics are cleared on file deletion (#319)
* Ensure diagnostics are cleared on file deletion
Previously, error diagnostics would not be cleared when a file was deleted while it was closed. This would result in lingering errors in the problems view that could only be cleared by reloading the language server. This fix addresses the issue by adding support for workspace/didChangeWatchedFiles and automatically clearing diagnostics for deleted files.

* add FileEvent constructor
2017-03-01 11:18:37 +01:00
Matthew Brown 56bd465bf8 DefinitionResolver fixes (#307)
* Fix class references

* Fix return types
2017-02-20 10:28:49 +01:00
Matthew Brown cbfd70d398 Abort traversal in NodeAtPositionFinder (#305) 2017-02-18 00:28:10 +01:00
Trevor Bortins d5c54ac30f Read vendor directory from project's composer.json, if set. (#281) 2017-02-07 23:20:12 +01:00
Felix Becker 571b26a0c3 Use php_uname() instead of PHP_OS (#283) 2017-02-06 16:42:45 +01:00
Felix Becker 3c11cde9fb Include packages-dev (#282) 2017-02-06 16:35:16 +01:00
Felix Becker 5100d89617 Make resolveExpressionNodeToType() handle null (#277) 2017-02-04 12:52:04 +01:00
Felix Becker bedd157636 Caching (#260) 2017-02-04 00:20:38 +01:00
Felix Becker d8823bc7dc Use JetBrains PHPStorm stubs from packagist (#264)
* Use JetBrains PHPStorm stubs from packagist

* Fix path
2017-01-30 11:55:13 +01:00
Felix Becker 96aa998486 Make Index an EventEmitter (#255) 2017-01-25 01:38:11 +01:00
Ivan Bozhanov 43a91b0d09 Handle hover for $this (#249) 2017-01-19 15:47:11 +01:00
Felix Becker d080c161a9 Don't crash if indexing fails 2017-01-13 12:06:58 -08:00
Felix Becker 106aa24b5d Implement global references protocol extension (#236) 2017-01-10 17:08:52 -08:00
Felix Becker 49245fd4d3 Allow overriding (#229)
* Add missing documentLoader property

* Make PhpDocumentLoader->contentRetriever public
2017-01-04 19:18:14 -08:00
Felix Becker 662143abad Fix wrong function call in DefinitionResolver 2016-12-24 16:35:20 +01:00
Felix Becker b93d4f33cb Fix stubs location 2016-12-20 13:53:15 +01:00
Felix Becker 710d2a7ff7 Fix autoloading in ComposerScripts 2016-12-20 13:44:01 +01:00
Felix Becker 2005518dfe Support find-all-references for namespaces (#221) 2016-12-17 03:46:08 +01:00
Felix Becker 83618fee2e Avoid multiple references with function calls (#220) 2016-12-16 23:42:47 +01:00
Felix Becker 2242a35678 Reset definitions and references on content update (#219) 2016-12-16 23:33:55 +01:00
Felix Becker a4a13e6528 Add support for inherited members (#218)
in completion, definition, references, hover etc
2016-12-16 01:40:17 +01:00
Felix Becker cc9d5e987b Fix wrong class name 2016-12-15 18:01:44 +01:00
Felix Becker 0b61951a9c Support hover for definitions
#201
2016-12-13 03:18:07 +01:00
Felix Becker 96ea8608d7 Support getting references from a reference
Closes #201
2016-12-13 02:53:01 +01:00
Felix Becker b8a113ddd0 Correct reference collection for New_ nodes
Closes #202
2016-12-13 02:40:51 +01:00
Felix Becker d90a88e625 Add missing property declaration 2016-12-13 02:13:57 +01:00
Felix Becker d7fc9e0425 Index twice to collect dynamic references (#206) 2016-12-13 02:11:29 +01:00
Felix Becker a7d77d844e Add Index classes and stubs (#214) 2016-12-13 01:51:02 +01:00
Felix Becker b9f9871156 Files finder (#209) 2016-12-08 02:33:48 +01:00
Felix Becker ebd1cc6133 Refactor content retrieval (#208) 2016-12-08 01:51:32 +01:00
Michal Niewrzal db6f4f7e5d Don't filter properties on typed prefix (#207) 2016-12-07 21:17:55 +01:00
Felix Becker 10fb3c92e0 Completion (#165)
* Add support for method/property completion

* Move completion fixtures into directory

* Add support for variable suggestions

Refactor logic into CompletionProvider class

* Allow getTypeFromNode() to take Variable nodes

* Use property and constant values

* Fix using @var tag for variables

* Improve completion

* classes
* variables with prefix filtering

* Make FQNs more distinct

* use -> for instance methods/properties
* use ::$ for static properties

* Add tests for static access

* Properly filter completion on empty property

* Fix existing tests

* Add support for static access without prefix

* Fix testFullyQualifiedClass

* Add missing fixtures

* Correct file number in init test

* Only insert backslash if not typed yet

* Completion for keywords and bug fixes

* Correct variable insertion

* Support completion for namespaces

* Use CompletionList

* Always set isIncomplete to true

* Update PHPCodeSniffer

* Remove unused method

* And the call

* Handle case where FQN could not be resolved
2016-11-30 22:23:51 +01:00
Felix Becker f56b14438b Shutdown when the socket is closed (#191) 2016-11-30 21:10:05 +01:00
Michal Niewrzal ea92b224cd Symbols throws error for empty php file (#187)
Closes #186
2016-11-29 13:10:02 +01:00
Michal Niewrzal e8ab8aa2b8 Make processId optional for initialization (#178) 2016-11-23 18:38:57 +01:00
Felix Becker 429114ff97 Handle group use declarations in DocBlockParser (#166) 2016-11-19 13:04:13 +01:00
Felix Becker 5213940064 Don't encode spaces to + 2016-11-19 12:25:52 +01:00
Felix Becker 8f6ee8dd02 Handle null return from getClosestNode() 2016-11-19 12:03:43 +01:00
Felix Becker 00bc8537a6 Support compound types when resolving FQNs 2016-11-19 11:45:25 +01:00
Felix Becker fb84741d55 Add missing property 2016-11-19 06:37:07 +01:00
Felix Becker c2ae7cd022 FIx crashes when tag doesn't have a type 2016-11-19 06:36:57 +01:00
Felix Becker 33211c68ca Resolve expressions recursively (#155)
* Add Definition class
* Add recursive DefinitionResolver
* Cache hover
2016-11-18 15:22:24 +01:00
Michal Niewrzal 50490d51ea Fix formatting makes LS non-responsive (#153) 2016-11-18 14:25:05 +01:00
Felix Becker 12df6a7dd6 Add size limit back (#161) 2016-11-18 13:24:26 +01:00
Felix Becker 32b01afa90 Index files serially again (#157) 2016-11-17 22:20:37 +01:00
Felix Becker 642425dede Ignore errors from dependencies (#147) 2016-11-14 20:00:10 +01:00
Felix Becker 03bbf5f4ba Enable LS to operate without accessing the file system (#136)
This PR decouples the LS from direct file system access by implementing the proposals for workspace/files and textDocument/content under workspace/xfiles and textDocument/xcontent. The requests are only used when the client expressed support for them through ClientCapabilities, otherwise direct FS access is used.
This turns document content retrieval and recursive file search into async operations.
In turn, all server handlers can now operate async by returning a promise.
2016-11-14 10:25:44 +01:00
Felix Becker 25f300c157 Add test for indexing 2016-11-07 11:52:24 +01:00
Felix Becker 47472252a7 Encode spaces in paths to %20 instead of + (#140) 2016-11-07 10:24:49 +01:00
Felix Becker 04ef6c8adf Handle Client responses (#128) 2016-10-31 11:47:21 +01:00
Felix Becker 18e58b4ce8 Update php-parser to latest commit (#119) 2016-10-26 22:25:24 +02:00
Felix Becker ed41df0062 Remove caching for now (#118) 2016-10-26 21:35:57 +02:00
Michal Niewrzal 867196babf Definition for instanceof class (#117) 2016-10-26 20:56:02 +02:00
Michal Niewrzal 8a354ba1af Definition for use function (#116) 2016-10-26 11:47:02 +02:00