File Coverage

blib/lib/PLS/Server/Method/TextDocument.pm
Criterion Covered Total %
statement 52 63 82.5
branch 10 22 45.4
condition n/a
subroutine 14 14 100.0
pod 0 1 0.0
total 76 100 76.0


line stmt bran cond sub pod time code
1              
2             use strict;
3 9     9   54 use warnings;
  9         18  
  9         226  
4 9     9   36  
  9         18  
  9         181  
5             use PLS::Server::Request::TextDocument::Completion;
6 9     9   3466 use PLS::Server::Request::TextDocument::Definition;
  9         18  
  9         258  
7 9     9   3535 use PLS::Server::Request::TextDocument::DidChange;
  9         18  
  9         224  
8 9     9   3103 use PLS::Server::Request::TextDocument::DidClose;
  9         221  
  9         1249  
9 9     9   8230 use PLS::Server::Request::TextDocument::DidOpen;
  9         19  
  9         465  
10 9     9   3790 use PLS::Server::Request::TextDocument::DidSave;
  9         155  
  9         548  
11 9     9   3687 use PLS::Server::Request::TextDocument::DocumentSymbol;
  9         73  
  9         276  
12 9     9   3674 use PLS::Server::Request::TextDocument::Formatting;
  9         18  
  9         233  
13 9     9   3576 use PLS::Server::Request::TextDocument::Hover;
  9         100  
  9         1611  
14 9     9   7959 use PLS::Server::Request::TextDocument::SignatureHelp;
  9         74  
  9         448  
15 9     9   3880 use PLS::Server::Request::TextDocument::RangeFormatting;
  9         27  
  9         392  
16 9     9   3498  
  9         224  
  9         4682  
17             =head1 NAME
18              
19             PLS::Server::Method::Workspace
20              
21             =head1 DESCRIPTION
22              
23             This module redirects requests starting with C<textDocument/> to the appropriate
24             subclass of L<PLS::Server::Request> for the type of request.
25              
26             Requests currently implemented:
27              
28             =over
29              
30             =item textDocument/definition - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_definition>
31              
32             L<PLS::Server::Request::TextDocument::Definition>
33              
34             =item textDocument/documentSymbol - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentSymbol>
35              
36             L<PLS::Server::Request::TextDocument::DocumentSymbol>
37              
38             =item textDocument/hover - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_hover>
39              
40             L<PLS::Server::Request::TextDocument::Hover>
41              
42             =item textDocument/signatureHelp - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_signatureHelp>
43              
44             L<PLS::Server::Request::TextDocument::SignatureHelp>
45              
46             =item textDocument/didOpen - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didOpen>
47              
48             L<PLS::Server::Request::TextDocument::DidOpen>
49              
50             =item textDocument/didChange - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didChange>
51              
52             L<PLS::Server::Request::TextDocument::DidChange>
53              
54             =item textDocument/didClose - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didClose>
55              
56             L<PLS::Server::Request::TextDocument::DidClose>
57              
58             =item textDocument/didSave - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didSave>
59              
60             L<PLS::Server::Request::TextDocument::DidSave>
61              
62             =item textDocument/formatting - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_formatting>
63              
64             L<PLS::Server::Request::TextDocument::Formatting>
65              
66             =item textDocument/rangeFormatting - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_rangeFormatting>
67              
68             L<PLS::Server::Request::TextDocument::RangeFormatting>
69              
70             =item textDocument/completion - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_completion>
71              
72             L<PLS::Server::Request::TextDocument::Completion>
73              
74             =back
75              
76             =cut
77              
78             {
79             my ($request) = @_;
80              
81 3     3 0 21 my (undef, $method) = split '/', $request->{method};
82              
83 3         23 if ($method eq 'definition')
84             {
85 3 50       22 return PLS::Server::Request::TextDocument::Definition->new($request);
86             }
87 0         0 if ($method eq 'documentSymbol')
88             {
89 3 50       40 return PLS::Server::Request::TextDocument::DocumentSymbol->new($request);
90             }
91 0         0 if ($method eq 'hover')
92             {
93 3 50       26 return PLS::Server::Request::TextDocument::Hover->new($request);
94             }
95 0         0 if ($method eq 'signatureHelp')
96             {
97 3 50       21 return PLS::Server::Request::TextDocument::SignatureHelp->new($request);
98             }
99 0         0 if ($method eq 'didOpen')
100             {
101 3 100       28 return PLS::Server::Request::TextDocument::DidOpen->new($request);
102             }
103 2         113 if ($method eq 'didChange')
104             {
105 1 50       16 return PLS::Server::Request::TextDocument::DidChange->new($request);
106             }
107 0         0 if ($method eq 'didClose')
108             {
109 1 50       12 return PLS::Server::Request::TextDocument::DidClose->new($request);
110             }
111 0         0 if ($method eq 'didSave')
112             {
113 1 50       12 return PLS::Server::Request::TextDocument::DidSave->new($request);
114             }
115 0         0 if ($method eq 'formatting')
116             {
117 1 50       14 return PLS::Server::Request::TextDocument::Formatting->new($request);
118             }
119 1         65 if ($method eq 'rangeFormatting')
120             {
121 0 0         return PLS::Server::Request::TextDocument::RangeFormatting->new($request);
122             }
123 0           if ($method eq 'completion')
124             {
125 0 0         return PLS::Server::Request::TextDocument::Completion->new($request);
126             }
127 0           } ## end sub get_request
128              
129             1;