* 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() |
||
---|---|---|
bin | ||
fixtures | ||
images | ||
src | ||
tests | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
LICENSE.txt | ||
README.md | ||
codecov.yml | ||
composer.json | ||
phpunit.xml.dist |
README.md
PHP Language Server
A pure PHP implementation of the Language Server Protocol.
Used by
Contributing
You need at least PHP 7.0 and Composer installed. Clone the repository and run
composer install
to install dependencies.
Run the tests with
vendor/bin/phpunit --bootstrap vendor/autoload.php tests
Command line arguments
--tcp host:port
Causes the server to use a tcp connection for communicating with the language client instead of using STDIN/STDOUT. The server will try to connect to the specified address.
Example:
php bin/php-language-server.php --tcp 127.0.0.1:12345