1
0
Fork 0
Commit Graph

54 Commits (5077b1a87a40dbae0934406e413bc1f14fc9498d)

Author SHA1 Message Date
Michal Niewrzal e8ab8aa2b8 Make processId optional for initialization (#178) 2016-11-23 18:38: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
Felix Becker 6056f39d01 Fix LanguageServerTest failure 2016-11-17 22:08:05 +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 9e65cd4cf0 Correct ProtocolStreamReaderTest 2016-11-06 15:59:32 +01:00
Felix Becker 04ef6c8adf Handle Client responses (#128) 2016-10-31 11:47:21 +01:00
Felix Becker ff0a35d833 Simplify ProtocolStreamWriterTest 2016-10-31 10:23:37 +01:00
Felix Becker 18e58b4ce8 Update php-parser to latest commit (#119) 2016-10-26 22:25:24 +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
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
Michal Niewrzal a19d225a7a Fix definition for method return type (#76) 2016-10-21 16:51:11 +02:00
Felix Becker 953a8023b7 Update AdvancedJsonRpc (#103) 2016-10-20 03:31:12 +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 e19670c141 Resolve self, static, parent (#99) 2016-10-20 00:18:36 +02:00
Felix Becker 6bd1b10e4d Resolve $this (#98) 2016-10-20 00:10:47 +02:00
Felix Becker 4db7ffd88c Hover (#50)
* Add hover support

* Use context in DocBlockParser

* Improve DocBlockParser error handling

* Improve hover output

* Add more tests
2016-10-19 12:31:32 +02:00
Felix Becker 2e03aa32f3 Fix class constant tests 2016-10-19 12:26:22 +02:00
Felix Becker 6b6ec8c105 Symbol test refactor (#92)
* Don't use json_decode in symbol tests

* Remove custom setUp()

* Use getDefinitionLocation()

* TextDocumentTestCase -> ServerTestCase

* Refactor Workspace\SymbolTest
2016-10-18 23:09:51 +02:00
Felix Becker cdcfaf7849 Refactor Definition\GlobalFallbackTest 2016-10-18 15:18:50 +02:00
Felix Becker 691a0bddfe Refactor tests for easier changes to fixtures (#87) 2016-10-18 10:48:16 +02:00
Felix Becker 2980941fd1 Use SymbolKind::FIELD for class fields (#78) 2016-10-14 09:02:42 +02:00
Felix Becker c479969758 Add support for definition of static class access (#72)
Getting the definition of TestClass in
TestClass::staticTestMethod();
echo TestClass::$staticTestProperty;
echo TestClass::TEST_CLASS_CONST;
2016-10-12 12:40:13 +02:00
Felix Becker 6fe01183b0 References (#52)
* Adds support for textDocument/references
* Adds tests for global definitions and global fallback
2016-10-12 01:45:15 +02:00
Felix Becker 66b5176a43 Allow %-encoded colon after drive letter in URI 2016-10-12 00:53:21 +02:00
Felix Becker 15e004fb9b Only hold AST for open files in memory (#63)
* Only hold content for open files in memory

* Add test for didClose

* Remove invalid URI formatting test

* Don't keep AST in memory

* Fix symbol search crash

* Change Project map to FQN => URI

Removes PhpDocument::load(), isLoaded(), unload()

* Add docblocks

* Rename some functions

* Extend documentation

* Correct docblock
2016-10-11 14:42:56 +02:00
Kaloyan Raev d41cde2039 Return empty array instead of null for empty definitions result (#64) 2016-10-11 10:26:46 +02:00
Kaloyan Raev 1f808c59e1 Fixes #59: Handle correctly negative endLine in PHP Parser errors (#62)
* Fixes #59: Handle correctly negative endLine in PHP Parser errors

* Clearer $startLine calculation

* Add missing test file

* Better calculation of endLine

* Remove trailing spaces
2016-10-11 10:15:20 +02:00
Michal Niewrzal e75c1592fc Use PHP_CodeSniffer as a formatter (#35)
Also adds uriTopath util function
2016-10-10 15:06:02 +02:00
Felix Becker 1689e4d0dc Extend symbol search tests 2016-10-09 16:37:17 +02:00
Felix Becker a74bf90d77 Split WorkspaceTest 2016-10-09 16:37:17 +02:00
Felix Becker 0387f28759 Rename NodeVisitors NS to NodeVisitor 2016-10-09 16:03:56 +02:00
Felix Becker 7f95b76cf8 Refactor DefinitionResolver
Move logic to PhpDocument::getDefininedFqn() for reusability
Fix DefinitionResolverTest
2016-10-09 15:58:39 +02:00
Felix Becker 7322a6c658 Add fromNode() factories and correct columns 2016-10-09 15:58:39 +02:00
Felix Becker 6be53ad658 Use DefinitionCollector for symbol requests 2016-10-09 15:58:39 +02:00
Felix Becker d4757e0a24 Add textDocument/definition support 2016-10-09 15:58:39 +02:00
Felix Becker 987308fc0a Refactor TextDocument tests into separate classes 2016-10-09 15:51:42 +02:00
Felix Becker 48c71e5bc1 Add method to find out node at position
Keep AST in memory
2016-10-09 15:51:42 +02:00
Felix Becker 658a27f5a5 Add more symbols to symbol test
* constants
* static properties
* static methods
2016-10-08 15:02:04 +02:00
Michal Niewrzal c962f81924 Fix for failing tests (#44) 2016-10-02 20:19:38 +02:00
Stephan Unverwerth 0c758ec815 Fix issue #42 and add regression test (#43) 2016-09-30 15:13:54 +02:00
Felix Becker 9fd9a02e19 Change fixtures naming convention 2016-09-30 11:38:46 +02:00
Stephan Unverwerth 501d26e1d4 Global symbol search (#31)
* Implemented workspace symbol search

* Fixed missing TextEdit using declaration

* Fixed generating uri when parsing next file.

* Cleaned up code. Fixed tests

* Fixed PHPDoc for LanguageServer::initialize()

* Moved utility functions to utils.php

* Added tests for pathToUri and findFilesRecursive

* Added command line argument for socket communication

* Fixed local variable detection and containerName generation in SymbolFinder

* Fixed formatting in ProtocolStreamReader

* Store text content in PHPDocument, removed stmts, regenerate on demand

* Fixed local variable detection and containerName generation in SymbolFinder.

* Added Tests for Project and Workspace

* Added test for didChange event

* Modified lexer error handling

* Removed file that shouldn't have been committed.

* Updated sabre/event dependency to 4.0.0

* Updated readme.md to show tcp option

* make input stream non-blocking

* Correct code style

* Use triple equals

* Revert change in SymbolFinder

* Optimize processFile() a bit

* Use MessageType enum instead of number literal

* Add missing space

* Fixed ProtocolStreamWriter for nonblocking connection.

* Suppress fwrite() notice when not all bytes could be written.

* Fix another code style issue

* Throw Exceotion instead of Error

* Added ProtocolStreamWriter test

* Correct workspace/symbol documentation

* Improve exception in ProtocolStreamWriter::write()
2016-09-30 11:30:08 +02:00
Kaloyan Raev 817056270e Shift end position in SymbolInformation ranges (#28)
Fixes #27
2016-09-14 09:45:24 +02:00
Levan Gabeskiria 4d5052bebd Exclude variable symbols (#16) 2016-09-09 19:57:28 +02:00
Felix Becker 72d776d638 Fix whitespace errors 2016-09-08 21:07:20 +02:00