55
66package software .amazon .smithy .lsp .language ;
77
8- import static software .amazon .smithy .lsp .protocol .LspAdapter .identRange ;
9-
108import java .util .ArrayList ;
119import java .util .EnumSet ;
1210import java .util .List ;
@@ -112,25 +110,20 @@ private void addMemberSymbols(ListIterator<Syntax.Statement> listIterator, Docum
112110 }
113111
114112 private DocumentSymbol namespaceSymbol (Syntax .Statement .Namespace namespace ) {
115- var range = document .rangeBetween (namespace .start (), namespace .end ());
116- var selectionRange = identRange (namespace .namespace (), document );
117113 return new DocumentSymbol (
118114 namespace .namespace ().stringValue (),
119115 SymbolKind .Namespace ,
120- range ,
121- selectionRange
116+ document . rangeOf ( namespace ) ,
117+ document . rangeOfValue ( namespace . namespace ())
122118 );
123119 }
124120
125121 private DocumentSymbol rootSymbol (Syntax .Statement .ShapeDef shapeDef ) {
126- var symbolKind = getSymbolKind (shapeDef );
127- var range = document .rangeBetween (shapeDef .start (), shapeDef .end ());
128- var selectionRange = identRange (shapeDef .shapeName (), document );
129122 return new DocumentSymbol (
130123 shapeDef .shapeName ().stringValue (),
131- symbolKind ,
132- range ,
133- selectionRange
124+ getSymbolKind ( shapeDef ) ,
125+ document . rangeOf ( shapeDef ) ,
126+ document . rangeOfValue ( shapeDef . shapeName ())
134127 );
135128 }
136129
@@ -142,34 +135,30 @@ private static SymbolKind getSymbolKind(Syntax.Statement.ShapeDef shapeDef) {
142135 }
143136
144137 private DocumentSymbol memberDefSymbol (Syntax .Statement .MemberDef memberDef ) {
145- var range = document .rangeBetween (memberDef .start (), memberDef .end ());
146- var selectionRange = identRange (memberDef .name (), document );
147138 var detail = memberDef .target () == null
148139 ? null
149140 : memberDef .target ().stringValue ();
150141
151142 return new DocumentSymbol (
152143 memberDef .name ().stringValue (),
153144 SymbolKind .Field ,
154- range ,
155- selectionRange ,
145+ document . rangeOf ( memberDef ) ,
146+ document . rangeOfValue ( memberDef . name ()) ,
156147 detail
157148 );
158149 }
159150
160151 private DocumentSymbol enumMemberDefSymbol (Syntax .Statement .EnumMemberDef enumMemberDef ) {
161- var range = document .rangeBetween (enumMemberDef .start (), enumMemberDef .end ());
162- var selectionRange = identRange (enumMemberDef .name (), document );
163152 return new DocumentSymbol (
164153 enumMemberDef .name ().stringValue (),
165154 SymbolKind .EnumMember ,
166- range ,
167- selectionRange
155+ document . rangeOf ( enumMemberDef ) ,
156+ document . rangeOfValue ( enumMemberDef . name ())
168157 );
169158 }
170159
171160 private DocumentSymbol elidedMemberDefSymbol (Syntax .Statement .ElidedMemberDef elidedMemberDef ) {
172- var range = document .rangeBetween (elidedMemberDef . start (), elidedMemberDef . end () );
161+ var range = document .rangeOf (elidedMemberDef );
173162 return new DocumentSymbol (
174163 "$" + elidedMemberDef .name ().stringValue (),
175164 SymbolKind .Field ,
@@ -179,18 +168,16 @@ private DocumentSymbol elidedMemberDefSymbol(Syntax.Statement.ElidedMemberDef el
179168 }
180169
181170 private DocumentSymbol nodeMemberDefSymbol (Syntax .Statement .NodeMemberDef nodeMemberDef ) {
182- var range = document .rangeBetween (nodeMemberDef .start (), nodeMemberDef .end ());
183- var selectionRange = identRange (nodeMemberDef .name (), document );
184- String detail = null ;
185- if (nodeMemberDef .value () instanceof Syntax .Ident ident ) {
186- detail = ident .stringValue ();
187- }
171+ String detail = switch (nodeMemberDef .value ()) {
172+ case Syntax .Ident ident -> ident .stringValue ();
173+ case null , default -> null ;
174+ };
188175
189176 return new DocumentSymbol (
190177 nodeMemberDef .name ().stringValue (),
191178 SymbolKind .Property ,
192- range ,
193- selectionRange ,
179+ document . rangeOf ( nodeMemberDef ) ,
180+ document . rangeOfValue ( nodeMemberDef . name ()) ,
194181 detail
195182 );
196183 }
@@ -199,13 +186,11 @@ private DocumentSymbol inlineMemberSymbol(
199186 ListIterator <Syntax .Statement > listIterator ,
200187 Syntax .Statement .InlineMemberDef inlineMemberDef
201188 ) {
202- var range = document .rangeBetween (inlineMemberDef .start (), inlineMemberDef .end ());
203- var selectionRange = identRange (inlineMemberDef .name (), document );
204189 var inlineSymbol = new DocumentSymbol (
205190 inlineMemberDef .name ().stringValue (),
206191 SymbolKind .Property ,
207- range ,
208- selectionRange
192+ document . rangeOf ( inlineMemberDef ) ,
193+ document . rangeOfValue ( inlineMemberDef . name ())
209194 );
210195
211196 addMemberSymbols (listIterator , inlineSymbol );
0 commit comments