Nicolas MURE
2d91ee8eff
speedup autocomplete with ReadableIndex::getDefinitionsForNamespace
2017-11-13 20:18:11 +01:00
Felix Becker
f00fd1b62c
fix(formatting): drop PHP CodeSniffer ( #504 )
...
At this point there are countless issues about the formatting done by CodeSniffer. It plain out doesn't work in many cases, overrides format options that are contributed by other extensions in VS Code and does not reuse any of our AST parsing. For that reason, I am starting to think there is no reason to keep it in here until we have proper pretty-printing support from https://github.com/Microsoft/tolerant-php-parser that actually reuses our ASTs and can work while editing. For people who want to use CodeSniffer to format their code, there could be a standalone CodeSniffer language server (like there is a TSLint language server and ESLint language server). As said, we don't reuse our state anyway.
BREAKING CHANGE: removes formatting support
closes #501
closes #474
closes #473
closes #468
closes #450
closes #445
closes #443
closes #423
closes #343
closes #296
closes #293
closes #499
closes #471
2017-11-04 23:57:51 -07:00
Jens Hausdorf
1edbe35609
refactor: use FunctionLike Interface ( #505 )
2017-10-30 03:33:19 -07:00
Felix Becker
7ae6452d1a
refactor(index): rename isGlobal to isMember ( #511 )
...
isGlobal was confusing because a non-member can be considered global vs namespaced
2017-10-29 17:45:06 -07:00
Felix Becker
c74076d84f
fix(cache): bump cache version ( #508 )
...
the update of reflection-docblock means old caches are no longer valid.
fixes #507
2017-10-29 13:06:44 -07:00
Jens Hausdorf
fbaa7b3cc5
refactor: use ClassLike interface ( #506 )
2017-10-28 12:27:32 -07:00
Tyson Andre
1db6b7bbb3
chore: fixes for unused variables and phpdoc ( #496 )
...
The identifier doesn't need to be generated for a notification to the
client, since there's no response
Add undeclared properties to TreeAnalyzer
Fix other bugs in phpdoc
2017-10-22 22:54:38 -07:00
Felix Becker
16cf8f53e9
fix(docblocks): update to phpdocumentor/reflection-docblock ^4.0.0
...
closes #139
2017-10-22 21:30:38 -07:00
Vincent Klaiber
3d8655d504
Update phpunit config ( #488 )
...
* Update phpunit config
* Rename DocumentHighlight class
2017-10-02 13:37:28 -07:00
Stephan Unverwerth
d4443465bb
Fix missing diagnostics for nodes ( #484 )
...
* Fix missing diagnostics for nodes
* Refactor TreeAnalyzer
2017-09-28 12:53:12 -07:00
John Nguyen
a4739430f8
Fix memory leak issue ( #459 )
...
Closes #425
2017-08-21 22:43:17 -07:00
Ivan Bozhanov
35f33c8c91
Fluent interfaces support ( #421 )
2017-07-07 13:18:19 +02:00
Felix Becker
fc0bf4c163
Fix workspace/xreferences ( #424 )
...
* Make Descriptors minimal
SymbolDescriptor and PackageDescriptor should only contain the minumum amount of properties needed
* Add missing use
* Fixes
* Ignore ReferenceInformation->symbol
2017-06-22 20:06:10 +02:00
Felix Becker
fced1d5af6
Fix textDocument/xdefinition ( #429 )
2017-06-22 17:34:28 +02:00
Felix Becker
00552120ad
Restrict workspace/symbol results to non-dependency symbols ( #426 )
...
This improves performance a lot and matches what other language servers do
2017-06-21 14:17:36 +02:00
Ivan Bozhanov
dae3f2576c
Add $this completion ( #419 )
2017-06-19 12:23:43 +02:00
Felix Becker
a772d9a2d7
Remove content ( #413 )
2017-06-16 20:31:29 +02:00
Felix Becker
0e3727a8d6
Improve CompletionProvider ( #412 )
...
- Better performance
- More documentation
- Add field to Definition for global namespace fallback
Fixes #380
2017-06-16 20:31:13 +02:00
Felix Becker
4a98afe540
Fix docblock union types
2017-06-15 17:03:25 +02:00
Rob Lourens
3b633369a7
Fix error getting completions for 'new static' type ( #405 )
2017-06-15 12:44:03 +02:00
Nicholas Narsing
8d1732ed02
Exclude directory paths from file system search ( #401 )
...
* Exclude directories from file system search
Directories can also match the glob search pattern if their names end in ".php", which will cause a read error later since the ContentRetriever implementers are expecting files. As far as I know, the only way to fix this is to do an additional check to ensure the URI is not of a directory.
This resolves #306 .
2017-06-11 23:24:17 +02:00
Felix Becker
fe7e9d5800
Rename $stmts to $sourceFileNode everywhere
...
The root node is now a SourceFileNode, not an array
2017-06-10 21:36:16 +02:00
Jens Hausdorf
4c1d7bd1bc
Add true, false, null to keywords ( #396 )
2017-06-10 18:47:19 +02:00
Rob Lourens
f10680e441
Fix variable type from method return value, add tests ( #393 )
2017-06-10 11:10:15 +02:00
Jens Hausdorf
42d0c7b714
Improve handling of abstract classes ( #391 )
2017-06-09 22:12:32 +02:00
Sara Itani
7f427a1215
Adopt Microsoft/tolerant-php-parser ( #357 )
2017-06-09 20:25:30 +02:00
Stephan Unverwerth
08cf1a3fd7
Allow getting type from define() node ( #363 )
...
* Allow getting type from define() node
- fixes #364
* Add test case for DefinitionResolver
2017-04-24 11:11:40 +02:00
Jens Hausdorf
b1cc7bf6b0
Support constants with define() ( #347 )
2017-04-17 17:03:08 +02: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
Jens Hausdorf
4d0a0a2a10
show anything from a doc comment block ( #315 )
2017-03-19 12:15:39 +01: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
Stephan Unverwerth
6806ba94e0
Async ProtocolStreamWriter ( #112 )
2016-10-25 23:50:36 +02:00
Felix Becker
cd3bf18fe2
Revert "Handle closed input or output stream ( #110 )"
...
This reverts commit 83afa0c1b8
.
2016-10-24 23:20:15 +02:00
ADmad
5ecab683eb
Linting ( #107 )
...
* Update travis config.
* Add phpcs config file.
* Exclude rules
* Ignore failures in tests
* Automatic fixes
* Inline ParsingMode enum as class constants
* Loosen FormatTest because of excluded rule
2016-10-24 19:35:37 +02:00
Kaloyan Raev
83afa0c1b8
Handle closed input or output stream ( #110 )
2016-10-24 13:46:39 +02:00
Michal Niewrzal
a19d225a7a
Fix definition for method return type ( #76 )
2016-10-21 16:51:11 +02:00
Felix Becker
b16674d394
Improve logging
2016-10-20 16:46:34 +02:00
Felix Becker
b9222b0fd1
Switch to serialize() instead of JSON ( #104 )
2016-10-20 04:31:07 +02:00
Felix Becker
1e7260a2ea
Cache index on disk ( #82 )
2016-10-20 03:48:30 +02:00
Felix Becker
8e36e59e9a
Fix crash
2016-10-20 03:36:17 +02:00
Felix Becker
953a8023b7
Update AdvancedJsonRpc ( #103 )
2016-10-20 03:31:12 +02:00
Felix Becker
f8733c741c
Remove PhpParser workaround ( #102 )
2016-10-20 02:13:15 +02:00
Felix Becker
1e00275e02
Hold SymbolInformation table in memory ( #101 )
2016-10-20 02:08:23 +02:00
Felix Becker
9cbca1cd7f
Revert "Use SymbolKind::FIELD for class fields ( #78 )"
...
This reverts commit 2980941fd1
.
2016-10-20 01:53:07 +02:00
Felix Becker
96694996f7
Refactor FQN functions to own namespace ( #100 )
2016-10-20 01:00:20 +02:00
Felix Becker
e993b9994a
Remove unneeded argument to ReferencesCollector
2016-10-20 00:20:30 +02:00