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             package PLS::Server::Method::TextDocument;
2              
3 11     11   88 use strict;
  11         22  
  11         458  
4 11     11   64 use warnings;
  11         24  
  11         596  
5              
6 11     11   6280 use PLS::Server::Request::TextDocument::Completion;
  11         170  
  11         614  
7 11     11   7543 use PLS::Server::Request::TextDocument::Definition;
  11         35  
  11         507  
8 11     11   6256 use PLS::Server::Request::TextDocument::DidChange;
  11         1665  
  11         4324  
9 11     11   26716 use PLS::Server::Request::TextDocument::DidClose;
  11         409  
  11         1407  
10 11     11   9527 use PLS::Server::Request::TextDocument::DidOpen;
  11         235  
  11         917  
11 11     11   7970 use PLS::Server::Request::TextDocument::DidSave;
  11         603  
  11         2098  
12 11     11   8095 use PLS::Server::Request::TextDocument::DocumentSymbol;
  11         79  
  11         1040  
13 11     11   8403 use PLS::Server::Request::TextDocument::Formatting;
  11         911  
  11         5985  
14 11     11   23067 use PLS::Server::Request::TextDocument::Hover;
  11         96  
  11         1172  
15 11     11   8092 use PLS::Server::Request::TextDocument::SignatureHelp;
  11         239  
  11         725  
16 11     11   8535 use PLS::Server::Request::TextDocument::RangeFormatting;
  11         607  
  11         8854  
17              
18             =head1 NAME
19              
20             PLS::Server::Method::TextDocument
21              
22             =head1 DESCRIPTION
23              
24             This module redirects requests starting with C<textDocument/> to the appropriate
25             subclass of L<PLS::Server::Request> for the type of request.
26              
27             Requests currently implemented:
28              
29             =over
30              
31             =item textDocument/definition - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_definition>
32              
33             L<PLS::Server::Request::TextDocument::Definition>
34              
35             =item textDocument/documentSymbol - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentSymbol>
36              
37             L<PLS::Server::Request::TextDocument::DocumentSymbol>
38              
39             =item textDocument/hover - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_hover>
40              
41             L<PLS::Server::Request::TextDocument::Hover>
42              
43             =item textDocument/signatureHelp - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_signatureHelp>
44              
45             L<PLS::Server::Request::TextDocument::SignatureHelp>
46              
47             =item textDocument/didOpen - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didOpen>
48              
49             L<PLS::Server::Request::TextDocument::DidOpen>
50              
51             =item textDocument/didChange - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didChange>
52              
53             L<PLS::Server::Request::TextDocument::DidChange>
54              
55             =item textDocument/didClose - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didClose>
56              
57             L<PLS::Server::Request::TextDocument::DidClose>
58              
59             =item textDocument/didSave - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_didSave>
60              
61             L<PLS::Server::Request::TextDocument::DidSave>
62              
63             =item textDocument/formatting - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_formatting>
64              
65             L<PLS::Server::Request::TextDocument::Formatting>
66              
67             =item textDocument/rangeFormatting - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_rangeFormatting>
68              
69             L<PLS::Server::Request::TextDocument::RangeFormatting>
70              
71             =item textDocument/completion - L<https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_completion>
72              
73             L<PLS::Server::Request::TextDocument::Completion>
74              
75             =back
76              
77             =cut
78              
79             sub get_request
80             {
81 3     3 0 104 my ($request) = @_;
82              
83 3         53 my (undef, $method) = split m{/}, $request->{method};
84              
85 3 50       63 if ($method eq 'definition')
86             {
87 0         0 return PLS::Server::Request::TextDocument::Definition->new($request);
88             }
89 3 50       47 if ($method eq 'documentSymbol')
90             {
91 0         0 return PLS::Server::Request::TextDocument::DocumentSymbol->new($request);
92             }
93 3 50       33 if ($method eq 'hover')
94             {
95 0         0 return PLS::Server::Request::TextDocument::Hover->new($request);
96             }
97 3 50       37 if ($method eq 'signatureHelp')
98             {
99 0         0 return PLS::Server::Request::TextDocument::SignatureHelp->new($request);
100             }
101 3 100       44 if ($method eq 'didOpen')
102             {
103 2         277 return PLS::Server::Request::TextDocument::DidOpen->new($request);
104             }
105 1 50       11 if ($method eq 'didChange')
106             {
107 0         0 return PLS::Server::Request::TextDocument::DidChange->new($request);
108             }
109 1 50       10 if ($method eq 'didClose')
110             {
111 0         0 return PLS::Server::Request::TextDocument::DidClose->new($request);
112             }
113 1 50       21 if ($method eq 'didSave')
114             {
115 0         0 return PLS::Server::Request::TextDocument::DidSave->new($request);
116             }
117 1 50       9 if ($method eq 'formatting')
118             {
119 1         4162 return PLS::Server::Request::TextDocument::Formatting->new($request);
120             }
121 0 0         if ($method eq 'rangeFormatting')
122             {
123 0           return PLS::Server::Request::TextDocument::RangeFormatting->new($request);
124             }
125 0 0         if ($method eq 'completion')
126             {
127 0           return PLS::Server::Request::TextDocument::Completion->new($request);
128             }
129             } ## end sub get_request
130              
131             1;