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   61 use warnings;
  9         18  
  9         608  
4 9     9   43  
  9         26  
  9         253  
5             use PLS::Server::Request::TextDocument::Completion;
6 9     9   3063 use PLS::Server::Request::TextDocument::Definition;
  9         27  
  9         325  
7 9     9   4294 use PLS::Server::Request::TextDocument::DidChange;
  9         34  
  9         239  
8 9     9   3072 use PLS::Server::Request::TextDocument::DidClose;
  9         174  
  9         1480  
9 9     9   8857 use PLS::Server::Request::TextDocument::DidOpen;
  9         149  
  9         582  
10 9     9   3888 use PLS::Server::Request::TextDocument::DidSave;
  9         31  
  9         321  
11 9     9   3234 use PLS::Server::Request::TextDocument::DocumentSymbol;
  9         27  
  9         296  
12 9     9   3416 use PLS::Server::Request::TextDocument::Formatting;
  9         42  
  9         398  
13 9     9   4743 use PLS::Server::Request::TextDocument::Hover;
  9         153  
  9         1565  
14 9     9   8660 use PLS::Server::Request::TextDocument::SignatureHelp;
  9         130  
  9         578  
15 9     9   3500 use PLS::Server::Request::TextDocument::RangeFormatting;
  9         66  
  9         328  
16 9     9   3604  
  9         162  
  9         4381  
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 14 my (undef, $method) = split '/', $request->{method};
82              
83 3         88 if ($method eq 'definition')
84             {
85 3 50       33 return PLS::Server::Request::TextDocument::Definition->new($request);
86             }
87 0         0 if ($method eq 'documentSymbol')
88             {
89 3 50       25 return PLS::Server::Request::TextDocument::DocumentSymbol->new($request);
90             }
91 0         0 if ($method eq 'hover')
92             {
93 3 50       25 return PLS::Server::Request::TextDocument::Hover->new($request);
94             }
95 0         0 if ($method eq 'signatureHelp')
96             {
97 3 50       20 return PLS::Server::Request::TextDocument::SignatureHelp->new($request);
98             }
99 0         0 if ($method eq 'didOpen')
100             {
101 3 100       12 return PLS::Server::Request::TextDocument::DidOpen->new($request);
102             }
103 2         111 if ($method eq 'didChange')
104             {
105 1 50       8 return PLS::Server::Request::TextDocument::DidChange->new($request);
106             }
107 0         0 if ($method eq 'didClose')
108             {
109 1 50       19 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       16 return PLS::Server::Request::TextDocument::Formatting->new($request);
118             }
119 1         55 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;