|
4 | 4 | use Phpactor\LanguageServerProtocol\InitializeParams;
|
5 | 5 | use Phpactor\LanguageServer\Adapter\Psr\AggregateEventDispatcher;
|
6 | 6 | use Phpactor\LanguageServer\Core\CodeAction\AggregateCodeActionProvider;
|
| 7 | +use Phpactor\LanguageServer\Core\Diagnostics\AggregateDiagnosticsProvider; |
| 8 | +use Phpactor\LanguageServer\Core\Diagnostics\DiagnosticsEngine; |
7 | 9 | use Phpactor\LanguageServer\Core\Dispatcher\ArgumentResolver\ChainArgumentResolver;
|
8 | 10 | use Phpactor\LanguageServer\Core\Dispatcher\ArgumentResolver\LanguageSeverProtocolParamsResolver;
|
9 | 11 | use Phpactor\LanguageServer\Core\Dispatcher\ArgumentResolver\PassThroughArgumentResolver;
|
|
19 | 21 | use Phpactor\LanguageServer\Core\Workspace\Workspace;
|
20 | 22 | use Phpactor\LanguageServer\Example\CodeAction\SayHelloCodeActionProvider;
|
21 | 23 | use Phpactor\LanguageServer\Example\Command\SayHelloCommand;
|
| 24 | +use Phpactor\LanguageServer\Example\Diagnostics\SayHelloDiagnosticsProvider; |
22 | 25 | use Phpactor\LanguageServer\Handler\TextDocument\CodeActionHandler;
|
23 | 26 | use Phpactor\LanguageServer\Listener\ServiceListener;
|
24 | 27 | use Phpactor\LanguageServer\Core\Service\ServiceManager;
|
|
36 | 39 | use Phpactor\LanguageServer\Middleware\HandlerMiddleware;
|
37 | 40 | use Phpactor\LanguageServer\Middleware\InitializeMiddleware;
|
38 | 41 | use Phpactor\LanguageServer\Core\Command\CommandDispatcher;
|
| 42 | +use Phpactor\LanguageServer\Service\DiagnosticsService; |
39 | 43 | use Psr\Log\AbstractLogger;
|
40 | 44 | use function Safe\fopen;
|
41 | 45 |
|
@@ -90,15 +94,21 @@ function (MessageTransmitter $transmitter, InitializeParams $params) use ($logge
|
90 | 94 | $responseWatcher = new DeferredResponseWatcher();
|
91 | 95 | $clientApi = new ClientApi(new JsonRpcClient($transmitter, $responseWatcher));
|
92 | 96 |
|
93 |
| - $serviceProviders = new ServiceProviders( |
94 |
| - //new PingProvider($clientApi) |
| 97 | + $diagnosticsService = new DiagnosticsService( |
| 98 | + new DiagnosticsEngine($clientApi, new AggregateDiagnosticsProvider( |
| 99 | + $logger, |
| 100 | + new SayHelloDiagnosticsProvider() |
| 101 | + )) |
95 | 102 | );
|
96 | 103 |
|
| 104 | + $serviceProviders = new ServiceProviders($diagnosticsService); |
| 105 | + |
97 | 106 | $workspace = new Workspace();
|
98 | 107 | $serviceManager = new ServiceManager($serviceProviders, $logger);
|
99 | 108 | $eventDispatcher = new AggregateEventDispatcher(
|
100 | 109 | new ServiceListener($serviceManager),
|
101 |
| - new WorkspaceListener($workspace) |
| 110 | + new WorkspaceListener($workspace), |
| 111 | + $diagnosticsService |
102 | 112 | );
|
103 | 113 |
|
104 | 114 | $handlers = new Handlers(
|
|
0 commit comments